Index: tags/2.8.0/trunk/CHANGELOG
===================================================================
--- tags/2.8.0/trunk/CHANGELOG	(nonexistent)
+++ tags/2.8.0/trunk/CHANGELOG	(revision 1130)
@@ -0,0 +1,1530 @@
+Change Log
+===============================================================================
+Please note: This change log may not be accurate
+
+$Id$
+
+Legend:
++ = Added
+- = Removed
+# = Bugfix
+! = Update/Change
+
+------------------------------------- 2.8.0 -------------------------------------
+12-Aug-2009 Matthias Gallas
+#	Fixed some display issues in all backend themes
+!	Again updated dutch language file (Thanks to Argos)
+#	Fixed missing language variable in form modul (Thanks to Argos)
++	Added missing images to argos_theme (forgotten in changeset [1117])
+11-Aug-2009 Matthias Gallas
+!	commentet out the droplets logo for a more similar backend design with
+	other admin tools
+!	Updated icons in argos_theme (Thanks to Argos)
+!	Updated Dutch language file (Thanks to Argos)
+!	Updated show_menu2 to version 4.9
+9-Aug-2009 Matthias Gallas
+#	Replaced function mime_content_type as the old one causes shell_exec warnings
+	on some servers (Thanks to Aldus)
+!	updated argos_theme to version 1.4 (Thanks to Argos)
+!	some code cleaning of admin/pages/sections.php
+#	Fixed possible xss injection in login/forgot/index.php
+#	Fixed bug in news modul introduced in changeset [1057]
+#	Added missing variables also to preferences.php. Forgot in Changeset [1112]
+8-Aug-2009 Matthias Gallas
+#	Added some missing variables to backend_themes (Thanks to Stefek)
+6-Aug-2009 Matthias Gallas
+!	Set Version to 2.8
+!	Updated upgrade_script to make use of the changed news settings
++	Added to show_menu2 the aOption 'SM2_HIDEPAGES'. If set all hidden pages are
+	hidden again (Thanks to DarkViper)
+#	Fixed again some bugs in news modul (ticket #756) (Thanks to Aldus and Luisehahne)
+#	Fixed bug that frontend.js, frontend.css and frontend_body.js are not used
+	from snippets (ticket #764) (Thanks to Luisehahne)
++	Added new function 'register_frontend_modfiles_body' to default templates
++	Added option to use a frontend_body.js in modules to include javascript from modules
+	in the body of the frontend (Thanks to Luisehahne)
+!	Updated Danish language Files (Thanks to Achrist)
+#	Fixed some display issues in argos_theme (Thanks to Argos)
+30-July-2009 Ruud Eisinga (Ruud)
+#	Fixed a bug in the /admin/media resizer parameters for dirs with whitespaces (thnx to tiesy)
+#	Fixed a bug in FCKeditor include.php. Now the editor can be used from other 
+	subdirectories than WB_PATH/modules/mymodule
+29-July 2009 Dietrich Roland Pehlke (Aldus)
+#	changes in framework/class.wb.php to avoid the "print->footer()" bug in the frontend,
+	as this function/method doesn't exists for the frontend.
+#	Changes inside index.php and save.php in settings to get rid of the situation
+	that a SMTP-Password could not contain an "<" char (right chars are craped),
+	and also "<" is not transformed into an entitie "&lt;". (Thanks to FrankH)
+#	Modify of "addon.precheck.inc.php" to get rid of the problematic that version_compare
+	could faild if words like "alpha", "beta" are inside a version-string. (missing in changelog 1100)
+28-July 2009 Matthias Gallas
+#	fixed some smaller issues in rss.php (Thanks to Kibmcz)
+27-July 2009 Matthias Gallas
++	Added German language file to droplets
++	Added modul_description to language files of droplets
++	Added Danish language files to modules (Thanks to Achrist)
+!	Updated Danish language file (Thanks to Achrist)
+#	Fixed improper spelling in language files (#754)
+#	Fixed bug introduced in changeset [1092]
+25-July 2009 Matthias Gallas
+#	fixed some language bugs in search.php (Thanks to Thorn)
+23-July 2009 Matthias Gallas
+#	fixed bug with missing filetype icon in media section of classic_theme (ticket #752)
+#	fixed bug with page not showing if 2 sections active (ticket #751) (Thanks to Pumpi)
+#	readded to phplib/template.inc $clear: whether to delete undefined vars or not
+	was already added in WB 2.7 but was deleted for unknown reasons (Thanks to FrankH)
+22-July 2009 Matthias Gallas
+!	set Version to RC2
+!	small modification on german language file (ticket #746)
+#	Fixed E_ALL&E_STRICT warning on PHP5 servers (Thanks to Aldus) 
+#	Fixed bug with home folders are viewable and writable from other users
+	(ticket #605 and #748) (Thanks to Aldus)
+20-July 2009 Matthias Gallas
+!	Moved backend.js back from <body> to <head>
++	Added possibility to add a backend_body.js to modules wich is then called in <body>
++	Readded admin/images folder to keep backward compatibility to old modules
+19-July 2009 Matthias Gallas
+#	Fixed display issue of jsadmin in backend themes (Thanks to Argos)
+18-July 2009 Matthias Gallas
+!	Updated german laguage file in argos_theme
++	Added multilnaguage support to media section of argos_theme (Thanks to Argos)
+#	Fixed smaller display issue in argos_theme (Thanks to Argos)
++	Added more meta tags to backend themes
+!	Updated Argos_theme (Thanks to Argos and Luisehahne)
+#	Again added some &amp; to news and form to get more valid output (Thanks to Luisehahne)
+#	Fixed wrong set </form> tag to get valid output (Thanks to Luisehahne)
+!	Replaced in some alt tags hardcoded signs with language variables (Thanks to argos)
+!	Updated Dutch language File (Thanks to argos)
+!	Updated French language File (Thanks to mylesk42)
+16-July 2009 Matthias Gallas
+#	Fixed E_ALL notice in news/view.php
+!	replaced in form and news delimiter "&amp;" with "&"
+	was introduced with changeset [1069] but didn't work on all servers
+#	Removed double </form> tags in pages/intro.php and wysiwyg/modify.php
+!	replaced all remaining mktime() with time(), except from third party scripts
+15-July 2009 Matthias Gallas
+!	changed in modules/admin.php and admin/pages/add.php mktime() to time()
+!	changed in wrapper modul modify.html to modify.htt
+#	Fixed some validiation bugs in core and different modules (Thanks to luisehahne)
+#	fixed display issue of jscalendar in news modul (Thanks to Aldus)
+!	changed modules/admin.php to also make use of backend theme templates
+!	changed in class_login.php mktime() to time()
+14-July 2009 Matthias Gallas
+#	Fixed bug with sections are only editable in new backend-themes if blocks are enabled
+	(Thanks to Luisehahne)
+#	Fixed some validiation bugs in news modul (ticket #742) (Thanks to Luisehahne)
+14-July 2009 Dietrich Roland Pehlke
+!	changes in frontend.functions.php, line 323: 'date' to 'gmdate' to avoid E_STRICT warnings.
+!	changes in wb-setup.php, line 50: 'date' to 'gmdate' to avoid E_STRICT warnings. See also #741.
+13-July 2009 Matthias Gallas
++	added changes from news/add.php to the upgrade-script.php
+13-July-2009 Ruud Eisinga
+#	admin / media / browse reported an error in E_STRICT mode.
+13-July 2009 Dietrich Roland Pehlke
+!	Change inside "date_formats.php" and "time_formats.php" mktime() within time()
+	to avoid warnings and strict messages. See #741. Minor cosmetic changes.
+#	News-Modul: add the unlink-routine for the ".news" folder inside uninstall.php
+	so the groupe-images are also unlink.
+!	News-Modul: add <tr><td> and </td></tr>-tags to the "none found" part in the view.php to 
+	get valid output inside a table.
+!	Change the setting of $display_image and $display_groupe to avoid the 
+	empty display roule problematic (<tr style="display: ">) for valid output.
+!	Add &gt;&gt; in "add.php" instead of >> to avoid invalid output.
+11-July-2009 Ruud Eisinga
+!	The news module post_title link made unclickable when there is no full post.
+11-July-2009 Matthias Gallas
++	Added changed news settings to upgrade-script
+09-July-2009 Ruud Eisinga
+!	Added a better option to hide the READ_MORE link in the news module. (ticket #739)
+09-July-2009 Matthias Gallas
+#	Fixed bug that backend.js is not loaded in backend themes (ticket #740)
+#	Fixed wrong path to unitpngfix.js and added missing script
+#	Fixed invalid output of page_sections Page in Backend (Thanks to Luisehahne)
+08-July-2009 Matthias Gallas
++	Added PageID and SectionID to all backend themes (Thanks to Luiseshahne)
+#	Fixed some display issues in all backend themes (Thanks to Luisehahne)
+!	Replaced wbmodules.gif in FCKEditor Plugins (Thanks to Stefek)
+08-July-2009 Dietrich Roland Pehlke
+!	Removed unused marker {USERS} inside the "groups.htt" of the wb-theme.
+!	admin -> users -> index.php
+!	admin -> groups -> index.php
+	Codechanges using blocks to avoid to generate the "switch"-link right-top,
+	if the user has no permission to edit the other one.
+!	wb_theme|classic_theme|argos_theme -> templates -> users.htt
+!	wb_theme|classic_theme|argos_theme -> templates -> groups.htt
+ 	Add block-comments
+!	admin -> addons -> index.php	codechanges
+!	admin -> access -> index.php	codechanges
+	Codechanges to get rid of the empty display(style) declaration "style='display: ;'",
+	and to avoid to generate (hidden) elements if the user isn't alowed to edit one.
+!	wb_theme|classic_theme|argos_theme -> templates -> addons.htt
+!	wb_theme|classic_theme|argos_theme -> templates -> access.htt
+	add block-comments
+#	Bugfix inside wb/admin/groups/get_permissions.php - replacing wrong "AND" within "OR" in line 64
+	if one checkbox of "user" or "group" is selected (like in line 178; advanced settings).
+07-July-2009 Matthias Gallas
+#	Fixed some minor bugs in argos_theme (Thanks to Argos)
+#	Fixed bugs in admin additons for argos_theme (Thanks to Argos)
+!	Updated Version Number in upgrade_script to 2.8RC1
+!	Updated FCKEditor Modul Version Number to 2.89
++	added in FCKEditor Advisory Relation to Links (thanks to Luisehahne)
+06-July-2009 Matthias Gallas
+!	Updated FCKEditor to Version 2.6.4.1 (ticket #738) (Thanks to doc)
+#	Fixed Backend-Themes to get more valide output (Thanks to Luisehahne)
++	Added argos_theme
++	Added new functions to admin dir (Thanks Argos and Ruud)
+!	Updated install and upgrade-script
+!	Adapted wb_theme and classic_theme to changed admin dir files
+04-July-2009 Dietrich Roland Pehlke
+!	FCK-Editor Modul: Droplet Select: change "page_list_block" to "droplets_list_block",
+	also "cmbPages" to "cmbDroplets" as we are listen droplets not pages.
+!	Remove unneeded empty lines and spaces/blanks;
+	minor cosmetic changes in the source to keep the string more readable.
+04-July-2009 Matthias Gallas
+!	Replaced droplet icon for FCKEditor Toolbar (thanks to Stefek)
+#	Fixed two bugs in droplets-plugin for FCKEditor (thanks to Aldus)
+!	Changed Template from FCKEditor plugin WBModules to .htt
++	Added Droplets plugin to FCKEditor (ticket #737) (Big Thanks to vizmotion)
+03-July-2009 Matthias Gallas
++	Fixed IE Bug in Wrapper modul (ticket #736)
+03-July-2009 Ruud Eisinga
+#	Fixed the wrong handling of htmlentities in Droplet parameter parsing
+02-July-2009 Matthias Gallas
++	Added missing fancy_progress.png
+01-July-2009 Matthias Gallas
+#	Fixed backend display issues in IE6 and IE7
+!	Set Version to WB2.8RC1
+!	Minor tweaks in pages_sections.htt
++	Added posibility to upload and unzip .zip packages to media section
+	(Thanks to BerndJM)
+!	Updated Browse Media Window in wb_theme now supports file icons, more file
+	informations and a new preview function (Thanks to BerndJM)
+29-June-2009 Matthias Gallas
+#	Replaced in FCKEdiotor folder all index.html with index.php (ticket #691)
+!	Update PHPMailer to version 2.0.4 (ticket #733)
+!	Update Editarea to version 0.8.1.1 (ticket #732)
+!	Update JQuery UI to version 1.7.2 (ticket #731)
+27-June-2009 Ruud Eisinga
+#	Fixed email encryption bug in output filter. Introduced by adding droplets.
+	(Thanks to Luisehahne)
+25-June-2009 Matthias Gallas
++	Added missing admin/settings/setting.js
+!	Changed name of classic theme from "classic" to "classic_theme"
++	Added output-filter warning to all language files
+#	Fixed admintool jsadmin to get XHTML valid output (Thanks to Luisehahne)
+#	Major fixes on backend to get XHTML valid output (Thanks to Luisehahne)
++	Added option to use also MYSQL_ASSOC and MYSQL_NUM with mysql_fetch_array
+	(Thanks to Luisehahne)
+#	Bugfix for Error-Level settings (Thanks to Luisehahne)
+23-June-2009 Matthias Gallas
+#	Moved styles from admin/pages/sections.php to sections.htt in backend themes
+	(Thanks to Luisehahne)
+!	Moved javascript files from admin/pages/index.php to external js files
+	(Thanks to Luisehahne)
+#	Major improovements and changes to all backend files to get more valide Code
+	output (Thanks to Luisehahne)
+22-June-2009 Matthias Gallas
+#	fixed wrong position id when adding a new page
+-	removed obsolete code/modify.html
+22-June-2009 Dietrich Roland Pehlke
+#	Changes on module "code": add the section_id to the name of the textarea,
+	to keep the functionality if you are using more than one code-section on a page.
+!	Moving the html-template inside a "htt" folder and rename the suffix to ".htt" to
+	keep it consitant to other modules. Minor cosmetic changes inside the code.
+22-June-2009 Ruud Eisinga
+#	Fixed a bug in Menu_link module that made childpages of the menu_link page 
+	not selectable. (thnx to Luisehahne)
+21-June-2009 Matthias Gallas
+#	Fixed small bug introduced in changeset [999]
+19-June-2009 Matthias Gallas
+#	Fixed bug that parent pages didn't inherit language settings to kind pages
+17-June-2009 Ruud Eisinga
+#	Bugfix in "droplets/upgrade.php" - wrong parameter order for adding fields.
+	also the query for "normal" upgrades had a typo.
+!	Added warning in output_filter that the function will be removed in 2.9
+17-June-2009 Dietrich Roland Pehlke
+#	Bugfix in "droplets/upgrade.php" - wrong tablename change to the correct one
++	Add upgrade-script to droplets
+!	Changes on upgrade-script to avoid droping droplet-modul-tables if the exists.
+!	calling "upgrate.php" or "install.php" instead of hard-coded lines to avoid
+	future conflicts by upgrading the modul
+15-June-2009 Matthias Gallas
++	Added install routine for droplets to the upgrade script
+#	Fixed bug in menu_link modul with wrong displayed pages tree (Thanks to thorn)
+#	Fixed small bug introduced in changeset [989]
++	Added missing id tags and copyright notices to droplets modul
+15-June-2009 Dietrich Roland Pehlke (aldus)
+#	Bugfix for ticket #725
++	Add "$wb->strip_slashes" again for backslashes are displayed in the output (view.php).
++	Add Droplets (Ruud)
++	modifications inside frontend.functions.php for backwart compatiblity (Ruud)
++	modifications inside the search to get the droplets seachable (Ruud)
+14-June-2009 Dietrich Roland Pehlke (aldus)
+#	Bugfixes for (ticket #728)
++	Add additional constant to "install/save.php" to avoid conflikts during
+	installation inside "/framework/initialize.php".
++	Add condition inside "/framework/initialize.php" to avoid conflikts
+	during installation; table "mod_captcha_control" doesn't exsits at runtime.
++	Add test for tables inside "install/save.php" if the user uncheck "install table" option.
++	Additional Errormessage if nessesary tables are not found (english).
+13-June-2009 Matthias Gallas
++	Added jQuery-insert.js and jQuery plugins (Thanks to Luisehahne)
+!	Moved images in lQuery plugins folder (Thanks to Luisehahne)
+#	fixed small german language issue in jscalendar (Thanks to Luisehahne)
+26-May-2009 Matthias Gallas
++	Added jQuery(1.3.2) and jQueryUI(1.7.1) to WB core (ticket #708)
+21-May-2009 Matthias Gallas
+#	Fixed some strange backend layout issues (ticket #722)
+09-May-2009 Matthias Gallas
++	Added index.php to all WB-Theme folders to prevent directory spoofing
+06-May-2009 Matthias Gallas
+!	Updated Norsk language File (Thanks to oeh)
+#	Fixed bug with not always included stylesheets in backend (ticket #717)
+27-Apr-2009 Matthias Gallas
+#	Fixed bug with missing option for admin-tools in advanced view of access
+	settings (ticket #714)
+#	Fixed bug with backup fails if a user has only permissions to admin-tools (ticket #715)
+#	Fixed bug with missing template object in groups and user settings(ticket #716)
+25-Apr-2009 Matthias Gallas
+!	Updated Dutch language files for modules (Thanks to LuckyLuke)
+23-Apr-2009 Matthias Gallas
+#	Fixed bug with dropdownlist in pages settings (ticket #713)
+20-Apr-2009 Matthias Gallas
+!	Update show_menu2 to version 4.8 (ticket #712)
+#	Fixed small error in Spain language file (ticket #711)
+18-Apr-2009 Matthias Gallas
+!	Updated Dutch language file (Thanks to Luckyluke)
+17-Apr-2009 Matthias Gallas
+#	Fixed MenuLink timeout with many large wysiwyg-pages (ticket #710)
+!	Updated again Norsk language File (Thanks to oeh)
+!	Updated Dutch language file (Thanks to Luckyluke)
+13-Apr-2009 Matthias Gallas
+#	Fixed minor dispay issue in upgrade script
+!	Updated Norsk language File (Thanks to oeh)
+!	Updated French language files (Thanks to Quinto and VotreEspace)
+!	Updated Danish language file (Thanks to Achrist)
+12-Apr-2009 Matthias Gallas
+#	Fixed not defined language variable in account/email.php (Thanks to BlackTiger)
+#	Fixed Typo in group_form.htt (ticket #705)
+01-Mar-2009 Christian Sommer
+!	Added disclaimer to upgrade-script.php	
+28-Feb-2009 Christian Sommer
+#	Removed hardcoded admin path from JSAdmin module (jsadmin/js/dragdrop.js)
+25-Feb-2009 Matthias Gallas
++	Added language support for template_description (affects templates and themes)
+#	fixed wrong path to images in news and form modul
+#	fixed manage section is showed twice (ticket #694)
+-	removed unneeded icons from wb_theme
+-	removed unneeded stylesheet.css from account dir
+#	renamed warning.htt to warning.html to fix display of sourcecode after invalid logins
++	added fixed error.htt also to classic theme
++	corrected info.php of news-modul
+24-Feb-2009 Dietrich Roland Pehlke
+!	Changes in warning.htt templates to get valid XHTL1.1 output - replace the center-tag with div
+#	add "AND section_id='$section_id'" to the delete-query to avoid conflicts if there are more
+	than one Form on one single page.
+#	Modify error.htt template in wb_theme for valid XHTML1.1 output - replace the center-tag with a div
+	and replace the br-tag with valid p-tags.
+22-Feb-2009 Matthias Gallas
++	added skinable Admin Interface
+21-Feb-2009 Christian Sommer
++	added update of search table missing in Changeset 941
+#	fixed wrong index in language array
+!	removed some comment lines (changes are tracked by SVN)
+20-Feb-2009 Dietrich Roland Pehlke (aldus)
+!	add additional tr and td tags to the text_no_results message to get valid XHMTL output
+19-Feb-2009 Christian Sommer
+!	addon overview to show advanced options after redirect from reload.php
+#	fixed bug if language folder contains none language files (XX.php) or sub folders
++	added option to invoke module upgrade.php/uninstall.php files from backend (for modules uploaded via FTP)
+18-Feb-2009 Dietrich Roland Pehlke (aldus)
+#	fixed: typos in the section_id inside the action-link 
+!	Remove test_trash and unused variables in query, added suggetions from #588
+#	Bugfix for form bug (ticket #688)
+17-Feb-2009 Christian Sommer
++	added option to invoke module install.php from backend (for modules uploaded via FTP)
+!	admin Add-on settings no hidden by default (can be set visible via advanced link)
+16-Feb-2009 Christian Sommer
+!	moved reload option of Add-ons to main Add-on section
+!	reworked logout to reset possible remember key in database when logging out
+15-Feb-2009 Christian Sommer
+#	fixed bug with smart login option (remember me) (ticket #689)
+#	special chars like &nbsp; are shown when editing Add-on CSS files (ticket #678)
+!	redirect time for function print_success can now be defined in Settings (ticket #603)
+-	removed reload admin tool
++	added possibility to reload Add-ons via the Add-on section
+14-Feb-2009 Christian Sommer
+!	added option to display current user name in backend template
+#	fixed wrong redirect path and added SVN Id
+13-Feb-2009 Christian Sommer
++	added option to perform pre-installation checks to test requirements of Add-Ons
+#	added error messages to installation process for Add-Ons with wrong file type
+08-Feb-2009 Christian Sommer
+#	fixed warning if database connection failed during installation process
+06-Feb-2009 Christian Sommer
+!	fixed some typos in German language file (thanks to freeSbee)
+!	added new captcha fonts and replaced old background images with the ones created by thorn
+05-Feb-2009 Christian Sommer
+!	mail text for register, signup and forgot mail now taken from WB language file (ticket #684)
+02-Feb-2009 Christian Sommer
+#	removed PHPMailer fix introduced with 2.0.3 to get SMTP working again (line 1041 in class.smtp.php)
+02-Feb-2009 Matthias Gallas
+#	Fixed bug wich causes that install of captcha-control may fail (ticket #682 thanks to thorn)
+01-Feb-2009 Matthias Gallas
+!	Update FCKEditor to version 2.6.4
+22-Jan-2009 Christian Sommer
+!	Added default target attribut to backend menu links
+21-Jan-2009 Matthias Gallas
+!	Copyright notices now includes 2009
+20-Jan-2009 Matthias Gallas
+#	fixed form-module select (multiple) doesn't work (ticket #681 Thanks to thorn)
+17-Jan-2009 Matthias Gallas
++	added French languages to modules
+!	changed handling of post_date in news modul (thanks to susigross)
++	added hour and minute support to default published_when field in news modul
+13-Jan-2009 Christian Sommer
+-	removed the obsolete Codepress framework from the include folder
++	added Javascript syntax highlighting framework EditArea as replacement for Codepress
+!	updated external PHPMailer class to latest version (v2.0.3)
+08-Jan-2009 Christian Sommer
+#	fixed error message in admin class if type array not defined
+05-Jan-2009 Dietrich Roland Pehlke
+#	Code-Snippets are no longer shown as type: unknown. 
++	Additional key in the languagefiles "$TEXT['CODE_SNIPPET']";
+#	fixed bug for the rss of news, see ticket #609
+04-Jan-2009 Matthias Gallas
+#	made news Modul multilingual, see ticket #676 (some additional translations are needed)
+03-Jan-2009 Matthias Gallas
+#	fixed bug in view.php of news module (ticket #676 Thanks to susigross)
+#	fixed another bug in view.php of news modul introduced in changeset [892]
+30-Dec-2008 Matthias Gallas
++	added default new language variables to all language files
+-	modul_uninstall: Removed undefined and unused constants (DB_FETCHMODE_ASSOC)
+!	modul_uninstall: added language variable $TEXT['FILE'] instead of "Datei"
+29-Dec-2008 Dietrich Roland Pehlke
++	add language support for the errormessages inside the uninstall.php files for modules
+	and templates.
+!	add new keys inside the german de.php language-file.
+-	removed my own debugging-code (was in 893 by mistake)
+!	Correct the last date in the changelog
+29-Dec-2008 Matthias Gallas
+!	set version to 2.8 BETA
+#	replaced in news modul special chars with entities to get valid output
+!	changed SESSION ID Separator from '&' to '&amp;' to get valid output 
+-	Removed the <p> tag around the news as it is added from the editor  
+28-Dec-2008 Dietrich Roland Pehlke (aldus)
++	ticket 610: add ip-address to the email-body in the form-modul.
++	ticket 607: include the frontend.css in the comment_page.php file of the news-module.
+#	File: admin/admintools/index.php - add "order by name" to the query to display the admintools in alphabetic order.
+#	File: admin/modules/uninstall.php - remove a db-query to a db-field that doesn't exists in wb 2.7 anymore 
+26-Dec-2008 Thomas Hornik
+#	fixed two issues with searchresult-highlighting: do not highlight in <pre>/<code>-tags, do not convert &lt; to &amp;lt; anymore. 
+13-Dec-2008 Christian Sommer
+!	changed mailer to not extract line break of alternative body text (thanks to freeSbee)
+28-Oct-2008 Christian Sommer
+!	updated output filter regex to exclude mail addresses contained in input fields
+27-Nov-2008 Thomas Hornik
+!	added redirect-type (301/302) to menu_link
+24-Nov-2008 Matthias Gallas
+!	updated upgrade-script.php to add sec_anchor field to settings table
+22-Nov-2008 Thomas Hornik
+!	search: replaced most of $string_ul_umlauts (from search_convert.php) through use of preg's u-switch.
+!	search: replaced strtr() by str_replace() (it's just faster). Changed &#39; to &#039;
+06-Nov-2008 Thomas Hornik
+#	Module code: curly backets get deleted by pparse() from phplib --> old fix in #569 wasn't that smart. Fixed.
+#	fixed some typos in DE language-file, added missing tab in search.php
+02-Nov-2008 Thomas Hornik
+!	news: added PAGE_SPACER to $page_title (creates e.g. title-32.php instead of title32.php)
+01-Nov-2008 Thomas Hornik
+!	improved ext_charset to work with latin1,cp1252,cp1251,latin2,hebrew,greek,latin5,latin7,utf8
++	added config for section anchor. ATTN: add "INSERT INTO TABLE_PREFIX.'settings' (name,value,extra) VALUES ('sec_anchor', 'wb_', '')" to upgrade-script.
+!	updated menulink and search to use configureable section-anchor
+29-Oct-2008 Thomas Hornik
+# News: total number of news wasn't calculated correctly
+!	Captcha: removed IFRAME for Calculation-as-text captcha
+-	removed useless init_utf8funcs()-function
++	search: added search_lang for use in search-form. Using DE, the search will search รค=ae,... (alternate spelling of german umlauts)
+-	search: removed undocumented word-boundary search
+!	search: search_path is now anchored to the beginning of link ("link LIKE '$path%'" instead of "link LIKE '%$path%'")
++	search: added key 'ext_charset' to search-extension to query external databases
+25-Oct-2008 Christian Sommer
+!	updated basic templates according the template guidelines
+24-Oct-2008 Dietrich Roland Pehlke
+#	applied bugfix for ticket #608 (redeclaration of news module)
+23-Oct-2008 Dietrich Roland Pehlke
+!	modified module delete function to provide additional information when module is in use when trying to delete
+!	modified template delete function to provide additional information when template is in when trying to delete
+21-Oct-2008 Matthias Gallas
+#	fixed display issue in news modul
+!	updated show_menu2 to version 4.7
+18-Sep-2008 Thomas Hornik
++	Added captcha-reload
+16-Sep-2008 Thomas Hornik
+#	search: fixed windows-related regex issue
+19-Aug-2008 Matthias Gallas
+!	updated to latest FCKEditor version 2.6.3
+02-Aug-2008 Thomas Hornik
+#	fixed sorting order of search-results
+25-Jul-2008 Thomas Hornik
+#	fixed an issues related to search, changed one SQL inner join (to use USING instead of WHERE)
+!	added $database = new Database(); in front of output-filter
+05-Jul-2008 Thomas Hornik
+#	fixed MODI_DATE/PUBLISHED_DATE issue in news-module. Added PUBLISHED_TIME, removed PUBL_DATE,PUBL_TIME. Thanks to forum-member timorotha
+02-Jul-2008 Christian Sommer
+!	updated to latest FCKEditor version 2.6.2
+01-Jul-2008 Thomas Hornik
+#	page-names with doubled (or more) points can not be handled if php runs as cgi. Thanks to forum member hgi2001.
+29-June-2008 Christian Sommer
+!	applied additional mail check to forgot login form
+28-June-2008 Christian Sommer
+!	class and id attributes in mailto links are no longer ignored by the output filter
+22-Jun-2008 Thomas Hornik
+#	fixed issue with captcha (mt_rand() instead of rand())
+#	fixed bug in search (link to http://.../search/index.php performs a search with string 'unset')
+22-June-2008 Christian Sommer
+!	added output of block number to section admin if no block name is specified
+21-June-2008 Christian Sommer
++	added output of block names to modify pages dialogue if blocks are enabled
+!	updated show_menu2 to version 4.60 (to avoid disappearing menus)
+08-Jun-2008 Thomas Hornik
+#	hebrew-table in charsets-table.php was faultily imported - fixed. Thanks to forum-member iti.
+24-May-2008 Christian Sommer
+!	modified output filter routine to prevent errors if database entries do not exist
+04-May-2008 Thomas Hornik
+!	changed register_backend_modfile() to work with wysiwyg-module, too
+01-May-2008 Thomas Hornik
+#	fixed file-naming issue when old page-names (from before 2.7) contains "&"
+26-Apr-2008 Thomas Hornik
+#	class.admin.php deletes actual query-string while redirection. fixed.
+25-Apr-2008 Matthias Gallas
+#	fixed validiation bug in option fields of form modul
+------------------------------------- 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.8.0/trunk/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.8.0/trunk/wb/admin/pages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/index.php	(revision 1130)
@@ -0,0 +1,555 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+
+function make_list($parent, $editable_pages) {
+	// Get objects and vars from outside this function
+	global $admin, $template, $database, $TEXT, $MESSAGE, $HEADING, $page_tmp_id;
+	?>
+	<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 class="p<?php echo $page['parent']; ?>">
+			<table class="pages_view" border="0" cellpadding="0" cellspacing="0">
+			<tr>
+				<td valign="middle" width="20" style="padding-left: <?php if($page['level'] > 0){ echo $page['level']*20; } else { echo '7'; } ?>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 THEME_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 class="list_page_title">
+					<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 THEME_URL; ?>/images/visible_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['PUBLIC']; ?>" class="page_list_rights" />
+						<?php } elseif($page['visibility'] == 'private') { ?>
+							<img src="<?php echo THEME_URL; ?>/images/private_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['PRIVATE']; ?>" class="page_list_rights" />
+						<?php } elseif($page['visibility'] == 'registered') { ?>
+							<img src="<?php echo THEME_URL; ?>/images/keys_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['REGISTERED']; ?>" class="page_list_rights" />
+						<?php } elseif($page['visibility'] == 'hidden') { ?>
+							<img src="<?php echo THEME_URL; ?>/images/hidden_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['HIDDEN']; ?>" class="page_list_rights" />
+						<?php } elseif($page['visibility'] == 'none') { ?>
+							<img src="<?php echo THEME_URL; ?>/images/none_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['NONE']; ?>" class="page_list_rights" />
+						<?php } elseif($page['visibility'] == 'deleted') { ?>
+							<img src="<?php echo THEME_URL; ?>/images/deleted_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['DELETED']; ?>" class="page_list_rights" />
+						<?php } 
+						echo '<span class="modify_link">'.($page['page_title']).'</span>'; ?>
+					</a>
+				</td>
+				<?php } else { ?>
+				<td class="list_page_title">
+					<?php if($page['visibility'] == 'public') { ?>
+						<img src="<?php echo THEME_URL; ?>/images/visible_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['PUBLIC']; ?>" class="page_list_rights" />
+					<?php } elseif($page['visibility'] == 'private') { ?>
+						<img src="<?php echo THEME_URL; ?>/images/private_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['PRIVATE']; ?>" class="page_list_rights" />
+					<?php } elseif($page['visibility'] == 'registered') { ?>
+						<img src="<?php echo THEME_URL; ?>/images/keys_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['REGISTERED']; ?>" class="page_list_rights" />
+					<?php } elseif($page['visibility'] == 'hidden') { ?>
+						<img src="<?php echo THEME_URL; ?>/images/hidden_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['HIDDEN']; ?>" class="page_list_rights" />
+					<?php } elseif($page['visibility'] == 'none') { ?>
+						<img src="<?php echo THEME_URL; ?>/images/none_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['NONE']; ?>" class="page_list_rights" />
+					<?php } elseif($page['visibility'] == 'deleted') { ?>
+						<img src="<?php echo THEME_URL; ?>/images/deleted_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['DELETED']; ?>" class="page_list_rights" />
+					<?php } 
+					echo ($page['page_title']); ?>
+				</td>
+				<?php } ?>
+				<td class="list_menu_title">
+					<?php echo ($page['menu_title']); ?>
+				</td>
+				<td class="list_page_id">
+					<?php echo $page['page_id']; ?>
+				</td>
+				<td class="list_actions">
+					<?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 THEME_URL; ?>/images/view_16.png" border="0" alt="<?php echo $TEXT['VIEW']; ?>" />
+					</a>
+					<?php } ?>
+				</td>
+				<td class="list_actions">
+					<?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 THEME_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 THEME_URL; ?>/images/restore_16.png" border="0" alt="<?php echo $TEXT['RESTORE']; ?>" />
+						</a>
+					<?php } ?>
+				</td>
+				<!-- MANAGE SECTIONS AND DATES BUTTONS -->
+				<td class="list_actions">
+				<?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 THEME_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 THEME_URL; ?>/images/noclock_16.png" border="0" alt="<?php echo $HEADING['MANAGE_SECTIONS']; ?>" /></a>	
+						<?php } ?>
+					<?php } ?>
+				<?php } ?>
+				</td>
+				<td class="list_actions">
+				<?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 THEME_URL; ?>/images/up_16.png" border="0" alt="<?php echo $TEXT['MOVE_UP']; ?>" />
+						</a>
+						<?php } ?>
+					<?php } ?>
+				<?php } ?>
+				</td>
+				<td class="list_actions">
+				<?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 THEME_URL; ?>/images/down_16.png" border="0" alt="<?php echo $TEXT['MOVE_DOWN']; ?>" />
+						</a>
+						<?php } ?>
+					<?php } ?>
+				<?php } ?>
+				</td>
+				<td class="list_actions">
+					<?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 THEME_URL; ?>/images/delete_16.png" border="0" alt="<?php echo $TEXT['DELETE']; ?>" />
+					</a>
+					<?php } ?>
+				</td>
+			</tr>
+			</table>
+			</li>
+			<?php
+			if ( $page['parent'] = 0) {
+				$page_tmp_id = $page['page_id'];
+			}
+			// 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) {
+	?>
+	<div class="jsadmin hide"></div>
+	<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 THEME_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" border="0">
+	<tr>
+		<td class="header_list_page_title">
+			<?php echo $TEXT['VISIBILITY'] .' / ' .$TEXT['PAGE_TITLE']; ?>:
+		</td>
+		<td class="header_list_menu_title">
+			<?php echo $TEXT['MENU_TITLE']; ?>:
+		</td>
+		<td class="header_list_page_id">
+			ID:
+		</td>		
+		<td class="header_list_actions">
+			<?php echo $TEXT['ACTIONS']; ?>:
+		</td>
+	</tr>
+	</table>
+	<?php
+	$page_tmp_id = 0;
+	$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(THEME_PATH.'/templates');
+$template->set_file('page', 'pages.htt');
+$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="disabled"',
+									'LINK_COLOR' => '000000',
+									'CURSOR' => 'default',
+									'NAME' => $admin_group_name['name'],
+									'CHECKED' => ' 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="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="disabled"',
+									'LINK_COLOR' => '000000',
+									'CURSOR' => 'default',
+									'NAME' => $admin_group_name['name'],
+									'CHECKED' => ' 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="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;
+		// if parent = 0 set flag_icon
+		$template->set_var('FLAG_ROOT_ICON',' none ');
+		if( $page['parent'] == 0 ) {
+			$template->set_var('FLAG_ROOT_ICON','url('.THEME_URL.'/images/flags/'.strtolower($page['language']).'.png)');
+		}
+		// 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" class="disabled"');
+				}
+				$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="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="selected"');
+			} else {
+				$template->set_var('SELECTED', '');
+			}
+			$template->parse('module_list', 'module_list_block', true);
+		}
+	}
+}
+
+// Insert urls
+$template->set_var(array(
+								'THEME_URL' => THEME_URL,
+								'WB_URL' => WB_URL,
+								'WB_PATH' => WB_PATH,
+								'ADMIN_URL' => ADMIN_URL,
+								)
+						);
+
+// 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();
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/pages/sections.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/sections.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/sections.php	(revision 1130)
@@ -0,0 +1,389 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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'];
+}
+
+$debug = false; // to show position and section_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'];
+}
+
+/*-- load css files with jquery --*/
+// include jscalendar-setup
+$jscal_use_time = true; // whether to use a clock, too
+require_once(WB_PATH."/include/jscalendar/wb-setup.php");
+
+// Setup template object
+$template = new Template(THEME_PATH.'/templates');
+$template->set_file('page', 'pages_sections.htt');
+$template->set_block('page', 'main_block', 'main');
+$template->set_block('main_block', 'module_block', 'module_list');
+$template->set_block('main_block', 'section_block', 'section_list');
+$template->set_block('section_block', 'block_block', 'block_list');
+$template->set_block('main_block', 'calendar_block', 'calendar_list');
+
+// set first defaults and messages
+$template->set_var(array(
+				'PAGE_ID' => $results_array['page_id'],
+				'PAGE_TITLE' => ($results_array['page_title']),
+				'MENU_TITLE' => ($results_array['menu_title']),
+				'TEXT_CURRENT_PAGE' => $TEXT['CURRENT_PAGE'],
+				'HEADING_MANAGE_SECTIONS' => $HEADING['MANAGE_SECTIONS'],
+				'HEADING_MODIFY_PAGE' => $HEADING['MODIFY_PAGE'],
+				'TEXT_CHANGE_SETTINGS' => $TEXT['CHANGE_SETTINGS'],
+				'TEXT_ADD_SECTION' => $TEXT['ADD_SECTION'],
+				'TEXT_ID' => 'ID',
+				'TEXT_TYPE' => $TEXT['TYPE'],
+				'TEXT_BLOCK' => $TEXT['BLOCK'],
+				'TEXT_PUBL_START_DATE' => $TEXT{'PUBL_START_DATE'},
+				'TEXT_PUBL_END_DATE' => $TEXT['PUBL_END_DATE'],
+				'TEXT_ACTIONS' => $TEXT['ACTIONS'],
+				'ADMIN_URL' => ADMIN_URL,
+				'WB_URL' => WB_URL,
+				'WB_PATH' => WB_PATH,
+				'THEME_URL' => THEME_URL
+				) 
+			);
+
+// Insert variables
+$template->set_var(array(
+				'VAR_PAGE_ID' => $results_array['page_id'],
+				'VAR_PAGE_TITLE' => $results_array['page_title'],
+				'SETTINGS_LINK' => ADMIN_URL.'/pages/settings.php?page_id='.$results_array['page_id'],
+				'MODIFY_LINK' => ADMIN_URL.'/pages/modify.php?page_id='.$results_array['page_id']
+				) 
+			);
+
+$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) {
+	$num_sections = $query_sections->numRows();
+	while($section = $query_sections->fetchRow()) {
+		if(!is_numeric(array_search($section['module'], $module_permissions))) {
+			// Get the modules real name
+			$module_name=$database->get_one("SELECT name FROM ".TABLE_PREFIX."addons WHERE directory='".$section['module']."'");
+			$template->set_var(array(
+			) );
+			if(SECTION_BLOCKS) {
+				$edit_page ='<a name="'.$section['section_id'].'" href="'.ADMIN_URL.'/pages/modify.php?page_id='.$page_id.'#'.$section['section_id'].'">'.$module_name.'</a>';
+				$input_attribute = 'input_normal';
+				$template->set_var(array(
+						'STYLE_DISPLAY_SECTION_BLOCK' => ' style="visibility:visible;"',
+						'NAME_SIZE' => 180,
+						'INPUT_ATTRIBUTE' => $input_attribute,
+						'VAR_SECTION_ID' => $section['section_id'],
+						'VAR_POSITION' => $section['position'],
+						'LINK_MODIFY_URL_VAR_MODUL_NAME' => $edit_page,
+						'SELECT' => '',
+						'SET_NONE_DISPLAY_OPTION' => ''
+						) 
+					);
+				// Add block options to the section_list
+				$template->clear_var('block_list');
+				foreach($block AS $number => $name) {
+					$template->set_var('NAME', htmlentities(strip_tags($name)));
+					$template->set_var('VALUE', $number);
+					$template->set_var('SIZE', 1);
+					if($section['block'] == $number) {
+						$template->set_var('SELECTED', ' selected="selected"');
+					} else {
+						$template->set_var('SELECTED', '');
+					}
+					$template->parse('block_list', 'block_block', true);
+				}
+			} else {
+				$edit_page ='<a name="'.$section['section_id'].'" href="'.ADMIN_URL.'/pages/modify.php?page_id='.$page_id.'#'.$section['section_id'].'">'.$module_name.'</a>';
+				$input_attribute = 'input_small';
+				$template->set_var(array(
+						'STYLE_DISPLAY_SECTION_BLOCK' => ' style="display:none;"',
+						'NAME_SIZE' => 270,
+						'INPUT_ATTRIBUTE' => $input_attribute,
+						'VAR_SECTION_ID' => $section['section_id'],
+						'VAR_POSITION' => $section['position'],
+						'LINK_MODIFY_URL_VAR_MODUL_NAME' => $edit_page,
+						'NAME' => htmlentities(strip_tags($block[1])),
+						'VALUE' => 1,
+						'SET_NONE_DISPLAY_OPTION' => ''
+						) 
+					);
+			}
+			// Insert icon and images
+			$template->set_var(array(
+						'CLOCK_16_PNG' => 'clock_16.png',
+						'CLOCK_DEL_16_PNG' => 'clock_del_16.png',
+						'DELETE_16_PNG' => 'delete_16.png'
+						) 
+					);
+			// set calendar start values
+			if($section['publ_start']==0) {
+				$template->set_var('VALUE_PUBL_START', '');
+			} else {
+				$template->set_var('VALUE_PUBL_START', date($jscal_format, $section['publ_start']));
+			}
+			// set calendar start values
+			if($section['publ_end']==0) {
+				$template->set_var('VALUE_PUBL_END', '');
+			} else {
+				$template->set_var('VALUE_PUBL_END', date($jscal_format, $section['publ_end']));
+			}
+			// Insert icons up and down
+			if($section['position'] != 1 ) {
+				$template->set_var(
+							'VAR_MOVE_UP_URL',
+							'<a href="'.ADMIN_URL.'/pages/move_up.php?page_id='.$page_id.'&amp;section_id='.$section['section_id'].'">
+							<img src="'.THEME_URL.'/images/up_16.png" alt="{TEXT_MOVE_UP}" />
+							</a>' );
+			} else {
+				$template->set_var(array(
+							'VAR_MOVE_UP_URL' => ''
+							) 
+						);
+			}
+			if($section['position'] != $num_sections ) {
+				$template->set_var(
+							'VAR_MOVE_DOWN_URL',
+							'<a href="'.ADMIN_URL.'/pages/move_down.php?page_id='.$page_id.'&amp;section_id='.$section['section_id'].'">
+							<img src="'.THEME_URL.'/images/down_16.png" alt="{TEXT_MOVE_DOWN}" />
+							</a>' );
+			} else {
+				$template->set_var(array(
+							'VAR_MOVE_DOWN_URL' => ''
+							) 
+						);
+			}
+		}
+			$template->set_var(array(
+							'DISPLAY_DEBUG' => ' style="visibility="visible;"',
+							'TEXT_SID' => 'SID',
+							'DEBUG_COLSPAN_SIZE' => 9
+							) 
+						);
+		if($debug) {
+			$template->set_var(array(
+							'DISPLAY_DEBUG' => ' style="visibility="visible;"',
+							'TEXT_PID' => 'PID',
+							'TEXT_SID' => 'SID',
+							'POSITION' => $section['position']
+							) 
+						);
+		} else {
+			$template->set_var(array(
+							'DISPLAY_DEBUG' => ' style="display:none;"',
+							'TEXT_PID' => '',
+							'POSITION' => ''
+							) 
+						);
+		}
+		$template->parse('section_list', 'section_block', true);
+	}
+}
+
+// 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))) {
+			$template->set_var(array(
+						'jscal_ifformat' => $jscal_ifformat,
+						'jscal_firstday' => $jscal_firstday,
+						'jscal_today' => $jscal_today,
+						'start_date' => 'start_date'.$section['section_id'],
+						'end_date' => 'end_date'.$section['section_id'],
+						'trigger_start' => 'trigger_start'.$section['section_id'],
+						'trigger_end' => 'trigger_stop'.$section['section_id']
+						) 
+					);
+			if(isset($jscal_use_time) && $jscal_use_time==TRUE) {
+				$template->set_var(array(
+						'showsTime' => "true",
+						'timeFormat' => "24"
+						) 
+					);
+			}  else {
+				$template->set_var(array(
+						'showsTime' => "false",
+						'timeFormat' => "24"
+						) 
+					);
+			}
+		}
+		$template->parse('calendar_list', 'calendar_block', true);
+	}
+}
+
+// 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) {
+	// Modules 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   echo  $module['directory'],'<br />';
+			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="selected"');
+				} else {
+					$template->set_var('SELECTED', '');
+				}
+				$template->parse('module_list', 'module_block', true);
+			}
+		}
+	}
+}
+// Insert language text and messages
+$template->set_var(array(
+					'TEXT_MANAGE_SECTIONS' => $HEADING['MANAGE_SECTIONS'],
+					'TEXT_ARE_YOU_SURE' => $TEXT['ARE_YOU_SURE'],
+					'TEXT_TYPE' => $TEXT['TYPE'],
+					'TEXT_ADD' => $TEXT['ADD'],
+					'TEXT_SAVE' =>  $TEXT['SAVE'],
+					'TEXTLINK_MODIFY_PAGE' => $HEADING['MODIFY_PAGE'],
+					'TEXT_CALENDAR' => $TEXT['CALENDAR'],
+					'TEXT_DELETE_DATE' => $TEXT['DELETE_DATE'],
+					'TEXT_ADD_SECTION' => $TEXT['ADD_SECTION'],
+					'TEXT_MOVE_UP' => $TEXT['MOVE_UP'],
+					'TEXT_MOVE_DOWN' => $TEXT['MOVE_DOWN']
+					) 
+				);
+$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.8.0/trunk/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.8.0/trunk/wb/admin/pages/settings.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/settings.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/settings.php	(revision 1130)
@@ -0,0 +1,476 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'pages_settings.htt');
+$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,
+				'WB_URL' => WB_URL,
+				'WB_PATH' => WB_PATH,
+				'THEME_URL' => THEME_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="selected"');
+} elseif($results_array['visibility'] == 'private') {
+	$template->set_var('PRIVATE_SELECTED', ' selected="selected"');
+} elseif($results_array['visibility'] == 'registered') {
+	$template->set_var('REGISTERED_SELECTED', ' selected="selected"');
+} elseif($results_array['visibility'] == 'hidden') {
+	$template->set_var('HIDDEN_SELECTED', ' selected="selected"');
+} elseif($results_array['visibility'] == 'none') {
+	$template->set_var('NO_VIS_SELECTED', ' 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="disabled"',
+									'LINK_COLOR' => '000000',
+									'CURSOR' => 'default',
+									'NAME' => $admin_group_name['name'],
+									'CHECKED' => ' 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="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="disabled"',
+									'LINK_COLOR' => '000000',
+									'CURSOR' => 'default',
+									'NAME' => $admin_group_name['name'],
+									'CHECKED' => ' 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="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 psrent = 0 set flag_icon
+		$template->set_var('FLAG_ROOT_ICON',' none ');
+		if( $page['parent'] == 0 ) {
+			$template->set_var('FLAG_ROOT_ICON','url('.THEME_URL.'/images/flags/'.strtolower($page['language']).'.png)');
+		}
+		// 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']),
+											'FLAG_ICON' => 'none',
+											));
+
+			if($results_array['parent'] == $page['page_id']) {
+				$template->set_var('SELECTED', ' selected="selected"');
+			} elseif($results_array['page_id'] == $page['page_id']) {
+				$template->set_var('SELECTED', ' disabled="disabled" class="disabled"');
+				$list_next_level=false;
+			} elseif($can_modify != true) {
+				$template->set_var('SELECTED', ' disabled="disabled" class="disabled"');
+			} 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="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' and function = '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="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="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,
+								'FLAG_LANG_ICONS' => 'url('.THEME_URL.'/images/flags/'.strtolower($l_codes[$l_name]).'.png)',
+								));
+		// Check if it is selected
+		if($results_array['language'] == $l_codes[$l_name]) {
+			$template->set_var('SELECTED', ' 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="selected"');
+}
+// Select what the page target is
+switch ($results_array['target']) {
+	case '_top':
+		$template->set_var('TOP_SELECTED', ' selected="selected"');
+		break;
+	case '_self':
+		$template->set_var('SELF_SELECTED', ' selected="selected"');
+		break;
+	case '_blank':
+		$template->set_var('BLANK_SELECTED', ' 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();
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/pages/modify.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/modify.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/modify.php	(revision 1130)
@@ -0,0 +1,151 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'pages_modify.htt');
+$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,
+								'WB_URL' => WB_URL,
+								'WB_PATH' => WB_PATH,
+								'THEME_URL' => THEME_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 template used for the displayed page (for displaying block details)
+if (SECTION_BLOCKS) {
+	$sql = "SELECT `template` from `" . TABLE_PREFIX . "pages` WHERE `page_id` = '$page_id' ";
+	$result = $database->query($sql);
+	if ($result && $result->numRows() == 1) {
+		$row = $result->fetchRow();
+		$page_template = ($row['template'] == '') ? DEFAULT_TEMPLATE : $row['template'];
+		// include template info file if exists
+		if (file_exists(WB_PATH . '/templates/' . $page_template . '/info.php')) {
+			include_once(WB_PATH . '/templates/' . $page_template . '/info.php');
+		}
+	}
+}
+	
+// Get sections for this page
+$module_permissions = $_SESSION['MODULE_PERMISSIONS'];
+$query_sections = $database->query("SELECT section_id, module, block 
+	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>';
+				// output block name if blocks are enabled
+				if (SECTION_BLOCKS) {
+					if (isset($block[$section['block']]) && trim(strip_tags(($block[$section['block']]))) != '') {
+						$block_name = htmlentities(strip_tags($block[$section['block']]));
+					} else {
+						if ($section['block'] == 1) {
+							$block_name = $TEXT['MAIN'];
+						} else {
+							$block_name = '#' . (int) $section['block'];
+						}
+					}
+					echo '<b>' . $TEXT['BLOCK'] . ': </b>' . $block_name;
+				}
+				require(WB_PATH.'/modules/'.$module.'/modify.php');
+			}
+		}
+	}
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/pages/intro.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/intro.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/intro.php	(revision 1130)
@@ -0,0 +1,78 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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" class="form_submit">
+<tr>
+	<td class="left">
+		<input type="submit" value="<?php echo $TEXT['SAVE'];?>" class="submit" />
+	</td>
+	<td class="right">
+		<input type="button" value="<?php echo $TEXT['CANCEL'];?>" onclick="javascript: window.location = 'index.php';" class="submit" />
+	</td>
+</tr>
+</table>
+
+</form>
+<?php
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/pages/save.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/save.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/save.php	(revision 1130)
@@ -0,0 +1,94 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 = time();
+$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.8.0/trunk/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.8.0/trunk/wb/admin/pages/add.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/add.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/add.php	(revision 1130)
@@ -0,0 +1,178 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 or language to the default
+$query_parent = $database->query("SELECT template, language FROM ".TABLE_PREFIX."pages WHERE page_id = '$parent'");
+if($query_parent->numRows() > 0) {
+	$fetch_parent = $query_parent->fetchRow();
+	$template = $fetch_parent['template'];
+	$language = $fetch_parent['language'];
+} else {
+	$template = '';
+	$language = DEFAULT_LANGUAGE;
+}
+
+// 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','$language','$admin_groups','$viewing_groups','".time()."','".$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);
+
+// add position 1 to new page
+$position = 1;
+
+// 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.8.0/trunk/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.8.0/trunk/wb/admin/pages/page_calendar.js
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/page_calendar.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/page_calendar.js	(revision 1130)
@@ -0,0 +1,26 @@
+Calendar.setup(
+	{
+	inputField  : start_date,
+	ifFormat    : jscal_ifformat,
+	button      : trigger_start,
+	firstDay    : jscal_firstday,
+	showsTime   : showsTime,
+	timeFormat  : timeFormat,
+	date        : jscal_today,
+	range       : [1970, 2037],
+	step        : 1
+	}
+);
+Calendar.setup(
+	{
+	inputField  : end_date,
+	ifFormat    : jscal_ifformat,
+	button      : trigger_end,
+	firstDay    : jscal_firstday,
+	showsTime   : showsTime,
+	timeFormat  : timeFormat,
+	date        : jscal_today,
+	range       : [1970, 2037],
+	step        : 1
+	}
+);
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/pages/page_calendar.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.8.0/trunk/wb/admin/pages/page_trash.js
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/page_trash.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/page_trash.js	(revision 1130)
@@ -0,0 +1,32 @@
+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 THEME_URL; ?>/images/plus_16.png";
+var minus = new Image;
+minus.src = "<?php echo THEME_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;
+	}
+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/pages/page_trash.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.8.0/trunk/wb/admin/pages/page_settings.js
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/page_settings.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/page_settings.js	(revision 1130)
@@ -0,0 +1,26 @@
+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;
+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/pages/page_settings.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.8.0/trunk/wb/admin/pages/page_index.js
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/page_index.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/page_index.js	(revision 1130)
@@ -0,0 +1,35 @@
+/*-- Addition for remembering expanded state of pages --*/
+function writeSessionCookie (cookieName, cookieValue) {
+	document.cookie = escape(cookieName) + "=" + escape(cookieValue) + ";";
+}
+
+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 = THEME_URL+"/images/plus_16.png";
+var minus = new Image;
+minus.src = THEME_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;
+	}
+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/pages/page_index.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.8.0/trunk/wb/admin/pages/trash.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/trash.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/trash.php	(revision 1130)
@@ -0,0 +1,289 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 THEME_URL; ?>/images/plus_16.png";
+var minus = new Image;
+minus.src = "<?php echo THEME_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>
+
+<?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']; ?>">
+			<table cellpadding="0" cellspacing="0" border="0">
+			<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 THEME_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" class="icon_col">
+				<?php if($page['visibility'] == 'public') { ?>
+					<img src="<?php echo THEME_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 THEME_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 THEME_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 THEME_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 THEME_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 THEME_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 THEME_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 THEME_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 THEME_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 THEME_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 THEME_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.8.0/trunk/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.8.0/trunk/wb/admin/pages/move_down.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/move_down.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/move_down.php	(revision 1130)
@@ -0,0 +1,73 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/pages/empty_trash.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/empty_trash.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/empty_trash.php	(revision 1130)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/pages/delete.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/delete.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/delete.php	(revision 1130)
@@ -0,0 +1,107 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/pages/sections_save.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/sections_save.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/sections_save.php	(revision 1130)
@@ -0,0 +1,129 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/pages/move_up.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/move_up.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/move_up.php	(revision 1130)
@@ -0,0 +1,73 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/pages/intro2.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/intro2.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/intro2.php	(revision 1130)
@@ -0,0 +1,63 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/pages/settings2.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/settings2.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/settings2.php	(revision 1130)
@@ -0,0 +1,247 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/pages/restore.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/pages/restore.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/pages/restore.php	(revision 1130)
@@ -0,0 +1,109 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/login/forgot/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/login/forgot/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/login/forgot/index.php	(revision 1130)
@@ -0,0 +1,171 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 = htmlspecialchars($_POST['email'],ENT_QUOTES);
+	
+	// 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 = time()-$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 = '".time()."' WHERE user_id = '".$results_array['user_id']."'");
+			
+			if($database->is_error()) {
+				// Error updating database
+				$message = $database->get_error();
+			} else {
+				// Setup email to send
+				$mail_to = $email;
+				$mail_subject = $MESSAGE['SIGNUP2']['SUBJECT_LOGIN_INFO'];
+
+				// Replace placeholders from language variable with values
+				$search = array('{LOGIN_DISPLAY_NAME}', '{LOGIN_WEBSITE_TITLE}', '{LOGIN_NAME}', '{LOGIN_PASSWORD}');
+				$replace = array($results_array['display_name'], WEBSITE_TITLE, $results_array['username'], $new_pass); 
+				$mail_message = str_replace($search, $replace, $MESSAGE['SIGNUP2']['BODY_LOGIN_INFO']);
+
+				// 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'];
+		// and delete the wrong Email
+		$email = '';
+	}
+	
+} else {
+	$email = '';
+}
+
+if(!isset($message)) {
+	$message = $MESSAGE['FORGOT_PASS']['NO_DATA'];
+	$message_color = '000000';
+} else {
+	$message_color = 'FF0000';
+}
+	
+// Setup the template
+$template = new Template(THEME_PATH.'/templates');
+$template->set_file('page', 'login_forgot.htt');
+$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,
+								'THEME_URL' => THEME_URL,
+								'LANGUAGE' => strtolower(LANGUAGE),
+								'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.8.0/trunk/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.8.0/trunk/wb/admin/login/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/login/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/login/index.php	(revision 1130)
@@ -0,0 +1,70 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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' => THEME_URL."/templates/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' => THEME_PATH."/templates",
+									'TEMPLATE_FILE' => "login.htt",
+									'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.8.0/trunk/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.8.0/trunk/wb/admin/preferences/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/preferences/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/preferences/index.php	(revision 1130)
@@ -0,0 +1,170 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'preferences.htt');
+$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,
+								'FLAG' => THEME_URL.'/images/flags/'.strtolower($l_codes[$l_name]),
+								));
+		// Check if it is selected
+		if(LANGUAGE == $l_codes[$l_name]) {
+			$template->set_var('SELECTED', ' 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="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="selected"');
+	} elseif($format == 'system_default' AND isset($_SESSION['USE_DEFAULT_DATE_FORMAT'])) {
+		$template->set_var('SELECTED', ' 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="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 urls
+$template->set_var(array(
+								'ADMIN_URL' => ADMIN_URL,
+								'WB_URL' => WB_URL,
+								'WB_PATH' => WB_PATH,
+								'THEME_URL' => THEME_URL
+								)
+						);
+// 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.8.0/trunk/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.8.0/trunk/wb/admin/preferences/password.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/preferences/password.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/preferences/password.php	(revision 1130)
@@ -0,0 +1,71 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/preferences/details.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/preferences/details.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/preferences/details.php	(revision 1130)
@@ -0,0 +1,70 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/preferences/email.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/preferences/email.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/preferences/email.php	(revision 1130)
@@ -0,0 +1,67 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/groups/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/groups/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/groups/index.php	(revision 1130)
@@ -0,0 +1,205 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'groups.htt');
+$template->set_block('page', 'main_block', 'main');
+$template->set_block('main_block', 'manage_users_block', 'users');
+// insert urls
+$template->set_var(array(
+	'ADMIN_URL' => ADMIN_URL,
+	'WB_URL' => WB_URL,
+	'WB_PATH' => WB_PATH,
+	'THEME_URL' => THEME_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' => ( $admin->get_permission('users') == true ) ? $TEXT['MANAGE_USERS']: "",
+	'CONFIRM_DELETE' => $MESSAGE['GROUPS']['CONFIRM_DELETE']
+	)
+);
+if ( $admin->get_permission('users') == true ) $template->parse("users", "manage_users_block", true);
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Setup template for add group form
+$template = new Template(THEME_PATH.'/templates');
+$template->set_file('page', 'groups_form.htt');
+$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 ( true == (isset( $_POST['advanced']) AND ( strpos( $_POST['advanced'], ">>") > 0 ) ) ) {
+	$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="checked"',
+								'ADMIN_URL' => ADMIN_URL,
+								'WB_URL' => WB_URL,
+								'WB_PATH' => WB_PATH,
+								'THEME_URL' => THEME_URL
+								)
+						);
+
+// 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.8.0/trunk/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.8.0/trunk/wb/admin/groups/get_permissions.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/groups/get_permissions.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/groups/get_permissions.php	(revision 1130)
@@ -0,0 +1,255 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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') != '' OR $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');
+	$system_permissions['admintools_settings'] = $system_permissions['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'] = '';
+		}
+		// Admintools
+		$system_permissions['admintools_settings'] = $admin->get_post('admintools_settings');
+		if($system_permissions['admintools_settings'] == 1) {
+			$system_permissions['admintools'] = 1;
+		} else {
+			$system_permissions['admintools'] = '';
+		}
+	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.8.0/trunk/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.8.0/trunk/wb/admin/groups/groups.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/groups/groups.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/groups/groups.php	(revision 1130)
@@ -0,0 +1,189 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+	$template->set_file('page', 'groups_form.htt');
+	$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( true == (isset( $_POST['advanced']) AND ( strpos( $_POST['advanced'], ">>") > 0 ) ) ) {
+		$template->set_var('DISPLAY_ADVANCED', '');
+		$template->set_var('DISPLAY_BASIC', 'none');
+		$template->set_var('ADVANCED', 'yes');
+		$template->set_var('ADVANCED_BUTTON', '&lt;&lt; '.$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'].'  &gt;&gt;');
+	}
+
+	// Explode system permissions
+	$system_permissions = explode(',', $group['system_permissions']);
+	// Check system permissions boxes
+	foreach($system_permissions AS $name) {
+			$template->set_var($name.'_checked', ' 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="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="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'],
+									'HEADING_MODIFY_GROUP' => $HEADING['MODIFY_GROUP']
+									)
+							);
+	
+	// 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.8.0/trunk/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.8.0/trunk/wb/admin/groups/save.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/groups/save.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/groups/save.php	(revision 1130)
@@ -0,0 +1,69 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/groups/add.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/groups/add.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/groups/add.php	(revision 1130)
@@ -0,0 +1,65 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/media/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/index.php	(revision 1130)
@@ -0,0 +1,122 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+include ('parameters.php');
+
+// Setup template object
+$template = new Template(THEME_PATH.'/templates');
+$template->set_file('page', 'media.htt');
+$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');
+$dirs = directory_list(WB_PATH.MEDIA_DIRECTORY);
+$currentHome = $admin->get_home_folder();
+
+if ($currentHome){
+	$dirs = directory_list(WB_PATH.MEDIA_DIRECTORY.$currentHome);
+}
+else
+{
+	$dirs = directory_list(WB_PATH.MEDIA_DIRECTORY);
+}
+$array_lowercase = array_map('strtolower', $dirs);
+array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $dirs);
+foreach($dirs 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');
+}
+if ($_SESSION['GROUP_ID'] != 1 && $pathsettings['global']['admin_only']) { // Only show admin the settings link
+	$template->set_var('DISPLAY_SETTINGS', 'hide');
+}
+// Workout if the up arrow should be shown
+if(($dirs == '') or ($dirs==$currentHome) or (!array_key_exists('dir', $_GET))) {
+	$display_up_arrow = 'hide';
+} else {
+	$display_up_arrow = '';
+}
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_BROWSE_MEDIA' => $HEADING['BROWSE_MEDIA'],
+								'HOME_DIRECTORY' => $currentHome,
+								'DISPLAY_UP_ARROW' => $display_up_arrow, // **!
+								'HEADING_CREATE_FOLDER' => $HEADING['CREATE_FOLDER'],
+								'HEADING_UPLOAD_FILES' => $HEADING['UPLOAD_FILES']
+								)
+						);
+// insert urls
+$template->set_var(array(
+								'ADMIN_URL' => ADMIN_URL,
+								'WB_URL' => WB_URL,
+								'WB_PATH' => WB_PATH,
+								'THEME_URL' => THEME_URL
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'MEDIA_DIRECTORY' => MEDIA_DIRECTORY,
+								'TEXT_NAME' => $TEXT['TITLE'],
+								'TEXT_RELOAD' => $TEXT['RELOAD'],
+								'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'],
+								'CHANGE_SETTINGS' => $TEXT['MODIFY_SETTINGS'],
+								'OPTIONS' => $TEXT['OPTION'],
+								'TEXT_UNZIP_FILE' => $TEXT['UNZIP_FILE'],
+								'TEXT_DELETE_ZIP' => $TEXT['DELETE_ZIP']
+								)
+						);
+
+// 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.8.0/trunk/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.8.0/trunk/wb/admin/media/setparameter.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/setparameter.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/setparameter.php	(revision 1130)
@@ -0,0 +1,131 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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('Media', 'media', false);
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// check if theme language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(THEME_PATH .'/languages/'.LANGUAGE .'.php')) {
+	// no theme language file exists for the language set by the user, include default theme language file EN.php
+	require_once(THEME_PATH .'/languages/EN.php');
+} else {
+	// a theme language file exists for the language defined by the user, load it
+	require_once(THEME_PATH .'/languages/'.LANGUAGE .'.php');
+}
+
+//Save post vars to the parameters file
+if ( !is_null($admin->get_post_escaped("save"))) {
+	//Check for existing settings entry, if not existing, create a record first!
+	if (!$database->query ( "SELECT * FROM ".TABLE_PREFIX."settings where `name`='mediasettings'" )) {
+		$database->query ( "INSERT INTO ".TABLE_PREFIX."settings (`name`,`value`) VALUES ('mediasettings','')" );
+	}
+	$dirs = directory_list(WB_PATH.MEDIA_DIRECTORY);
+	$dirs[] = WB_PATH.MEDIA_DIRECTORY;
+	foreach($dirs AS $name) {
+		$r = str_replace(WB_PATH, '', $name);
+		$r = str_replace(array('/',' '),'_',$r);
+		$w = (int)$admin->get_post_escaped($r.'-w');
+		$h = (int)$admin->get_post_escaped($r.'-h');
+		$pathsettings[$r]['width']=$w; 
+		$pathsettings[$r]['height']=$h;
+	}
+	$pathsettings['global']['admin_only'] = ($admin->get_post_escaped('admin_only')!=''?'checked':'');
+	$pathsettings['global']['show_thumbs'] = ($admin->get_post_escaped('show_thumbs')!=''?'checked':'');
+	$fieldSerialized = serialize($pathsettings);
+	$database->query ( "UPDATE ".TABLE_PREFIX."settings SET `value` = '$fieldSerialized' WHERE `name`='mediasettings'" );
+	header ("Location: browse.php");
+}
+
+include ('parameters.php');
+if ($_SESSION['GROUP_ID'] != 1 && $pathsettings['global']['admin_only']) {
+	echo "Sorry, settings not available";
+	exit();
+}
+
+// Read data to display
+$caller = "setparameter";
+
+$template = new Template(THEME_PATH.'/templates');
+$template->set_file('page', 'setparameter.htt');
+$template->set_block('page', 'main_block', 'main');
+if ($_SESSION['GROUP_ID'] != 1) {
+	$template->set_var('DISPLAY_ADMIN', 'hide');
+}
+$template->set_var(array( 
+					'TEXT_HEADER' => $TEXT['TEXT_HEADER'],
+					'SAVE_TEXT' => $TEXT['SAVE'],
+					'BACK' => $TEXT['BACK']
+				)
+			);
+
+
+$template->set_block('main_block', 'list_block', 'list');
+$row_bg_color = '';
+$dirs = directory_list(WB_PATH.MEDIA_DIRECTORY);
+$dirs[] = WB_PATH.MEDIA_DIRECTORY;
+
+$array_lowercase = array_map('strtolower', $dirs);
+array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $dirs);
+
+foreach($dirs AS $name) {
+	$relative = str_replace(WB_PATH, '', $name);
+	$safepath = str_replace(array('/',' '),'_',$relative);
+	$cur_width = $cur_height = '';
+	if (isset($pathsettings[$safepath]['width'])) $cur_width = $pathsettings[$safepath]['width'];
+	if (isset($pathsettings[$safepath]['height'])) $cur_height = $pathsettings[$safepath]['height'];
+	$cur_width = ($cur_width ? (int)$cur_width : '-');
+	$cur_height = ($cur_height ? (int)$cur_height : '-');
+
+	if($row_bg_color == 'DEDEDE') $row_bg_color = 'EEEEEE';
+	else $row_bg_color = 'DEDEDE';
+
+	$template->set_var(array( 
+								'ADMIN_URL' => ADMIN_URL,
+								'PATH_NAME' => $relative,
+								'WIDTH' => $TEXT['WIDTH'],
+								'HEIGHT' => $TEXT['HEIGHT'],
+								'FIELD_NAME_W' => $safepath.'-w',
+								'FIELD_NAME_H' => $safepath.'-h',
+								'CUR_WIDTH' => $cur_width,
+								'CUR_HEIGHT' => $cur_height,
+								'SETTINGS' => $TEXT['SETTINGS'],
+								'ADMIN_ONLY' => $TEXT['ADMIN_ONLY'],
+								'ADMIN_ONLY_SELECTED' => $pathsettings['global']['admin_only'],
+								'NO_SHOW_THUMBS' => $TEXT['NO_SHOW_THUMBS'],
+								'NO_SHOW_THUMBS_SELECTED' => $pathsettings['global']['show_thumbs'],
+								'ROW_BG_COLOR' => $row_bg_color
+							)
+					);
+	$template->parse('list', 'list_block', true);
+}
+
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/media/setparameter.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/admin/media/upload.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/upload.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/upload.php	(revision 1130)
@@ -0,0 +1,141 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+include_once('resize_img.php');
+include_once('parameters.php');
+
+require_once(WB_PATH.'/framework/class.admin.php');
+require_once(WB_PATH.'/include/pclzip/pclzip.lib.php');	// Required to unzip file.
+$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.'/';
+$resizepath = str_replace(array('/',' '),'_',$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(file_exists($relative.$filename)) {
+				if ($pathsettings[$resizepath]['width'] || $pathsettings[$resizepath]['height'] ) {
+					$rimg=new RESIZEIMAGE($relative.$filename);
+					$rimg->resize_limitwh($pathsettings[$resizepath]['width'],$pathsettings[$resizepath]['height'],$relative.$filename);
+					$rimg->close();
+				}
+			}
+				
+			// store file name of first file for possible unzip action
+			if ($count == 1) {
+				$filename1 = $relative . $filename;
+			}
+		}
+	}
+}
+
+// If the user chose to unzip the first file, unzip into the current folder
+if (isset($_POST['unzip']) && isset($filename1) && file_exists($filename1) ) {
+	$archive = new PclZip($filename1);
+	$list = $archive->extract(PCLZIP_OPT_PATH, $relative);
+	if($list == 0) {
+		// error while trying to extract the archive (most likely wrong format)
+		$admin->print_error('UNABLE TO UNZIP FILE' . $archive -> errorInfo(true));
+	}
+}
+
+if($good_uploads == 1) {
+	$admin->print_success($good_uploads.' '.$MESSAGE['MEDIA']['SINGLE_UPLOADED']);
+	if (isset($_POST['delzip'])) {
+		unlink($filename1);
+	}
+} 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.8.0/trunk/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.8.0/trunk/wb/admin/media/browse.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/browse.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/browse.php	(revision 1130)
@@ -0,0 +1,290 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+include ('parameters.php');
+
+// check if theme language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(THEME_PATH .'/languages/'.LANGUAGE .'.php')) {
+	// no theme language file exists for the language set by the user, include default theme language file EN.php
+	require_once(THEME_PATH .'/languages/EN.php');
+} else {
+	// a theme language file exists for the language defined by the user, load it
+	require_once(THEME_PATH .'/languages/'.LANGUAGE .'.php');
+}
+
+// Byte convert for filesize
+function byte_convert($bytes) {
+	$symbol = array(' bytes', ' KB', ' MB', ' GB', ' TB');
+	$exp = 0;
+	$converted_value = 0;
+	if( $bytes > 0 ) {
+		$exp = floor( log($bytes)/log(1024) );
+		$converted_value = ( $bytes/pow(1024,floor($exp)) );
+	}
+	return sprintf( '%.2f '.$symbol[$exp], $converted_value );
+}
+
+// Get file extension
+function get_filetype($fname) {
+	$pathinfo = pathinfo($fname);
+	$extension = strtolower($pathinfo['extension']);
+	return $extension;
+}
+
+// Get file extension for icons
+function get_filetype_icon($fname) {
+	$pathinfo = pathinfo($fname);
+	$extension = strtolower($pathinfo['extension']);
+	if (file_exists(THEME_PATH.'/images/files/'.$extension.'.png')) {
+		return $extension;
+	} else {
+		return 'unknown';
+	}
+}
+
+// Setup template object
+$template = new Template(THEME_PATH.'/templates');
+$template->set_file('page', 'media_browse.htt');
+$template->set_block('page', 'main_block', 'main');
+
+// Get the current dir
+$currentHome = $admin->get_home_folder();
+$directory =	(($currentHome) AND (!array_key_exists('dir',$_GET)))
+				? 
+				$currentHome
+				:
+				$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);
+}
+
+if ($_SESSION['GROUP_ID'] != 1 && $pathsettings['global']['admin_only']) { // Only show admin the settings link
+	$template->set_var('DISPLAY_SETTINGS', 'hide');
+}
+
+// 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 == '') or ($directory==$currentHome)) {
+	$display_up_arrow = 'hide';
+} else {
+	$display_up_arrow = '';
+}
+
+// Insert values
+$template->set_var(array(
+								'THEME_URL' => THEME_URL,
+								'CURRENT_DIR' => $directory,
+								'PARENT_DIR_LINK' => $parent_dir_link,
+								'DISPLAY_UP_ARROW' => $display_up_arrow,
+								'INCLUDE_PATH' => WB_URL.'/include'
+								)
+						);
+
+// 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,
+											'FT_ICON' => THEME_URL.'/images/folder_16.png',
+											'FILETYPE_ICON' => THEME_URL.'/images/folder_16.png',
+											'MOUSEOVER' => '',
+											'IMAGEDETAIL' => '',
+											'SIZE' => '',
+											'DATE' => '',
+											'PREVIEW' => ''
+											)
+									);
+			$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);
+		$filepreview = array('jpg','gif','tif','tiff','png','txt','css','js','cfg','conf');
+		foreach($FILE AS $name) {
+			$size = filesize('../../'.MEDIA_DIRECTORY.$directory.'/'.$name);
+			$bytes = byte_convert($size);
+			$fdate = filemtime('../../'.MEDIA_DIRECTORY.$directory.'/'.$name);
+			$date = gmdate(DATE_FORMAT.' '.TIME_FORMAT, $fdate);
+			$filetypeicon = get_filetype_icon(WB_URL.MEDIA_DIRECTORY.$directory.'/'.$name);
+			$filetype = get_filetype(WB_URL.MEDIA_DIRECTORY.$directory.'/'.$name);
+				
+			if (in_array($filetype, $filepreview)) {
+				$preview = 'preview';
+			} else {
+				$preview = '';
+			}
+			$temp_id++;
+			$imgdetail = '';
+			$icon = THEME_URL.'/images/blank.gif';
+			$tooltip = '';
+			
+			
+			if (!$pathsettings['global']['show_thumbs']) {
+				$info = getimagesize(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$name);
+				if ($info[0]) {
+					$imgdetail = fsize(filesize(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$name)).'<br /> '.$info[0].' x '.$info[1].' px';
+					$icon = 'thumb.php?t=1&img='.$directory.'/'.$name;
+					$tooltip = ShowTip('thumb.php?t=2&img='.$directory.'/'.$name);
+				}
+			}
+			$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,
+											'FT_ICON' => $icon,
+											'FILETYPE_ICON' => THEME_URL.'/images/files/'.$filetypeicon.'.png',
+											'MOUSEOVER' => $tooltip, 
+											'IMAGEDETAIL' => $imgdetail,
+											'SIZE' => $bytes,
+											'DATE' => $date,
+											'PREVIEW' => $preview
+											)
+									);
+			$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_SIZE' => $TEXT['SIZE'],
+								'TEXT_DATE' => $TEXT['DATE'],
+								'TEXT_NAME' => $TEXT['NAME'],
+								'TEXT_TYPE' => $TEXT['TYPE'],
+								'TEXT_UP' => $TEXT['UP'],
+								'NONE_FOUND' => $MESSAGE['MEDIA']['NONE_FOUND'],
+								'CHANGE_SETTINGS' => $TEXT['MODIFY_SETTINGS'],
+								'CONFIRM_DELETE' => $MESSAGE['MEDIA']['CONFIRM_DELETE']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+function ShowTip($name,$detail='') {
+$parts = explode(".", $name);
+$ext = strtolower(end($parts));
+if (strpos('.gif.jpg.jpeg.png.bmp.',$ext) )
+	return 'onmouseover="overlib(\'<img src=\\\''.$name.'\\\' maxwidth=\\\'200\\\' maxheight=\\\'200\\\'>\',VAUTO, WIDTH)" onmouseout="nd()" ' ;
+else
+	return '';
+}
+
+function fsize($size) {
+   if($size == 0) return("0 Bytes");
+   $filesizename = array(" bytes", " kB", " MB", " GB", " TB");
+   return round($size/pow(1024, ($i = floor(log($size, 1024)))), 1) . $filesizename[$i];
+}
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/media/overlib.js
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/overlib.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/overlib.js	(revision 1130)
@@ -0,0 +1,1491 @@
+//\/////
+//\  overLIB 4.21 - You may not remove or change this notice.
+//\  Copyright Erik Bosrup 1998-2004. All rights reserved.
+//\
+//\  Contributors are listed on the homepage.
+//\  This file might be old, always check for the latest version at:
+//\  http://www.bosrup.com/web/overlib/
+//\
+//\  Please read the license agreement (available through the link above)
+//\  before using overLIB. Direct any licensing questions to erik@bosrup.com.
+//\
+//\  Do not sell this as your own work or remove this copyright notice. 
+//\  For full details on copying or changing this script please read the
+//\  license agreement at the link above. Please give credit on sites that
+//\  use overLIB and submit changes of the script so other people can use
+//\  them as well.
+//   $Revision: 1.119 $                $Date: 2005/07/02 23:41:44 $
+//\/////
+//\mini
+
+////////
+// PRE-INIT
+// Ignore these lines, configuration is below.
+////////
+var olLoaded = 0;var pmStart = 10000000; var pmUpper = 10001000; var pmCount = pmStart+1; var pmt=''; var pms = new Array(); var olInfo = new Info('4.21', 1);
+var FREPLACE = 0; var FBEFORE = 1; var FAFTER = 2; var FALTERNATE = 3; var FCHAIN=4;
+var olHideForm=0;  // parameter for hiding SELECT and ActiveX elements in IE5.5+ 
+var olHautoFlag = 0;  // flags for over-riding VAUTO and HAUTO if corresponding
+var olVautoFlag = 0;  // positioning commands are used on the command line
+var hookPts = new Array(), postParse = new Array(), cmdLine = new Array(), runTime = new Array();
+// for plugins
+registerCommands('donothing,inarray,caparray,sticky,background,noclose,caption,left,right,center,offsetx,offsety,fgcolor,bgcolor,textcolor,capcolor,closecolor,width,border,cellpad,status,autostatus,autostatuscap,height,closetext,snapx,snapy,fixx,fixy,relx,rely,fgbackground,bgbackground,padx,pady,fullhtml,above,below,capicon,textfont,captionfont,closefont,textsize,captionsize,closesize,timeout,function,delay,hauto,vauto,closeclick,wrap,followmouse,mouseoff,closetitle,cssoff,compatmode,cssclass,fgclass,bgclass,textfontclass,captionfontclass,closefontclass');
+
+////////
+// DEFAULT CONFIGURATION
+// Settings you want everywhere are set here. All of this can also be
+// changed on your html page or through an overLIB call.
+////////
+if (typeof ol_fgcolor=='undefined') var ol_fgcolor="#ffffff";
+if (typeof ol_bgcolor=='undefined') var ol_bgcolor="#cccccc";
+if (typeof ol_textcolor=='undefined') var ol_textcolor="#000000";
+if (typeof ol_capcolor=='undefined') var ol_capcolor="#000000";
+if (typeof ol_closecolor=='undefined') var ol_closecolor="#9999FF";
+if (typeof ol_textfont=='undefined') var ol_textfont="Verdana,Arial,Helvetica";
+if (typeof ol_captionfont=='undefined') var ol_captionfont="Verdana,Arial,Helvetica";
+if (typeof ol_closefont=='undefined') var ol_closefont="Verdana,Arial,Helvetica";
+if (typeof ol_textsize=='undefined') var ol_textsize="1";
+if (typeof ol_captionsize=='undefined') var ol_captionsize="1";
+if (typeof ol_closesize=='undefined') var ol_closesize="1";
+if (typeof ol_width=='undefined') var ol_width="200";
+if (typeof ol_border=='undefined') var ol_border="1";
+if (typeof ol_cellpad=='undefined') var ol_cellpad=7;
+if (typeof ol_offsetx=='undefined') var ol_offsetx=10;
+if (typeof ol_offsety=='undefined') var ol_offsety=10;
+if (typeof ol_text=='undefined') var ol_text="";
+if (typeof ol_cap=='undefined') var ol_cap="";
+if (typeof ol_sticky=='undefined') var ol_sticky=0;
+if (typeof ol_background=='undefined') var ol_background="";
+if (typeof ol_close=='undefined') var ol_close="Close";
+if (typeof ol_hpos=='undefined') var ol_hpos=RIGHT;
+if (typeof ol_status=='undefined') var ol_status="";
+if (typeof ol_autostatus=='undefined') var ol_autostatus=0;
+if (typeof ol_height=='undefined') var ol_height=-1;
+if (typeof ol_snapx=='undefined') var ol_snapx=0;
+if (typeof ol_snapy=='undefined') var ol_snapy=0;
+if (typeof ol_fixx=='undefined') var ol_fixx=-1;
+if (typeof ol_fixy=='undefined') var ol_fixy=-1;
+if (typeof ol_relx=='undefined') var ol_relx=null;
+if (typeof ol_rely=='undefined') var ol_rely=null;
+if (typeof ol_fgbackground=='undefined') var ol_fgbackground="";
+if (typeof ol_bgbackground=='undefined') var ol_bgbackground="";
+if (typeof ol_padxl=='undefined') var ol_padxl=1;
+if (typeof ol_padxr=='undefined') var ol_padxr=1;
+if (typeof ol_padyt=='undefined') var ol_padyt=1;
+if (typeof ol_padyb=='undefined') var ol_padyb=1;
+if (typeof ol_fullhtml=='undefined') var ol_fullhtml=0;
+if (typeof ol_vpos=='undefined') var ol_vpos=BELOW;
+if (typeof ol_aboveheight=='undefined') var ol_aboveheight=0;
+if (typeof ol_capicon=='undefined') var ol_capicon="";
+if (typeof ol_frame=='undefined') var ol_frame=self;
+if (typeof ol_timeout=='undefined') var ol_timeout=0;
+if (typeof ol_function=='undefined') var ol_function=null;
+if (typeof ol_delay=='undefined') var ol_delay=0;
+if (typeof ol_hauto=='undefined') var ol_hauto=0;
+if (typeof ol_vauto=='undefined') var ol_vauto=0;
+if (typeof ol_closeclick=='undefined') var ol_closeclick=0;
+if (typeof ol_wrap=='undefined') var ol_wrap=0;
+if (typeof ol_followmouse=='undefined') var ol_followmouse=1;
+if (typeof ol_mouseoff=='undefined') var ol_mouseoff=0;
+if (typeof ol_closetitle=='undefined') var ol_closetitle='Close';
+if (typeof ol_compatmode=='undefined') var ol_compatmode=0;
+if (typeof ol_css=='undefined') var ol_css=CSSOFF;
+if (typeof ol_fgclass=='undefined') var ol_fgclass="";
+if (typeof ol_bgclass=='undefined') var ol_bgclass="";
+if (typeof ol_textfontclass=='undefined') var ol_textfontclass="";
+if (typeof ol_captionfontclass=='undefined') var ol_captionfontclass="";
+if (typeof ol_closefontclass=='undefined') var ol_closefontclass="";
+
+////////
+// ARRAY CONFIGURATION
+////////
+
+// You can use these arrays to store popup text here instead of in the html.
+if (typeof ol_texts=='undefined') var ol_texts = new Array("Text 0", "Text 1");
+if (typeof ol_caps=='undefined') var ol_caps = new Array("Caption 0", "Caption 1");
+
+////////
+// END OF CONFIGURATION
+// Don't change anything below this line, all configuration is above.
+////////
+
+
+
+
+
+////////
+// INIT
+////////
+// Runtime variables init. Don't change for config!
+var o3_text="";
+var o3_cap="";
+var o3_sticky=0;
+var o3_background="";
+var o3_close="Close";
+var o3_hpos=RIGHT;
+var o3_offsetx=2;
+var o3_offsety=2;
+var o3_fgcolor="";
+var o3_bgcolor="";
+var o3_textcolor="";
+var o3_capcolor="";
+var o3_closecolor="";
+var o3_width=100;
+var o3_border=1;
+var o3_cellpad=2;
+var o3_status="";
+var o3_autostatus=0;
+var o3_height=-1;
+var o3_snapx=0;
+var o3_snapy=0;
+var o3_fixx=-1;
+var o3_fixy=-1;
+var o3_relx=null;
+var o3_rely=null;
+var o3_fgbackground="";
+var o3_bgbackground="";
+var o3_padxl=0;
+var o3_padxr=0;
+var o3_padyt=0;
+var o3_padyb=0;
+var o3_fullhtml=0;
+var o3_vpos=BELOW;
+var o3_aboveheight=0;
+var o3_capicon="";
+var o3_textfont="Verdana,Arial,Helvetica";
+var o3_captionfont="Verdana,Arial,Helvetica";
+var o3_closefont="Verdana,Arial,Helvetica";
+var o3_textsize="1";
+var o3_captionsize="1";
+var o3_closesize="1";
+var o3_frame=self;
+var o3_timeout=0;
+var o3_timerid=0;
+var o3_allowmove=0;
+var o3_function=null; 
+var o3_delay=0;
+var o3_delayid=0;
+var o3_hauto=0;
+var o3_vauto=0;
+var o3_closeclick=0;
+var o3_wrap=0;
+var o3_followmouse=1;
+var o3_mouseoff=0;
+var o3_closetitle='';
+var o3_compatmode=0;
+var o3_css=CSSOFF;
+var o3_fgclass="";
+var o3_bgclass="";
+var o3_textfontclass="";
+var o3_captionfontclass="";
+var o3_closefontclass="";
+
+// Display state variables
+var o3_x = 0;
+var o3_y = 0;
+var o3_showingsticky = 0;
+var o3_removecounter = 0;
+
+// Our layer
+var over = null;
+var fnRef, hoveringSwitch = false;
+var olHideDelay;
+
+// Decide browser version
+var isMac = (navigator.userAgent.indexOf("Mac") != -1);
+var olOp = (navigator.userAgent.toLowerCase().indexOf('opera') > -1 && document.createTextNode);  // Opera 7
+var olNs4 = (navigator.appName=='Netscape' && parseInt(navigator.appVersion) == 4);
+var olNs6 = (document.getElementById) ? true : false;
+var olKq = (olNs6 && /konqueror/i.test(navigator.userAgent));
+var olIe4 = (document.all) ? true : false;
+var olIe5 = false; 
+var olIe55 = false; // Added additional variable to identify IE5.5+
+var docRoot = 'document.body';
+
+// Resize fix for NS4.x to keep track of layer
+if (olNs4) {
+	var oW = window.innerWidth;
+	var oH = window.innerHeight;
+	window.onresize = function() { if (oW != window.innerWidth || oH != window.innerHeight) location.reload(); }
+}
+
+// Microsoft Stupidity Check(tm).
+if (olIe4) {
+	var agent = navigator.userAgent;
+	if (/MSIE/.test(agent)) {
+		var versNum = parseFloat(agent.match(/MSIE[ ](\d\.\d+)\.*/i)[1]);
+		if (versNum >= 5){
+			olIe5=true;
+			olIe55=(versNum>=5.5&&!olOp) ? true : false;
+			if (olNs6) olNs6=false;
+		}
+	}
+	if (olNs6) olIe4 = false;
+}
+
+// Check for compatability mode.
+if (document.compatMode && document.compatMode == 'CSS1Compat') {
+	docRoot= ((olIe4 && !olOp) ? 'document.documentElement' : docRoot);
+}
+
+// Add window onload handlers to indicate when all modules have been loaded
+// For Netscape 6+ and Mozilla, uses addEventListener method on the window object
+// For IE it uses the attachEvent method of the window object and for Netscape 4.x
+// it sets the window.onload handler to the OLonload_handler function for Bubbling
+if(window.addEventListener) window.addEventListener("load",OLonLoad_handler,false);
+else if (window.attachEvent) window.attachEvent("onload",OLonLoad_handler);
+
+var capExtent;
+
+////////
+// PUBLIC FUNCTIONS
+////////
+
+// overlib(arg0,...,argN)
+// Loads parameters into global runtime variables.
+function overlib() {
+	if (!olLoaded || isExclusive(overlib.arguments)) return true;
+	if (olCheckMouseCapture) olMouseCapture();
+	if (over) {
+		over = (typeof over.id != 'string') ? o3_frame.document.all['overDiv'] : over;
+		cClick();
+	}
+
+	// Load defaults to runtime.
+  olHideDelay=0;
+	o3_text=ol_text;
+	o3_cap=ol_cap;
+	o3_sticky=ol_sticky;
+	o3_background=ol_background;
+	o3_close=ol_close;
+	o3_hpos=ol_hpos;
+	o3_offsetx=ol_offsetx;
+	o3_offsety=ol_offsety;
+	o3_fgcolor=ol_fgcolor;
+	o3_bgcolor=ol_bgcolor;
+	o3_textcolor=ol_textcolor;
+	o3_capcolor=ol_capcolor;
+	o3_closecolor=ol_closecolor;
+	o3_width=ol_width;
+	o3_border=ol_border;
+	o3_cellpad=ol_cellpad;
+	o3_status=ol_status;
+	o3_autostatus=ol_autostatus;
+	o3_height=ol_height;
+	o3_snapx=ol_snapx;
+	o3_snapy=ol_snapy;
+	o3_fixx=ol_fixx;
+	o3_fixy=ol_fixy;
+	o3_relx=ol_relx;
+	o3_rely=ol_rely;
+	o3_fgbackground=ol_fgbackground;
+	o3_bgbackground=ol_bgbackground;
+	o3_padxl=ol_padxl;
+	o3_padxr=ol_padxr;
+	o3_padyt=ol_padyt;
+	o3_padyb=ol_padyb;
+	o3_fullhtml=ol_fullhtml;
+	o3_vpos=ol_vpos;
+	o3_aboveheight=ol_aboveheight;
+	o3_capicon=ol_capicon;
+	o3_textfont=ol_textfont;
+	o3_captionfont=ol_captionfont;
+	o3_closefont=ol_closefont;
+	o3_textsize=ol_textsize;
+	o3_captionsize=ol_captionsize;
+	o3_closesize=ol_closesize;
+	o3_timeout=ol_timeout;
+	o3_function=ol_function;
+	o3_delay=ol_delay;
+	o3_hauto=ol_hauto;
+	o3_vauto=ol_vauto;
+	o3_closeclick=ol_closeclick;
+	o3_wrap=ol_wrap;	
+	o3_followmouse=ol_followmouse;
+	o3_mouseoff=ol_mouseoff;
+	o3_closetitle=ol_closetitle;
+	o3_css=ol_css;
+	o3_compatmode=ol_compatmode;
+	o3_fgclass=ol_fgclass;
+	o3_bgclass=ol_bgclass;
+	o3_textfontclass=ol_textfontclass;
+	o3_captionfontclass=ol_captionfontclass;
+	o3_closefontclass=ol_closefontclass;
+	
+	setRunTimeVariables();
+	
+	fnRef = '';
+	
+	// Special for frame support, over must be reset...
+	o3_frame = ol_frame;
+	
+	if(!(over=createDivContainer())) return false;
+
+	parseTokens('o3_', overlib.arguments);
+	if (!postParseChecks()) return false;
+
+	if (o3_delay == 0) {
+		return runHook("olMain", FREPLACE);
+ 	} else {
+		o3_delayid = setTimeout("runHook('olMain', FREPLACE)", o3_delay);
+		return false;
+	}
+}
+
+// Clears popups if appropriate
+function nd(time) {
+	if (olLoaded && !isExclusive()) {
+		hideDelay(time);  // delay popup close if time specified
+
+		if (o3_removecounter >= 1) { o3_showingsticky = 0 };
+		
+		if (o3_showingsticky == 0) {
+			o3_allowmove = 0;
+			if (over != null && o3_timerid == 0) runHook("hideObject", FREPLACE, over);
+		} else {
+			o3_removecounter++;
+		}
+	}
+	
+	return true;
+}
+
+// The Close onMouseOver function for stickies
+function cClick() {
+	if (olLoaded) {
+		runHook("hideObject", FREPLACE, over);
+		o3_showingsticky = 0;	
+	}	
+	return false;
+}
+
+// Method for setting page specific defaults.
+function overlib_pagedefaults() {
+	parseTokens('ol_', overlib_pagedefaults.arguments);
+}
+
+
+////////
+// OVERLIB MAIN FUNCTION
+////////
+
+// This function decides what it is we want to display and how we want it done.
+function olMain() {
+	var layerhtml, styleType;
+ 	runHook("olMain", FBEFORE);
+ 	
+	if (o3_background!="" || o3_fullhtml) {
+		// Use background instead of box.
+		layerhtml = runHook('ol_content_background', FALTERNATE, o3_css, o3_text, o3_background, o3_fullhtml);
+	} else {
+		// They want a popup box.
+		styleType = (pms[o3_css-1-pmStart] == "cssoff" || pms[o3_css-1-pmStart] == "cssclass");
+
+		// Prepare popup background
+		if (o3_fgbackground != "") o3_fgbackground = "background=\""+o3_fgbackground+"\"";
+		if (o3_bgbackground != "") o3_bgbackground = (styleType ? "background=\""+o3_bgbackground+"\"" : o3_bgbackground);
+
+		// Prepare popup colors
+		if (o3_fgcolor != "") o3_fgcolor = (styleType ? "bgcolor=\""+o3_fgcolor+"\"" : o3_fgcolor);
+		if (o3_bgcolor != "") o3_bgcolor = (styleType ? "bgcolor=\""+o3_bgcolor+"\"" : o3_bgcolor);
+
+		// Prepare popup height
+		if (o3_height > 0) o3_height = (styleType ? "height=\""+o3_height+"\"" : o3_height);
+		else o3_height = "";
+
+		// Decide which kinda box.
+		if (o3_cap=="") {
+			// Plain
+			layerhtml = runHook('ol_content_simple', FALTERNATE, o3_css, o3_text);
+		} else {
+			// With caption
+			if (o3_sticky) {
+				// Show close text
+				layerhtml = runHook('ol_content_caption', FALTERNATE, o3_css, o3_text, o3_cap, o3_close);
+			} else {
+				// No close text
+				layerhtml = runHook('ol_content_caption', FALTERNATE, o3_css, o3_text, o3_cap, "");
+			}
+		}
+	}	
+
+	// We want it to stick!
+	if (o3_sticky) {
+		if (o3_timerid > 0) {
+			clearTimeout(o3_timerid);
+			o3_timerid = 0;
+		}
+		o3_showingsticky = 1;
+		o3_removecounter = 0;
+	}
+
+	// Created a separate routine to generate the popup to make it easier
+	// to implement a plugin capability
+	if (!runHook("createPopup", FREPLACE, layerhtml)) return false;
+
+	// Prepare status bar
+	if (o3_autostatus > 0) {
+		o3_status = o3_text;
+		if (o3_autostatus > 1) o3_status = o3_cap;
+	}
+
+	// When placing the layer the first time, even stickies may be moved.
+	o3_allowmove = 0;
+
+	// Initiate a timer for timeout
+	if (o3_timeout > 0) {          
+		if (o3_timerid > 0) clearTimeout(o3_timerid);
+		o3_timerid = setTimeout("cClick()", o3_timeout);
+	}
+
+	// Show layer
+	runHook("disp", FREPLACE, o3_status);
+	runHook("olMain", FAFTER);
+
+	return (olOp && event && event.type == 'mouseover' && !o3_status) ? '' : (o3_status != '');
+}
+
+////////
+// LAYER GENERATION FUNCTIONS
+////////
+// These functions just handle popup content with tags that should adhere to the W3C standards specification.
+
+// Makes simple table without caption
+function ol_content_simple(text) {
+	var cpIsMultiple = /,/.test(o3_cellpad);
+	var txt = '<table width="'+o3_width+ '" border="0" cellpadding="'+o3_border+'" cellspacing="0" '+(o3_bgclass ? 'class="'+o3_bgclass+'"' : o3_bgcolor+' '+o3_height)+'><tr><td><table width="100%" border="0" '+((olNs4||!cpIsMultiple) ? 'cellpadding="'+o3_cellpad+'" ' : '')+'cellspacing="0" '+(o3_fgclass ? 'class="'+o3_fgclass+'"' : o3_fgcolor+' '+o3_fgbackground+' '+o3_height)+'><tr><td valign="TOP"'+(o3_textfontclass ? ' class="'+o3_textfontclass+'">' : ((!olNs4&&cpIsMultiple) ? ' style="'+setCellPadStr(o3_cellpad)+'">' : '>'))+(o3_textfontclass ? '' : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : wrapStr(1,o3_textsize))+'</td></tr></table></td></tr></table>';
+
+	set_background("");
+	return txt;
+}
+
+// Makes table with caption and optional close link
+function ol_content_caption(text,title,close) {
+	var nameId, txt, cpIsMultiple = /,/.test(o3_cellpad);
+	var closing, closeevent;
+
+	closing = "";
+	closeevent = "onmouseover";
+	if (o3_closeclick == 1) closeevent = (o3_closetitle ? "title='" + o3_closetitle +"'" : "") + " onclick";
+	if (o3_capicon != "") {
+	  nameId = ' hspace = \"5\"'+' align = \"middle\" alt = \"\"';
+	  if (typeof o3_dragimg != 'undefined' && o3_dragimg) nameId =' hspace=\"5\"'+' name=\"'+o3_dragimg+'\" id=\"'+o3_dragimg+'\" align=\"middle\" alt=\"Drag Enabled\" title=\"Drag Enabled\"';
+	  o3_capicon = '<img src=\"'+o3_capicon+'\"'+nameId+' />';
+	}
+
+	if (close != "")
+		closing = '<td '+(!o3_compatmode && o3_closefontclass ? 'class="'+o3_closefontclass : 'align="RIGHT')+'"><a href="javascript:return '+fnRef+'cClick();"'+((o3_compatmode && o3_closefontclass) ? ' class="' + o3_closefontclass + '" ' : ' ')+closeevent+'="return '+fnRef+'cClick();">'+(o3_closefontclass ? '' : wrapStr(0,o3_closesize,'close'))+close+(o3_closefontclass ? '' : wrapStr(1,o3_closesize,'close'))+'</a></td>';
+	txt = '<table width="'+o3_width+ '" border="0" cellpadding="'+o3_border+'" cellspacing="0" '+(o3_bgclass ? 'class="'+o3_bgclass+'"' : o3_bgcolor+' '+o3_bgbackground+' '+o3_height)+'><tr><td><table width="100%" border="0" cellpadding="2" cellspacing="0"><tr><td'+(o3_captionfontclass ? ' class="'+o3_captionfontclass+'">' : '>')+(o3_captionfontclass ? '' : '<b>'+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfontclass ? '' : wrapStr(1,o3_captionsize)+'</b>')+'</td>'+closing+'</tr></table><table width="100%" border="0" '+((olNs4||!cpIsMultiple) ? 'cellpadding="'+o3_cellpad+'" ' : '')+'cellspacing="0" '+(o3_fgclass ? 'class="'+o3_fgclass+'"' : o3_fgcolor+' '+o3_fgbackground+' '+o3_height)+'><tr><td valign="TOP"'+(o3_textfontclass ? ' class="'+o3_textfontclass+'">' :((!olNs4&&cpIsMultiple) ? ' style="'+setCellPadStr(o3_cellpad)+'">' : '>'))+(o3_textfontclass ? '' : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : wrapStr(1,o3_textsize)) + '</td></tr></table></td></tr></table>';
+
+	set_background("");
+	return txt;
+}
+
+// Sets the background picture,padding and lots more. :)
+function ol_content_background(text,picture,hasfullhtml) {
+	if (hasfullhtml) {
+		txt=text;
+	} else {
+		txt='<table width="'+o3_width+'" border="0" cellpadding="0" cellspacing="0" height="'+o3_height+'"><tr><td colspan="3" height="'+o3_padyt+'"></td></tr><tr><td width="'+o3_padxl+'"></td><td valign="TOP" width="'+(o3_width-o3_padxl-o3_padxr)+(o3_textfontclass ? '" class="'+o3_textfontclass : '')+'">'+(o3_textfontclass ? '' : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : wrapStr(1,o3_textsize))+'</td><td width="'+o3_padxr+'"></td></tr><tr><td colspan="3" height="'+o3_padyb+'"></td></tr></table>';
+	}
+
+	set_background(picture);
+	return txt;
+}
+
+// Loads a picture into the div.
+function set_background(pic) {
+	if (pic == "") {
+		if (olNs4) {
+			over.background.src = null; 
+		} else if (over.style) {
+			over.style.backgroundImage = "none";
+		}
+	} else {
+		if (olNs4) {
+			over.background.src = pic;
+		} else if (over.style) {
+			over.style.width=o3_width + 'px';
+			over.style.backgroundImage = "url("+pic+")";
+		}
+	}
+}
+
+////////
+// HANDLING FUNCTIONS
+////////
+var olShowId=-1;
+
+// Displays the popup
+function disp(statustext) {
+	runHook("disp", FBEFORE);
+	
+	if (o3_allowmove == 0) {
+		runHook("placeLayer", FREPLACE);
+		(olNs6&&olShowId<0) ? olShowId=setTimeout("runHook('showObject', FREPLACE, over)", 1) : runHook("showObject", FREPLACE, over);
+		o3_allowmove = (o3_sticky || o3_followmouse==0) ? 0 : 1;
+	}
+	
+	runHook("disp", FAFTER);
+
+	if (statustext != "") self.status = statustext;
+}
+
+// Creates the actual popup structure
+function createPopup(lyrContent){
+	runHook("createPopup", FBEFORE);
+	
+	if (o3_wrap) {
+		var wd,ww,theObj = (olNs4 ? over : over.style);
+		theObj.top = theObj.left = ((olIe4&&!olOp) ? 0 : -10000) + (!olNs4 ? 'px' : 0);
+		layerWrite(lyrContent);
+		wd = (olNs4 ? over.clip.width : over.offsetWidth);
+		if (wd > (ww=windowWidth())) {
+			lyrContent=lyrContent.replace(/\&nbsp;/g, ' ');
+			o3_width=ww;
+			o3_wrap=0;
+		} 
+	}
+
+	layerWrite(lyrContent);
+	
+	// Have to set o3_width for placeLayer() routine if o3_wrap is turned on
+	if (o3_wrap) o3_width=(olNs4 ? over.clip.width : over.offsetWidth);
+	
+	runHook("createPopup", FAFTER, lyrContent);
+
+	return true;
+}
+
+// Decides where we want the popup.
+function placeLayer() {
+	var placeX, placeY, widthFix = 0;
+	
+	// HORIZONTAL PLACEMENT, re-arranged to work in Safari
+	if (o3_frame.innerWidth) widthFix=18; 
+	iwidth = windowWidth();
+
+	// Horizontal scroll offset
+	winoffset=(olIe4) ? eval('o3_frame.'+docRoot+'.scrollLeft') : o3_frame.pageXOffset;
+
+	placeX = runHook('horizontalPlacement',FCHAIN,iwidth,winoffset,widthFix);
+
+	// VERTICAL PLACEMENT, re-arranged to work in Safari
+	if (o3_frame.innerHeight) {
+		iheight=o3_frame.innerHeight;
+	} else if (eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientHeight=='number'")&&eval('o3_frame.'+docRoot+'.clientHeight')) { 
+		iheight=eval('o3_frame.'+docRoot+'.clientHeight');
+	}			
+
+	// Vertical scroll offset
+	scrolloffset=(olIe4) ? eval('o3_frame.'+docRoot+'.scrollTop') : o3_frame.pageYOffset;
+	placeY = runHook('verticalPlacement',FCHAIN,iheight,scrolloffset);
+
+	// Actually move the object.
+	repositionTo(over, placeX, placeY);
+}
+
+// Moves the layer
+function olMouseMove(e) {
+	var e = (e) ? e : event;
+
+	if (e.pageX) {
+		o3_x = e.pageX;
+		o3_y = e.pageY;
+	} else if (e.clientX) {
+		o3_x = eval('e.clientX+o3_frame.'+docRoot+'.scrollLeft');
+		o3_y = eval('e.clientY+o3_frame.'+docRoot+'.scrollTop');
+	}
+	
+	if (o3_allowmove == 1) runHook("placeLayer", FREPLACE);
+
+	// MouseOut handler
+	if (hoveringSwitch && !olNs4 && runHook("cursorOff", FREPLACE)) {
+		(olHideDelay ? hideDelay(olHideDelay) : cClick());
+		hoveringSwitch = !hoveringSwitch;
+	}
+}
+
+// Fake function for 3.0 users.
+function no_overlib() { return ver3fix; }
+
+// Capture the mouse and chain other scripts.
+function olMouseCapture() {
+	capExtent = document;
+	var fN, str = '', l, k, f, wMv, sS, mseHandler = olMouseMove;
+	var re = /function[ ]*(\w*)\(/;
+	
+	wMv = (!olIe4 && window.onmousemove);
+	if (document.onmousemove || wMv) {
+		if (wMv) capExtent = window;
+		f = capExtent.onmousemove.toString();
+		fN = f.match(re);
+		if (fN == null) {
+			str = f+'(e); ';
+		} else if (fN[1] == 'anonymous' || fN[1] == 'olMouseMove' || (wMv && fN[1] == 'onmousemove')) {
+			if (!olOp && wMv) {
+				l = f.indexOf('{')+1;
+				k = f.lastIndexOf('}');
+				sS = f.substring(l,k);
+				if ((l = sS.indexOf('(')) != -1) {
+					sS = sS.substring(0,l).replace(/^\s+/,'').replace(/\s+$/,'');
+					if (eval("typeof " + sS + " == 'undefined'")) window.onmousemove = null;
+					else str = sS + '(e);';
+				}
+			}
+			if (!str) {
+				olCheckMouseCapture = false;
+				return;
+			}
+		} else {
+			if (fN[1]) str = fN[1]+'(e); ';
+			else {
+				l = f.indexOf('{')+1;
+				k = f.lastIndexOf('}');
+				str = f.substring(l,k) + '\n';
+			}
+		}
+		str += 'olMouseMove(e); ';
+		mseHandler = new Function('e', str);
+	}
+
+	capExtent.onmousemove = mseHandler;
+	if (olNs4) capExtent.captureEvents(Event.MOUSEMOVE);
+}
+
+////////
+// PARSING FUNCTIONS
+////////
+
+// Does the actual command parsing.
+function parseTokens(pf, ar) {
+	// What the next argument is expected to be.
+	var v, i, mode=-1, par = (pf != 'ol_');	
+	var fnMark = (par && !ar.length ? 1 : 0);
+
+	for (i = 0; i < ar.length; i++) {
+		if (mode < 0) {
+			// Arg is maintext,unless its a number between pmStart and pmUpper
+			// then its a command.
+			if (typeof ar[i] == 'number' && ar[i] > pmStart && ar[i] < pmUpper) {
+				fnMark = (par ? 1 : 0);
+				i--;   // backup one so that the next block can parse it
+			} else {
+				switch(pf) {
+					case 'ol_':
+						ol_text = ar[i].toString();
+						break;
+					default:
+						o3_text=ar[i].toString();  
+				}
+			}
+			mode = 0;
+		} else {
+			// Note: NS4 doesn't like switch cases with vars.
+			if (ar[i] >= pmCount || ar[i]==DONOTHING) { continue; }
+			if (ar[i]==INARRAY) { fnMark = 0; eval(pf+'text=ol_texts['+ar[++i]+'].toString()'); continue; }
+			if (ar[i]==CAPARRAY) { eval(pf+'cap=ol_caps['+ar[++i]+'].toString()'); continue; }
+			if (ar[i]==STICKY) { if (pf!='ol_') eval(pf+'sticky=1'); continue; }
+			if (ar[i]==BACKGROUND) { eval(pf+'background="'+ar[++i]+'"'); continue; }
+			if (ar[i]==NOCLOSE) { if (pf!='ol_') opt_NOCLOSE(); continue; }
+			if (ar[i]==CAPTION) { eval(pf+"cap='"+escSglQuote(ar[++i])+"'"); continue; }
+			if (ar[i]==CENTER || ar[i]==LEFT || ar[i]==RIGHT) { eval(pf+'hpos='+ar[i]); if(pf!='ol_') olHautoFlag=1; continue; }
+			if (ar[i]==OFFSETX) { eval(pf+'offsetx='+ar[++i]); continue; }
+			if (ar[i]==OFFSETY) { eval(pf+'offsety='+ar[++i]); continue; }
+			if (ar[i]==FGCOLOR) { eval(pf+'fgcolor="'+ar[++i]+'"'); continue; }
+			if (ar[i]==BGCOLOR) { eval(pf+'bgcolor="'+ar[++i]+'"'); continue; }
+			if (ar[i]==TEXTCOLOR) { eval(pf+'textcolor="'+ar[++i]+'"'); continue; }
+			if (ar[i]==CAPCOLOR) { eval(pf+'capcolor="'+ar[++i]+'"'); continue; }
+			if (ar[i]==CLOSECOLOR) { eval(pf+'closecolor="'+ar[++i]+'"'); continue; }
+			if (ar[i]==WIDTH) { eval(pf+'width='+ar[++i]); continue; }
+			if (ar[i]==BORDER) { eval(pf+'border='+ar[++i]); continue; }
+			if (ar[i]==CELLPAD) { i=opt_MULTIPLEARGS(++i,ar,(pf+'cellpad')); continue; }
+			if (ar[i]==STATUS) { eval(pf+"status='"+escSglQuote(ar[++i])+"'"); continue; }
+			if (ar[i]==AUTOSTATUS) { eval(pf +'autostatus=('+pf+'autostatus == 1) ? 0 : 1'); continue; }
+			if (ar[i]==AUTOSTATUSCAP) { eval(pf +'autostatus=('+pf+'autostatus == 2) ? 0 : 2'); continue; }
+			if (ar[i]==HEIGHT) { eval(pf+'height='+pf+'aboveheight='+ar[++i]); continue; } // Same param again.
+			if (ar[i]==CLOSETEXT) { eval(pf+"close='"+escSglQuote(ar[++i])+"'"); continue; }
+			if (ar[i]==SNAPX) { eval(pf+'snapx='+ar[++i]); continue; }
+			if (ar[i]==SNAPY) { eval(pf+'snapy='+ar[++i]); continue; }
+			if (ar[i]==FIXX) { eval(pf+'fixx='+ar[++i]); continue; }
+			if (ar[i]==FIXY) { eval(pf+'fixy='+ar[++i]); continue; }
+			if (ar[i]==RELX) { eval(pf+'relx='+ar[++i]); continue; }
+			if (ar[i]==RELY) { eval(pf+'rely='+ar[++i]); continue; }
+			if (ar[i]==FGBACKGROUND) { eval(pf+'fgbackground="'+ar[++i]+'"'); continue; }
+			if (ar[i]==BGBACKGROUND) { eval(pf+'bgbackground="'+ar[++i]+'"'); continue; }
+			if (ar[i]==PADX) { eval(pf+'padxl='+ar[++i]); eval(pf+'padxr='+ar[++i]); continue; }
+			if (ar[i]==PADY) { eval(pf+'padyt='+ar[++i]); eval(pf+'padyb='+ar[++i]); continue; }
+			if (ar[i]==FULLHTML) { if (pf!='ol_') eval(pf+'fullhtml=1'); continue; }
+			if (ar[i]==BELOW || ar[i]==ABOVE) { eval(pf+'vpos='+ar[i]); if (pf!='ol_') olVautoFlag=1; continue; }
+			if (ar[i]==CAPICON) { eval(pf+'capicon="'+ar[++i]+'"'); continue; }
+			if (ar[i]==TEXTFONT) { eval(pf+"textfont='"+escSglQuote(ar[++i])+"'"); continue; }
+			if (ar[i]==CAPTIONFONT) { eval(pf+"captionfont='"+escSglQuote(ar[++i])+"'"); continue; }
+			if (ar[i]==CLOSEFONT) { eval(pf+"closefont='"+escSglQuote(ar[++i])+"'"); continue; }
+			if (ar[i]==TEXTSIZE) { eval(pf+'textsize="'+ar[++i]+'"'); continue; }
+			if (ar[i]==CAPTIONSIZE) { eval(pf+'captionsize="'+ar[++i]+'"'); continue; }
+			if (ar[i]==CLOSESIZE) { eval(pf+'closesize="'+ar[++i]+'"'); continue; }
+			if (ar[i]==TIMEOUT) { eval(pf+'timeout='+ar[++i]); continue; }
+			if (ar[i]==FUNCTION) { if (pf=='ol_') { if (typeof ar[i+1]!='number') { v=ar[++i]; ol_function=(typeof v=='function' ? v : null); }} else {fnMark = 0; v = null; if (typeof ar[i+1]!='number') v = ar[++i];  opt_FUNCTION(v); } continue; }
+			if (ar[i]==DELAY) { eval(pf+'delay='+ar[++i]); continue; }
+			if (ar[i]==HAUTO) { eval(pf+'hauto=('+pf+'hauto == 0) ? 1 : 0'); continue; }
+			if (ar[i]==VAUTO) { eval(pf+'vauto=('+pf+'vauto == 0) ? 1 : 0'); continue; }
+			if (ar[i]==CLOSECLICK) { eval(pf +'closeclick=('+pf+'closeclick == 0) ? 1 : 0'); continue; }
+			if (ar[i]==WRAP) { eval(pf +'wrap=('+pf+'wrap == 0) ? 1 : 0'); continue; }
+			if (ar[i]==FOLLOWMOUSE) { eval(pf +'followmouse=('+pf+'followmouse == 1) ? 0 : 1'); continue; }
+			if (ar[i]==MOUSEOFF) { eval(pf +'mouseoff=('+pf+'mouseoff==0) ? 1 : 0'); v=ar[i+1]; if (pf != 'ol_' && eval(pf+'mouseoff') && typeof v == 'number' && (v < pmStart || v > pmUpper)) olHideDelay=ar[++i]; continue; }
+			if (ar[i]==CLOSETITLE) { eval(pf+"closetitle='"+escSglQuote(ar[++i])+"'"); continue; }
+			if (ar[i]==CSSOFF||ar[i]==CSSCLASS) { eval(pf+'css='+ar[i]); continue; }
+			if (ar[i]==COMPATMODE) { eval(pf+'compatmode=('+pf+'compatmode==0) ? 1 : 0'); continue; }
+			if (ar[i]==FGCLASS) { eval(pf+'fgclass="'+ar[++i]+'"'); continue; }
+			if (ar[i]==BGCLASS) { eval(pf+'bgclass="'+ar[++i]+'"'); continue; }
+			if (ar[i]==TEXTFONTCLASS) { eval(pf+'textfontclass="'+ar[++i]+'"'); continue; }
+			if (ar[i]==CAPTIONFONTCLASS) { eval(pf+'captionfontclass="'+ar[++i]+'"'); continue; }
+			if (ar[i]==CLOSEFONTCLASS) { eval(pf+'closefontclass="'+ar[++i]+'"'); continue; }
+			i = parseCmdLine(pf, i, ar);
+		}
+	}
+
+	if (fnMark && o3_function) o3_text = o3_function();
+	
+	if ((pf == 'o3_') && o3_wrap) {
+		o3_width = 0;
+		
+		var tReg=/<.*\n*>/ig;
+		if (!tReg.test(o3_text)) o3_text = o3_text.replace(/[ ]+/g, '&nbsp;');
+		if (!tReg.test(o3_cap))o3_cap = o3_cap.replace(/[ ]+/g, '&nbsp;');
+	}
+	if ((pf == 'o3_') && o3_sticky) {
+		if (!o3_close && (o3_frame != ol_frame)) o3_close = ol_close;
+		if (o3_mouseoff && (o3_frame == ol_frame)) opt_NOCLOSE(' ');
+	}
+}
+
+
+////////
+// LAYER FUNCTIONS
+////////
+
+// Writes to a layer
+function layerWrite(txt) {
+	txt += "\n";
+	if (olNs4) {
+		var lyr = o3_frame.document.layers['overDiv'].document
+		lyr.write(txt)
+		lyr.close()
+	} else if (typeof over.innerHTML != 'undefined') {
+		if (olIe5 && isMac) over.innerHTML = '';
+		over.innerHTML = txt;
+	} else {
+		range = o3_frame.document.createRange();
+		range.setStartAfter(over);
+		domfrag = range.createContextualFragment(txt);
+		
+		while (over.hasChildNodes()) {
+			over.removeChild(over.lastChild);
+		}
+		
+		over.appendChild(domfrag);
+	}
+}
+
+// Make an object visible
+function showObject(obj) {
+	runHook("showObject", FBEFORE);
+
+	var theObj=(olNs4 ? obj : obj.style);
+	theObj.visibility = 'visible';
+
+	runHook("showObject", FAFTER);
+}
+
+// Hides an object
+function hideObject(obj) {
+	runHook("hideObject", FBEFORE);
+
+	var theObj=(olNs4 ? obj : obj.style);
+	if (olNs6 && olShowId>0) { clearTimeout(olShowId); olShowId=0; }
+	theObj.visibility = 'hidden';
+	theObj.top = theObj.left = ((olIe4&&!olOp) ? 0 : -10000) + (!olNs4 ? 'px' : 0);
+
+	if (o3_timerid > 0) clearTimeout(o3_timerid);
+	if (o3_delayid > 0) clearTimeout(o3_delayid);
+
+	o3_timerid = 0;
+	o3_delayid = 0;
+	self.status = "";
+
+	if (obj.onmouseout||obj.onmouseover) {
+		if (olNs4) obj.releaseEvents(Event.MOUSEOUT || Event.MOUSEOVER);
+		obj.onmouseout = obj.onmouseover = null;
+	}
+
+	runHook("hideObject", FAFTER);
+}
+
+// Move a layer
+function repositionTo(obj, xL, yL) {
+	var theObj=(olNs4 ? obj : obj.style);
+	theObj.left = xL + (!olNs4 ? 'px' : 0);
+	theObj.top = yL + (!olNs4 ? 'px' : 0);
+}
+
+// Check position of cursor relative to overDiv DIVision; mouseOut function
+function cursorOff() {
+	var left = parseInt(over.style.left);
+	var top = parseInt(over.style.top);
+	var right = left + (over.offsetWidth >= parseInt(o3_width) ? over.offsetWidth : parseInt(o3_width));
+	var bottom = top + (over.offsetHeight >= o3_aboveheight ? over.offsetHeight : o3_aboveheight);
+
+	if (o3_x < left || o3_x > right || o3_y < top || o3_y > bottom) return true;
+
+	return false;
+}
+
+
+////////
+// COMMAND FUNCTIONS
+////////
+
+// Calls callme or the default function.
+function opt_FUNCTION(callme) {
+	o3_text = (callme ? (typeof callme=='string' ? (/.+\(.*\)/.test(callme) ? eval(callme) : callme) : callme()) : (o3_function ? o3_function() : 'No Function'));
+
+	return 0;
+}
+
+// Handle hovering
+function opt_NOCLOSE(unused) {
+	if (!unused) o3_close = "";
+
+	if (olNs4) {
+		over.captureEvents(Event.MOUSEOUT || Event.MOUSEOVER);
+		over.onmouseover = function () { if (o3_timerid > 0) { clearTimeout(o3_timerid); o3_timerid = 0; } }
+		over.onmouseout = function (e) { if (olHideDelay) hideDelay(olHideDelay); else cClick(e); }
+	} else {
+		over.onmouseover = function () {hoveringSwitch = true; if (o3_timerid > 0) { clearTimeout(o3_timerid); o3_timerid =0; } }
+	}
+
+	return 0;
+}
+
+// Function to scan command line arguments for multiples
+function opt_MULTIPLEARGS(i, args, parameter) {
+  var k=i, re, pV, str='';
+
+  for(k=i; k<args.length; k++) {
+		if(typeof args[k] == 'number' && args[k]>pmStart) break;
+		str += args[k] + ',';
+	}
+	if (str) str = str.substring(0,--str.length);
+
+	k--;  // reduce by one so the for loop this is in works correctly
+	pV=(olNs4 && /cellpad/i.test(parameter)) ? str.split(',')[0] : str;
+	eval(parameter + '="' + pV + '"');
+
+	return k;
+}
+
+// Remove &nbsp; in texts when done.
+function nbspCleanup() {
+	if (o3_wrap) {
+		o3_text = o3_text.replace(/\&nbsp;/g, ' ');
+		o3_cap = o3_cap.replace(/\&nbsp;/g, ' ');
+	}
+}
+
+// Escape embedded single quotes in text strings
+function escSglQuote(str) {
+  return str.toString().replace(/'/g,"\\'");
+}
+
+// Onload handler for window onload event
+function OLonLoad_handler(e) {
+	var re = /\w+\(.*\)[;\s]+/g, olre = /overlib\(|nd\(|cClick\(/, fn, l, i;
+
+	if(!olLoaded) olLoaded=1;
+
+  // Remove it for Gecko based browsers
+	if(window.removeEventListener && e.eventPhase == 3) window.removeEventListener("load",OLonLoad_handler,false);
+	else if(window.detachEvent) { // and for IE and Opera 4.x but execute calls to overlib, nd, or cClick()
+		window.detachEvent("onload",OLonLoad_handler);
+		var fN = document.body.getAttribute('onload');
+		if (fN) {
+			fN=fN.toString().match(re);
+			if (fN && fN.length) {
+				for (i=0; i<fN.length; i++) {
+					if (/anonymous/.test(fN[i])) continue;
+					while((l=fN[i].search(/\)[;\s]+/)) != -1) {
+						fn=fN[i].substring(0,l+1);
+						fN[i] = fN[i].substring(l+2);
+						if (olre.test(fn)) eval(fn);
+					}
+				}
+			}
+		}
+	}
+}
+
+// Wraps strings in Layer Generation Functions with the correct tags
+//    endWrap true(if end tag) or false if start tag
+//    fontSizeStr - font size string such as '1' or '10px'
+//    whichString is being wrapped -- 'text', 'caption', or 'close'
+function wrapStr(endWrap,fontSizeStr,whichString) {
+	var fontStr, fontColor, isClose=((whichString=='close') ? 1 : 0), hasDims=/[%\-a-z]+$/.test(fontSizeStr);
+	fontSizeStr = (olNs4) ? (!hasDims ? fontSizeStr : '1') : fontSizeStr;
+	if (endWrap) return (hasDims&&!olNs4) ? (isClose ? '</span>' : '</div>') : '</font>';
+	else {
+		fontStr='o3_'+whichString+'font';
+		fontColor='o3_'+((whichString=='caption')? 'cap' : whichString)+'color';
+		return (hasDims&&!olNs4) ? (isClose ? '<span style="font-family: '+quoteMultiNameFonts(eval(fontStr))+'; color: '+eval(fontColor)+'; font-size: '+fontSizeStr+';">' : '<div style="font-family: '+quoteMultiNameFonts(eval(fontStr))+'; color: '+eval(fontColor)+'; font-size: '+fontSizeStr+';">') : '<font face="'+eval(fontStr)+'" color="'+eval(fontColor)+'" size="'+(parseInt(fontSizeStr)>7 ? '7' : fontSizeStr)+'">';
+	}
+}
+
+// Quotes Multi word font names; needed for CSS Standards adherence in font-family
+function quoteMultiNameFonts(theFont) {
+	var v, pM=theFont.split(',');
+	for (var i=0; i<pM.length; i++) {
+		v=pM[i];
+		v=v.replace(/^\s+/,'').replace(/\s+$/,'');
+		if(/\s/.test(v) && !/['"]/.test(v)) {
+			v="\'"+v+"\'";
+			pM[i]=v;
+		}
+	}
+	return pM.join();
+}
+
+// dummy function which will be overridden 
+function isExclusive(args) {
+	return false;
+}
+
+// Sets cellpadding style string value
+function setCellPadStr(parameter) {
+	var Str='', j=0, ary = new Array(), top, bottom, left, right;
+
+	Str+='padding: ';
+	ary=parameter.replace(/\s+/g,'').split(',');
+
+	switch(ary.length) {
+		case 2:
+			top=bottom=ary[j];
+			left=right=ary[++j];
+			break;
+		case 3:
+			top=ary[j];
+			left=right=ary[++j];
+			bottom=ary[++j];
+			break;
+		case 4:
+			top=ary[j];
+			right=ary[++j];
+			bottom=ary[++j];
+			left=ary[++j];
+			break;
+	}
+
+	Str+= ((ary.length==1) ? ary[0] + 'px;' : top + 'px ' + right + 'px ' + bottom + 'px ' + left + 'px;');
+
+	return Str;
+}
+
+// function will delay close by time milliseconds
+function hideDelay(time) {
+	if (time&&!o3_delay) {
+		if (o3_timerid > 0) clearTimeout(o3_timerid);
+
+		o3_timerid=setTimeout("cClick()",(o3_timeout=time));
+	}
+}
+
+// Was originally in the placeLayer() routine; separated out for future ease
+function horizontalPlacement(browserWidth, horizontalScrollAmount, widthFix) {
+	var placeX, iwidth=browserWidth, winoffset=horizontalScrollAmount;
+	var parsedWidth = parseInt(o3_width);
+
+	if (o3_fixx > -1 || o3_relx != null) {
+		// Fixed position
+		placeX=(o3_relx != null ? ( o3_relx < 0 ? winoffset +o3_relx+ iwidth - parsedWidth - widthFix : winoffset+o3_relx) : o3_fixx);
+	} else {  
+		// If HAUTO, decide what to use.
+		if (o3_hauto == 1) {
+			if ((o3_x - winoffset) > (iwidth / 2)) {
+				o3_hpos = LEFT;
+			} else {
+				o3_hpos = RIGHT;
+			}
+		}  		
+
+		// From mouse
+		if (o3_hpos == CENTER) { // Center
+			placeX = o3_x+o3_offsetx-(parsedWidth/2);
+
+			if (placeX < winoffset) placeX = winoffset;
+		}
+
+		if (o3_hpos == RIGHT) { // Right
+			placeX = o3_x+o3_offsetx;
+
+			if ((placeX+parsedWidth) > (winoffset+iwidth - widthFix)) {
+				placeX = iwidth+winoffset - parsedWidth - widthFix;
+				if (placeX < 0) placeX = 0;
+			}
+		}
+		if (o3_hpos == LEFT) { // Left
+			placeX = o3_x-o3_offsetx-parsedWidth;
+			if (placeX < winoffset) placeX = winoffset;
+		}  	
+
+		// Snapping!
+		if (o3_snapx > 1) {
+			var snapping = placeX % o3_snapx;
+
+			if (o3_hpos == LEFT) {
+				placeX = placeX - (o3_snapx+snapping);
+			} else {
+				// CENTER and RIGHT
+				placeX = placeX+(o3_snapx - snapping);
+			}
+
+			if (placeX < winoffset) placeX = winoffset;
+		}
+	}	
+
+	return placeX;
+}
+
+// was originally in the placeLayer() routine; separated out for future ease
+function verticalPlacement(browserHeight,verticalScrollAmount) {
+	var placeY, iheight=browserHeight, scrolloffset=verticalScrollAmount;
+	var parsedHeight=(o3_aboveheight ? parseInt(o3_aboveheight) : (olNs4 ? over.clip.height : over.offsetHeight));
+
+	if (o3_fixy > -1 || o3_rely != null) {
+		// Fixed position
+		placeY=(o3_rely != null ? (o3_rely < 0 ? scrolloffset+o3_rely+iheight - parsedHeight : scrolloffset+o3_rely) : o3_fixy);
+	} else {
+		// If VAUTO, decide what to use.
+		if (o3_vauto == 1) {
+			if ((o3_y - scrolloffset) > (iheight / 2) && o3_vpos == BELOW && (o3_y + parsedHeight + o3_offsety - (scrolloffset + iheight) > 0)) {
+				o3_vpos = ABOVE;
+			} else if (o3_vpos == ABOVE && (o3_y - (parsedHeight + o3_offsety) - scrolloffset < 0)) {
+				o3_vpos = BELOW;
+			}
+		}
+
+		// From mouse
+		if (o3_vpos == ABOVE) {
+			if (o3_aboveheight == 0) o3_aboveheight = parsedHeight; 
+
+			placeY = o3_y - (o3_aboveheight+o3_offsety);
+			if (placeY < scrolloffset) placeY = scrolloffset;
+		} else {
+			// BELOW
+			placeY = o3_y+o3_offsety;
+		} 
+
+		// Snapping!
+		if (o3_snapy > 1) {
+			var snapping = placeY % o3_snapy;  			
+
+			if (o3_aboveheight > 0 && o3_vpos == ABOVE) {
+				placeY = placeY - (o3_snapy+snapping);
+			} else {
+				placeY = placeY+(o3_snapy - snapping);
+			} 			
+
+			if (placeY < scrolloffset) placeY = scrolloffset;
+		}
+	}
+
+	return placeY;
+}
+
+// checks positioning flags
+function checkPositionFlags() {
+	if (olHautoFlag) olHautoFlag = o3_hauto=0;
+	if (olVautoFlag) olVautoFlag = o3_vauto=0;
+	return true;
+}
+
+// get Browser window width
+function windowWidth() {
+	var w;
+	if (o3_frame.innerWidth) w=o3_frame.innerWidth;
+	else if (eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientWidth=='number'")&&eval('o3_frame.'+docRoot+'.clientWidth')) 
+		w=eval('o3_frame.'+docRoot+'.clientWidth');
+	return w;			
+}
+
+// create the div container for popup content if it doesn't exist
+function createDivContainer(id,frm,zValue) {
+	id = (id || 'overDiv'), frm = (frm || o3_frame), zValue = (zValue || 1000);
+	var objRef, divContainer = layerReference(id);
+
+	if (divContainer == null) {
+		if (olNs4) {
+			divContainer = frm.document.layers[id] = new Layer(window.innerWidth, frm);
+			objRef = divContainer;
+		} else {
+			var body = (olIe4 ? frm.document.all.tags('BODY')[0] : frm.document.getElementsByTagName("BODY")[0]);
+			if (olIe4&&!document.getElementById) {
+				body.insertAdjacentHTML("beforeEnd",'<div id="'+id+'"></div>');
+				divContainer=layerReference(id);
+			} else {
+				divContainer = frm.document.createElement("DIV");
+				divContainer.id = id;
+				body.appendChild(divContainer);
+			}
+			objRef = divContainer.style;
+		}
+
+		objRef.position = 'absolute';
+		objRef.visibility = 'hidden';
+		objRef.zIndex = zValue;
+		if (olIe4&&!olOp) objRef.left = objRef.top = '0px';
+		else objRef.left = objRef.top =  -10000 + (!olNs4 ? 'px' : 0);
+	}
+
+	return divContainer;
+}
+
+// get reference to a layer with ID=id
+function layerReference(id) {
+	return (olNs4 ? o3_frame.document.layers[id] : (document.all ? o3_frame.document.all[id] : o3_frame.document.getElementById(id)));
+}
+////////
+//  UTILITY FUNCTIONS
+////////
+
+// Checks if something is a function.
+function isFunction(fnRef) {
+	var rtn = true;
+
+	if (typeof fnRef == 'object') {
+		for (var i = 0; i < fnRef.length; i++) {
+			if (typeof fnRef[i]=='function') continue;
+			rtn = false;
+			break;
+		}
+	} else if (typeof fnRef != 'function') {
+		rtn = false;
+	}
+	
+	return rtn;
+}
+
+// Converts an array into an argument string for use in eval.
+function argToString(array, strtInd, argName) {
+	var jS = strtInd, aS = '', ar = array;
+	argName=(argName ? argName : 'ar');
+	
+	if (ar.length > jS) {
+		for (var k = jS; k < ar.length; k++) aS += argName+'['+k+'], ';
+		aS = aS.substring(0, aS.length-2);
+	}
+	
+	return aS;
+}
+
+// Places a hook in the correct position in a hook point.
+function reOrder(hookPt, fnRef, order) {
+	var newPt = new Array(), match, i, j;
+
+	if (!order || typeof order == 'undefined' || typeof order == 'number') return hookPt;
+	
+	if (typeof order=='function') {
+		if (typeof fnRef=='object') {
+			newPt = newPt.concat(fnRef);
+		} else {
+			newPt[newPt.length++]=fnRef;
+		}
+		
+		for (i = 0; i < hookPt.length; i++) {
+			match = false;
+			if (typeof fnRef == 'function' && hookPt[i] == fnRef) {
+				continue;
+			} else {
+				for(j = 0; j < fnRef.length; j++) if (hookPt[i] == fnRef[j]) {
+					match = true;
+					break;
+				}
+			}
+			if (!match) newPt[newPt.length++] = hookPt[i];
+		}
+
+		newPt[newPt.length++] = order;
+
+	} else if (typeof order == 'object') {
+		if (typeof fnRef == 'object') {
+			newPt = newPt.concat(fnRef);
+		} else {
+			newPt[newPt.length++] = fnRef;
+		}
+		
+		for (j = 0; j < hookPt.length; j++) {
+			match = false;
+			if (typeof fnRef == 'function' && hookPt[j] == fnRef) {
+				continue;
+			} else {
+				for (i = 0; i < fnRef.length; i++) if (hookPt[j] == fnRef[i]) {
+					match = true;
+					break;
+				}
+			}
+			if (!match) newPt[newPt.length++]=hookPt[j];
+		}
+
+		for (i = 0; i < newPt.length; i++) hookPt[i] = newPt[i];
+		newPt.length = 0;
+		
+		for (j = 0; j < hookPt.length; j++) {
+			match = false;
+			for (i = 0; i < order.length; i++) {
+				if (hookPt[j] == order[i]) {
+					match = true;
+					break;
+				}
+			}
+			if (!match) newPt[newPt.length++] = hookPt[j];
+		}
+		newPt = newPt.concat(order);
+	}
+
+	hookPt = newPt;
+
+	return hookPt;
+}
+
+////////
+//  PLUGIN ACTIVATION FUNCTIONS
+////////
+
+// Runs plugin functions to set runtime variables.
+function setRunTimeVariables(){
+	if (typeof runTime != 'undefined' && runTime.length) {
+		for (var k = 0; k < runTime.length; k++) {
+			runTime[k]();
+		}
+	}
+}
+
+// Runs plugin functions to parse commands.
+function parseCmdLine(pf, i, args) {
+	if (typeof cmdLine != 'undefined' && cmdLine.length) { 
+		for (var k = 0; k < cmdLine.length; k++) { 
+			var j = cmdLine[k](pf, i, args);
+			if (j >- 1) {
+				i = j;
+				break;
+			}
+		}
+	}
+
+	return i;
+}
+
+// Runs plugin functions to do things after parse.
+function postParseChecks(pf,args){
+	if (typeof postParse != 'undefined' && postParse.length) {
+		for (var k = 0; k < postParse.length; k++) {
+			if (postParse[k](pf,args)) continue;
+			return false;  // end now since have an error
+		}
+	}
+	return true;
+}
+
+
+////////
+//  PLUGIN REGISTRATION FUNCTIONS
+////////
+
+// Registers commands and creates constants.
+function registerCommands(cmdStr) {
+	if (typeof cmdStr!='string') return;
+
+	var pM = cmdStr.split(',');
+	pms = pms.concat(pM);
+
+	for (var i = 0; i< pM.length; i++) {
+		eval(pM[i].toUpperCase()+'='+pmCount++);
+	}
+}
+
+// Registers no-parameter commands
+function registerNoParameterCommands(cmdStr) {
+	if (!cmdStr && typeof cmdStr != 'string') return;
+	pmt=(!pmt) ? cmdStr : pmt + ',' + cmdStr;
+}
+
+// Register a function to hook at a certain point.
+function registerHook(fnHookTo, fnRef, hookType, optPm) {
+	var hookPt, last = typeof optPm;
+	
+	if (fnHookTo == 'plgIn'||fnHookTo == 'postParse') return;
+	if (typeof hookPts[fnHookTo] == 'undefined') hookPts[fnHookTo] = new FunctionReference();
+
+	hookPt = hookPts[fnHookTo];
+
+	if (hookType != null) {
+		if (hookType == FREPLACE) {
+			hookPt.ovload = fnRef;  // replace normal overlib routine
+			if (fnHookTo.indexOf('ol_content_') > -1) hookPt.alt[pms[CSSOFF-1-pmStart]]=fnRef; 
+
+		} else if (hookType == FBEFORE || hookType == FAFTER) {
+			var hookPt=(hookType == 1 ? hookPt.before : hookPt.after);
+
+			if (typeof fnRef == 'object') {
+				hookPt = hookPt.concat(fnRef);
+			} else {
+				hookPt[hookPt.length++] = fnRef;
+			}
+
+			if (optPm) hookPt = reOrder(hookPt, fnRef, optPm);
+
+		} else if (hookType == FALTERNATE) {
+			if (last=='number') hookPt.alt[pms[optPm-1-pmStart]] = fnRef;
+		} else if (hookType == FCHAIN) {
+			hookPt = hookPt.chain; 
+			if (typeof fnRef=='object') hookPt=hookPt.concat(fnRef); // add other functions 
+			else hookPt[hookPt.length++]=fnRef;
+		}
+
+		return;
+	}
+}
+
+// Register a function that will set runtime variables.
+function registerRunTimeFunction(fn) {
+	if (isFunction(fn)) {
+		if (typeof fn == 'object') {
+			runTime = runTime.concat(fn);
+		} else {
+			runTime[runTime.length++] = fn;
+		}
+	}
+}
+
+// Register a function that will handle command parsing.
+function registerCmdLineFunction(fn){
+	if (isFunction(fn)) {
+		if (typeof fn == 'object') {
+			cmdLine = cmdLine.concat(fn);
+		} else {
+			cmdLine[cmdLine.length++] = fn;
+		}
+	}
+}
+
+// Register a function that does things after command parsing. 
+function registerPostParseFunction(fn){
+	if (isFunction(fn)) {
+		if (typeof fn == 'object') {
+			postParse = postParse.concat(fn);
+		} else {
+			postParse[postParse.length++] = fn;
+		}
+	}
+}
+
+////////
+//  PLUGIN REGISTRATION FUNCTIONS
+////////
+
+// Runs any hooks registered.
+function runHook(fnHookTo, hookType) {
+	var l = hookPts[fnHookTo], k, rtnVal = null, optPm, arS, ar = runHook.arguments;
+
+	if (hookType == FREPLACE) {
+		arS = argToString(ar, 2);
+
+		if (typeof l == 'undefined' || !(l = l.ovload)) rtnVal = eval(fnHookTo+'('+arS+')');
+		else rtnVal = eval('l('+arS+')');
+
+	} else if (hookType == FBEFORE || hookType == FAFTER) {
+		if (typeof l != 'undefined') {
+			l=(hookType == 1 ? l.before : l.after);
+	
+			if (l.length) {
+				arS = argToString(ar, 2);
+				for (var k = 0; k < l.length; k++) eval('l[k]('+arS+')');
+			}
+		}
+	} else if (hookType == FALTERNATE) {
+		optPm = ar[2];
+		arS = argToString(ar, 3);
+
+		if (typeof l == 'undefined' || (l = l.alt[pms[optPm-1-pmStart]]) == 'undefined') {
+			rtnVal = eval(fnHookTo+'('+arS+')');
+		} else {
+			rtnVal = eval('l('+arS+')');
+		}
+	} else if (hookType == FCHAIN) {
+		arS=argToString(ar,2);
+		l=l.chain;
+
+		for (k=l.length; k > 0; k--) if((rtnVal=eval('l[k-1]('+arS+')'))!=void(0)) break;
+	}
+
+	return rtnVal;
+}
+
+////////
+// OBJECT CONSTRUCTORS
+////////
+
+// Object for handling hooks.
+function FunctionReference() {
+	this.ovload = null;
+	this.before = new Array();
+	this.after = new Array();
+	this.alt = new Array();
+	this.chain = new Array();
+}
+
+// Object for simple access to the overLIB version used.
+// Examples: simpleversion:351 major:3 minor:5 revision:1
+function Info(version, prerelease) {
+	this.version = version;
+	this.prerelease = prerelease;
+
+	this.simpleversion = Math.round(this.version*100);
+	this.major = parseInt(this.simpleversion / 100);
+	this.minor = parseInt(this.simpleversion / 10) - this.major * 10;
+	this.revision = parseInt(this.simpleversion) - this.major * 100 - this.minor * 10;
+	this.meets = meets;
+}
+
+// checks for Core Version required
+function meets(reqdVersion) {
+	return (!reqdVersion) ? false : this.simpleversion >= Math.round(100*parseFloat(reqdVersion));
+}
+
+
+////////
+// STANDARD REGISTRATIONS
+////////
+registerHook("ol_content_simple", ol_content_simple, FALTERNATE, CSSOFF);
+registerHook("ol_content_caption", ol_content_caption, FALTERNATE, CSSOFF);
+registerHook("ol_content_background", ol_content_background, FALTERNATE, CSSOFF);
+registerHook("ol_content_simple", ol_content_simple, FALTERNATE, CSSCLASS);
+registerHook("ol_content_caption", ol_content_caption, FALTERNATE, CSSCLASS);
+registerHook("ol_content_background", ol_content_background, FALTERNATE, CSSCLASS);
+registerPostParseFunction(checkPositionFlags);
+registerHook("hideObject", nbspCleanup, FAFTER);
+registerHook("horizontalPlacement", horizontalPlacement, FCHAIN);
+registerHook("verticalPlacement", verticalPlacement, FCHAIN);
+if (olNs4||(olIe5&&isMac)||olKq) olLoaded=1;
+registerNoParameterCommands('sticky,autostatus,autostatuscap,fullhtml,hauto,vauto,closeclick,wrap,followmouse,mouseoff,compatmode');
+///////
+// ESTABLISH MOUSECAPTURING
+///////
+
+// Capture events, alt. diffuses the overlib function.
+var olCheckMouseCapture=true;
+if ((olNs4 || olNs6 || olIe4)) {
+	olMouseCapture();
+} else {
+	overlib = no_overlib;
+	nd = no_overlib;
+	ver3fix = true;
+}

Property changes on: tags/2.8.0/trunk/wb/admin/media/overlib.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/admin/media/resize_img.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/resize_img.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/resize_img.php	(revision 1130)
@@ -0,0 +1,293 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+	/**
+	 * Image Resizer. 
+	 * @author : Harish Chauhan
+	 * @copyright : Freeware
+	 * About :This PHP script will resize the given image and can show on the fly or save as image file.
+	 *
+	 */
+	
+
+	define("HAR_AUTO_NAME",1);	
+	Class RESIZEIMAGE
+	{
+		var $imgFile="";
+		var $imgWidth=0;
+		var $imgHeight=0;
+		var $imgType="";
+		var $imgAttr="";
+		var $type=NULL;
+		var $_img=NULL;
+		var $_error="";
+		
+		/**
+		 * Constructor
+		 *
+		 * @param [String $imgFile] Image File Name
+		 * @return RESIZEIMAGE (Class Object)
+		 */
+		
+		function RESIZEIMAGE($imgFile="")
+		{
+			if (!function_exists("imagecreate"))
+			{
+				$this->_error="Error: GD Library is not available.";
+				return false;
+			}
+
+			$this->type=Array(1 => 'GIF', 2 => 'JPG', 3 => 'PNG', 4 => 'SWF', 5 => 'PSD', 6 => 'BMP', 7 => 'TIFF', 8 => 'TIFF', 9 => 'JPC', 10 => 'JP2', 11 => 'JPX', 12 => 'JB2', 13 => 'SWC', 14 => 'IFF', 15 => 'WBMP', 16 => 'XBM');
+			if(!empty($imgFile))
+				$this->setImage($imgFile);
+		}
+		/**
+		 * Error occured while resizing the image.
+		 *
+		 * @return String 
+		 */
+		function error()
+		{
+			return $this->_error;
+		}
+		
+		/**
+		 * Set image file name
+		 *
+		 * @param String $imgFile
+		 * @return void
+		 */
+		function setImage($imgFile)
+		{
+			$this->imgFile=$imgFile;
+			return $this->_createImage();
+		}
+		/**
+		 * 
+		 * @return void
+		 */
+		function close()
+		{
+			return @imagedestroy($this->_img);
+		}
+		/**
+		 * Resize a image to given width and height and keep it's current width and height ratio
+		 * 
+		 * @param Number $imgwidth
+		 * @param Numnber $imgheight
+		 * @param String $newfile
+		 */
+		function resize_limitwh($imgwidth,$imgheight,$newfile=NULL)
+		{
+			$image_per = 100;
+			list($width, $height, $type, $attr) = @getimagesize($this->imgFile);
+			if($width > $imgwidth && $imgwidth > 0)
+				$image_per = (double)(($imgwidth * 100) / $width);
+
+			if(floor(($height * $image_per)/100)>$imgheight && $imgheight > 0)
+				$image_per = (double)(($imgheight * 100) / $height);
+
+			$this->resize_percentage($image_per,$newfile);
+
+		}
+		/**
+		 * Resize an image to given percentage.
+		 *
+		 * @param Number $percent
+		 * @param String $newfile
+		 * @return Boolean
+		 */
+		function resize_percentage($percent=100,$newfile=NULL)
+		{
+			$newWidth=($this->imgWidth*$percent)/100;
+			$newHeight=($this->imgHeight*$percent)/100;
+			return $this->resize($newWidth,$newHeight,$newfile);
+		}
+		/**
+		 * Resize an image to given X and Y percentage.
+		 *
+		 * @param Number $xpercent
+		 * @param Number $ypercent
+		 * @param String $newfile
+		 * @return Boolean
+		 */
+		function resize_xypercentage($xpercent=100,$ypercent=100,$newfile=NULL)
+		{
+			$newWidth=($this->imgWidth*$xpercent)/100;
+			$newHeight=($this->imgHeight*$ypercent)/100;
+			return $this->resize($newWidth,$newHeight,$newfile);
+		}
+		
+		/**
+		 * Resize an image to given width and height
+		 *
+		 * @param Number $width
+		 * @param Number $height
+		 * @param String $newfile
+		 * @return Boolean
+		 */
+		function resize($width,$height,$newfile=NULL)
+		{
+			if(empty($this->imgFile))
+			{
+				$this->_error="File name is not initialised.";
+				return false;
+			}
+			if($this->imgWidth<=0 || $this->imgHeight<=0)
+			{
+				$this->_error="Could not resize given image";
+				return false;
+			}
+			if($width<=0)
+				$width=$this->imgWidth;
+			if($height<=0)
+				$height=$this->imgHeight;
+				
+			return $this->_resize($width,$height,$newfile);
+		}
+		
+		/**
+		 * Get the image attributes
+		 * @access Private
+		 * 		
+		 */
+		function _getImageInfo()
+		{
+			@list($this->imgWidth,$this->imgHeight,$type,$this->imgAttr)=@getimagesize($this->imgFile);
+			$this->imgType=$this->type[$type];
+		}
+		
+		/**
+		 * Create the image resource 
+		 * @access Private
+		 * @return Boolean
+		 */
+		function _createImage()
+		{
+			$this->_getImageInfo($this->imgFile);
+			if($this->imgType=='GIF')
+			{
+				$this->_img=@imagecreatefromgif($this->imgFile);
+			}
+			elseif($this->imgType=='JPG')
+			{
+				$this->_img=@imagecreatefromjpeg($this->imgFile);
+			}
+			elseif($this->imgType=='PNG')
+			{
+				$this->_img=@imagecreatefrompng($this->imgFile);
+			}			
+			if(!$this->_img || !@is_resource($this->_img))
+			{
+				$this->_error="Error loading ".$this->imgFile;
+				return false;
+			}
+			return true;
+		}
+		
+		/**
+		 * Function is used to resize the image
+		 * 
+		 * @access Private
+		 * @param Number $width
+		 * @param Number $height
+		 * @param String $newfile
+		 * @return Boolean
+		 */
+		function _resize($width,$height,$newfile=NULL)
+		{
+			if (!function_exists("imagecreate"))
+			{
+				$this->_error="Error: GD Library is not available.";
+				return false;
+			}
+
+			$newimg=@imagecreatetruecolor($width,$height);
+			//imagecolortransparent( $newimg, imagecolorat( $newimg, 0, 0 ) );
+			
+			if($this->imgType=='GIF' || $this->imgType=='PNG')
+			{
+				/** Code to keep transparency of image **/
+				$colorcount = imagecolorstotal($this->_img);
+				if ($colorcount == 0) $colorcount = 256;
+				imagetruecolortopalette($newimg,true,$colorcount);
+				imagepalettecopy($newimg,$this->_img);
+				$transparentcolor = imagecolortransparent($this->_img);
+				imagefill($newimg,0,0,$transparentcolor);
+				imagecolortransparent($newimg,$transparentcolor); 
+			}
+
+			@imagecopyresampled ( $newimg, $this->_img, 0,0,0,0, $width, $height, $this->imgWidth,$this->imgHeight);
+			
+
+
+			if($newfile===HAR_AUTO_NAME)
+			{
+				if(@preg_match("/\..*+$/",@basename($this->imgFile),$matches))
+			   		$newfile=@substr_replace($this->imgFile,"_har",-@strlen($matches[0]),0);			
+			}
+			elseif(!empty($newfile))
+			{
+				if(!@preg_match("/\..*+$/",@basename($newfile)))
+				{
+					if(@preg_match("/\..*+$/",@basename($this->imgFile),$matches))
+					   $newfile=$newfile.$matches[0];
+				}
+			}
+
+			if($this->imgType=='GIF')
+			{
+				if(!empty($newfile))
+					@imagegif($newimg,$newfile);
+				else
+				{
+					@header("Content-type: image/gif");
+					@imagegif($newimg);
+				}
+			}
+			elseif($this->imgType=='JPG')
+			{
+				if(!empty($newfile))
+					@imagejpeg($newimg,$newfile,85);
+				else
+				{
+					@header("Content-type: image/jpeg");
+					@imagejpeg($newimg);
+				}
+			}
+			elseif($this->imgType=='PNG')
+			{
+				if(!empty($newfile))
+					@imagepng($newimg,$newfile);
+				else
+				{
+					@header("Content-type: image/png");
+					@imagepng($newimg);
+				}
+			}
+			@imagedestroy($newimg);
+		}
+	}
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/media/resize_img.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/admin/media/thumb.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/thumb.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/thumb.php	(revision 1130)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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_once('resize_img.php');
+if (isset($_GET['img']) && isset($_GET['t'])) {
+	$image = addslashes($_GET['img']);
+	$type = addslashes($_GET['t']);
+	$media = WB_PATH.MEDIA_DIRECTORY;
+	$img=new RESIZEIMAGE($media.$image);
+	if ($img->imgWidth) {
+		if ($type == 1) {
+			$img->resize_limitwh(50,50);
+		} else if ($type == 2) {
+			$img->resize_limitwh(200,200);
+		} 
+		$img->close();
+	} else {
+		header ("Content-type: image/jpeg");
+		readfile ( "nopreview.jpg" );
+	}
+}
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/media/thumb.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/admin/media/parameters.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/parameters.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/parameters.php	(revision 1130)
@@ -0,0 +1,39 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 __unserialize($sObject) {  // found in php manual :-)
+	$__ret =preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $sObject );
+	return unserialize($__ret);
+}
+$pathsettings = array();
+$query = $database->query ( "SELECT * FROM ".TABLE_PREFIX."settings where `name`='mediasettings'" );
+if ($query && $query->numRows() > 0) {
+	$settings = $query->fetchRow();
+	$pathsettings = __unserialize($settings['value']);
+} else {
+	$database->query ( "INSERT INTO ".TABLE_PREFIX."settings (`name`,`value`) VALUES ('mediasettings','')" );
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/media/parameters.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/admin/media/rename2.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/rename2.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/rename2.php	(revision 1130)
@@ -0,0 +1,168 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+
+// 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.8.0/trunk/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.8.0/trunk/wb/admin/media/delete.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/delete.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/delete.php	(revision 1130)
@@ -0,0 +1,120 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+
+// 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.8.0/trunk/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.8.0/trunk/wb/admin/media/rename.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/rename.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/rename.php	(revision 1130)
@@ -0,0 +1,140 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+
+// 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(THEME_PATH.'/templates');
+$template->set_file('page', 'media_rename.htt');
+$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(
+								'THEME_URL' => THEME_URL,
+								'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.8.0/trunk/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.8.0/trunk/wb/admin/media/create.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/media/create.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/media/create.php	(revision 1130)
@@ -0,0 +1,88 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/users/users.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/users/users.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/users/users.php	(revision 1130)
@@ -0,0 +1,191 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+	$template->set_file('page', 'users_form.htt');
+	$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'],
+										'ADMIN_URL' => ADMIN_URL,
+										'WB_URL' => WB_URL,
+										'WB_PATH' => WB_PATH,
+										'THEME_URL' => THEME_URL
+										)
+								);
+	if($user['active'] == 1) {
+		$template->set_var('ACTIVE_CHECKED', ' checked="checked"');
+	} else {
+		$template->set_var('DISABLED_CHECKED', ' 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="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="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="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="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'],
+									'HEADING_MODIFY_USER' => $HEADING['MODIFY_USER']
+									)
+							);
+	
+	// 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.8.0/trunk/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.8.0/trunk/wb/admin/users/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/users/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/users/index.php	(revision 1130)
@@ -0,0 +1,208 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'users.htt');
+$template->set_block('page', 'main_block', 'main');
+$template->set_block("main_block", "manage_groups_block", "groups");
+$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 urls
+$template->set_var(array(
+		'ADMIN_URL' => ADMIN_URL,
+		'WB_URL' => WB_URL,
+		'WB_PATH' => WB_PATH,
+		'THEME_URL' => THEME_URL
+		)
+);
+// Insert language text and messages
+$template->set_var(array(
+		'TEXT_MODIFY' => $TEXT['MODIFY'],
+		'TEXT_DELETE' => $TEXT['DELETE'],
+		'TEXT_MANAGE_GROUPS' => ( $admin->get_permission('groups') == true ) ? $TEXT['MANAGE_GROUPS'] : "**",
+		'CONFIRM_DELETE' => $MESSAGE['USERS']['CONFIRM_DELETE']
+		)
+);
+if ( $admin->get_permission('groups') == true ) $template->parse("groups", "manage_groups_block", true);
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Setup template for add user form
+$template = new Template(THEME_PATH.'/templates');
+$template->set_file('page', 'users_form.htt');
+$template->set_block('page', 'main_block', 'main');
+$template->set_var('DISPLAY_EXTRA', 'none');
+$template->set_var('ACTIVE_CHECKED', ' checked="checked"');
+$template->set_var('ACTION_URL', ADMIN_URL.'/users/add.php');
+$template->set_var('SUBMIT_TITLE', $TEXT['ADD']);
+// insert urls
+$template->set_var(array(
+		'ADMIN_URL' => ADMIN_URL,
+		'WB_URL' => WB_URL,
+		'WB_PATH' => WB_PATH,
+		'THEME_URL' => THEME_URL
+		)
+);
+
+// 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="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.8.0/trunk/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.8.0/trunk/wb/admin/users/save.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/users/save.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/users/save.php	(revision 1130)
@@ -0,0 +1,102 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/users/add.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/users/add.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/users/add.php	(revision 1130)
@@ -0,0 +1,106 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/languages/details.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/languages/details.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/languages/details.php	(revision 1130)
@@ -0,0 +1,94 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'languages_details.htt');
+$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,
+								'ADMIN_URL' => ADMIN_URL,
+								'WB_URL' => WB_URL,
+								'WB_PATH' => WB_PATH,
+								'THEME_URL' => THEME_URL
+								)
+						);
+
+// 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.8.0/trunk/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.8.0/trunk/wb/admin/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/languages/index.php	(revision 1130)
@@ -0,0 +1,95 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'languages.htt');
+$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 urls
+$template->set_var(array(
+								'ADMIN_URL' => ADMIN_URL,
+								'WB_URL' => WB_URL,
+								'WB_PATH' => WB_PATH,
+								'THEME_URL' => THEME_URL
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+	'URL_MODULES' => $admin->get_permission('modules') ? 
+		'<a href="' . ADMIN_URL . '/modules/index.php">' . $MENU['MODULES'] . '</a>' : '',
+	'URL_ADVANCED' => $admin->get_permission('admintools') ? 
+		'<a href="' . ADMIN_URL . '/modules/index.php?advanced">' . $TEXT['ADVANCED'] . '</a>' : '',		
+	'URL_TEMPLATES' => $admin->get_permission('templates') ? 
+		'<a href="' . ADMIN_URL . '/templates/index.php">' . $MENU['TEMPLATES'] . '</a>' : '',
+	'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.8.0/trunk/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.8.0/trunk/wb/admin/languages/install.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/languages/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/languages/install.php	(revision 1130)
@@ -0,0 +1,130 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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);
+}
+
+// do not display notices and warnings during installation
+error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
+
+// 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']);
+}
+
+// Check if uploaded file is a valid language file (no binary file etc.)
+$content = file_get_contents($temp_file);
+if (strpos($content, '<?php') === false) $admin->print_error($MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE']);
+
+// Remove any vars with name "language_code"
+unset($language_code);
+
+// Include precheck files for versionCompare routine
+require(WB_PATH . '/framework/addon.precheck.inc.php');
+
+// 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_LANGUAGE_FILE']);
+}
+
+// Set destination for language file
+$language_file = WB_PATH.'/languages/'.$language_code.'.php';
+$action="install";
+
+// Move to new location
+if (file_exists($language_file)) {
+	require($language_file);
+	if (versionCompare($language_version, $new_language_version, '>=')) {
+		// Restore to correct language
+		require(WB_PATH . '/languages/' . LANGUAGE . '.php');
+		$admin->print_error($MESSAGE['GENERIC']['ALREADY_INSTALLED']);
+	}
+	$action="upgrade";
+	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
+if ($action=="install") {
+	$admin->print_success($MESSAGE['GENERIC']['INSTALLED']);
+} else {
+	$admin->print_success($MESSAGE['GENERIC']['UPGRADED']);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/languages/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/languages/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/languages/uninstall.php	(revision 1130)
@@ -0,0 +1,75 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/modules/details.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/modules/details.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/modules/details.php	(revision 1130)
@@ -0,0 +1,142 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'modules_details.htt');
+$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'],
+								'ADMIN_URL' => ADMIN_URL,
+								'WB_URL' => WB_URL,
+								'WB_PATH' => WB_PATH,
+								'THEME_URL' => THEME_URL
+								)
+						);
+						
+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;
+	case 'snippet':
+		$type_name = $TEXT['CODE_SNIPPET'];
+		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.8.0/trunk/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.8.0/trunk/wb/admin/modules/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/modules/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/modules/index.php	(revision 1130)
@@ -0,0 +1,143 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'modules.htt');
+$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 modules which includes a install.php file to install list
+$module_files = glob(WB_PATH . '/modules/*');
+$template->set_block('main_block', 'install_list_block', 'install_list');
+$template->set_block('main_block', 'upgrade_list_block', 'upgrade_list');
+$template->set_block('main_block', 'uninstall_list_block', 'uninstall_list');
+$template->set_var(array('INSTALL_VISIBLE' => 'hide', 'UPGRADE_VISIBLE' => 'hide', 'UNINSTALL_VISIBLE' => 'hide'));
+
+$show_block = false;
+foreach ($module_files as $index => $path) {
+	if (is_dir($path)) {
+		if (file_exists($path . '/install.php')) {
+			$show_block = true;
+			$template->set_var('INSTALL_VISIBLE', '');
+			$template->set_var('VALUE', basename($path));
+			$template->set_var('NAME', basename($path));
+			$template->parse('install_list', 'install_list_block', true);
+		}
+
+		if (file_exists($path . '/upgrade.php')) {
+			$show_block = true;
+			$template->set_var('UPGRADE_VISIBLE', '');
+			$template->set_var('VALUE', basename($path));
+			$template->set_var('NAME', basename($path));
+			$template->parse('upgrade_list', 'upgrade_list_block', true);
+		} 
+		
+		if (file_exists($path . '/uninstall.php')) {
+			$show_block = true;
+			$template->set_var('UNINSTALL_VISIBLE', '');
+			$template->set_var('VALUE', basename($path));
+			$template->set_var('NAME', basename($path));
+			$template->parse('uninstall_list', 'uninstall_list_block', true);
+		}
+
+	} else {
+		unset($module_files[$index]);
+	}
+}
+
+// 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');
+}
+// only show block if there is something to show
+if(!$show_block || count($module_files) == 0 || !isset($_GET['advanced']) || $admin->get_permission('admintools') != true) {
+	$template->set_var('DISPLAY_MANUAL_INSTALL', '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'],
+								'HEADING_INVOKE_MODULE_FILES' => $HEADING['INVOKE_MODULE_FILES']
+								)
+						);
+// insert urls
+$template->set_var(array(
+								'ADMIN_URL' => ADMIN_URL,
+								'WB_URL' => WB_URL,
+								'WB_PATH' => WB_PATH,
+								'THEME_URL' => THEME_URL
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+	'URL_TEMPLATES' => $admin->get_permission('templates') ? 
+		'<a href="' . ADMIN_URL . '/templates/index.php">' . $MENU['TEMPLATES'] . '</a>' : '',
+	'URL_LANGUAGES' => $admin->get_permission('languages') ? 
+		'<a href="' . ADMIN_URL . '/languages/index.php">' . $MENU['LANGUAGES'] . '</a>' : '',
+	'URL_ADVANCED' => $admin->get_permission('admintools') ? 
+		'<a href="' . ADMIN_URL . '/modules/index.php?advanced">' . $TEXT['ADVANCED'] . '</a>' : '',
+	'TEXT_INSTALL' => $TEXT['INSTALL'],
+	'TEXT_UNINSTALL' => $TEXT['UNINSTALL'],
+	'TEXT_VIEW_DETAILS' => $TEXT['VIEW_DETAILS'],
+	'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
+	'TEXT_MANUAL_INSTALLATION' => $MESSAGE['ADDON']['MANUAL_INSTALLATION'],
+	'TEXT_MANUAL_INSTALLATION_WARNING' => $MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'],
+	'TEXT_EXECUTE' => $TEXT['EXECUTE'],
+	'TEXT_FILE' => $TEXT['FILE']
+	)
+);
+
+// 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.8.0/trunk/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.8.0/trunk/wb/admin/modules/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/modules/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/modules/uninstall.php	(revision 1130)
@@ -0,0 +1,129 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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['GENERIC']['NOT_INSTALLED']);
+}
+
+if (!function_exists("replace_all")) {
+	function replace_all ($aStr = "", &$aArray ) {
+		foreach($aArray as $k=>$v) $aStr = str_replace("{{".$k."}}", $v, $aStr);
+		return $aStr;
+	}
+}
+
+$info = $database->query("SELECT section_id, page_id FROM ".TABLE_PREFIX."sections WHERE module='".$_POST['file']."'" );
+
+if ( $info->numRows() > 0) {
+	
+	/**
+	*	Modul is in use, so we have to warn the user
+	*/
+	if (!array_key_exists("CANNOT_UNINSTALL_IN_USE_TMPL", $MESSAGE['GENERIC'])) {
+		$add = $info->numRows() == 1 ? "this page" : "these pages";
+		$msg_template_str  = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled because it is still in use on {{pages}}";
+		$msg_template_str .= ":<br /><i>click for editing.</i><br /><br />";
+	} else {
+		$msg_template_str = $MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL'];
+		$temp = explode(";",$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES']);
+		$add = $info->numRows() == 1 ? $temp[0] : $temp[1];
+	}
+	/**
+	*	The template-string for displaying the Page-Titles ... in this case as a link
+	*/
+	$page_template_str = "- <b><a href='../pages/sections.php?page_id={{id}}'>{{title}}</a></b><br />";
+	
+	$values = array ('type' => 'Modul', 'type_name' => $file, 'pages' => $add );
+	$msg = replace_all ( $msg_template_str,  $values );
+		
+	$page_names = "";
+	
+	while ($data = $info->fetchRow() ) {
+	
+		$temp = $database->query("SELECT page_title from ".TABLE_PREFIX."pages where page_id=".$data['page_id']);
+		$temp_title = $temp->fetchRow();
+		
+		$page_info = array(
+			'id'	=> $data['page_id'], 
+			'title' => $temp_title['page_title']
+		);
+			
+		$page_names .= replace_all ( $page_template_str, $page_info );
+	}
+	
+	/**
+	*	Printing out the error-message and die().
+	*/
+	$admin->print_error(str_replace ($TEXT['FILE'], "Modul", $MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE']).$msg.$page_names);
+}
+
+// Check if we have permissions on the directory
+if(!is_writable(WB_PATH.'/modules/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL']);
+}
+
+// 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['GENERIC']['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.8.0/trunk/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.8.0/trunk/wb/admin/modules/manual_install.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/modules/manual_install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/modules/manual_install.php	(revision 1130)
@@ -0,0 +1,100 @@
+<?php
+/**
+ * $Id$
+ * Website Baker Manual module installation
+ *
+ * This file contains the function to invoke the module install or upgrade
+ * scripts update the Add-on information from the
+ * database with the ones stored in the Add-on files (e.g. info.php or EN.php)
+ *
+ * LICENSE: GNU Lesser General Public License 3.0
+ * 
+ * @author		Christian Sommer
+ * @copyright	(c) 2009
+ * @license		http://www.gnu.org/copyleft/lesser.html
+ * @version		0.2.0
+ * @platform	Website Baker 2.7
+ *
+ * Website Baker Project <http://www.websitebaker.org/>
+ * Copyright (C) 2004-2009, Ryan Djurovich
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public 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 there is anything to do
+ */
+if (!(isset($_POST['action']) && in_array($_POST['action'], array('install', 'upgrade', 'uninstall')))) die(header('Location: index.php?advanced'));
+if (!(isset($_POST['file']) && $_POST['file'] != '' && (strpos($_POST['file'], '..') === false))) die(header('Location: index.php?advanced'));
+
+/**
+ * check if user has permissions to access this file
+ */
+// include WB configuration file and WB admin class
+require_once('../../config.php');
+require_once('../../framework/class.admin.php');
+
+// check user permissions for admintools (redirect users with wrong permissions)
+$admin = new admin('Admintools', 'admintools', false, false);
+if ($admin->get_permission('admintools') == false) die(header('Location: ../../index.php'));
+
+// check if the referer URL if available
+$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 
+	(isset($HTTP_SERVER_VARS['HTTP_REFERER']) ? $HTTP_SERVER_VARS['HTTP_REFERER'] : '');
+
+// if referer is set, check if script was invoked from "admin/modules/index.php"
+$required_url = ADMIN_URL . '/modules/index.php';
+if ($referer != '' && (!(strpos($referer, $required_url) !== false || strpos($referer, $required_url) !== false))) 
+	die(header('Location: ../../index.php'));
+
+// include WB functions file
+require_once(WB_PATH . '/framework/functions.php');
+
+// load WB language file
+require_once(WB_PATH . '/languages/' . LANGUAGE .'.php');
+
+// create Admin object with admin header
+$admin = new admin('Addons', '', true, false);
+$js_back = ADMIN_URL . '/modules/index.php?advanced';
+
+/**
+ * Manually execute the specified module file (install.php, upgrade.php or uninstall.php)
+ */
+// check if specified module folder exists
+$mod_path = WB_PATH . '/modules/' . basename(WB_PATH . '/' . $_POST['file']);
+if (!file_exists($mod_path . '/' . $_POST['action'] . '.php')) $admin->print_error($TEXT['NOT_FOUND'] . ': <tt>"' . htmlentities(basename($mod_path)) . '/' . $_POST['action'] . '.php"</tt> ', $js_back);
+
+// include modules install.php script
+require($mod_path . '/' . $_POST['action'] . '.php');
+
+// load module info into database and output status message
+load_module($mod_path, false);
+$msg = $TEXT['EXECUTE'] . ': <tt>"' . htmlentities(basename($mod_path)) . '/' . $_POST['action'] . '.php"</tt>';
+
+switch ($_POST['action']) {
+	case 'install':
+		$admin->print_success($msg, $js_back);
+		break;
+
+	case 'upgrade':
+		$admin->print_success($msg, $js_back);
+		break;
+	
+	case 'uninstall':
+		$admin->print_success($msg, $js_back);
+		break;
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/modules/manual_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.8.0/trunk/wb/admin/modules/install.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/modules/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/modules/install.php	(revision 1130)
@@ -0,0 +1,148 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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);
+}
+
+// do not display notices and warnings during installation
+error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
+
+// 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);
+
+// Check if uploaded file is a valid Add-On zip file
+if (!($list && file_exists($temp_unzip . 'index.php'))) $admin->print_error($MESSAGE['GENERIC']['INVALID_ADDON_FILE']);
+
+// Include the modules info file
+require($temp_unzip.'info.php');
+
+// Perform Add-on requirement checks before proceeding
+require(WB_PATH . '/framework/addon.precheck.inc.php');
+preCheckAddon($temp_file);
+
+// 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 (versionCompare($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.8.0/trunk/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.8.0/trunk/wb/admin/interface/version.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/interface/version.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/interface/version.php	(revision 1130)
@@ -0,0 +1,42 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/interface/time_formats.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/interface/time_formats.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/interface/time_formats.php	(revision 1130)
@@ -0,0 +1,68 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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)
+$actual_time = time()+ ((isset($user_time) AND $user_time == true) ? TIMEZONE : DEFAULT_TIMEZONE);
+
+// Add values to list
+$TIME_FORMATS['g:i|A'] = gmdate('g:i A', $actual_time);
+$TIME_FORMATS['g:i|a'] = gmdate('g:i a', $actual_time);
+$TIME_FORMATS['H:i:s'] = gmdate('H:i:s', $actual_time);
+$TIME_FORMATS['H:i'] = gmdate('H:i', $actual_time);
+
+// 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, $actual_time).' ('.$TEXT['SYSTEM_DEFAULT'].')';
+	} else {
+		$TIME_FORMATS['system_default'] = gmdate(DEFAULT_TIME_FORMAT, $actual_time).' (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.8.0/trunk/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.8.0/trunk/wb/admin/interface/date_formats.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/interface/date_formats.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/interface/date_formats.php	(revision 1130)
@@ -0,0 +1,75 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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)
+$actual_time = time()+ ((isset($user_time) AND $user_time == true) ? TIMEZONE : DEFAULT_TIMEZONE);
+
+// Add values to list
+$DATE_FORMATS['l,|jS|F,|Y'] = gmdate('l, jS F, Y', $actual_time);
+$DATE_FORMATS['jS|F,|Y'] = gmdate('jS F, Y', $actual_time);
+$DATE_FORMATS['d|M|Y'] = gmdate('d M Y', $actual_time);
+$DATE_FORMATS['M|d|Y'] = gmdate('M d Y', $actual_time);
+$DATE_FORMATS['D|M|d,|Y'] = gmdate('D M d, Y', $actual_time);
+$DATE_FORMATS['d-m-Y'] = gmdate('d-m-Y', $actual_time).' (D-M-Y)';
+$DATE_FORMATS['m-d-Y'] = gmdate('m-d-Y', $actual_time).' (M-D-Y)';
+$DATE_FORMATS['d.m.Y'] = gmdate('d.m.Y', $actual_time).' (D.M.Y)';
+$DATE_FORMATS['m.d.Y'] = gmdate('m.d.Y', $actual_time).' (M.D.Y)';
+$DATE_FORMATS['d/m/Y'] = gmdate('d/m/Y', $actual_time).' (D/M/Y)';
+$DATE_FORMATS['m/d/Y'] = gmdate('m/d/Y', $actual_time).' (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, $actual_time).' ('.$TEXT['SYSTEM_DEFAULT'].')';
+	} else {
+		$DATE_FORMATS['system_default'] = gmdate(DEFAULT_DATE_FORMAT, $actual_time).' (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.8.0/trunk/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.8.0/trunk/wb/admin/interface/er_levels.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/interface/er_levels.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/interface/er_levels.php	(revision 1130)
@@ -0,0 +1,59 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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'] = htmlentities('E_ALL&E_STRICT'); // for programmers
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/interface/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/interface/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/interface/index.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/interface/charsets.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/interface/charsets.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/interface/charsets.php	(revision 1130)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/interface/timezones.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/interface/timezones.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/interface/timezones.php	(revision 1130)
@@ -0,0 +1,82 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/admin/settings/save.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/settings/save.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/settings/save.php	(revision 1130)
@@ -0,0 +1,189 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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','wbmailer_smtp_password');
+		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.8.0/trunk/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.8.0/trunk/wb/admin/settings/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/settings/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/settings/index.php	(revision 1130)
@@ -0,0 +1,651 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'settings.htt');
+$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 = ( $setting_name != 'wbmailer_smtp_password' ) ? htmlspecialchars($setting['value']) : $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', '&lt;&lt; '.$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', ' style="display: none;"');
+	$template->set_var('ADVANCED', 'no');
+	$template->set_var('ADVANCED_BUTTON', $TEXT['SHOW_ADVANCED'].' &gt;&gt;');
+	$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,
+									'THEME_URL' => THEME_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,
+								'FLAG' => THEME_URL.'/images/flags/'.strtolower($l_codes[$l_name]),
+								));
+		// Check if it is selected
+		if(DEFAULT_LANGUAGE == $l_codes[$l_name]) {
+			$template->set_var('SELECTED', ' 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="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="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="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="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' AND function != 'theme' 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"' : $selected = '');
+		$template->set_var('SELECTED', $selected);
+		$template->parse('template_list', 'template_list_block', true);
+	}
+}
+
+// Insert backend theme
+$template->set_block('main_block', 'theme_list_block', 'theme_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template' AND function = 'theme' 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_THEME) ? $selected = ' selected="selected"' : $selected = '');
+		$template->set_var('SELECTED', $selected);
+		$template->parse('theme_list', 'theme_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"' : $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"' : $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="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"' : $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="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="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="checked"');
+} else {
+	$template->set_var('MULTIPLE_MENUS_DISABLED', ' checked="checked"');
+}
+
+// Work-out if page languages feature is enabled
+if(defined('PAGE_LANGUAGES') AND PAGE_LANGUAGES == true) {
+        $template->set_var('PAGE_LANGUAGES_ENABLED', ' checked="checked"');
+} else {
+        $template->set_var('PAGE_LANGUAGES_DISABLED', ' checked="checked"');
+}
+
+// Work-out if smart login feature is enabled
+if(defined('SMART_LOGIN') AND SMART_LOGIN == true) {
+	$template->set_var('SMART_LOGIN_ENABLED', ' checked="checked"');
+} else {
+	$template->set_var('SMART_LOGIN_DISABLED', ' checked="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="checked"');
+} else {
+	$template->set_var('SECTION_BLOCKS_DISABLED', ' checked="checked"');
+}
+
+// Work-out if homepage redirection feature is enabled
+if(defined('HOMEPAGE_REDIRECTION') AND HOMEPAGE_REDIRECTION == true) {
+	$template->set_var('HOMEPAGE_REDIRECTION_ENABLED', ' checked="checked"');
+} else {
+	$template->set_var('HOMEPAGE_REDIRECTION_DISABLED', ' checked="checked"');
+}
+
+// Work-out which server os should be checked
+if(OPERATING_SYSTEM == 'linux') {
+	$template->set_var('LINUX_SELECTED', ' checked="checked"');
+} elseif(OPERATING_SYSTEM == 'windows') {
+	$template->set_var('WINDOWS_SELECTED', ' checked="checked"');
+}
+
+// Work-out if manage sections feature is enabled
+if(MANAGE_SECTIONS) {
+	$template->set_var('MANAGE_SECTIONS_ENABLED', ' checked="checked"');
+} else {
+	$template->set_var('MANAGE_SECTIONS_DISABLED', ' checked="checked"');
+}
+
+// Work-out which wbmailer routine should be checked
+if(WBMAILER_ROUTINE == 'phpmail') {
+	$template->set_var('PHPMAIL_SELECTED', ' checked="checked"');
+	$template->set_var('SMTP_VISIBILITY', 'none');
+	$template->set_var('SMTP_VISIBILITY_AUTH', 'none');
+} elseif(WBMAILER_ROUTINE == 'smtp') {
+	$template->set_var('SMTPMAIL_SELECTED', ' checked="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="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="checked"');
+} else {
+	$template->set_var('INTRO_PAGE_DISABLED', ' checked="checked"');
+}
+
+// Work-out if frontend login feature is enabled
+if(FRONTEND_LOGIN) {
+	$template->set_var('PRIVATE_ENABLED', ' checked="checked"');
+} else {
+	$template->set_var('PRIVATE_DISABLED', ' checked="checked"');
+}
+
+// Work-out if page trash feature is disabled, in-line, or separate
+if(PAGE_TRASH == 'disabled') {
+	$template->set_var('PAGE_TRASH_DISABLED', ' checked="checked"');
+	$template->set_var('DISPLAY_PAGE_TRASH_SEPARATE', ' display: none;');
+} elseif(PAGE_TRASH == 'inline') {
+	$template->set_var('PAGE_TRASH_INLINE', ' checked="checked"');
+	$template->set_var('DISPLAY_PAGE_TRASH_SEPARATE', ' display: none;');
+} elseif(PAGE_TRASH == 'separate') {
+	$template->set_var('PAGE_TRASH_SEPARATE', ' checked="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="checked"');
+} else {
+	$template->set_var('HOME_FOLDERS_DISABLED', ' checked="checked"');
+}
+
+// Insert search select
+if(SEARCH == 'private') {
+	$template->set_var('PRIVATE_SEARCH', ' selected="selected"');
+} elseif(SEARCH == 'registered') {
+	$template->set_var('REGISTERED_SEARCH', ' selected="selected"');
+} elseif(SEARCH == 'none') {
+	$template->set_var('NONE_SEARCH', ' selected="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="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="checked"');
+}
+if(extract_permission(STRING_FILE_MODE, 'u', 'w')) {
+	$template->set_var('FILE_U_W_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_FILE_MODE, 'u', 'e')) {
+	$template->set_var('FILE_U_E_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_FILE_MODE, 'g', 'r')) {
+	$template->set_var('FILE_G_R_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_FILE_MODE, 'g', 'w')) {
+	$template->set_var('FILE_G_W_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_FILE_MODE, 'g', 'e')) {
+	$template->set_var('FILE_G_E_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_FILE_MODE, 'o', 'r')) {
+	$template->set_var('FILE_O_R_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_FILE_MODE, 'o', 'w')) {
+	$template->set_var('FILE_O_W_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_FILE_MODE, 'o', 'e')) {
+	$template->set_var('FILE_O_E_CHECKED', ' 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="checked"');
+}
+if(extract_permission(STRING_DIR_MODE, 'u', 'w')) {
+	$template->set_var('DIR_U_W_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_DIR_MODE, 'u', 'e')) {
+	$template->set_var('DIR_U_E_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_DIR_MODE, 'g', 'r')) {
+	$template->set_var('DIR_G_R_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_DIR_MODE, 'g', 'w')) {
+	$template->set_var('DIR_G_W_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_DIR_MODE, 'g', 'e')) {
+	$template->set_var('DIR_G_E_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_DIR_MODE, 'o', 'r')) {
+	$template->set_var('DIR_O_R_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_DIR_MODE, 'o', 'w')) {
+	$template->set_var('DIR_O_W_CHECKED', ' checked="checked"');
+}
+if(extract_permission(STRING_DIR_MODE, 'o', 'e')) {
+	$template->set_var('DIR_O_E_CHECKED', ' 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="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_THEME' => $TEXT['THEME'],
+								'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_REDIRECT_AFTER' => $TEXT['REDIRECT_AFTER'],
+								'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_SEC_ANCHOR' => $TEXT['SEC_ANCHOR'],
+								'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.8.0/trunk/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.8.0/trunk/wb/admin/settings/setting.js
===================================================================
--- tags/2.8.0/trunk/wb/admin/settings/setting.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/settings/setting.js	(revision 1130)
@@ -0,0 +1,44 @@
+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';
+	}
+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/settings/setting.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/modify_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/noclock_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/clock_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/hidden_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/minus_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/visible_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/none_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/admin/images/blank.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/admin/images/blank.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/delete_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/admin/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/images/index.php	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/admin/images/reload_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/deleted_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/down_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/view_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/private_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/keys_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/folder_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/admin/images/up_folder_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/admin/images/README.txt
===================================================================
--- tags/2.8.0/trunk/wb/admin/images/README.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/images/README.txt	(revision 1130)
@@ -0,0 +1,10 @@
+The folder admin/images isn't needed for WB 2.8. anymore.
+
+It remains only to keep backward compatibility to old modules
+wich make use of the images from this folder.
+
+Modules should be adapted as soon as possible to use images
+from the backend themes instead.
+
+If you are shure you have only Modules wich uses images from
+backend themes, this folder can be deleted.
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/images/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.8.0/trunk/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.8.0/trunk/wb/admin/images/plus_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/restore_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/up_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/images/clock_red_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/admin/access/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/access/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/access/index.php	(revision 1130)
@@ -0,0 +1,74 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'access.htt');
+
+$template->set_block('page', 'main_block', 'main');
+$template->set_block('main_block', 'users_block', 'user');
+$template->set_block('main_block', 'groups_block', 'group');
+
+// Insert values into the template object
+$template->set_var(array(
+		'ADMIN_URL' => ADMIN_URL,
+		'THEME_URL' => THEME_URL,
+		'WB_URL' => WB_URL
+	)
+);
+
+/**
+ *	Insert permission values into the template object
+ *	Deprecated - as we are using blocks.
+ */
+$display_none = "style=\"display: none;\"";
+if($admin->get_permission('users') != true)	$template->set_var('DISPLAY_USERS', $display_none);
+if($admin->get_permission('groups') != true) $template->set_var('DISPLAY_GROUPS', $display_none);
+
+// Insert section names and descriptions
+$template->set_var(array(
+		'USERS' => $MENU['USERS'],
+		'GROUPS' => $MENU['GROUPS'],
+		'ACCESS' => $MENU['ACCESS'],
+		'USERS_OVERVIEW' => $OVERVIEW['USERS'],
+		'GROUPS_OVERVIEW' => $OVERVIEW['GROUPS'],
+	)
+);
+
+if ( $admin->get_permission('users') == true )	$template->parse('main_block', "users_block", true);
+if ( $admin->get_permission('groups') == true )	$template->parse('main_block', "groups_block", true);
+
+// 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.8.0/trunk/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.8.0/trunk/wb/admin/addons/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/addons/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/addons/index.php	(revision 1130)
@@ -0,0 +1,101 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'addons.htt');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert values into the template object
+$template->set_var(array(
+		'ADMIN_URL' => ADMIN_URL,
+		'THEME_URL' => THEME_URL,
+		'WB_URL' => WB_URL
+	)
+);
+
+/**
+ *	Setting up the blocks
+ */
+$template->set_block('main_block', "modules_block", "modules");
+$template->set_block('main_block', "templates_block", "templates");
+$template->set_block('main_block', "languages_block", "languages");
+$template->set_block('main_block', "reload_block", "reload");
+
+/**
+ *	Insert permission values into the template object
+ *	Obsolete as we are using blocks ... see "parsing the blocks" section
+ */
+$display_none = "style=\"display: none;\"";
+if($admin->get_permission('modules') != true) 	$template->set_var('DISPLAY_MODULES', $display_none);	
+if($admin->get_permission('templates') != true)	$template->set_var('DISPLAY_TEMPLATES', $display_none);
+if($admin->get_permission('languages') != true)	$template->set_var('DISPLAY_LANGUAGES', $display_none);
+if(!isset($_GET['advanced']) || $admin->get_permission('admintools') != true)
+	$template->set_var('DISPLAY_RELOAD', $display_none);
+
+/**
+ *	Insert section names and descriptions
+ */
+$template->set_var(array(
+	'ADDONS_OVERVIEW' => $MENU['ADDONS'],
+	'MODULES' => $MENU['MODULES'],
+	'TEMPLATES' => $MENU['TEMPLATES'],
+	'LANGUAGES' => $MENU['LANGUAGES'],
+	'MODULES_OVERVIEW' => $OVERVIEW['MODULES'],
+	'TEMPLATES_OVERVIEW' => $OVERVIEW['TEMPLATES'],
+	'LANGUAGES_OVERVIEW' => $OVERVIEW['LANGUAGES'],
+	'TXT_ADMIN_SETTINGS' => $TEXT['ADMIN'] . ' ' . $TEXT['SETTINGS'],
+	'MESSAGE_RELOAD_ADDONS' => $MESSAGE['ADDON']['RELOAD'],
+	'TEXT_RELOAD' => $TEXT['RELOAD'],
+	'RELOAD_URL' => ADMIN_URL . '/addons/reload.php',
+	'URL_ADVANCED' => $admin->get_permission('admintools') ? 
+		'<a href="' . ADMIN_URL . '/addons/index.php?advanced">' . $TEXT['ADVANCED'] . '</a>' : ''
+	)
+);
+
+/**
+ *	Parsing the blocks ...
+ */
+if ( $admin->get_permission('modules') == true) $template->parse('main_block', "modules_block", true);
+if ( $admin->get_permission('templates') == true) $template->parse('main_block', "templates_block", true);
+if ( $admin->get_permission('languages') == true) $template->parse('main_block', "languages_block", true);
+if ( isset($_GET['advanced']) AND $admin->get_permission('admintools') == true) $template->parse('main_block', "reload_block", true);
+
+/**
+ *	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.8.0/trunk/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.8.0/trunk/wb/admin/addons/reload.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/addons/reload.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/addons/reload.php	(revision 1130)
@@ -0,0 +1,153 @@
+<?php
+/**
+ * $Id$
+ * Website Baker Add-On reload
+ *
+ * This file contains the function to update the Add-on information from the
+ * database with the ones stored in the Add-on files (e.g. info.php or EN.php)
+ *
+ * LICENSE: GNU Lesser General Public License 3.0
+ * 
+ * @author		Christian Sommer
+ * @copyright	(c) 2009
+ * @license		http://www.gnu.org/copyleft/lesser.html
+ * @version		0.1.1
+ * @platform	Website Baker 2.7
+ *
+ * Website Baker Project <http://www.websitebaker.org/>
+ * Copyright (C) 2004-2009, Ryan Djurovich
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public 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 there is anything to do
+ */
+$post_check = array('reload_modules', 'reload_templates', 'reload_languages');
+foreach ($post_check as $index => $key) {
+	if (!isset($_POST[$key])) unset($post_check[$index]);
+}
+if (count($post_check) == 0) die(header('Location: index.php?advanced'));
+
+/**
+ * check if user has permissions to access this file
+ */
+// include WB configuration file and WB admin class
+require_once('../../config.php');
+require_once('../../framework/class.admin.php');
+
+// check user permissions for admintools (redirect users with wrong permissions)
+$admin = new admin('Admintools', 'admintools', false, false);
+if ($admin->get_permission('admintools') == false) die(header('Location: ../../index.php'));
+
+// check if the referer URL if available
+$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 
+	(isset($HTTP_SERVER_VARS['HTTP_REFERER']) ? $HTTP_SERVER_VARS['HTTP_REFERER'] : '');
+
+// if referer is set, check if script was invoked from "admin/modules/index.php"
+$required_url = ADMIN_URL . '/addons/index.php';
+if ($referer != '' && (!(strpos($referer, $required_url) !== false || strpos($referer, $required_url) !== false))) 
+	die(header('Location: ../../index.php'));
+
+// include WB functions file
+require_once(WB_PATH . '/framework/functions.php');
+
+// load WB language file
+require_once(WB_PATH . '/languages/' . LANGUAGE .'.php');
+
+// create Admin object with admin header
+$admin = new admin('Addons', '', true, false);
+$js_back = ADMIN_URL . '/addons/index.php?advanced';
+
+/**
+ * Reload all specified Addons
+ */
+$msg = array();
+$table = TABLE_PREFIX . 'addons';
+
+foreach ($post_check as $key) {
+	switch ($key) {
+		case 'reload_modules':
+			if ($handle = opendir(WB_PATH . '/modules')) {
+				// delete modules from database
+				$sql = "DELETE FROM `$table` WHERE `type` = 'module'";
+				$database->query($sql);
+
+				// loop over all modules
+				while(false !== ($file = readdir($handle))) {
+					if ($file != '' && substr($file, 0, 1) != '.' && $file != 'admin.php' && $file != 'index.php') {
+						load_module(WB_PATH . '/modules/' . $file);
+					}
+				}
+				closedir($handle);
+				// add success message
+				$msg[] = $MESSAGE['ADDON']['MODULES_RELOADED'];
+
+			} else {
+				// provide error message and stop
+				$admin->print_error($MESSAGE['ADDON']['ERROR_RELOAD'], $js_back);
+			}
+			break;
+			
+		case 'reload_templates':
+			if ($handle = opendir(WB_PATH . '/templates')) {
+				// delete templates from database
+				$sql = "DELETE FROM `$table` WHERE `type` = 'template'";
+				$database->query($sql);
+
+				// loop over all 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);
+				// add success message
+				$msg[] = $MESSAGE['ADDON']['TEMPLATES_RELOADED'];
+
+			} else {
+				// provide error message and stop
+				$admin->print_error($MESSAGE['ADDON']['ERROR_RELOAD'], $js_back);
+			}
+			break;
+
+		case 'reload_languages':
+			if ($handle = opendir(WB_PATH . '/languages/')) {
+				// delete languages from database
+				$sql = "DELETE FROM `$table` WHERE `type` = 'language'";
+				$database->query($sql);
+			
+				// loop over all languages
+				while(false !== ($file = readdir($handle))) {
+					if ($file != '' && substr($file, 0, 1) != '.' && $file != 'index.php') {
+						load_language(WB_PATH . '/languages/' . $file);
+					}
+				}
+				closedir($handle);
+				// add success message
+				$msg[] = $MESSAGE['ADDON']['LANGUAGES_RELOADED'];
+				
+			} else {
+				// provide error message and stop
+				$admin->print_error($MESSAGE['ADDON']['ERROR_RELOAD'], $js_back);
+			}
+			break;
+	}
+}
+
+// output success message
+$admin->print_success(implode($msg, '<br />'), $js_back);
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/admin/addons/reload.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/admin/templates/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/templates/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/templates/index.php	(revision 1130)
@@ -0,0 +1,88 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'templates.htt');
+$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(
+	'URL_MODULES' => $admin->get_permission('modules') ? 
+		'<a href="' . ADMIN_URL . '/modules/index.php">' . $MENU['MODULES'] . '</a>' : '',
+	'URL_LANGUAGES' => $admin->get_permission('languages') ? 
+		'<a href="' . ADMIN_URL . '/languages/index.php">' . $MENU['LANGUAGES'] . '</a>' : '',
+	'URL_ADVANCED' => $admin->get_permission('admintools') ? 
+	'<a href="' . ADMIN_URL . '/modules/index.php?advanced">' . $TEXT['ADVANCED'] . '</a>' : '',
+	'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.8.0/trunk/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.8.0/trunk/wb/admin/templates/details.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/templates/details.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/templates/details.php	(revision 1130)
@@ -0,0 +1,110 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+
+// 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(THEME_PATH.'/templates');
+$template->set_file('page', 'templates_details.htt');
+$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();
+}
+
+// check if a template description exists for the displayed backend language
+$tool_description = false;
+if(function_exists('file_get_contents') && file_exists(WB_PATH.'/templates/'.$file.'/languages/'.LANGUAGE .'.php')) {
+	// read contents of the template language file into string
+	$data = @file_get_contents(WB_PATH .'/templates/' .$file .'/languages/' .LANGUAGE .'.php');
+	// use regular expressions to fetch the content of the variable from the string
+	$tool_description = get_variable_content('template_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 template-description with correct desription in users language
+	$row['description'] = $tool_description;
+}	
+
+$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.8.0/trunk/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.8.0/trunk/wb/admin/templates/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/templates/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/templates/uninstall.php	(revision 1130)
@@ -0,0 +1,152 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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']);
+}
+
+if (!function_exists("replace_all")) {
+	function replace_all ($aStr = "", &$aArray ) {
+		foreach($aArray as $k=>$v) $aStr = str_replace("{{".$k."}}", $v, $aStr);
+		return $aStr;
+	}
+}
+
+/**
+*	Check if the template is the standard-template or still in use
+*/
+if (!array_key_exists('CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE', $MESSAGE['GENERIC'] ) )
+	$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall this template <b>{{name}}</b> because it's the standardtemplate!";
+
+// check whether the template is used as default wb theme
+if($file == DEFAULT_THEME) {
+	$temp = array ('name' => $file );
+	$msg = replace_all( $MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'], $temp );
+	$admin->print_error( $msg );
+}
+
+if ($file == DEFAULT_TEMPLATE) {
+	$temp = array ('name' => $file );
+	$msg = replace_all( $MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'], $temp );
+	$admin->print_error( $msg );
+
+} else {
+	
+	/**
+	*	Check if the template is still in use by a page ...
+	*/
+	$info = $database->query("SELECT page_id, page_title FROM ".TABLE_PREFIX."pages WHERE template='".$file."' order by page_title");
+	
+	if ($info->numRows() > 0) {
+		/**
+		*	Template is still in use, so we're collecting the page-titles
+		*/
+		
+		/**
+		*	The base-message template-string for the top of the message
+		*/
+		if (!array_key_exists("CANNOT_UNINSTALL_IN_USE_TMPL", $MESSAGE['GENERIC'])) {
+			$add = $info->numRows() == 1 ? "this page" : "these pages";
+			$msg_template_str  = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled because it is still in use by {{pages}}";
+			$msg_template_str .= ":<br /><i>click for editing.</i><br /><br />";
+		} else {
+			$msg_template_str = $MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL'];
+			$temp = explode(";",$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES']);
+			$add = $info->numRows() == 1 ? $temp[0] : $temp[1];
+		}
+		/**
+		*	The template-string for displaying the Page-Titles ... in this case as a link
+		*/
+		$page_template_str = "- <b><a href='../pages/settings.php?page_id={{id}}'>{{title}}</a></b><br />";
+		
+		$values = array ('type' => 'Template', 'type_name' => $file, 'pages' => $add);
+		$msg = replace_all ( $msg_template_str,  $values );
+		
+		$page_names = "";
+		
+		while ($data = $info->fetchRow() ) {
+			
+			$page_info = array(
+				'id'	=> $data['page_id'], 
+				'title' => $data['page_title']
+			);
+			
+			$page_names .= replace_all ( $page_template_str, $page_info );
+		}
+		
+		/**
+		*	Printing out the error-message and die().
+		*/
+		$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'].$msg.$page_names);
+	}
+}
+
+// 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.8.0/trunk/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.8.0/trunk/wb/admin/templates/install.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/templates/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/templates/install.php	(revision 1130)
@@ -0,0 +1,145 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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);
+}
+
+// do not display notices and warnings during installation
+error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
+
+// 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" and "theme_directory"
+unset($template_directory);
+unset($theme_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);
+
+// Check if uploaded file is a valid Add-On zip file
+if (!($list && file_exists($temp_unzip . 'index.php'))) $admin->print_error($MESSAGE['GENERIC']['INVALID_ADDON_FILE']);
+
+// Include the templates info file
+require($temp_unzip.'info.php');
+
+// Perform Add-on requirement checks before proceeding
+require(WB_PATH . '/framework/addon.precheck.inc.php');
+preCheckAddon($temp_file);
+
+// 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 (versionCompare($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.8.0/trunk/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.8.0/trunk/wb/admin/admintools/tool.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/admintools/tool.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/admintools/tool.php	(revision 1130)
@@ -0,0 +1,56 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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>
+	<a href="<?php echo ADMIN_URL; ?>/admintools/index.php"><?php echo $HEADING['ADMINISTRATION_TOOLS']; ?></a>
+	&raquo;
+	<?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.8.0/trunk/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.8.0/trunk/wb/admin/admintools/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/admintools/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/admintools/index.php	(revision 1130)
@@ -0,0 +1,70 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'admintools.htt');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert required template variables
+$template->set_var('ADMIN_URL', ADMIN_URL);
+$template->set_var('THEME_URL', THEME_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' order by name");
+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.8.0/trunk/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.8.0/trunk/wb/admin/start/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/start/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/start/index.php	(revision 1130)
@@ -0,0 +1,136 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'start.htt');
+$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,
+								'THEME_URL' => THEME_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.8.0/trunk/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.8.0/trunk/wb/admin/logout/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/logout/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/logout/index.php	(revision 1130)
@@ -0,0 +1,62 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+
+// delete remember key of current user from database
+if (isset($_SESSION['USER_ID']) && isset($database)) {
+	$table = TABLE_PREFIX . 'users';
+	$sql = "UPDATE `$table` SET `remember_key` = '' WHERE `user_id` = '" . (int) $_SESSION['USER_ID'] . "'";
+	$database->query($sql);
+}
+
+// delete remember key cookie if set
+if (isset($_COOKIE['REMEMBER_KEY'])) {
+	setcookie('REMEMBER_KEY', '', time() - 3600, '/');
+}
+
+// delete most critical session variables manually
+$_SESSION['USER_ID'] = null;
+$_SESSION['GROUP_ID'] = null;
+$_SESSION['GROUPS_ID'] = null;
+$_SESSION['USERNAME'] = null;
+$_SESSION['PAGE_PERMISSIONS'] = null;
+$_SESSION['SYSTEM_PERMISSIONS'] = null;
+
+// overwrite session array
+$_SESSION = array();
+
+// delete session cookie if set
+if (isset($_COOKIE[session_name()])) {
+    setcookie(session_name(), '', time() - 42000, '/');
+}
+
+// delete the session itself
+session_destroy();
+
+// redirect to admin login
+die(header('Location: ' . ADMIN_URL . '/login/index.php'));
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/admin/index.php
===================================================================
--- tags/2.8.0/trunk/wb/admin/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/admin/index.php	(revision 1130)
@@ -0,0 +1,38 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/templates/classic_theme/theme.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/theme.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/theme.css	(revision 1130)
@@ -0,0 +1,389 @@
+html {overflow: -moz-scrollbars-vertical;} /* Force firefox to always show room for a vertical scrollbar */
+body,td,th,input,textarea {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+
+body {
+ background-color: #A8BCCB;
+ background-image: url(images/background.png);
+ background-repeat: repeat-x;
+ margin: auto;
+}
+
+img {
+	border: 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;
+}
+
+h4 {
+ margin: 0;
+ border-bottom: 1px solid #DDD;
+ padding-bottom: 5px;
+}
+
+a:link, a:visited, a:active {
+ color: #003366;
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: none;
+ color: #336699;
+}
+
+ul, li {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+label {
+ cursor: pointer;
+}
+
+input:focus, input:active, select:focus, textarea:focus {
+ background: #F1F8FD;
+}
+
+iframe {
+ border: 1px solid #35373a;
+}
+
+div.box {
+ font-size: small;
+ width: 100%;
+ text-align: right;
+ margin: -10px 0 0 0;
+}
+
+.container {
+ background: #fff url(images/bgtitle.png);
+ background-repeat: repeat-x;
+}
+
+.content {
+ padding: 20px;
+ height: 280px;
+ width: 750px;
+ text-align: left;
+ vertical-align: top;
+}
+
+.current a, .current a:link, .current a:active, .current a:visited {
+ background: #fff url(images/menuo.png);
+ background-repeat: repeat-x;
+ color: #fff;
+}
+
+.description {
+ vertical-align: top;
+ text-align: left;
+ width: 240px;
+ padding: 0px 0px 0px 3px;
+}
+
+.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;
+}
+
+.hide {
+ display: none;
+}
+
+.menu {
+ margin: 0;
+ padding: 0;
+ padding-top: 8px;
+ padding-bottom: 10px;
+ padding-left: 8px;
+ background: #000 url(images/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(images/menuo.png);
+ background-repeat: repeat-x;
+}
+
+.note {
+ color: #666666;
+ font-size: 10px;
+}
+
+.pages_list .icon_col td img {
+ display: block;
+ border-style: none;
+ float: left;
+ padding-right: 7px;
+}
+
+.pages_list table {
+ width: 730px;
+ background-color: #f0f0f0;
+}
+
+.pages_list table td {
+ padding: 3px;
+}
+
+.pages_list ul {margin:0;font-weight:normal; padding: 0px;}
+.pages_list ul li {list-style-type:none;margin:2px 0; padding:0px;}
+
+.page_list {
+ display: none;
+}
+
+.page_list_show li {
+ display: block;
+}
+
+img.page_list_rights {
+ border: none;
+ margin-right: 5px;
+ float: left;
+ margin-top: 2px;
+ margin-bottom: 2px;
+}
+
+.content input {
+	font-size: 12px;
+}
+.row_a {
+ background-color: #ECF3F7;
+}
+
+.row_b {
+ background-color: #DBEBF2;
+}
+
+.save, .reset {
+ width: 100px;
+}
+
+.section {
+ margin-top: 10px;
+ padding: 0px;
+ border: 1px solid #999999;
+ height: 75px;
+ width: 100%;
+ background-color: #FDFDFD;
+}
+
+.sections_header {
+ width: 100%;
+ height: 50px; 
+ margin-bottom: 10px;
+ background-color: #F0F0F0;
+ border: none;
+}
+
+.sections_header td {
+ padding: 5px;
+}
+
+.settings_table td {
+ vertical-align: top;
+ text-align: left;
+}
+
+.setting_name {
+ width: 20%;
+}
+
+.setting_value {
+ width: 80%;
+}
+
+.setting_value input, .setting_value select, .setting_value textarea {
+ width: 100%;
+}
+
+.setting_value textarea {
+ height: 50px;
+}
+
+.title {
+ width: 90%;
+ text-align: left;
+ font-weight: bold;
+ font-size: 14px;
+ color: #003366;
+ height: 16px;
+ padding: 4px 0px 0px 3px;
+}
+
+.tool_table td {
+ vertical-align: top;
+ text-align: left;
+}
+
+.tool_table ul {
+ margin: 0;
+ padding: 0;
+ margin-left: 20px;
+ margin-bottom: 10px;
+}
+
+.tool_table li {
+ padding-bottom: 5px;
+ list-style-type: disc;
+}
+
+.value_input input, .value_input text, .value_input select {
+ width: 100%;
+}
+
+#file_mode input {
+ width: 12px;
+ height: 12px;
+}
+
+#dir_mode input {
+ width: 12px;
+ height: 12px;
+}
+
+#hide2 {
+ display: none;
+}
+
+/* CSS STYLES FOR THE PAGES SECTION */
+
+table.pages_view {
+ width: 730px;
+ border: 0;
+ border-spacing: 0px;
+ background-color: #ECF3F7;
+}
+
+table.pages_view td {
+ padding: 3px;
+}
+
+table.pages_view tr:hover {
+ background-color: #F1F8DD;
+}
+
+/* FORMS */
+
+.submit, .cancel {
+ width: 100px;
+ margin-top: 5px;
+}
+
+.form_submit {
+ width: 100%;
+}
+
+.form_submit .left {
+ text-align: left;
+}
+
+.form_submit .right {
+ text-align: right;
+}
+
+.input_small {
+ width: 20px;
+}
+
+.input_narrow {
+ width: 100px;
+}
+
+.input_normal {
+ width: 120px;
+}
+
+.input_medium {
+ width: 150px;
+}
+
+.input_wide {
+ width: 200px;
+}
+
+.input_large {
+ width: 300px;
+}
+
+.input_full {
+ width: 100%;
+}
+
+select option.disabled {
+ color: #aaa;
+}
+
+.jsadmin_drag img {
+ padding: 3px 0;
+ margin-top: 1px;
+ vertical-align: top;
+ cursor: pointer;
+}
+
+.modify_link {
+ padding-top: 4px;
+ padding-left: 7px;
+ text-indent: 7px;
+}
+
+.header_list_page_title {text-align:left;}
+.header_list_menu_title {width:240px; text-align:left;}
+.header_list_page_id {width:40px; text-align:left;}
+.header_list_actions {width:150px; text-align:left;}
+
+.list_page_title {text-align:left;}
+.list_menu_title {width:240px;text-align:left;}
+.list_page_id {width:40px;text-align:left;}
+.list_actions {width:20px;text-align:left;}
+
+/* Ende */
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/theme.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.8.0/trunk/wb/templates/classic_theme/images/files/unknown.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/images/files/unknown.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/classic_theme/images/files/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/images/files/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/images/files/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: wb_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/images/files/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.8.0/trunk/wb/templates/classic_theme/images/flags/yt.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/images/flags/kp.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/classic_theme/images/flags/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/images/flags/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/images/flags/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: classic
+ * This theme is the WB backend Theme from WB 2.7
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/images/flags/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.8.0/trunk/wb/templates/classic_theme/images/flags/cx.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/images/flags/bi.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/classic_theme/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/images/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: classic
+ * This theme is the WB backend Theme from WB 2.7
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/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.8.0/trunk/wb/templates/classic_theme/images/modify_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/images/up_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/media.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/media.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/media.htt	(revision 1130)
@@ -0,0 +1,122 @@
+<!-- BEGIN main_block -->
+
+<h2>{HEADING_BROWSE_MEDIA}</h2>
+
+<iframe width="100%" height="320px" align="middle" 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}{HOME_DIRECTORY}" selected="selected">{MEDIA_DIRECTORY}{HOME_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}{HOME_DIRECTORY}" selected="selected">{MEDIA_DIRECTORY}{HOME_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" 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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/header.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/header.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/header.htt	(revision 1130)
@@ -0,0 +1,52 @@
+<!-- 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>
+<meta http-equiv="content-type" content="text/html; charset={CHARSET}" />
+<meta http-equiv="content-language" content="{LANGUAGE}" />
+<meta name="description" content="{TEXT_ADMINISTRATION}" />
+<meta name="keywords" content="{TEXT_ADMINISTRATION}" />
+<link href="{THEME_URL}/theme.css" rel="stylesheet" type="text/css" />
+<link href="{WB_URL}/include/jquery/plugins/jquery-ui.css" rel="stylesheet" type="text/css" />
+{BACKEND_MODULE_CSS}
+{BACKEND_MODULE_JS}
+<script type="text/javascript" src="{WB_URL}/include/editarea/edit_area_full.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="{THEME_URL}/images/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="{THEME_URL}/images/home.png" border="0" alt="{TITLE_START}" /></a>
+         &nbsp;&nbsp;<a href="{URL_VIEW}" target="_blank" title="{TITLE_VIEW}"><img src="{THEME_URL}/images/view.png" border="0" alt="{WB_URL}" /></a>
+	&nbsp; <a href="{URL_HELP}" target="_blank" title="{TITLE_HELP}"><img src="{THEME_URL}/images/help.png" border="0" alt="{TITLE_HELP}" /></a>
+         &nbsp; <a href="{ADMIN_URL}/logout" title="{TITLE_LOGOUT}"><img src="{THEME_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" class="container">
+<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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/footer.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/footer.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/footer.htt	(revision 1130)
@@ -0,0 +1,42 @@
+<!-- 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>
+
+<script src="{WB_URL}/include/jquery/jquery-min.js" type="text/javascript"></script>
+<script src="{WB_URL}/include/jquery/jquery-ui-min.js" type="text/javascript"></script>
+<script src="{WB_URL}/include/jquery/jquery-insert.js" type="text/javascript"></script>
+<!--[if lt IE 7]><script type="text/javascript" src="{WB_URL}/include/jquery/plugins/unitpngfix.js"></script><![endif]-->
+<script language="javascript" type="text/javascript">
+
+
+        if($(".jcalendar").length) {
+            $.insert("{WB_URL}/include/jscalendar/calendar-system.css");
+          }
+
+        if($(".jsadmin").length) {
+            $.insert("{WB_URL}/modules/jsadmin/backend.css");
+          }
+
+        if($("a[rel^='lightbox']").length) {
+            $.insert("{WB_URL}/include/jquery/plugins/jquery-slimbox2.css");
+            $.insert("{WB_URL}/include/jquery/plugins/jquery-slimbox2-min.js");
+          }
+
+</script>
+{BACKEND_BODY_MODULE_JS}
+</body>
+</html>
+<!-- END footer_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/login_forgot.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/login_forgot.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/login_forgot.htt	(revision 1130)
@@ -0,0 +1,78 @@
+<!-- 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}" />
+<meta http-equiv="content-language" content="{LANGUAGE}" />
+<meta name="description" content="Retrieve Login Details" />
+<meta name="keywords" content="Retrieve Login Details" />
+<link href="{THEME_URL}/theme.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="{THEME_URL}/images/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;" class="container">
+<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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/login.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/login.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/login.htt	(revision 1130)
@@ -0,0 +1,94 @@
+<!-- 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}" />
+<meta http-equiv="content-language" content="{LANGUAGE}" />
+<meta name="description" content="{TEXT_LOGIN}" />
+<meta name="keywords" content="{TEXT_LOGIN}" />
+<link href="{THEME_URL}/theme.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="{THEME_URL}/images/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;" class="container">
+<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 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>
+			<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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages_modify.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages_modify.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages_modify.htt	(revision 1130)
@@ -0,0 +1,22 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" 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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages_sections.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages_sections.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages_sections.htt	(revision 1130)
@@ -0,0 +1,118 @@
+<!-- BEGIN main_block -->
+        <div class="jsadmin jcalendar hide"></div>
+        <table cellpadding="0" cellspacing="0" class="sections_header">
+            <tr>
+                <td valign="middle" align="left">
+                    <h2>{HEADING_MANAGE_SECTIONS}</h2>
+                </td>
+                <td>ID: {PAGE_ID}</td>
+                <td align="right">{TEXT_CURRENT_PAGE}: <b>{PAGE_TITLE}</b>
+                    -
+                    <a href="{ADMIN_URL}/pages/modify.php?page_id={PAGE_ID}">{HEADING_MODIFY_PAGE}</a>
+                    -
+                    <a href="{ADMIN_URL}/pages/settings.php?page_id={PAGE_ID}">{TEXT_CHANGE_SETTINGS}</a>
+                </td>
+            </tr>
+        </table>
+
+        <form name="section_properties" action="{ADMIN_URL}/pages/sections_save.php?page_id={VAR_PAGE_ID}" method="post">
+        <table cellpadding="5" cellspacing="0" align="center" border="0" width="100%">
+                <tr>
+                	<td valign="middle" width="{NAME_SIZE}">{TEXT_TYPE}:</td>
+                	<td {STYLE_DISPLAY_SECTION_BLOCK}>{TEXT_BLOCK}:</td>
+                	<td valign="middle" align="left">{TEXT_PUBL_START_DATE}:</td>
+                	<td valign="middle" align="left">{TEXT_PUBL_END_DATE}:</td>
+                	<td valign="middle" align="left" colspan="3">{TEXT_ACTIONS}:</td>
+                    <td valign="middle" align="left">{TEXT_SID}</td>
+                    <td valign="middle" align="left"{DISPLAY_DEBUG}>{TEXT_PID}</td>
+                </tr>
+<!-- BEGIN section_block -->
+            	<tr onmouseover="this.style.backgroundColor = '#F1F8DD'" onmouseout="this.style.backgroundColor = '#FFF'">
+    				<td style="display: none;">
+                      <input type="hidden" name="page_id" value="{VAR_PAGE_ID}"  />
+                      <input type="hidden" name="section_id" value="{VAR_SECTION_ID}"  />
+                      {VAR_SECTION_ID}
+                    </td>
+
+                    <td valign="middle" width="{NAME_SIZE}">{LINK_MODIFY_URL_VAR_MODUL_NAME}</td>
+
+                    <td valign="middle" class="{INPUT_ATTRIBUTE}"{STYLE_DISPLAY_SECTION_BLOCK}>
+                    	<select name="block{VAR_SECTION_ID}" class="input_narrow">
+                        {SET_NONE_DISPLAY_OPTION}
+                    	<!-- BEGIN block_block -->
+                    		<option value="{VALUE}"{SELECTED}>{NAME}</option>
+                    	<!-- END block_block -->
+                    	</select>
+                    </td>
+
+                    <td valign="middle" nowrap="nowrap" width="120"><input type="text" id="start_date{VAR_SECTION_ID}" name="start_date{VAR_SECTION_ID}" value="{VALUE_PUBL_START}" class="input_normal" />
+                        <img src="{THEME_URL}/images/{CLOCK_16_PNG}" id="trigger_start{VAR_SECTION_ID}" style="cursor: pointer;" title="{TEXT_CALENDAR}" alt="start"  />
+                        <img src="{THEME_URL}/images/{CLOCK_DEL_16_PNG}" style="cursor: pointer;" alt="del" title="{TEXT_DELETE_DATE}" onclick="document.section_properties.start_date{VAR_SECTION_ID}.value=''" />
+                    </td>
+
+                    <td valign="middle" nowrap="nowrap" width="120"><input type="text" id="end_date{VAR_SECTION_ID}" name="end_date{VAR_SECTION_ID}" value="{VALUE_PUBL_END}" class="input_narrow" />
+                        <img src="{THEME_URL}/images/{CLOCK_16_PNG}" id="trigger_stop{VAR_SECTION_ID}" alt="end" style="cursor: pointer;" title="{TEXT_CALENDAR}"  />
+                        <img src="{THEME_URL}/images/{CLOCK_DEL_16_PNG}" style="cursor: pointer;" alt="del" title="{TEXT_DELETE_DATE}" onclick="document.section_properties.end_date{VAR_SECTION_ID}.value=''" />
+                    </td>
+
+                    <td valign="middle" width="20">
+                        {VAR_MOVE_UP_URL}
+                    </td>
+
+                    <td valign="middle"  width="20">
+                        {VAR_MOVE_DOWN_URL}
+                    </td>
+
+                    <td valign="middle" width="20">
+                        <a href="javascript: confirm_link('{TEXT_ARE_YOU_SURE}', '{ADMIN_URL}/pages/sections.php?page_id={VAR_PAGE_ID}&amp;section_id={VAR_SECTION_ID}');">
+                        <img src="{THEME_URL}/images/{DELETE_16_PNG}" alt="X" />
+                        </a>
+                    </td>
+                    <td valign="middle" align="right">
+                       {VAR_SECTION_ID}
+                    </td>
+                    <td valign="middle" align="right"{DISPLAY_DEBUG}>
+                       {POSITION}
+                    </td>
+                </tr>
+<!-- END section_block -->
+                <tr>
+                    <td valign="middle" align="right" colspan="{DEBUG_COLSPAN_SIZE}"><input type="submit" name="save" value="{TEXT_SAVE}" class="input_medium" /></td>
+    	        </tr>
+	    </table>
+    </form>
+
+	<h2>{TEXT_ADD_SECTION}</h2>
+	<form name="add" action="{ADMIN_URL}/pages/sections.php?page_id={VAR_PAGE_ID}" method="post">
+        <input type="hidden" name="page_id" value="{VAR_PAGE_ID}"  />
+    	<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%">
+    	<tr>
+    		<td width="100%">
+    			<select name="module" class="input_full">
+                <!-- BEGIN module_block -->
+    			 <option value="{VALUE}"{SELECTED}>{NAME}</option>
+                 <!-- END module_block -->
+    			</select>
+    		</td>
+			<td >
+    			<input type="submit" name="submit" value="{TEXT_ADD}" class="input_medium" />
+    		</td>
+    	</tr>
+    	</table>
+	</form>
+    <!-- BEGIN calendar_block -->
+    <script type="text/javascript" >
+         var section_id = '{VAR_SECTION_ID}';
+         var start_date = '{start_date}';
+         var end_date = '{end_date}';
+         var trigger_start = '{trigger_start}';
+         var trigger_end = '{trigger_end}';
+         var jscal_today = '{jscal_today}';
+         var jscal_ifformat = '{jscal_ifformat}';
+         var jscal_firstday = {jscal_firstday};
+         var showsTime = {showsTime};
+         var timeFormat = {timeFormat};
+    </script>
+    <script type="text/javascript" src="{ADMIN_URL}/pages/page_calendar.js" ></script>
+    <!-- END calendar_block -->
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/settings.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/settings.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/settings.htt	(revision 1130)
@@ -0,0 +1,625 @@
+<!-- BEGIN main_block -->
+
+<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>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_DESCRIPTION}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_description" cols="50" rows="3">{WEBSITE_DESCRIPTION}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_KEYWORDS}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_keywords" cols="50" rows="3" >{WEBSITE_KEYWORDS}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_HEADER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_header" cols="50" rows="3">{WEBSITE_HEADER}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_FOOTER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_footer" cols="50" rows="3">{WEBSITE_FOOTER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_REDIRECT_AFTER}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="redirect_timer" value="{REDIRECT_TIMER}" />
+	</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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 align="left" nowrap="nowrap">
+		<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 title="{MODE_SWITCH_WARNING}" 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} style="background: url({FLAG}.png) no-repeat center left; padding-left: 20px;">{NAME} ({CODE})</option>
+			<!-- END language_list_block -->
+		</select>
+	</td>
+</tr>
+<tr {DISPLAY_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 class="setting_name">{TEXT_THEME}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="default_theme">
+		<!-- BEGIN theme_list_block -->
+			<option value="{FILE}"{SELECTED}>{NAME}</option>
+		<!-- END theme_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 title="{MODE_SWITCH_WARNING}" 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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_HEADER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_header" style="height: 100px;" cols="50" rows="3">{SEARCH_HEADER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_RESULTS_HEADER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_results_header" cols="50" rows="3">{SEARCH_RESULTS_HEADER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_RESULTS_LOOP}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_results_loop" cols="50" rows="3">{SEARCH_RESULTS_LOOP}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_RESULTS_FOOTER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_results_footer" cols="50" rows="3">{SEARCH_RESULTS_FOOTER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_FOOTER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_footer" cols="50" rows="3">{SEARCH_FOOTER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 title="{MODE_SWITCH_WARNING}" 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 {DISPLAY_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 width="100" nowrap="nowrap">
+				<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 width="100" nowrap="nowrap">
+				<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 width="100" nowrap="nowrap">
+				<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 width="100" nowrap="nowrap">
+				<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 width="100" nowrap="nowrap">
+				<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 width="100" nowrap="nowrap">
+				<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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_SEC_ANCHOR}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="sec_anchor" value="{SEC_ANCHOR}" />
+	</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 title="{MODE_SWITCH_WARNING}" onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+	</td>
+</tr>
+</table>
+
+</form>
+
+<hr size="1" />
+
+<button title="{MODE_SWITCH_WARNING}" onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+<br />
+<font class="{DISPLAY_ADVANCED_BUTTON}">
+{MODE_SWITCH_WARNING}
+</font>
+<script src="{ADMIN_URL}/settings/setting.js" language="javascript" type="text/javascript"></script>
+<!-- END main_block -->
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages_settings.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages_settings.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages_settings.htt	(revision 1130)
@@ -0,0 +1,169 @@
+<!-- BEGIN main_block -->
+
+<script src="{ADMIN_URL}/pages/page_settings.js" type="text/javascript" language="javascript"></script>
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom: 10px;">
+<tr style="background-color: #F0F0F0;">
+	<td valign="middle" align="left">
+		<h2>{HEADING_MODIFY_PAGE_SETTINGS}</h2>
+	</td>
+	<td nowrap="nowrap">ID: {PAGE_ID}</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>
+	<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>
+	<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} style="background: {FLAG_ROOT_ICON} no-repeat center left; padding-left: 20px;">{TITLE}</option>
+			<!-- END page_list_block2 -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<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" rows="10" cols="1" style="width: 236px; height: 50px;">{DESCRIPTION}</textarea>
+	</td>
+</tr>
+<tr>
+	<td width="100" valign="top">{TEXT_KEYWORDS}:</td>
+	<td>
+		<textarea name="keywords" rows="10" cols="1" 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>
+	<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 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 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} style="background: {FLAG_LANG_ICONS} no-repeat center left; padding-left: 20px;">{NAME}</option>
+			<!-- END language_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/users.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/users.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/users.htt	(revision 1130)
@@ -0,0 +1,37 @@
+<!-- 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">
+		<!-- BEGIN manage_groups_block -->
+		<a href="{ADMIN_URL}/groups/index.php">{TEXT_MANAGE_GROUPS}</a>
+		<!-- END manage_groups_block -->
+	</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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/groups.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/groups.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/groups.htt	(revision 1130)
@@ -0,0 +1,37 @@
+<!-- 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">
+		<!-- BEGIN manage_users_block -->
+		<a href="{ADMIN_URL}/users/index.php">{TEXT_MANAGE_USERS}</a>
+		<!-- END manage_users_block -->
+	</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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/access.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/access.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/access.htt	(revision 1130)
@@ -0,0 +1,48 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="0" cellspacing="0" border="0" width="99%" align="center">
+<tr>
+	<td align="center" valign="top">
+		<!-- BEGIN users_block -->	
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_USERS} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/users/index.php">
+					<img src="{THEME_URL}/icons/users.png" alt="{USERS}" />
+				</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>
+		<!-- END users_block -->
+		<!-- BEGIN groups_block -->		
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_GROUPS} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/groups/index.php">
+					<img src="{THEME_URL}/icons/groups.png" alt="{GROUPS}" />
+				</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>
+		<!-- END groups_block -->
+	</td>
+</tr>
+</table>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/addons.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/addons.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/addons.htt	(revision 1130)
@@ -0,0 +1,68 @@
+<!-- BEGIN main_block -->
+<div class="box">
+	{URL_ADVANCED}
+</div>
+
+<table cellpadding="0" cellspacing="0" border="0" width="99%" align="center">
+<tr>
+	<td align="center" valign="top">
+		<!-- BEGIN modules_block -->
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_MODULES} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2"><a href="{ADMIN_URL}/modules/index.php"><img src="{THEME_URL}/icons/modules.png" alt="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>
+		<!-- END modules_block -->		
+		<!-- BEGIN templates_block -->
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_TEMPLATES} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2"><a href="{ADMIN_URL}/templates/index.php"><img src="{THEME_URL}/icons/templates.png" alt="{TEMPLATES}" /></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>
+		<!-- END templates_block -->
+		<!-- BEGIN languages_block -->
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_LANGUAGES} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2"><a href="{ADMIN_URL}/languages/index.php"><img src="{THEME_URL}/icons/languages.png" alt="{LANGUAGES}" /></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>
+		<!-- END languages_block -->
+		<!-- BEGIN reload_block -->
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_RELOAD} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2"><img src="{THEME_URL}/icons/admintools.png" alt="{TXT_ADMIN_SETTINGS}" /></td>
+			<td class="title">{TXT_ADMIN_SETTINGS}</td>
+		</tr>
+		<tr>
+			<td class="description">
+				<form action="{RELOAD_URL}" method="post">
+				{MESSAGE_RELOAD_ADDONS}<br style="margin-bottom: 0.5em" />
+				<input {DISPLAY_MODULES} type="checkbox" name="reload_modules" id="reload_modules" value="true" />
+				<label {DISPLAY_MODULES} for="reload_modules">{MODULES}</label>
+				<input {DISPLAY_TEMPLATES} type="checkbox" name="reload_templates" id="reload_templates" value="true" />
+				<label {DISPLAY_TEMPLATES} for="reload_templates">{TEMPLATES}</label>
+				<input {DISPLAY_LANGUAGES} type="checkbox" name="reload_languages" id="reload_languages" value="true" />
+				<label {DISPLAY_LANGUAGES} for="reload_languages">{LANGUAGES}</label>
+				<input type="submit" name="submit" value="{TEXT_RELOAD}" />
+				</form>
+			</td>
+		</tr>
+		</table>
+		<!-- END reload_block -->
+	</td>
+</tr>
+</table>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/start.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/start.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/start.htt	(revision 1130)
@@ -0,0 +1,153 @@
+<!-- BEGIN main_block -->
+
+<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="{THEME_URL}/icons/pages.png" alt="{PAGES}" />
+				</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="{THEME_URL}/icons/addons.png" alt="{ADDONS}" />
+				</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="{THEME_URL}/icons/settings.png" alt="{SETTINGS}" />
+				</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="{THEME_URL}/icons/access.png" alt="{ACCESS}" />
+				</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="{THEME_URL}/icons/media.png" alt="{MEDIA}" />
+				</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="{THEME_URL}/icons/preferences.png" alt="{PREFERENCES}" />
+				</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="{THEME_URL}/icons/admintools.png" alt="{ADMINTOOLS}" />
+				</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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/templates.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/templates.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/templates.htt	(revision 1130)
@@ -0,0 +1,79 @@
+<!-- BEGIN main_block -->
+
+<div class="box">
+	{URL_MODULES}&nbsp;&nbsp;{URL_LANGUAGES}
+</div>
+
+<br />
+{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="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="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>
+
+<br />
+</form>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/languages.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/languages.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/languages.htt	(revision 1130)
@@ -0,0 +1,76 @@
+<!-- BEGIN main_block -->
+
+<div class="box">
+	{URL_MODULES}&nbsp;&nbsp;{URL_TEMPLATES}
+</div>
+
+<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="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="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>
+
+<br />
+</form>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/modules.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/modules.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/modules.htt	(revision 1130)
@@ -0,0 +1,119 @@
+<!-- BEGIN main_block -->
+
+<div class="box">
+	{URL_TEMPLATES}&nbsp;&nbsp;{URL_LANGUAGES}&nbsp;&nbsp;{URL_ADVANCED}
+</div>
+
+<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="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="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>
+
+<br />
+</form>
+
+<div class="{DISPLAY_MANUAL_INSTALL}">
+<h2>{HEADING_INVOKE_MODULE_FILES}</h2>
+<p>{TEXT_MANUAL_INSTALLATION}</p>
+
+<form name="details" action="manual_install.php" method="post" class="{INSTALL_VISIBLE}">
+	<strong>{TEXT_FILE}:</strong> "install.php"&nbsp;&nbsp;&nbsp;
+	<input type="hidden" name="action" value="install" />
+	<select name="file" style="width: 250px;">
+	<option value="" selected="selected">{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN install_list_block -->
+		<option value="{VALUE}">{NAME}</option>
+		<!-- END install_list_block -->
+	</select>
+	<input type="submit" name="submit" value="{TEXT_EXECUTE}" style="width: 100px; margin-left: 1em;" />
+</form>
+
+<form name="details" action="manual_install.php" method="post" class="{UPGRADE_VISIBLE}">
+	<br />{TEXT_FILE}: "upgrade.php"
+	<input type="hidden" name="action" value="upgrade" />
+	<select name="file" style="width: 250px;">
+	<option value="" selected="selected">{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN upgrade_list_block -->
+		<option value="{VALUE}">{NAME}</option>
+		<!-- END upgrade_list_block -->
+	</select>
+	<input type="submit" name="submit" value="{TEXT_EXECUTE}" style="width: 100px; margin-left: 1em;" />
+</form>
+
+<form name="details" action="manual_install.php" method="post" class="{UNINSTALL_VISIBLE}">
+	<br />{TEXT_FILE}: "uninstall.php"
+	<input type="hidden" name="action" value="uninstall" />
+	<select name="file" style="width: 250px;">
+	<option value="" selected="selected">{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN uninstall_list_block -->
+		<option value="{VALUE}">{NAME}</option>
+		<!-- END uninstall_list_block -->
+	</select>
+	<input type="submit" name="submit" value="{TEXT_EXECUTE}" style="width: 100px; margin-left: 1em;" />
+</form>
+
+<p style="color: red;">{TEXT_MANUAL_INSTALLATION_WARNING}</p>
+</div>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/users_form.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/users_form.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/users_form.htt	(revision 1130)
@@ -0,0 +1,94 @@
+<!-- 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>
+
+<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="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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/groups_form.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/groups_form.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/groups_form.htt	(revision 1130)
@@ -0,0 +1,293 @@
+<!-- BEGIN main_block -->
+
+<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>
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_ADMINTOOLS}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="admintools_settings" id="admintools_settings" type="checkbox" value="1" {admintools_settings_checked} /></td>
+	<td><label for="admintools_settings">{TEXT_MODIFY_SETTINGS}</label></td>
+	<td>&nbsp;</td>
+	<td>&nbsp;</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>
+
+<tr>
+	<td colspan="2"><input type="submit" name="submit" value="{SUBMIT_TITLE}" /></td>
+    <td colspan="2" align="right"><input type="reset" name="reset" value="{TEXT_RESET}" /></td>
+</tr>
+</table>
+</form>
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="center">
+	<form name="advanced" action="{ADVANCED_ACTION}" method="post">
+        <input type="hidden" name="group_id" value="{GROUP_ID}" />
+        <input type="hidden" name="action" value="modify" />
+        <input type="submit" name="advanced" onclick="window.location = '{ADVANCED_LINK}';" value="{ADVANCED_BUTTON}" />
+    </form>
+	</td>
+</tr>
+</table>
+
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/admintools.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/admintools.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/admintools.htt	(revision 1130)
@@ -0,0 +1,30 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="3" cellspacing="0" border="0" align="center" width="100%" class="tool_table">
+
+<tr class="advanced">
+	<td colspan="3">
+		<a name="administration_tools"></a>
+		<h2>{HEADING_ADMINISTRATION_TOOLS}</h2>
+	</td>
+</tr>
+<tr>
+	<td colspan="3">
+		<ul>
+		<!-- BEGIN tool_list_block -->
+		<li>
+		<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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/pages.htt	(revision 1130)
@@ -0,0 +1,98 @@
+<!-- BEGIN main_block -->
+<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 width="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>
+    	<td width="70">{TEXT_TYPE}:</td>
+    	<td width="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>
+    	<td width="70">{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}"{DISABLED} style="background: {FLAG_ROOT_ICON} no-repeat center left; padding-left: 20px;">{TITLE}</option>
+    			<!-- END page_list_block2 -->
+    		</select>
+    	</td>
+    </tr>
+    <tr>
+    	<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>
+<!-- Addition for remembering expanded state of pages -->
+<script type="text/javascript" language="javascript">
+var THEME_URL = '{THEME_URL}';
+var WB_URL = '{WB_URL}';
+</script>
+<script src="{ADMIN_URL}/pages/page_index.js" type="text/javascript" language="javascript"></script>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/preferences.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/preferences.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/preferences.htt	(revision 1130)
@@ -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} style="background: url({FLAG}.png) no-repeat center left; padding-left: 20px;">{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>
+	<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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: classic
+ * This theme is the WB backend Theme from WB 2.7
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/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.8.0/trunk/wb/templates/classic_theme/templates/error.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/error.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/error.htt	(revision 1130)
@@ -0,0 +1,6 @@
+<!-- BEGIN main_block -->
+<div style='text-align:center;'>
+	<p>{MESSAGE}</p>
+	<p><a href="{LINK}">{BACK}</a></p>
+</div>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/warning.html
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/warning.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/warning.html	(revision 1130)
@@ -0,0 +1,48 @@
+<!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(../images/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;
+}
+div#message {
+	text-align: center;
+}
+--></style></head>
+<body>
+
+<div id='message'>
+	<h1>Excessive Invalid Logins</h1>
+	You have attempted to login too many times
+</div>
+
+</body>
+</html>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/media_browse.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/media_browse.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/media_browse.htt	(revision 1130)
@@ -0,0 +1,80 @@
+<!-- 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>
+<link href="{THEME_URL}/media.css" rel="stylesheet" type="text/css" />
+<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="{THEME_URL}/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="{THEME_URL}/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="{THEME_URL}/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="{THEME_URL}/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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/templates_details.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/templates_details.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/templates_details.htt	(revision 1130)
@@ -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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/media_rename.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/media_rename.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/media_rename.htt	(revision 1130)
@@ -0,0 +1,58 @@
+<!-- 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>Rename Media</title>
+<link href="{THEME_URL}/media.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" align="center">
+<tr>
+	<td class="rename">
+<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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/success.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/success.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/success.htt	(revision 1130)
@@ -0,0 +1,16 @@
+<!-- BEGIN main_block -->
+<center>
+	
+	{MESSAGE}
+	
+	<script language="javascript" type="text/javascript">
+		setTimeout("location.href='{REDIRECT}'", {REDIRECT_TIMER});
+	</script>
+	
+	<noscript>
+		<br /><br />
+		<a href="{REDIRECT}">{NEXT}</a>
+	</noscript>
+	
+</center>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/languages_details.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/languages_details.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/languages_details.htt	(revision 1130)
@@ -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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/templates/modules_details.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/templates/modules_details.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/templates/modules_details.htt	(revision 1130)
@@ -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
Index: tags/2.8.0/trunk/wb/templates/classic_theme/info.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/info.php	(revision 1130)
@@ -0,0 +1,40 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: classic_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Matthias Gallas
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// OBLIGATORY WEBSITE BAKER VARIABLES
+$template_directory			= 'classic_theme';
+$template_name				= 'classic_theme';
+$template_function			= 'theme';
+$template_version			= '2.80';
+$template_platform			= '2.8';
+$template_author			= 'Matthias Gallas';
+$template_license			= '<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>';
+$template_license_terms		= '-';
+$template_description		= 'Backend theme for Website Baker 2.7.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/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.8.0/trunk/wb/templates/classic_theme/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/languages/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: classic
+ * This theme is the WB backend Theme from WB 2.7
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/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.8.0/trunk/wb/templates/classic_theme/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/languages/NO.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+$template_description 	= 'Klassisk designmal for Admin sidene fra Website Baker 2.7.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/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.8.0/trunk/wb/templates/classic_theme/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/languages/EN.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+$template_description 	= 'Backend theme from Website Baker 2.7.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/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.8.0/trunk/wb/templates/classic_theme/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/languages/DE.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+$template_description 	= 'Das Backend-Theme von Websitebaker 2.7.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/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.8.0/trunk/wb/templates/classic_theme/icons/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/icons/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/icons/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: classic
+ * This theme is the WB backend Theme from WB 2.7
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/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.8.0/trunk/wb/templates/classic_theme/icons/templates.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/icons/view.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/classic_theme/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: classic
+ * This theme is the WB backend Theme from WB 2.7
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent this file from being accessed directly
+if (!defined('WB_PATH')) die(header('Location: ../../index.php'));
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/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.8.0/trunk/wb/templates/classic_theme/media.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/classic_theme/media.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/classic_theme/media.css	(revision 1130)
@@ -0,0 +1,37 @@
+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;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	text-decoration: none;
+	color: #336699;
+}
+input:focus, select:focus, textarea:focus {
+	background: #F1F8FD;
+}
+.content {
+	width: 100%;
+	height: 100px;
+}
+.rename {
+    background: #fff url(images/bgtitle.png) ;
+    background-repeat:repeat-x;
+	padding: 20px;
+}
+.hide {
+	display: none;
+}

Property changes on: tags/2.8.0/trunk/wb/templates/classic_theme/media.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.8.0/trunk/wb/templates/wb_theme/theme.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/theme.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/theme.css	(revision 1130)
@@ -0,0 +1,390 @@
+html {overflow: -moz-scrollbars-vertical;} /* Force firefox to always show room for a vertical scrollbar */
+body,td,th,input,textarea {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+
+body {
+ background-color: #A8BCCB;
+ /*background-image: url(images/background.png);*/
+ background-repeat: repeat-x;
+ margin: auto;
+}
+
+img {
+	border: 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;
+}
+
+h4 {
+ margin: 0;
+ border-bottom: 1px solid #DDD;
+ padding-bottom: 5px;
+}
+
+a:link, a:visited, a:active {
+ color: #003366;
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: none;
+ color: #336699;
+}
+
+ul, li {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+label {
+ cursor: pointer;
+}
+
+input:focus, input:active, select:focus, textarea:focus {
+ background: #F1F8FD;
+}
+
+iframe {
+ border: 1px solid #35373a;
+}
+
+div.box {
+ font-size: small;
+ width: 100%;
+ text-align: right;
+ margin: -10px 0 0 0;
+}
+
+.container {
+ background: #fff url(images/bgtitle.png);
+ background-repeat: repeat-x;
+}
+ 
+.content {
+ padding: 20px;
+ height: 280px;
+ width: 750px;
+ text-align: left;
+ vertical-align: top;
+}
+
+.current a, .current a:link, .current a:active, .current a:visited {
+ background: #fff url(images/menuo.png);
+ background-repeat: repeat-x;
+ color: #fff;
+}
+
+.description {
+ vertical-align: top;
+ text-align: left;
+ width: 240px;
+ padding: 0px 0px 0px 3px;
+}
+
+.graphic {
+ width: 50px;
+ height: 50px;
+ border: 4px solid #FDFDFD;
+ padding-left: 3px;
+}
+
+.graphic img {
+ vertical-align: middle;
+ background-color: #FFFFFF;
+ padding: 3px 12px 3px 3px;
+ margin-right: 12px;
+ border-right: 3px solid silver;
+}
+
+.hide {
+ display: none;
+}
+
+.menu {
+ margin: 0;
+ padding: 0;
+ padding-top: 8px;
+ padding-bottom: 10px;
+ padding-left: 8px;
+ background: #000 url(images/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(images/menuo.png);
+ background-repeat: repeat-x;
+}
+
+.note {
+ color: #666666;
+ font-size: 10px;
+}
+
+.pages_list .icon_col td img {
+ display: block;
+ border-style: none;
+ float: left;
+ padding-right: 7px;
+}
+
+.pages_list table {
+ width: 730px;
+ background-color: #f0f0f0;
+}
+
+.pages_list table td {
+ padding: 3px;
+}
+
+.pages_list ul {margin:0;font-weight:normal; padding: 0px;}
+.pages_list ul li {list-style-type:none;margin:2px 0; padding:0px;}
+
+.page_list {
+ display: none;
+}
+
+.page_list_show li {
+ display: block;
+}
+
+img.page_list_rights {
+ border: none;
+ margin-right: 5px;
+ float: left;
+ margin-top: 2px;
+ margin-bottom: 2px;
+}
+
+.content input {
+	font-size: 12px;
+}
+.row_a {
+ background-color: #ECF3F7;
+}
+
+.row_b {
+ background-color: #DBEBF2;
+}
+
+.save, .reset {
+ width: 100px;
+}
+
+.section {
+ margin-top: 10px;
+ padding: 0px;
+ /*border: 1px solid #999999;*/
+ height: 75px;
+ width: 100%;
+ background-color: #FDFDFD;
+}
+
+.sections_header {
+ width: 100%;
+ height: 50px; 
+ margin-bottom: 10px;
+ background-color: #F0F0F0;
+ border: none;
+}
+
+.sections_header td {
+ padding: 5px;
+}
+
+.settings_table td {
+ vertical-align: top;
+ text-align: left;
+}
+
+.setting_name {
+ width: 20%;
+}
+
+.setting_value {
+ width: 80%;
+}
+
+.setting_value input, .setting_value select, .setting_value textarea {
+ width: 100%;
+}
+
+.setting_value textarea {
+ height: 50px;
+}
+
+.title {
+ width: 90%;
+ text-align: left;
+ font-weight: bold;
+ font-size: 14px;
+ color: #003366;
+ height: 16px;
+ padding: 4px 0px 0px 3px;
+}
+
+.tool_table td {
+ vertical-align: top;
+ text-align: left;
+}
+
+.tool_table ul {
+ margin: 0;
+ padding: 0;
+ margin-left: 20px;
+ margin-bottom: 10px;
+}
+
+.tool_table li {
+ padding-bottom: 5px;
+ list-style-type: disc;
+}
+
+.value_input input, .value_input text, .value_input select {
+ width: 100%;
+}
+
+#file_mode input {
+ width: 12px;
+ height: 12px;
+}
+
+#dir_mode input {
+ width: 12px;
+ height: 12px;
+}
+
+#hide2 {
+ display: none;
+}
+
+/* CSS STYLES FOR THE PAGES SECTION */
+
+table.pages_view {
+ width: 730px;
+ border: 0;
+ border-spacing: 0px;
+ background-color: #ECF3F7;
+}
+
+table.pages_view td {
+ padding: 3px;
+}
+
+table.pages_view tr:hover {
+ background-color: #F1F8DD;
+}
+
+/* FORMS */
+
+.submit, .cancel {
+ width: 100px;
+ margin-top: 5px;
+}
+
+.form_submit {
+ width: 100%;
+}
+
+.form_submit .left {
+ text-align: left;
+}
+
+.form_submit .right {
+ text-align: right;
+}
+
+.input_small {
+ width: 20px;
+}
+
+.input_narrow {
+ width: 100px;
+}
+
+.input_normal {
+ width: 120px;
+}
+
+.input_medium {
+ width: 150px;
+}
+
+.input_wide {
+ width: 200px;
+}
+
+.input_large {
+ width: 300px;
+}
+
+.input_full {
+ width: 100%;
+}
+
+select option.disabled {
+ color: #aaa;
+}
+
+.jsadmin_drag img {
+ padding: 3px 0;
+ margin-top: 1px;
+ vertical-align: top;
+ cursor: pointer;
+}
+
+.modify_link {
+ padding-top: 4px;
+ padding-left: 7px;
+ text-indent: 7px;
+}
+
+.header_list_page_title {text-align:left;}
+.header_list_menu_title {width:240px; text-align:left;}
+.header_list_page_id {width:40px; text-align:left;}
+.header_list_actions {width:150px; text-align:left;}
+
+.list_page_title {text-align:left;}
+.list_menu_title {width:240px;text-align:left;}
+.list_page_id {width:40px;text-align:left;}
+.list_actions {width:20px;text-align:left;}
+
+/* Ende */
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/theme.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.8.0/trunk/wb/templates/wb_theme/templates/media.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/media.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/media.htt	(revision 1130)
@@ -0,0 +1,109 @@
+<!-- BEGIN main_block -->
+
+<script language="javascript" type="text/javascript">
+function toggle() {
+	var check = document.getElementById("file2");
+	if (check.style.visibility == "visible") {
+		for (i=2; i<=10; i++) {
+			document.getElementById("file" + i).style.visibility = "hidden";
+		}
+		document.getElementById("delzip").style.display = "inline";
+	} else {
+		for (i=2; i<=10; i++) {
+			document.getElementById("file" + i).style.visibility = "visible";
+		}
+		document.getElementById("delzip").style.display = "none";
+	}
+}
+</script>
+
+<h2>{HEADING_BROWSE_MEDIA}</h2>
+
+<iframe width="100%" height="382px" align="center" src="browse.php" scrolling="no"></iframe>
+<br />
+<form name="create" action="create.php" method="post" class="{DISPLAY_CREATE}">
+
+<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}{HOME_DIRECTORY}" selected="selected">{MEDIA_DIRECTORY}{HOME_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}{HOME_DIRECTORY}" selected="selected">{MEDIA_DIRECTORY}{HOME_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" align="center" width="100%">
+    <tr>
+    	<td valign="top"><input type="checkbox" name="unzip" id="unzip"  onclick="toggle();" />
+<label for="unzip">{TEXT_UNZIP_FILE}</label>
+<span id="delzip" style="display: none;"><br /><input type="checkbox" name="delzip" id="deletezip" />
+<label for="deletezip">{TEXT_DELETE_ZIP}</label></span>
+</td>
+      <td valign="top"><input type="checkbox" name="overwrite" id="overwrite" value="yes" /><label for="overwrite">{TEXT_OVERWRITE_EXISTING}{TEXT_FILES}</label>      </td>
+      <td width="160" valign="top"><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="27" name="file1" /></td>
+      <td width="50%" align="right"><input type="file" size="27" name="file2" id="file2" style="visibility: visible;" /></td>
+    </tr>
+    <tr>
+      <td width="50%" align="left"><input type="file" size="27" name="file3" id="file3" style="visibility: visible;" /></td>
+      <td width="50%" align="right"><input type="file" size="27" name="file4" id="file4" style="visibility: visible;"" /></td>
+    </tr>
+    <tr>
+      <td width="50%" align="left"><input type="file" size="27" name="file5" id="file5" style="visibility: visible;" /></td>
+      <td width="50%" align="right"><input type="file" size="27" name="file6" id="file6" style="visibility: visible;"" /></td>
+    </tr>
+    <tr>
+      <td width="50%" align="left"><input type="file" size="27" name="file7" id="file7" style="visibility: visible;" /></td>
+      <td width="50%" align="right"><input type="file" size="27" name="file8" id="file8" style="visibility: visible;" /></td>
+    </tr>
+    <tr>
+      <td width="50%" align="left"><input type="file" size="27" name="file9" id="file9" style="visibility: visible;" /></td>
+      <td width="50%" align="right"><input type="file" size="27" name="file10" id="file10" style="visibility: visible;" /></td>
+    </tr>
+  </table>
+</form>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/header.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/header.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/header.htt	(revision 1130)
@@ -0,0 +1,52 @@
+<!-- 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>
+<meta http-equiv="content-type" content="text/html; charset={CHARSET}" />
+<meta http-equiv="content-language" content="{LANGUAGE}" />
+<meta name="description" content="{TEXT_ADMINISTRATION}" />
+<meta name="keywords" content="{TEXT_ADMINISTRATION}" />
+<link href="{THEME_URL}/theme.css" rel="stylesheet" type="text/css" />
+<link href="{WB_URL}/include/jquery/plugins/jquery-ui.css" rel="stylesheet" type="text/css" />
+{BACKEND_MODULE_CSS}
+{BACKEND_MODULE_JS}
+<script type="text/javascript" src="{WB_URL}/include/editarea/edit_area_full.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="{THEME_URL}/images/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="{THEME_URL}/images/home.png" border="0" alt="{TITLE_START}" /></a>
+         &nbsp;&nbsp;<a href="{URL_VIEW}" target="_blank" title="{TITLE_VIEW}"><img src="{THEME_URL}/images/view.png" border="0" alt="{WB_URL}" /></a>
+	&nbsp; <a href="{URL_HELP}" target="_blank" title="{TITLE_HELP}"><img src="{THEME_URL}/images/help.png" border="0" alt="{TITLE_HELP}" /></a>
+         &nbsp; <a href="{ADMIN_URL}/logout" title="{TITLE_LOGOUT}"><img src="{THEME_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" class="container">
+<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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/footer.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/footer.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/footer.htt	(revision 1130)
@@ -0,0 +1,42 @@
+<!-- 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>
+
+<script src="{WB_URL}/include/jquery/jquery-min.js" type="text/javascript"></script>
+<script src="{WB_URL}/include/jquery/jquery-ui-min.js" type="text/javascript"></script>
+<script src="{WB_URL}/include/jquery/jquery-insert.js" type="text/javascript"></script>
+<!--[if lt IE 7]><script type="text/javascript" src="{WB_URL}/include/jquery/plugins/unitpngfix.js"></script><![endif]-->
+<script language="javascript" type="text/javascript">
+
+
+        if($(".jcalendar").length) {
+            $.insert("{WB_URL}/include/jscalendar/calendar-system.css");
+          }
+
+        if($(".jsadmin").length) {
+            $.insert("{WB_URL}/modules/jsadmin/backend.css");
+          }
+
+        if($("a[rel^='lightbox']").length) {
+            $.insert("{WB_URL}/include/jquery/plugins/jquery-slimbox2.css");
+            $.insert("{WB_URL}/include/jquery/plugins/jquery-slimbox2-min.js");
+          }
+
+</script>
+{BACKEND_BODY_MODULE_JS}
+</body>
+</html>
+<!-- END footer_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/login_forgot.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/login_forgot.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/login_forgot.htt	(revision 1130)
@@ -0,0 +1,78 @@
+<!-- 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}" />
+<meta http-equiv="content-language" content="{LANGUAGE}" />
+<meta name="description" content="Retrieve Login Details" />
+<meta name="keywords" content="Retrieve Login Details" />
+<link href="{THEME_URL}/theme.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="{THEME_URL}/images/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;" class="container">
+<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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/login.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/login.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/login.htt	(revision 1130)
@@ -0,0 +1,94 @@
+<!-- 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}" />
+<meta http-equiv="content-language" content="{LANGUAGE}" />
+<meta name="description" content="{TEXT_LOGIN}" />
+<meta name="keywords" content="{TEXT_LOGIN}" />
+<link href="{THEME_URL}/theme.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="{THEME_URL}/images/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;" class="container">
+<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 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>
+			<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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages_modify.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages_modify.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages_modify.htt	(revision 1130)
@@ -0,0 +1,22 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" 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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages_sections.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages_sections.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages_sections.htt	(revision 1130)
@@ -0,0 +1,118 @@
+<!-- BEGIN main_block -->
+        <div class="jsadmin jcalendar hide"></div>
+        <table cellpadding="0" cellspacing="0" class="sections_header">
+            <tr>
+                <td valign="middle" align="left">
+                    <h2>{HEADING_MANAGE_SECTIONS}</h2>
+                </td>
+                <td>ID: {PAGE_ID}</td>
+                <td align="right">{TEXT_CURRENT_PAGE}: <b>{PAGE_TITLE}</b>
+                    -
+                    <a href="{ADMIN_URL}/pages/modify.php?page_id={PAGE_ID}">{HEADING_MODIFY_PAGE}</a>
+                    -
+                    <a href="{ADMIN_URL}/pages/settings.php?page_id={PAGE_ID}">{TEXT_CHANGE_SETTINGS}</a>
+                </td>
+            </tr>
+        </table>
+
+        <form name="section_properties" action="{ADMIN_URL}/pages/sections_save.php?page_id={VAR_PAGE_ID}" method="post">
+        <table cellpadding="5" cellspacing="0" align="center" border="0" width="100%">
+                <tr>
+                	<td valign="middle" width="{NAME_SIZE}">{TEXT_TYPE}:</td>
+                	<td {STYLE_DISPLAY_SECTION_BLOCK}>{TEXT_BLOCK}:</td>
+                	<td valign="middle" align="left">{TEXT_PUBL_START_DATE}:</td>
+                	<td valign="middle" align="left">{TEXT_PUBL_END_DATE}:</td>
+                	<td valign="middle" align="left" colspan="3">{TEXT_ACTIONS}:</td>
+                    <td valign="middle" align="left">{TEXT_SID}</td>
+                    <td valign="middle" align="left"{DISPLAY_DEBUG}>{TEXT_PID}</td>
+                </tr>
+<!-- BEGIN section_block -->
+            	<tr onmouseover="this.style.backgroundColor = '#F1F8DD'" onmouseout="this.style.backgroundColor = '#FFF'">
+    				<td style="display: none;">
+                      <input type="hidden" name="page_id" value="{VAR_PAGE_ID}"  />
+                      <input type="hidden" name="section_id" value="{VAR_SECTION_ID}"  />
+                      {VAR_SECTION_ID}
+                    </td>
+
+                    <td valign="middle" width="{NAME_SIZE}">{LINK_MODIFY_URL_VAR_MODUL_NAME}</td>
+
+                    <td valign="middle" class="{INPUT_ATTRIBUTE}"{STYLE_DISPLAY_SECTION_BLOCK}>
+                    	<select name="block{VAR_SECTION_ID}" class="input_narrow">
+                        {SET_NONE_DISPLAY_OPTION}
+                    	<!-- BEGIN block_block -->
+                    		<option value="{VALUE}"{SELECTED}>{NAME}</option>
+                    	<!-- END block_block -->
+                    	</select>
+                    </td>
+
+                    <td valign="middle" nowrap="nowrap" width="120"><input type="text" id="start_date{VAR_SECTION_ID}" name="start_date{VAR_SECTION_ID}" value="{VALUE_PUBL_START}" class="input_normal" />
+                        <img src="{THEME_URL}/images/{CLOCK_16_PNG}" id="trigger_start{VAR_SECTION_ID}" style="cursor: pointer;" title="{TEXT_CALENDAR}" alt="start"  />
+                        <img src="{THEME_URL}/images/{CLOCK_DEL_16_PNG}" style="cursor: pointer;" alt="del" title="{TEXT_DELETE_DATE}" onclick="document.section_properties.start_date{VAR_SECTION_ID}.value=''" />
+                    </td>
+
+                    <td valign="middle" nowrap="nowrap" width="120"><input type="text" id="end_date{VAR_SECTION_ID}" name="end_date{VAR_SECTION_ID}" value="{VALUE_PUBL_END}" class="input_narrow" />
+                        <img src="{THEME_URL}/images/{CLOCK_16_PNG}" id="trigger_stop{VAR_SECTION_ID}" alt="end" style="cursor: pointer;" title="{TEXT_CALENDAR}"  />
+                        <img src="{THEME_URL}/images/{CLOCK_DEL_16_PNG}" style="cursor: pointer;" alt="del" title="{TEXT_DELETE_DATE}" onclick="document.section_properties.end_date{VAR_SECTION_ID}.value=''" />
+                    </td>
+
+                    <td valign="middle" width="20">
+                        {VAR_MOVE_UP_URL}
+                    </td>
+
+                    <td valign="middle"  width="20">
+                        {VAR_MOVE_DOWN_URL}
+                    </td>
+
+                    <td valign="middle" width="20">
+                        <a href="javascript: confirm_link('{TEXT_ARE_YOU_SURE}', '{ADMIN_URL}/pages/sections.php?page_id={VAR_PAGE_ID}&amp;section_id={VAR_SECTION_ID}');">
+                        <img src="{THEME_URL}/images/{DELETE_16_PNG}" alt="X" />
+                        </a>
+                    </td>
+                    <td valign="middle" align="right">
+                       {VAR_SECTION_ID}
+                    </td>
+                    <td valign="middle" align="right"{DISPLAY_DEBUG}>
+                       {POSITION}
+                    </td>
+                </tr>
+<!-- END section_block -->
+                <tr>
+                    <td valign="middle" align="right" colspan="{DEBUG_COLSPAN_SIZE}"><input type="submit" name="save" value="{TEXT_SAVE}" class="input_medium" /></td>
+    	        </tr>
+	    </table>
+    </form>
+
+	<h2>{TEXT_ADD_SECTION}</h2>
+	<form name="add" action="{ADMIN_URL}/pages/sections.php?page_id={VAR_PAGE_ID}" method="post">
+        <input type="hidden" name="page_id" value="{VAR_PAGE_ID}"  />
+    	<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%">
+    	<tr>
+    		<td width="100%">
+    			<select name="module" class="input_full">
+                <!-- BEGIN module_block -->
+    			 <option value="{VALUE}"{SELECTED}>{NAME}</option>
+                 <!-- END module_block -->
+    			</select>
+    		</td>
+			<td >
+    			<input type="submit" name="submit" value="{TEXT_ADD}" class="input_medium" />
+    		</td>
+    	</tr>
+    	</table>
+	</form>
+    <!-- BEGIN calendar_block -->
+    <script type="text/javascript" >
+         var section_id = '{VAR_SECTION_ID}';
+         var start_date = '{start_date}';
+         var end_date = '{end_date}';
+         var trigger_start = '{trigger_start}';
+         var trigger_end = '{trigger_end}';
+         var jscal_today = '{jscal_today}';
+         var jscal_ifformat = '{jscal_ifformat}';
+         var jscal_firstday = {jscal_firstday};
+         var showsTime = {showsTime};
+         var timeFormat = {timeFormat};
+    </script>
+    <script type="text/javascript" src="{ADMIN_URL}/pages/page_calendar.js" ></script>
+    <!-- END calendar_block -->
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages_settings.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages_settings.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages_settings.htt	(revision 1130)
@@ -0,0 +1,169 @@
+<!-- BEGIN main_block -->
+
+<script src="{ADMIN_URL}/pages/page_settings.js" type="text/javascript" language="javascript"></script>
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom: 10px;">
+<tr style="background-color: #F0F0F0;">
+	<td valign="middle" align="left">
+		<h2>{HEADING_MODIFY_PAGE_SETTINGS}</h2>
+	</td>
+	<td nowrap="nowrap">ID: {PAGE_ID}</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>
+	<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>
+	<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} style="background: {FLAG_ROOT_ICON} no-repeat center left; padding-left: 20px;">{TITLE}</option>
+			<!-- END page_list_block2 -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<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" rows="10" cols="1" style="width: 236px; height: 50px;">{DESCRIPTION}</textarea>
+	</td>
+</tr>
+<tr>
+	<td width="100" valign="top">{TEXT_KEYWORDS}:</td>
+	<td>
+		<textarea name="keywords" rows="10" cols="1" 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>
+	<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 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 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} style="background: {FLAG_LANG_ICONS} no-repeat center left; padding-left: 20px;">{NAME}</option>
+			<!-- END language_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/settings.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/settings.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/settings.htt	(revision 1130)
@@ -0,0 +1,625 @@
+<!-- BEGIN main_block -->
+
+<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>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_DESCRIPTION}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_description" cols="50" rows="3">{WEBSITE_DESCRIPTION}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_KEYWORDS}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_keywords" cols="50" rows="3" >{WEBSITE_KEYWORDS}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_HEADER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_header" cols="50" rows="3">{WEBSITE_HEADER}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_FOOTER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_footer" cols="50" rows="3">{WEBSITE_FOOTER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_REDIRECT_AFTER}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="redirect_timer" value="{REDIRECT_TIMER}" />
+	</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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 align="left" nowrap="nowrap">
+		<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 title="{MODE_SWITCH_WARNING}" 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} style="background: url({FLAG}.png) no-repeat center left; padding-left: 20px;">{NAME} ({CODE})</option>
+			<!-- END language_list_block -->
+		</select>
+	</td>
+</tr>
+<tr {DISPLAY_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 class="setting_name">{TEXT_THEME}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="default_theme">
+		<!-- BEGIN theme_list_block -->
+			<option value="{FILE}"{SELECTED}>{NAME}</option>
+		<!-- END theme_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 title="{MODE_SWITCH_WARNING}" 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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_HEADER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_header" style="height: 100px;" cols="50" rows="3">{SEARCH_HEADER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_RESULTS_HEADER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_results_header" cols="50" rows="3">{SEARCH_RESULTS_HEADER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_RESULTS_LOOP}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_results_loop" cols="50" rows="3">{SEARCH_RESULTS_LOOP}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_RESULTS_FOOTER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_results_footer" cols="50" rows="3">{SEARCH_RESULTS_FOOTER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_FOOTER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_footer" cols="50" rows="3">{SEARCH_FOOTER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 title="{MODE_SWITCH_WARNING}" 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 {DISPLAY_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 width="100" nowrap="nowrap">
+				<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 width="100" nowrap="nowrap">
+				<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 width="100" nowrap="nowrap">
+				<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 width="100" nowrap="nowrap">
+				<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 width="100" nowrap="nowrap">
+				<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 width="100" nowrap="nowrap">
+				<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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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 {DISPLAY_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>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_SEC_ANCHOR}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="sec_anchor" value="{SEC_ANCHOR}" />
+	</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 title="{MODE_SWITCH_WARNING}" onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+	</td>
+</tr>
+</table>
+
+</form>
+
+<hr size="1" />
+
+<button title="{MODE_SWITCH_WARNING}" onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+<br />
+<font class="{DISPLAY_ADVANCED_BUTTON}">
+{MODE_SWITCH_WARNING}
+</font>
+<script src="{ADMIN_URL}/settings/setting.js" language="javascript" type="text/javascript"></script>
+<!-- END main_block -->
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/access.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/access.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/access.htt	(revision 1130)
@@ -0,0 +1,48 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="0" cellspacing="0" border="0" width="99%" align="center">
+<tr>
+	<td align="center" valign="top">
+		<!-- BEGIN users_block -->	
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_USERS} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/users/index.php">
+					<img src="{THEME_URL}/icons/users.png" alt="{USERS}" />
+				</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>
+		<!-- END users_block -->
+		<!-- BEGIN groups_block -->		
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_GROUPS} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/groups/index.php">
+					<img src="{THEME_URL}/icons/groups.png" alt="{GROUPS}" />
+				</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>
+		<!-- END groups_block -->
+	</td>
+</tr>
+</table>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/groups.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/groups.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/groups.htt	(revision 1130)
@@ -0,0 +1,37 @@
+<!-- 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">
+		<!-- BEGIN manage_users_block -->
+		<a href="{ADMIN_URL}/users/index.php">{TEXT_MANAGE_USERS}</a>
+		<!-- END manage_users_block -->
+	</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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/users.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/users.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/users.htt	(revision 1130)
@@ -0,0 +1,37 @@
+<!-- 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">
+		<!-- BEGIN manage_groups_block -->
+		<a href="{ADMIN_URL}/groups/index.php">{TEXT_MANAGE_GROUPS}</a>
+		<!-- END manage_groups_block -->
+	</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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/addons.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/addons.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/addons.htt	(revision 1130)
@@ -0,0 +1,68 @@
+<!-- BEGIN main_block -->
+<div class="box">
+	{URL_ADVANCED}
+</div>
+
+<table cellpadding="0" cellspacing="0" border="0" width="99%" align="center">
+<tr>
+	<td align="center" valign="top">
+		<!-- BEGIN modules_block -->
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_MODULES} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2"><a href="{ADMIN_URL}/modules/index.php"><img src="{THEME_URL}/icons/modules.png" alt="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>
+		<!-- END modules_block -->		
+		<!-- BEGIN templates_block -->
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_TEMPLATES} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2"><a href="{ADMIN_URL}/templates/index.php"><img src="{THEME_URL}/icons/templates.png" alt="{TEMPLATES}" /></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>
+		<!-- END templates_block -->
+		<!-- BEGIN languages_block -->
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_LANGUAGES} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2"><a href="{ADMIN_URL}/languages/index.php"><img src="{THEME_URL}/icons/languages.png" alt="{LANGUAGES}" /></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>
+		<!-- END languages_block -->
+		<!-- BEGIN reload_block -->
+		<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_RELOAD} >
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2"><img src="{THEME_URL}/icons/admintools.png" alt="{TXT_ADMIN_SETTINGS}" /></td>
+			<td class="title">{TXT_ADMIN_SETTINGS}</td>
+		</tr>
+		<tr>
+			<td class="description">
+				<form action="{RELOAD_URL}" method="post">
+				{MESSAGE_RELOAD_ADDONS}<br style="margin-bottom: 0.5em" />
+				<input {DISPLAY_MODULES} type="checkbox" name="reload_modules" id="reload_modules" value="true" />
+				<label {DISPLAY_MODULES} for="reload_modules">{MODULES}</label>
+				<input {DISPLAY_TEMPLATES} type="checkbox" name="reload_templates" id="reload_templates" value="true" />
+				<label {DISPLAY_TEMPLATES} for="reload_templates">{TEMPLATES}</label>
+				<input {DISPLAY_LANGUAGES} type="checkbox" name="reload_languages" id="reload_languages" value="true" />
+				<label {DISPLAY_LANGUAGES} for="reload_languages">{LANGUAGES}</label>
+				<input type="submit" name="submit" value="{TEXT_RELOAD}" />
+				</form>
+			</td>
+		</tr>
+		</table>
+		<!-- END reload_block -->
+	</td>
+</tr>
+</table>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/start.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/start.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/start.htt	(revision 1130)
@@ -0,0 +1,153 @@
+<!-- BEGIN main_block -->
+
+<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="{THEME_URL}/icons/pages.png" alt="{PAGES}" />
+				</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="{THEME_URL}/icons/addons.png" alt="{ADDONS}" />
+				</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="{THEME_URL}/icons/settings.png" alt="{SETTINGS}" />
+				</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="{THEME_URL}/icons/access.png" alt="{ACCESS}" />
+				</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="{THEME_URL}/icons/media.png" alt="{MEDIA}" />
+				</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="{THEME_URL}/icons/preferences.png" alt="{PREFERENCES}" />
+				</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="{THEME_URL}/icons/admintools.png" alt="{ADMINTOOLS}" />
+				</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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/templates.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/templates.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/templates.htt	(revision 1130)
@@ -0,0 +1,79 @@
+<!-- BEGIN main_block -->
+
+<div class="box">
+	{URL_MODULES}&nbsp;&nbsp;{URL_LANGUAGES}
+</div>
+
+<br />
+{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="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="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>
+
+<br />
+</form>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/languages.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/languages.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/languages.htt	(revision 1130)
@@ -0,0 +1,76 @@
+<!-- BEGIN main_block -->
+
+<div class="box">
+	{URL_MODULES}&nbsp;&nbsp;{URL_TEMPLATES}
+</div>
+
+<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="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="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>
+
+<br />
+</form>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/modules.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/modules.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/modules.htt	(revision 1130)
@@ -0,0 +1,119 @@
+<!-- BEGIN main_block -->
+
+<div class="box">
+	{URL_TEMPLATES}&nbsp;&nbsp;{URL_LANGUAGES}&nbsp;&nbsp;{URL_ADVANCED}
+</div>
+
+<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="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="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>
+
+<br />
+</form>
+
+<div class="{DISPLAY_MANUAL_INSTALL}">
+<h2>{HEADING_INVOKE_MODULE_FILES}</h2>
+<p>{TEXT_MANUAL_INSTALLATION}</p>
+
+<form name="details" action="manual_install.php" method="post" class="{INSTALL_VISIBLE}">
+	<strong>{TEXT_FILE}:</strong> "install.php"&nbsp;&nbsp;&nbsp;
+	<input type="hidden" name="action" value="install" />
+	<select name="file" style="width: 250px;">
+	<option value="" selected="selected">{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN install_list_block -->
+		<option value="{VALUE}">{NAME}</option>
+		<!-- END install_list_block -->
+	</select>
+	<input type="submit" name="submit" value="{TEXT_EXECUTE}" style="width: 100px; margin-left: 1em;" />
+</form>
+
+<form name="details" action="manual_install.php" method="post" class="{UPGRADE_VISIBLE}">
+	<br />{TEXT_FILE}: "upgrade.php"
+	<input type="hidden" name="action" value="upgrade" />
+	<select name="file" style="width: 250px;">
+	<option value="" selected="selected">{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN upgrade_list_block -->
+		<option value="{VALUE}">{NAME}</option>
+		<!-- END upgrade_list_block -->
+	</select>
+	<input type="submit" name="submit" value="{TEXT_EXECUTE}" style="width: 100px; margin-left: 1em;" />
+</form>
+
+<form name="details" action="manual_install.php" method="post" class="{UNINSTALL_VISIBLE}">
+	<br />{TEXT_FILE}: "uninstall.php"
+	<input type="hidden" name="action" value="uninstall" />
+	<select name="file" style="width: 250px;">
+	<option value="" selected="selected">{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN uninstall_list_block -->
+		<option value="{VALUE}">{NAME}</option>
+		<!-- END uninstall_list_block -->
+	</select>
+	<input type="submit" name="submit" value="{TEXT_EXECUTE}" style="width: 100px; margin-left: 1em;" />
+</form>
+
+<p style="color: red;">{TEXT_MANUAL_INSTALLATION_WARNING}</p>
+</div>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/media_browse.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/media_browse.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/media_browse.htt	(revision 1130)
@@ -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>
+<link href="{THEME_URL}/media.css" rel="stylesheet" type="text/css" />
+<script language="javascript" type="text/javascript">
+function confirm_link(message, url) {
+	if(confirm(message)) location.href = url;
+}
+</script>
+
+<link href="{THEME_URL}/fancybox.css" rel="stylesheet" type="text/css" />
+
+<script type="text/javascript" src="{INCLUDE_PATH}/jquery/jquery-min.js"></script>
+<script type="text/javascript" src="{INCLUDE_PATH}/jquery/plugins/jquery-fixedheader.js"></script>
+<script type="text/javascript" src="{INCLUDE_PATH}/jquery/plugins/jquery-fancybox.js"></script>
+<script type="text/javascript" src="{INCLUDE_PATH}/jquery/plugins/jquery-metadata.js"></script>
+
+<script language="javascript" type="text/javascript">
+$(document).ready(function(){
+	$("#browser").fixedHeader({
+		width: '100%', height: 355
+	});
+	
+	$("table#browser a.preview").fancybox({ 
+		'hideOnContentClick': true,
+		'overlayShow': true,
+		'zoomSpeedIn': 0,
+		'zoomSpeedOut': 0
+	});
+})
+</script>
+
+</head>
+<body onload="parent.document.create.target.value = '{MEDIA_DIRECTORY}{CURRENT_DIR}'; parent.document.upload.target.value = '{MEDIA_DIRECTORY}{CURRENT_DIR}';">
+<table cellpadding="4" cellspacing="0" border="0" width="100%" class="browse_header">
+	<tr>
+		<td align="left" width="100">
+			<a href="{PARENT_DIR_LINK}">
+				<img src="{THEME_URL}/images/up_folder_16.png" border="0" class="{DISPLAY_UP_ARROW}" alt="^" align="absmiddle" />
+			</a>
+			<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 align="right" width="100" >
+			<a href="browse.php?dir={CURRENT_DIR}">
+				<img src="{THEME_URL}/images/reload_16.png" border="0" alt="" align="absmiddle" />
+			</a>
+			<a id="reload" href="browse.php?dir={CURRENT_DIR}">
+				{TEXT_RELOAD}
+			</a>
+		</td>
+	</tr>
+</table>
+
+<table id="browser" cellpadding="4" cellspacing="0" border="0" width="100%" class="{DISPLAY_LIST_TABLE}">
+	<thead>
+		<tr style="background-color: #EEE;">
+			<th width="18" class="headline">{TEXT_TYPE}</th>
+			<th align="left" class="headline">{TEXT_NAME}</th>
+			<th align="right" width="80" class="headline">{TEXT_SIZE}</th>
+			<th align="right" width="80" class="headline">{TEXT_DATE}</th>
+			<th align="right" width="40" class="headline">{TEXT_RENAME}</th>
+			<th align="right" width="40" class="headline">{TEXT_DELETE}</th>
+		</tr>
+	</thead>
+	<tbody>
+		<!-- BEGIN list_block -->
+		<tr style="background-color: #{ROW_BG_COLOR};" onmouseover="this.style.backgroundColor = '#F1F8DD'" onmouseout="this.style.backgroundColor = '#{ROW_BG_COLOR}'">
+			<td style="padding-left: 10px;">
+				<img src="{FILETYPE_ICON}" class="{DISPLAY_ICON}" border="0" alt="" />
+			</td>
+			<td>
+				<a href="{LINK}" target="{LINK_TARGET}" class="{PREVIEW}">
+					{NAME}
+				</a>
+			</td>
+			<td align="right" style="font-size: 10px;">{SIZE}</td>
+			<td align="right" style="font-size: 10px;">{DATE}</td>
+			<td align="right" class="{DISPLAY_RENAME}">
+				<a href="rename.php?dir={CURRENT_DIR}&id={TEMP_ID}" title="{TEXT_RENAME}">
+					<img src="{THEME_URL}/images/modify_16.png" alt="" border="0" />
+				</a>
+			</td>
+			<td style="padding-right: 5px;" align="right" class="{DISPLAY_DELETE}">
+				<a href="#" onclick="javascript: confirm_link('{CONFIRM_DELETE}\n {NAME_SLASHED}', 'delete.php?dir={CURRENT_DIR}&id={TEMP_ID}');" title="{TEXT_DELETE}">
+					<img src="{THEME_URL}/images/delete_16.png" alt="" border="0" />
+				</a>
+			</td>
+		</tr>
+		<!-- END list_block -->
+</table>
+
+<span class="{DISPLAY_NONE_FOUND}">
+<br />
+&nbsp; &nbsp; 
+{NONE_FOUND}
+</span>
+
+</body>
+</html>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/users_form.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/users_form.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/users_form.htt	(revision 1130)
@@ -0,0 +1,94 @@
+<!-- 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>
+
+<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="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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/pages.htt	(revision 1130)
@@ -0,0 +1,98 @@
+<!-- BEGIN main_block -->
+<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 width="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>
+    	<td width="70">{TEXT_TYPE}:</td>
+    	<td width="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>
+    	<td width="70">{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}"{DISABLED} style="background: {FLAG_ROOT_ICON} no-repeat center left; padding-left: 20px;">{TITLE}</option>
+    			<!-- END page_list_block2 -->
+    		</select>
+    	</td>
+    </tr>
+    <tr>
+    	<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>
+<!-- Addition for remembering expanded state of pages -->
+<script type="text/javascript" language="javascript">
+var THEME_URL = '{THEME_URL}';
+var WB_URL = '{WB_URL}';
+</script>
+<script src="{ADMIN_URL}/pages/page_index.js" type="text/javascript" language="javascript"></script>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/preferences.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/preferences.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/preferences.htt	(revision 1130)
@@ -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} style="background: url({FLAG}.png) no-repeat center left; padding-left: 20px;">{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>
+	<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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/groups_form.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/groups_form.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/groups_form.htt	(revision 1130)
@@ -0,0 +1,293 @@
+<!-- BEGIN main_block -->
+
+<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>
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_ADMINTOOLS}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="admintools_settings" id="admintools_settings" type="checkbox" value="1" {admintools_settings_checked} /></td>
+	<td><label for="admintools_settings">{TEXT_MODIFY_SETTINGS}</label></td>
+	<td>&nbsp;</td>
+	<td>&nbsp;</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>
+
+<tr>
+	<td colspan="2"><input type="submit" name="submit" value="{SUBMIT_TITLE}" /></td>
+    <td colspan="2" align="right"><input type="reset" name="reset" value="{TEXT_RESET}" /></td>
+</tr>
+</table>
+</form>
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="center">
+	<form name="advanced" action="{ADVANCED_ACTION}" method="post">
+        <input type="hidden" name="group_id" value="{GROUP_ID}" />
+        <input type="hidden" name="action" value="modify" />
+        <input type="submit" name="advanced" onclick="window.location = '{ADVANCED_LINK}';" value="{ADVANCED_BUTTON}" />
+    </form>
+	</td>
+</tr>
+</table>
+
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/admintools.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/admintools.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/admintools.htt	(revision 1130)
@@ -0,0 +1,30 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="3" cellspacing="0" border="0" align="center" width="100%" class="tool_table">
+
+<tr class="advanced">
+	<td colspan="3">
+		<a name="administration_tools"></a>
+		<h2>{HEADING_ADMINISTRATION_TOOLS}</h2>
+	</td>
+</tr>
+<tr>
+	<td colspan="3">
+		<ul>
+		<!-- BEGIN tool_list_block -->
+		<li>
+		<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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: wb_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/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.8.0/trunk/wb/templates/wb_theme/templates/warning.html
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/warning.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/warning.html	(revision 1130)
@@ -0,0 +1,48 @@
+<!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(../images/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;
+}
+div#message {
+	text-align: center;
+}
+--></style></head>
+<body>
+
+<div id='message'>
+	<h1>Excessive Invalid Logins</h1>
+	You have attempted to login too many times
+</div>
+
+</body>
+</html>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/error.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/error.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/error.htt	(revision 1130)
@@ -0,0 +1,6 @@
+<!-- BEGIN main_block -->
+<div style='text-align:center;'>
+	<p>{MESSAGE}</p>
+	<p><a href="{LINK}">{BACK}</a></p>
+</div>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/templates_details.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/templates_details.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/templates_details.htt	(revision 1130)
@@ -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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/media_rename.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/media_rename.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/media_rename.htt	(revision 1130)
@@ -0,0 +1,58 @@
+<!-- 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>Rename Media</title>
+<link href="{THEME_URL}/media.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" align="center">
+<tr>
+	<td class="rename">
+<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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/success.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/success.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/success.htt	(revision 1130)
@@ -0,0 +1,16 @@
+<!-- BEGIN main_block -->
+<center>
+	
+	{MESSAGE}
+	
+	<script language="javascript" type="text/javascript">
+		setTimeout("location.href='{REDIRECT}'", {REDIRECT_TIMER});
+	</script>
+	
+	<noscript>
+		<br /><br />
+		<a href="{REDIRECT}">{NEXT}</a>
+	</noscript>
+	
+</center>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/languages_details.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/languages_details.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/languages_details.htt	(revision 1130)
@@ -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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/templates/modules_details.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/templates/modules_details.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/templates/modules_details.htt	(revision 1130)
@@ -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
Index: tags/2.8.0/trunk/wb/templates/wb_theme/images/fancy_progress.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/images/files/wmv.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/wb_theme/images/files/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/images/files/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/images/files/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: wb_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/images/files/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.8.0/trunk/wb/templates/wb_theme/images/files/avi.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/images/files/php.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/wb_theme/images/flags/yt.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/images/flags/kp.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/wb_theme/images/flags/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/images/flags/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/images/flags/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: wb_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/images/flags/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.8.0/trunk/wb/templates/wb_theme/images/flags/cx.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/images/flags/bi.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/wb_theme/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/images/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: wb_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/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.8.0/trunk/wb/templates/wb_theme/images/modify_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/images/up_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/wb_theme/fancybox.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/fancybox.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/fancybox.css	(revision 1130)
@@ -0,0 +1,92 @@
+div#fancy_overlay {
+	position:absolute;
+	top: 0;
+	left: 0;
+	z-index: 90;
+	width: 100%;
+	background-color: #333;
+}
+
+div#fancy_loading {
+	position: absolute;
+	height: 40px;
+	width: 40px;
+	cursor: pointer;
+	display: none;
+	overflow: hidden;
+	background: transparent;
+	z-index: 100;
+}
+
+div#fancy_loading div {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 40px;
+	height: 480px;
+	background: transparent url(images/fancy_progress.png) no-repeat;
+}
+
+div#fancy_close {
+/*
+	position: absolute;
+	top: -12px;
+	right: -12px;
+	height: 30px;
+	width: 30px;
+	background: transparent url(fancy_closebox.png) ;
+	cursor: pointer;
+	z-index: 100;
+	display: none;
+*/
+}
+
+div#fancy_content {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	padding: 0; 
+	margin: 0;
+	z-index: 96;
+}
+
+#fancy_frame {
+	position: relative;
+	width: 100%;
+	height: 100%;
+	display: none;
+}
+
+img#fancy_img {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	border:0; 
+	padding: 0; 
+	margin: 0;
+	z-index: 92;
+}
+
+div#fancy_outer {
+	position: absolute;
+    top: 0;
+    left: 0;
+    z-index: 90;
+    padding: 18px 18px 58px 18px;
+    margin: 0;
+    overflow: hidden;
+    background: transparent;
+    display: none;
+}
+
+div#fancy_inner {
+	position: relative;
+	width:100%;
+	height:100%;
+	border: 1px solid #444;
+	background: #FFF;
+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/fancybox.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.8.0/trunk/wb/templates/wb_theme/media.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/media.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/media.css	(revision 1130)
@@ -0,0 +1,51 @@
+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;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	text-decoration: none;
+	color: #336699;
+}
+input:focus, select:focus, textarea:focus {
+	background: #F1F8FD;
+}
+.content {
+	width: 100%;
+	height: 100px;
+}
+.rename {
+    background: #fff url(images/bgtitle.png) ;
+    background-repeat:repeat-x;
+	padding: 20px;
+}
+.hide {
+	display: none;
+}
+
+table.browse_header {
+	background-color: #EEE; 
+	border-bottom: 1px solid #35373a;
+}
+
+th.headline {
+	font-weight: normal;
+	font-size: 10px;
+	border-bottom: 1px solid #35373a;
+}
+
+
+

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/media.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.8.0/trunk/wb/templates/wb_theme/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/languages/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: wb_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/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.8.0/trunk/wb/templates/wb_theme/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/languages/NO.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+$template_description 	= 'Standard design mal for Admin sidene i Website Baker 2.8.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/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.8.0/trunk/wb/templates/wb_theme/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/languages/EN.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+$template_description 	= 'Default backend theme for Website Baker 2.8.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/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.8.0/trunk/wb/templates/wb_theme/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/languages/DE.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+$template_description 	= 'Das Standard-Backend-Theme von Websitebaker 2.8';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/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.8.0/trunk/wb/templates/wb_theme/icons/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/icons/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/icons/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: wb_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/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.8.0/trunk/wb/templates/wb_theme/icons/templates.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/icons/media.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/wb_theme/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: wb_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent this file from being accessed directly
+if (!defined('WB_PATH')) die(header('Location: ../../index.php'));
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/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.8.0/trunk/wb/templates/wb_theme/info.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/wb_theme/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/wb_theme/info.php	(revision 1130)
@@ -0,0 +1,40 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: wb_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Johannes Tassilo Gruber
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.80
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// OBLIGATORY WEBSITE BAKER VARIABLES
+$template_directory			= 'wb_theme';
+$template_name				= 'wb_theme';
+$template_function			= 'theme';
+$template_version			= '2.80';
+$template_platform			= '2.8';
+$template_author			= 'Johannes Tassilo Gruber';
+$template_license			= '<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>';
+$template_license_terms		= '-';
+$template_description		= 'Default backend theme for Website Baker 2.8.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/wb_theme/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.8.0/trunk/wb/templates/argos_theme/theme.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/theme.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/theme.css	(revision 1130)
@@ -0,0 +1,120 @@
+html {overflow: -moz-scrollbars-vertical;} /* Force firefox to always show room for a vertical scrollbar */
+
+body,td,th,input,textarea {font-family:verdana,arial,helvetica,sans-serif;font-size:11px;color:#333;}
+body {background:#f9f9f9 url(images/background.jpg) 0 0 repeat-x;margin:0;text-align:center;}
+img {	border: 0px;}
+
+#admin_header {text-align:center;width:900px;height:105px;margin:0 auto;padding:10px 0 0 0;}
+#admin_header a#website_title {display:block;text-align:left;font-size:14px;font-weight:bold;color:#fff;text-transform:uppercase;text-decoration:none;}
+#topmenu {float:right;text-align:right;color:#fff;}
+#topmenu a {font-size:11px;color:#fff;text-decoration:underline;margin:0 5px;}
+#topmenu .version {font-size:11px;color:#7cacda;padding:0 10px 0 0;}
+#header_top {height:78px;}
+
+h1 {text-align:left;font-size:15px;color:#fff;text-transform:uppercase;}
+h2 {text-align:left;font-size:18px;color:#000;margin:5px 0;font-family:arial,sans-serif;letter-spacing:-1px;font-weight:normal;}
+h3 {text-align:left;font-size:14px;color:#000;margin:5px 0;}
+
+a:link, a:visited, a:active {color:#28609b;text-decoration:none;}
+a:hover {text-decoration:underline;color:#28609b;}
+
+.menu {margin:0 auto;padding:0;text-align:center;width:900px;}
+.menu ul {list-style-type:none;margin:0;padding:0;}
+.menu li {display:inline;margin:0 2px 0 0;padding:0;font-weight:bold;border-bottom:3px solid #c9c9c9;}
+.menu a {float:left;color:#fff !important;background:#28609b url(images/tabl.jpg) no-repeat left top;margin:0 5px 0 0;padding:0 0 0 3px;text-decoration:none;border-bottom:3px solid #cacaca;}
+.menu a span {display:block;background:#28609b url(images/tabr.jpg) no-repeat right top;padding:6px 9px 6px 6px;}
+.menu a:hover, .menu a:hover span {background-color:#28609b;text-decoration:none;}
+.menu .current a, .menu a:hover {border-bottom:3px solid #d25e59;}
+
+#content_container {text-align:center;width:900px;clear:both;margin:0 auto;}
+.content {margin:0;padding:20px 0;width:900px;text-align:left;vertical-align:top;}
+
+hr {margin:15px 0;color:#003366;height:1px;}
+
+.hide {display:none;}
+.note {color:#666;font-size:10px;}
+
+form {margin:0;}
+label {cursor:pointer;}
+input:focus, select:focus, textarea:focus {background:#f1f8fd;}
+
+/* WB2.8 STYLES */
+.img_noborder img {border:0;}
+iframe {border:1px solid #35373a;}
+div.box {font-size:small;width:100%;text-align:right;margin:-10px 0 0 0;}
+.section {margin-top:10px;padding:0;border:1px solid #999;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:#fff;padding:4px;border:1px solid #d0d0d0;}
+.title {text-align:left;font-weight:bold;font-size:14px;margin-bottom:5px;}
+.description {text-align:left;padding:4px 4px 0 4px;}
+.note {color:#666;font-size:10px;}
+.bold {font-weight:bold;}
+
+.submit, .cancel {width:100px;margin-top:5px;}
+.form_submit {width:100%;}
+.form_submit .left {text-align:left;}
+.form_submit .right {text-align:right;}
+.input_small {width:20px;}
+.input_narrow {width:100px;}
+.input_normal {width:120px;}
+.input_medium {width:150px;}
+.input_wide {width:200px;}
+.input_large {width:300px;}
+.input_full {width:100%;}
+select option.disabled {color:#aaa;}
+
+.jsadmin_drag img {margin-top:2px;vertical-align:top;cursor:pointer;}
+.jsadmin_drag img:hover {/* background-color: lightgrey; */}
+.modify_link {padding:4px 0 0 7px;}
+
+.settings_table td {vertical-align:top;text-align:left;padding:5px;}
+.setting_name {width:180px;min-width:180px;}
+.setting_value {}
+.setting_value input, .setting_value select, .setting_value textarea {width:100%;}
+.setting_value textarea {height:50px;}
+
+#admintools ul {padding:0;margin:0;}
+#admintools li {list-style-type:none;display:inline;float:left;width:48%;margin:0 10px 0 0;}
+
+.value_input input, .value_input text, .value_input select {width:100%;}
+#file_mode input, #dir_mode input {width:12px;height:12px;}
+#hide2 {display:none;}
+
+.pages_list {font-weight:bold;}
+.pages_list .icon_col td img {display:block;border-style:none;float:left;padding-right:7px;}
+.pages_list table {width:900px;}
+.pages_list ul {margin:0;font-weight:normal;padding: 0;}
+.pages_list ul li {list-style-type:none;margin:2px 0;}
+
+table.pages_view {width:900px;}
+table.pages_view tr, tr.sectionrow {background:#f0f0f0;}
+table.pages_view tr:hover, tr.sectionrow:hover {background:#eaeff6;}
+tr.sectionrow {padding:0 10px;}
+tr.sectionrow td {border-top:3px solid #f9f9f9;}
+
+.page_list {display:none;}
+.page_list_show li {display:block;}
+img.page_list_rights {border:none;float:left;margin:0;vertical-align:middle;}
+
+.sections_list {font-weight:bold;padding-left:10px;}
+.sections_list table {width:900px;}
+
+.header_list_page_title {text-align:left;}
+.header_list_menu_title {width:300px;text-align:left;}
+.header_list_page_id{width:50px;text-align:left;}
+.header_list_actions {text-align:left;width:150px;}
+
+.header_list_type {text-align:left;}
+.header_list_block {text-align:left;width:180px;}
+.header_list_pubdate_start {text-align:left;width:200px;}
+.header_list_pubdate_end {text-align:left;width:200px;}
+.header_list_sections_actions {text-align:left;width:30px;}
+.header_list_section_id {width:30px;text-align:right;}
+
+.list_page_title {text-align:left;}
+.list_menu_title {width:300px;text-align:left;}
+.list_page_id {width:50px;text-align:left;}
+.list_section_id {width:30px;text-align:right;}
+.list_actions {width:25px;}
+.list_pubdate_start {text-align:left;width:200px;}
+.list_pubdate_end {text-align:left;width:200px;}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/theme.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/calendar_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/up_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: argos_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Jurgen Nijhuis (Argos Media) & Ruud Eisinga
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    1.1
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/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.8.0/trunk/wb/templates/argos_theme/images/flags/yt.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/sg.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/gt.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/gt.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/cy.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/cy.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/si.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/si.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/wf.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/wf.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/sk.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/sk.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/sm.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/sm.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/kw.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/kw.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/so.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/so.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ky.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ky.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/sy.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/sy.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/lb.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/lb.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/dj.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/dj.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pa.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pa.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/hk.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/hk.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/hm.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/hm.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pe.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pe.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pg.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pg.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/td.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/td.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tf.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tf.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pk.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pk.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/th.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/th.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/hu.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/hu.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pm.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pm.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/dz.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/dz.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/lr.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/lr.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tj.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tj.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/lt.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/lt.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tl.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tl.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/lv.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/lv.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tn.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tn.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ps.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ps.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ad.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ad.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tr.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tr.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/af.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/af.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pw.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/pw.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ec.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ec.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tt.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tt.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/py.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/py.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ee.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ee.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tv.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tv.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/eg.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/eg.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/id.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/id.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/al.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/al.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ma.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ma.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tz.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/tz.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/an.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/an.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mc.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mc.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/me.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/me.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ar.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ar.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mg.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mg.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/il.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/il.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/at.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/at.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ua.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ua.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/in.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/in.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/es.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/es.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mk.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mk.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ax.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ax.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mm.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mm.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ir.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ir.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/az.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/az.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mo.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ug.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ug.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/it.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/it.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mq.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mq.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ms.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ms.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mu.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mu.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/um.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/um.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ba.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/ba.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mw.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/mw.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/my.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/my.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/be.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/be.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/us.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/us.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/bg.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/bg.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/bi.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/flags/bi.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/images/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: argos_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Jurgen Nijhuis (Argos Media) & Ruud Eisinga
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    1.1
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/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.8.0/trunk/wb/templates/argos_theme/images/logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/logo.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/image.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/image.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/newfolder.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/newfolder.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/resize_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/resize_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/blank.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/blank.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/view.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/view.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/reload_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/reload_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/tabl.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/tabl.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/tabr.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/tabr.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/unzip.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/unzip.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/bgtitle.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/bgtitle.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/file.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/file.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/background.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/background.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/folder_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/folder_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/visible_16_1.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/visible_16_1.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/up_folder_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/up_folder_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/images/edit_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/images/edit_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/templates.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/templates.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/groups.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/groups.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/media.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/media.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/pages.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/pages.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/settings.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/settings.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/access.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/access.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/preferences.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/preferences.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/users.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/users.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/languages.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/languages.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/addons.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/addons.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/modules.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/modules.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/admintools.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/admintools.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/icons/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/icons/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: argos_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Jurgen Nijhuis (Argos Media) & Ruud Eisinga
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    1.1
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/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.8.0/trunk/wb/templates/argos_theme/icons/help.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/help.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/icons/view.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/icons/view.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/info.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/info.php	(revision 1130)
@@ -0,0 +1,40 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: argos_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Jurgen Nijhuis (Argos Media) & Ruud Eisinga
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    1.1
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// OBLIGATORY WEBSITE BAKER VARIABLES
+$template_directory			= 'argos_theme';
+$template_name				= 'argos_theme';
+$template_function			= 'theme';
+$template_version			= '1.4';
+$template_platform			= '2.8';
+$template_author			= 'Jurgen Nijhuis (Argos Media) & Ruud Eisinga';
+$template_license			= '<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>';
+$template_license_terms		= '-';
+$template_description		= 'Enhanced backend theme for Website Baker 2.8.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/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.8.0/trunk/wb/templates/argos_theme/templates/header.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/header.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/header.htt	(revision 1130)
@@ -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}&raquo;{TEXT_ADMINISTRATION}-{SECTION_NAME}</title>
+<meta http-equiv="content-type" content="text/html; charset={CHARSET}" />
+<meta http-equiv="content-language" content="{LANGUAGE}" />
+<meta name="description" content="{TEXT_ADMINISTRATION}" />
+<meta name="keywords" content="{TEXT_ADMINISTRATION}" />
+<link href="{THEME_URL}/theme.css" rel="stylesheet" type="text/css" />
+<link href="{WB_URL}/include/jquery/plugins/jquery-ui.css" rel="stylesheet" type="text/css" />
+{BACKEND_MODULE_CSS}
+{BACKEND_MODULE_JS}
+<script type="text/javascript" src="{WB_URL}/include/editarea/edit_area_full.js"></script>
+<script language="javascript" type="text/javascript">
+function confirm_link(message, url) {
+	if(confirm(message)) location.href = url;
+}
+</script>
+</head>
+<body>
+<div id="admin_header">
+  <div id="header_top">
+    <div id="topmenu"> <a href="{ADMIN_URL}" title="{TITLE_START}">Home</a>| <a href="{URL_VIEW}" target="_blank" title="{TITLE_VIEW}">{TITLE_VIEW}</a>| <a href="{ADMIN_URL}/logout/" title="{TITLE_LOGOUT}">{TITLE_LOGOUT}</a>
+	  <br />
+      <br />
+      <span class="version">CMS version {VERSION}</span><br/>
+      <span class="version">Admin version 1.4</span>
+	 </div>
+    <a href="{ADMIN_URL}" title="{TITLE_START}" id="website_title">
+    {WEBSITE_TITLE} - {TEXT_ADMINISTRATION}
+    <!-- <img src="{THEME_URL}/images/logo.png" border="0" alt="Logo" /> -->
+    </a> 
+	</div>
+  <div class="menu">
+    <ul>
+      <!-- BEGIN linkBlock -->
+      <li class="{CLASS}"><a href="{LINK}" target="{TARGET}"><span>{TITLE}</span></a></li>
+      <!-- END linkBlock -->
+    </ul>
+  </div>
+</div>
+<div id="content_container">
+<table cellpadding="0" cellspacing="0" border="0" width="900" align="center">
+<tr>
+  <td class="content">
+    <!-- END header_block -->
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages_sections.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages_sections.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages_sections.htt	(revision 1130)
@@ -0,0 +1,113 @@
+<!-- BEGIN main_block -->
+<div class="jsadmin jcalendar hide"></div>
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+	<tr style="background:#f0f0f0;">
+		<td valign="middle" align="left"><h2>{HEADING_MANAGE_SECTIONS}</h2></td>
+		<td align="left" width="20%">ID: {PAGE_ID}</td>
+		<td align="right">{TEXT_CURRENT_PAGE}: <b>{PAGE_TITLE}</b>
+			-
+			<a href="{ADMIN_URL}/pages/modify.php?page_id={PAGE_ID}">{HEADING_MODIFY_PAGE}</a>
+			-
+			<a href="{ADMIN_URL}/pages/settings.php?page_id={PAGE_ID}">{TEXT_CHANGE_SETTINGS}</a>
+		</td>
+     </tr>
+</table>
+
+        <form name="section_properties" action="{ADMIN_URL}/pages/sections_save.php?page_id={VAR_PAGE_ID}" method="post">
+		
+        <table cellpadding="0" cellspacing="0" border="0" width="100%" class="img_noborder">
+			<tr class="sections_list">
+				<td class="header_list_type">{TEXT_TYPE}</td>
+				<td class="header_list_block"><span {STYLE_DISPLAY_SECTION_BLOCK}>{TEXT_BLOCK}&nbsp;</span></td>
+				<td class="header_list_pubdate_start">{TEXT_PUBL_START_DATE}</td>
+				<td class="header_list_pubdate_end">{TEXT_PUBL_END_DATE}</td>
+				<td class="header_list_sections_actions" colspan="3">{TEXT_ACTIONS}</td>
+				<td class="header_list_section_id">ID</td>
+				<td {DISPLAY_DEBUG}>{TEXT_PID}</td>
+			</tr>
+<!-- BEGIN section_block -->
+            	<tr class="sectionrow">
+    				<td align="right" style="display:none;">
+                      <input type="hidden" name="page_id" value="{VAR_PAGE_ID}"  />
+                      <input type="hidden" name="section_id" value="{VAR_SECTION_ID}"  />
+                      {VAR_SECTION_ID}
+                    </td>
+					
+                    <td>{LINK_MODIFY_URL_VAR_MODUL_NAME}</td>
+					
+                    <td class="{INPUT_ATTRIBUTE}"><span {STYLE_DISPLAY_SECTION_BLOCK}>
+                    	<select name="block{VAR_SECTION_ID}" class="input_normal">
+                        {SET_NONE_DISPLAY_OPTION}
+                    	<!-- BEGIN block_block -->
+                    		<option value="{VALUE}"{SELECTED}>{NAME}</option>
+                    	<!-- END block_block -->
+                    	</select></span>&nbsp;
+                    </td>
+					
+                    <td class="list_pubdate_start"><input type="text" id="start_date{VAR_SECTION_ID}" name="start_date{VAR_SECTION_ID}" value="{VALUE_PUBL_START}" class="input_normal" />
+                        <img src="{THEME_URL}/images/calendar_16.png" id="trigger_start{VAR_SECTION_ID}" style="cursor:pointer;" title="{TEXT_CALENDAR}" alt="{TEXT_CALENDAR}"  />
+                        <img src="{THEME_URL}/images/{CLOCK_DEL_16_PNG}" style="cursor:pointer;" alt="{TEXT_DELETE_DATE}" title="{TEXT_DELETE_DATE}" onclick="document.section_properties.start_date{VAR_SECTION_ID}.value=''" />
+                    </td>
+					
+                    <td class="list_pubdate_end"><input type="text" id="end_date{VAR_SECTION_ID}" name="end_date{VAR_SECTION_ID}" value="{VALUE_PUBL_END}" class="input_normal" />
+                        <img src="{THEME_URL}/images/calendar_16.png" id="trigger_stop{VAR_SECTION_ID}" alt="{TEXT_CALENDAR}" style="cursor: pointer;" title="{TEXT_CALENDAR}"  />
+                        <img src="{THEME_URL}/images/{CLOCK_DEL_16_PNG}" style="cursor:pointer;" alt="{TEXT_DELETE_DATE}" title="{TEXT_DELETE_DATE}" onclick="document.section_properties.end_date{VAR_SECTION_ID}.value=''" />
+                    </td>
+
+					<td>{VAR_MOVE_UP_URL}</td>
+					
+                    <td>{VAR_MOVE_DOWN_URL}</td>
+					
+                    <td>
+                        <a href="javascript: confirm_link('{TEXT_ARE_YOU_SURE}', '{ADMIN_URL}/pages/sections.php?page_id={VAR_PAGE_ID}&amp;section_id={VAR_SECTION_ID}');">
+                        <img src="{THEME_URL}/images/{DELETE_16_PNG}" alt="{TEXT_DELETE}" border="0" />
+                        </a>
+                    </td>
+					
+                    <td class="list_section_id">{VAR_SECTION_ID}</td>
+					
+                    <td {DISPLAY_DEBUG}>{POSITION}</td>
+                </tr>
+<!-- END section_block -->
+                <tr>
+                    <td align="left" colspan="{DEBUG_COLSPAN_SIZE}">
+					<br />
+					<input type="submit" name="save" value="{TEXT_SAVE}" class="input_medium" />
+					</td>
+    	        </tr>
+	    </table>
+    </form>
+<br />
+	<h2>{TEXT_ADD_SECTION}</h2>
+	<form name="add" action="{ADMIN_URL}/pages/sections.php?page_id={VAR_PAGE_ID}" method="post">
+        <input type="hidden" name="page_id" value="{VAR_PAGE_ID}"  />
+    	<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%">
+    	<tr>
+    		<td width="50%" valign="middle">
+    			<select name="module" class="input_large">
+                <!-- BEGIN module_block -->
+    			 <option value="{VALUE}"{SELECTED}>{NAME}</option>
+                 <!-- END module_block -->
+    			</select>
+				&nbsp;&nbsp;
+				<input type="submit" name="submit" value="{TEXT_ADD}" class="input_medium" />
+   		  </td>
+    	</tr>
+   	  </table>
+	</form>
+    <!-- BEGIN calendar_block -->
+    <script type="text/javascript" >
+         var section_id = '{VAR_SECTION_ID}';
+         var start_date = '{start_date}';
+         var end_date = '{end_date}';
+         var trigger_start = '{trigger_start}';
+         var trigger_end = '{trigger_end}';
+         var jscal_today = '{jscal_today}';
+         var jscal_ifformat = '{jscal_ifformat}';
+         var jscal_firstday = {jscal_firstday};
+         var showsTime = {showsTime};
+         var timeFormat = {timeFormat};
+    </script>
+    <script type="text/javascript" src="{ADMIN_URL}/pages/page_calendar.js" ></script>
+    <!-- END calendar_block -->
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/media.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/media.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/media.htt	(revision 1130)
@@ -0,0 +1,135 @@
+<!-- BEGIN main_block -->
+<script language="javascript" type="text/javascript">
+function toggle() {
+	var check = document.getElementById("file2");
+	if (check.style.visibility == "visible") {
+		for (i=2; i<=10; i++) {
+			document.getElementById("file" + i).style.visibility = "hidden";
+		}
+		document.getElementById("delzip").style.display = "inline";
+	} else {
+		for (i=2; i<=10; i++) {
+			document.getElementById("file" + i).style.visibility = "visible";
+		}
+		document.getElementById("delzip").style.display = "none";
+	}
+}
+</script>
+<table cellpadding="0" cellspacing="0" border="0">
+  <tr>
+    <td width="300" valign="top" align="left">
+	<h2>{HEADING_UPLOAD_FILES}</h2>
+      <form name="upload" action="upload.php" method="post" enctype="multipart/form-data" class="{DISPLAY_UPLOAD}">
+        <table cellpadding="3" cellspacing="0" border="0" width="100%">
+          <tr>
+            <td>{TEXT_TARGET_FOLDER}:<br />
+              <select name="target" style="width:100%;" 
+		   onChange="browse.location.href='browse.php?dir=' +
+		   	document.upload.target.value.substr(6,100);
+		   document.create.target.value = document.upload.target.value;">
+                <option value="{MEDIA_DIRECTORY}{HOME_DIRECTORY}" selected="selected">{MEDIA_DIRECTORY}{HOME_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 valign="top">
+				<input type="checkbox" name="unzip" id="unzip"  onClick="toggle();" />
+				<label for="unzip">{TEXT_UNZIP_FILE}</label>
+				<span id="delzip" style="display: none;"><br />
+				<input type="checkbox" name="delzip" id="deletezip" />
+				<label for="deletezip">{TEXT_DELETE_ZIP}</label></span>
+			</td>
+          </tr>
+          <tr>
+            <td width="50%" align="left"><input type="file" size="33" name="file1" /> </td>
+          </tr>
+          <tr>
+            <td width="50%" align="left"><input type="file" size="33" name="file2" id="file2" style="visibility: visible;" /> </td>
+          </tr>
+          <tr>
+            <td width="50%" align="left"><input type="file" size="33" name="file3" id="file3" style="visibility: visible;" /> </td>
+          </tr>
+          <tr>
+            <td width="50%" align="left"><input type="file" size="33" name="file4" id="file4" style="visibility: visible;" /> </td>
+          </tr>
+          <tr>
+            <td width="50%" align="left"><input type="file" size="33" name="file5" id="file5" style="visibility: visible;" /> </td>
+          </tr>
+		  <tr>
+            <td width="50%" align="left"><input type="file" size="33" name="file6" id="file6" style="visibility: visible;" /> </td>
+          </tr>
+          <tr>
+            <td width="50%" align="left"><input type="file" size="33" name="file7" id="file7" style="visibility: visible;" /> </td>
+          </tr>
+          <tr>
+            <td width="50%" align="left"><input type="file" size="33" name="file8" id="file8" style="visibility: visible;" /> </td>
+          </tr>
+		  <tr>
+            <td width="50%" align="left"><input type="file" size="33" name="file9" id="file9" style="visibility: visible;" /> </td>
+          </tr>
+          <tr>
+            <td width="50%" align="left"><input type="file" size="33" name="file10" id="file10" style="visibility: visible;" /> </td>
+          </tr>
+        </table>
+
+        <table cellpadding="3" cellspacing="0" border="0" width="100%">
+          <tr>
+            <td colspan="2"><input type="checkbox" name="overwrite" id="overwrite" value="yes" />
+              <label for="overwrite">{TEXT_OVERWRITE_EXISTING} {TEXT_FILES}</label><br />
+              <input type="submit" name="submit" value="{TEXT_UPLOAD_FILES}" style="width:160px;margin-top:5px;" />
+            </td>
+          </tr>
+        </table>
+      </form>
+      <!-- 
+If you want to HIDE the option of creating folders in the Media-folder (for your clients, for example),
+please set the class below to "hide", else to "show".
+<--->
+      <div class="show">
+	  <br /><br />
+        <form name="create" action="create.php" method="post" class="{DISPLAY_CREATE}">
+          <h2>{HEADING_CREATE_FOLDER}</h2>
+          <table cellpadding="3" cellspacing="0" border="0" width="100%">
+            <tr>
+              <td>{TEXT_NAME}:<br />
+              <input type="text" name="name" style="width:98%;" /></td>
+            </tr>
+          </table>
+          <table cellpadding="3" cellspacing="0" border="0" width="100%">
+            <tr>
+              <td>{TEXT_TARGET_FOLDER}:<br />
+                <select name="target" style="width:100%;">
+                  <option value="{MEDIA_DIRECTORY}{HOME_DIRECTORY}" selected="selected">{MEDIA_DIRECTORY}{HOME_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><input type="submit" name="submit" value="{TEXT_CREATE_FOLDER}" style="width:160px;" />
+              </td>
+            </tr>
+          </table>
+        </form>
+      </div>
+      <!-- END main_block -->
+    </td>
+	<td width="10">&nbsp;</td>
+    <td width="580" valign="top" align="right">
+	<h2 style="padding-left:3px;">{HEADING_BROWSE_MEDIA}</h2>
+	<span class="{DISPLAY_SETTINGS}" style="margin-bottom:2px;">{OPTIONS}:&nbsp;
+	<a href="setparameter.php" target="browse">{CHANGE_SETTINGS}</a>&nbsp;&nbsp;|&nbsp;
+	<a href="browse.php?dir={CURRENT_DIR}" target="browse">{TEXT_RELOAD}</a>
+	</span>
+	<iframe name="browse" width="99%" height="550" src="browse.php" scrolling="yes" frameborder="0" style="border:1px solid #333;"></iframe>
+    </td>
+  </tr>
+</table>
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/footer.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/footer.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/footer.htt	(revision 1130)
@@ -0,0 +1,43 @@
+<!-- BEGIN footer_block -->
+
+</td>
+</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" style="padding: 10px 0;">
+  <tr>
+    <td align="center" style="font-size:10px;width:900px;">
+      <!-- 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: #000;" 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>
+</div>
+
+<script src="{WB_URL}/include/jquery/jquery-min.js" type="text/javascript"></script>
+<script src="{WB_URL}/include/jquery/jquery-ui-min.js" type="text/javascript"></script>
+<script src="{WB_URL}/include/jquery/jquery-insert.js" type="text/javascript"></script>
+<!--[if lt IE 7]><script type="text/javascript" src="{WB_URL}/include/jquery/plugins/unitpngfix.js"></script><![endif]-->
+<script language="javascript" type="text/javascript">
+
+
+        if($(".jcalendar").length) {
+            $.insert("{WB_URL}/include/jscalendar/calendar-system.css");
+          }
+
+        if($(".jsadmin").length) {
+            $.insert("{WB_URL}/modules/jsadmin/backend.css");
+          }
+
+        if($("a[rel^='lightbox']").length) {
+            $.insert("{WB_URL}/include/jquery/plugins/jquery-slimbox2.css");
+            $.insert("{WB_URL}/include/jquery/plugins/jquery-slimbox2-min.js");
+          }
+
+</script>
+{BACKEND_BODY_MODULE_JS}
+</body>
+</html>
+<!-- END footer_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/login_forgot.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/login_forgot.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/login_forgot.htt	(revision 1130)
@@ -0,0 +1,71 @@
+<!-- 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}" />
+<meta http-equiv="content-language" content="{LANGUAGE}" />
+<meta name="description" content="Retrieve Login Details" />
+<meta name="keywords" content="Retrieve Login Details" />
+<link href="{THEME_URL}/theme.css" rel="stylesheet" type="text/css" />
+</head>
+<body onload="document.forgot_pass.email.focus();">
+
+<div style="text-align:left;font-size:20px;color:#fff;padding:15px 0 0 50px;height:100px;">
+	<!-- <img src="{THEME_URL}/images/logo.png" alt="Logo" /> -->
+	{SECTION_FORGOT}
+</div> 
+
+<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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/login.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/login.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/login.htt	(revision 1130)
@@ -0,0 +1,82 @@
+<!-- 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}" />
+<meta http-equiv="content-language" content="{LANGUAGE}" />
+<meta name="description" content="{TEXT_LOGIN}" />
+<meta name="keywords" content="{TEXT_LOGIN}" />
+<link href="{THEME_URL}/theme.css" rel="stylesheet" type="text/css" />
+</head>
+<body onload="document.login.{USERNAME_FIELDNAME}.focus();">
+<div style="text-align:left;font-size:20px;color:#fff;padding:15px 0 0 50px;height:100px;">
+	<!-- <img src="{THEME_URL}/images/logo.png" alt="Logo" /> -->
+	{TEXT_LOGIN}
+</div> 
+<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 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>
+            <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 0;">
+  <tr>
+    <td style="font-size:10px;text-aslign:center;">
+      <!-- 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 -->
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/settings.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/settings.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/settings.htt	(revision 1130)
@@ -0,0 +1,584 @@
+<!-- BEGIN main_block -->
+
+<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" width="200">{TEXT_WEBSITE_TITLE}:</td>
+	<td class="setting_value" colspan="3" width="700">
+		<input type="text" name="website_title" value="{WEBSITE_TITLE}" />
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_DESCRIPTION}:</td>
+	<td class="setting_value" colspan="3">
+		<textarea name="website_description" cols="50" rows="3">{WEBSITE_DESCRIPTION}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_KEYWORDS}:</td>
+	<td class="setting_value" colspan="3">
+		<textarea name="website_keywords" cols="50" rows="3" >{WEBSITE_KEYWORDS}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_HEADER}:</td>
+	<td class="setting_value" colspan="3">
+		<textarea name="website_header" cols="50" rows="3">{WEBSITE_HEADER}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_FOOTER}:</td>
+	<td class="setting_value" colspan="3">
+		<textarea name="website_footer" cols="50" rows="3">{WEBSITE_FOOTER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name" width="200">{TEXT_PAGE_LEVEL_LIMIT}:</td>
+	<td class="setting_value" colspan="3" width="700">
+		<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="3">
+		<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 {DISPLAY_ADVANCED}>
+        <td class="setting_name">{TEXT_PAGE_LANGUAGES}:</td>
+        <td class="setting_value" colspan="3">
+                <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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_MULTIPLE_MENUS}:</td>
+	<td class="setting_value" colspan="3">
+		<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="3">
+		<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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_MANAGE_SECTIONS}:</td>
+	<td class="setting_value" colspan="3">
+		<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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_SECTION_BLOCKS}:</td>
+	<td class="setting_value" colspan="3">
+		<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="3">
+		<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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_HOMEPAGE_REDIRECTION}:</td>
+	<td class="setting_value" colspan="3">
+		<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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_SMART_LOGIN}:</td>
+	<td class="setting_value" colspan="3">
+		<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="3">
+		<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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_REDIRECT_AFTER}:</td>
+	<td class="setting_value" colspan="3">
+		<input type="text" name="redirect_timer" value="{REDIRECT_TIMER}" />
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_SIGNUP}:</td>
+	<td class="setting_value" colspan="3">
+		<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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_PHP_ERROR_LEVEL}:</td>
+	<td class="setting_value" colspan="3">
+		<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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_WYSIWYG_STYLE}:</td>
+	<td class="setting_value" colspan="3"><input type="text" name="wysiwyg_style" value="{WYSIWYG_STYLE}" /></td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_WYSIWYG_EDITOR}:</td>
+	<td class="setting_value" colspan="3">
+		<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 title="{MODE_SWITCH_WARNING}" 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="3">
+		<select name="default_language">
+			<!-- BEGIN language_list_block -->
+			<option value="{CODE}"{SELECTED} style="background: url({FLAG}.png) no-repeat center left; padding-left: 20px;">{NAME} ({CODE})</option>
+			<!-- END language_list_block -->
+		</select>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_CHARSET}:</td>
+	<td class="setting_value" colspan="3">
+		<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="3">
+		<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="3">
+		<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="3">
+		<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="3">
+		<select name="default_template">
+		<!-- BEGIN template_list_block -->
+			<option value="{FILE}"{SELECTED}>{NAME}</option>
+		<!-- END template_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_THEME}:</td>
+	<td class="setting_value" colspan="3">
+		<select name="default_theme">
+		<!-- BEGIN theme_list_block -->
+			<option value="{FILE}"{SELECTED}>{NAME}</option>
+		<!-- END theme_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 title="{MODE_SWITCH_WARNING}" 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="3">
+		<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="3">
+		<select name="search_template">
+		<!-- BEGIN search_template_list_block -->
+			<option value="{FILE}"{SELECTED}>{NAME}</option>
+		<!-- END search_template_list_block -->
+		</select>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_HEADER}:</td>
+	<td class="setting_value" colspan="3">
+		<textarea name="search_header" style="height: 100px;" cols="50" rows="3">{SEARCH_HEADER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_RESULTS_HEADER}:</td>
+	<td class="setting_value" colspan="3">
+		<textarea name="search_results_header" cols="50" rows="3">{SEARCH_RESULTS_HEADER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_RESULTS_LOOP}:</td>
+	<td class="setting_value" colspan="3">
+		<textarea name="search_results_loop" cols="50" rows="3">{SEARCH_RESULTS_LOOP}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_RESULTS_FOOTER}:</td>
+	<td class="setting_value" colspan="3">
+		<textarea name="search_results_footer" cols="50" rows="3">{SEARCH_RESULTS_FOOTER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_NO_RESULTS}:</td>
+	<td class="setting_value" colspan="3">
+		<input type="text" name="search_no_results" value="{SEARCH_NO_RESULTS}" />
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_FOOTER}:</td>
+	<td class="setting_value" colspan="3">
+		<textarea name="search_footer" cols="50" rows="3">{SEARCH_FOOTER}</textarea>
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_MODULE_ORDER}:</td>
+	<td class="setting_value" colspan="3">
+		<input type="text" name="search_module_order" value="{SEARCH_MODULE_ORDER}" />
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_MAX_EXCERPT}:</td>
+	<td class="setting_value" colspan="3">
+		<input type="text" name="search_max_excerpt" value="{SEARCH_MAX_EXCERPT}" />
+	</td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_TIME_LIMIT}:</td>
+	<td class="setting_value" colspan="3">
+		<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 title="{MODE_SWITCH_WARNING}" 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="3">
+		<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 {DISPLAY_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="90%" style="border-right: 1px solid #ddd;" 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="90%" 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 {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_PAGES_DIRECTORY}:</td>
+	<td class="setting_value" colspan="3"><input type="text" name="pages_directory" value="{PAGES_DIRECTORY}" /></td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_MEDIA_DIRECTORY}:</td>
+	<td class="setting_value" colspan="3"><input type="text" name="media_directory" value="{MEDIA_DIRECTORY}" /></td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_PAGE_EXTENSION}:</td>
+	<td class="setting_value" colspan="3"><input type="text" name="page_extension" value="{PAGE_EXTENSION}" /></td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_PAGE_SPACER}:</td>
+	<td class="setting_value" colspan="3"><input type="text" name="page_spacer" value="{PAGE_SPACER}" /></td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_RENAME_FILES_ON_UPLOAD}:</td>
+	<td class="setting_value" colspan="3"><input type="text" name="rename_files_on_upload" value="{RENAME_FILES_ON_UPLOAD}" /></td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_SESSION_IDENTIFIER}:</td>
+	<td class="setting_value" colspan="3"><input type="text" name="app_name" value="{APP_NAME}" /></td>
+</tr>
+<tr {DISPLAY_ADVANCED}>
+	<td class="setting_name">{TEXT_SEC_ANCHOR}:</td>
+	<td class="setting_value" colspan="3"><input type="text" name="sec_anchor" value="{SEC_ANCHOR}" /></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="3"><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="3"><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="3">
+		<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="3"><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="3"><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="3"><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 title="{MODE_SWITCH_WARNING}" onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+	</td>
+</tr>
+</table>
+
+</form>
+
+<hr size="1" />
+
+<button title="{MODE_SWITCH_WARNING}" onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+<br />
+<font class="{DISPLAY_ADVANCED_BUTTON}">{MODE_SWITCH_WARNING}</font>
+<script src="{ADMIN_URL}/settings/setting.js" language="javascript" type="text/javascript"></script>
+<!-- END main_block -->
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/users.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/users.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/users.htt	(revision 1130)
@@ -0,0 +1,32 @@
+<!-- BEGIN main_block -->
+
+<form name="users" action="users.php" method="post">
+<input type="hidden" name="action" value="delete" />
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+	<tr style="background:#f0f0f0;">
+		<td align="left"><h2>{HEADING_MODIFY_DELETE_USER}</h2></td>
+		<td align="right">
+		<!-- BEGIN manage_groups_block -->
+		<a href="{ADMIN_URL}/groups/index.php">{TEXT_MANAGE_GROUPS}</a>
+		<!-- END manage_groups_block -->
+		</td>
+     </tr>
+</table>
+
+<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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/access.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/access.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/access.htt	(revision 1130)
@@ -0,0 +1,33 @@
+<!-- BEGIN main_block -->
+<h2>{ACCESS}</h2>
+<table cellpadding="0" cellspacing="0" border="0" width="99%" align="center">
+	<tr>
+		<td align="center" valign="top">
+			<!-- BEGIN users_block -->	
+			<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_USERS} >
+				<tr>
+					<td class="graphic" align="center" valign="top" rowspan="2">
+						<a href="{ADMIN_URL}/users/index.php"><img src="{THEME_URL}/icons/users.png" alt="{USERS}" /></a>
+					</td>
+					<td class="description" valign="top">
+						<a href="{ADMIN_URL}/users/index.php"><div class="title">{USERS}</div></a>{USERS_OVERVIEW}
+					</td>
+				</tr>
+			</table>	
+			<!-- END users_block -->
+			<!-- BEGIN groups_block -->		
+			<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_GROUPS} >
+				<tr>
+					<td class="graphic" align="center" valign="top" rowspan="2">
+						<a href="{ADMIN_URL}/groups/index.php"><img src="{THEME_URL}/icons/groups.png" alt="{GROUPS}" /></a>
+					</td>
+					<td class="description" valign="top">
+						<a href="{ADMIN_URL}/groups/index.php"><div class="title">{GROUPS}</div></a>{GROUPS_OVERVIEW}
+					</td>
+				</tr>
+			</table>
+			<!-- END groups_block -->
+		</td>
+	</tr>
+</table>
+<!-- END main_block -->
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages_modify.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages_modify.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages_modify.htt	(revision 1130)
@@ -0,0 +1,21 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+<tr style="background:#f0f0f0;">
+	<td valign="middle" align="left"><h2>{HEADING_MODIFY_PAGE}</h2></td>
+	<td align="left" width="20%">ID: {PAGE_ID}</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:#999;" 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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/modules.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/modules.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/modules.htt	(revision 1130)
@@ -0,0 +1,128 @@
+<!-- BEGIN main_block -->
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+	<tr style="background:#f0f0f0;">
+		<td align="right">
+			{URL_TEMPLATES}
+			-
+			{URL_LANGUAGES}
+			-
+			{URL_ADVANCED}
+		</td>
+     </tr>
+</table>
+
+<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="97%" />
+        <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="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="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>
+  <br />
+</form>
+<div class="{DISPLAY_MANUAL_INSTALL}">
+  <h2>{HEADING_INVOKE_MODULE_FILES}</h2>
+  <p>{TEXT_MANUAL_INSTALLATION}</p>
+  <form name="details" action="manual_install.php" method="post" class="{INSTALL_VISIBLE}">
+  <table cellpadding="0" cellspacing="2" border="0" width="80%">
+	  <tr>
+		<td width="150" valign="middle" nowrap="nowrap">{TEXT_FILE}: "install.php"</td>
+		<td valign="middle">
+			<input type="hidden" name="action" value="install" />
+			<select name="file" style="width: 250px;">
+	        <option value="" selected="selected">{TEXT_PLEASE_SELECT}...</option>
+			<!-- BEGIN install_list_block -->
+			<option value="{VALUE}">{NAME}</option>
+			<!-- END install_list_block -->
+			</select>
+			<input type="submit" name="submit" value="{TEXT_EXECUTE}" style="width:100px;" />
+		</td>
+	  </tr>
+  </table>
+  </form>
+  
+  <form name="details" action="manual_install.php" method="post" class="{UPGRADE_VISIBLE}">
+  <table cellpadding="0" cellspacing="2" border="0" width="80%">
+	  <tr>
+		<td width="150" valign="middle" nowrap="nowrap">{TEXT_FILE}: "upgrade.php"</td>
+		<td valign="middle" >
+			<input type="hidden" name="action" value="upgrade" />
+			<select name="file" style="width: 250px;">
+	        <option value="" selected="selected">{TEXT_PLEASE_SELECT}...</option>
+			<!-- BEGIN install_list_block -->
+			<option value="{VALUE}">{NAME}</option>
+			<!-- END install_list_block -->
+			</select>
+			<input type="submit" name="submit" value="{TEXT_EXECUTE}" style="width:100px;" />
+		</td>
+	  </tr>
+  </table>
+  </form>
+
+  <form name="details" action="manual_install.php" method="post" class="{UNINSTALL_VISIBLE}">
+  <table cellpadding="0" cellspacing="2" border="0" width="80%">
+	  <tr>
+		<td width="150" valign="middle" nowrap="nowrap">{TEXT_FILE}: "uninstall.php"</td>
+		<td valign="middle">
+			<input type="hidden" name="action" value="uninstall" />
+			<select name="file" style="width: 250px;">
+	        <option value="" selected="selected">{TEXT_PLEASE_SELECT}...</option>
+			<!-- BEGIN install_list_block -->
+			<option value="{VALUE}">{NAME}</option>
+			<!-- END install_list_block -->
+			</select>
+			<input type="submit" name="submit" value="{TEXT_EXECUTE}" style="width:100px;" />
+			</td>
+	  </tr>
+  </table>
+  </form>
+
+  <p style="color:red;">{TEXT_MANUAL_INSTALLATION_WARNING}</p>
+</div>
+<!-- END main_block -->
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/admintools.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/admintools.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/admintools.htt	(revision 1130)
@@ -0,0 +1,22 @@
+<!-- BEGIN main_block -->
+<h2>{HEADING_ADMINISTRATION_TOOLS} </h2>
+<div id="admintools">
+	<ul>
+	<!-- BEGIN tool_list_block -->
+	<li>
+		<table cellpadding="0" cellspacing="0" border="0" class="section" width="100%">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a class= "title" href="{ADMIN_URL}/admintools/tool.php?tool={TOOL_DIR}"><img src="{THEME_URL}/icons/admintools.png" border="0" align="left"></a>
+			</td>
+			<td class="description" valign="top">
+				<a href="{ADMIN_URL}/admintools/tool.php?tool={TOOL_DIR}"><div class="title">{TOOL_NAME}</div></a>{TOOL_DESCRIPTION}
+			</td>
+		</tr>
+		</table>
+	</li>
+	<!-- END tool_list_block -->
+	</ul>
+	{TOOL_LIST}
+</div>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/media_browse.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/media_browse.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/media_browse.htt	(revision 1130)
@@ -0,0 +1,55 @@
+<!-- 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>
+<link href="{THEME_URL}/browse.css" rel="stylesheet" type="text/css" />
+<script language="javascript" type="text/javascript">
+function confirm_link(message, url) {
+	if(confirm(message)) location.href = url;
+}
+</script>
+<script type="text/javascript" src="overlib.js"></script>
+</head>
+<body onload="parent.document.create.target.value = '{MEDIA_DIRECTORY}{CURRENT_DIR}'; parent.document.upload.target.value = '{MEDIA_DIRECTORY}{CURRENT_DIR}';">
+
+<table cellpadding="4" cellspacing="0" border="0" width="100%" style="border-bottom: 1px solid #666; width: 100%;">
+<tr style="background-color: #DDD;">
+	<td width="16" align="center" style="padding-left: 10px;">
+		<a href="{PARENT_DIR_LINK}"><img src="{THEME_URL}/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="left">
+		<strong>{TEXT_CURRENT_FOLDER}: {MEDIA_DIRECTORY}{CURRENT_DIR}</strong>
+	</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};">
+	<td width="18" style="padding-left: 10px;">
+		<a href="{LINK}" target="{LINK_TARGET}"><img {MOUSEOVER} src="{FT_ICON}" class="{DISPLAY_ICON}" border="0" alt="" /></a>
+	</td>
+	<td>
+		<a {MOUSEOVER} href="{LINK}" target="{LINK_TARGET}">{NAME}</a>
+	</td>
+	<td width="190">
+		<small>{IMAGEDETAIL}<br />{DATE}</small>
+	</td>
+	<td width="60" align="right" class="{DISPLAY_RENAME}">
+		<a href="rename.php?dir={CURRENT_DIR}&id={TEMP_ID}"><img src="{THEME_URL}/images/modify_16.png" alt="{TEXT_RENAME}" border="0" /> </a> &nbsp;&nbsp; <a href="#" onclick="javascript: confirm_link('{CONFIRM_DELETE}\n {NAME_SLASHED}', 'delete.php?dir={CURRENT_DIR}&id={TEMP_ID}');"><img src="{THEME_URL}/images/delete_16.png" alt="{TEXT_DELETE}" border="0" /></a>&nbsp;&nbsp;
+	</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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/groups_form.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/groups_form.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/groups_form.htt	(revision 1130)
@@ -0,0 +1,281 @@
+<!-- BEGIN main_block -->
+
+
+<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="2" 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:98%" />
+	</td>
+</tr>
+</table>
+<table cellpadding="2" 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="2" cellspacing="0" border="0" width="100%" style="display: {DISPLAY_ADVANCED}">
+<tr>
+	<td width="150" valign="top">{TEXT_SYSTEM_PERMISSIONS}:</td>
+	<td align="left">
+
+
+<table cellpadding="0" cellspacing="0" border="0" width="330">
+<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>
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_ADMINTOOLS}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="admintools_settings" id="admintools_settings" type="checkbox" value="1" {admintools_settings_checked} /></td>
+	<td><label for="admintools_settings">{TEXT_MODIFY_SETTINGS}</label></td>
+	<td>&nbsp;</td>
+	<td>&nbsp;</td>
+</tr>
+</table>
+
+
+	</td>
+</tr>
+</table>
+
+<table cellpadding="2" 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>
+<tr style="text-align:center;width:100%">
+    <td>&nbsp;</td>
+	<td style="text-align:right;">
+		<input type="submit" name="submit" value="{SUBMIT_TITLE}" />
+	</td>
+	<td style="text-align:left;">
+		<input type="reset" name="reset" value="{TEXT_RESET}" />
+	</td>
+    <td>&nbsp;</td>
+</tr>
+</table>
+</form>
+
+
+<form name="advanced" action="{ADVANCED_ACTION}" method="post">
+<input type="hidden" name="group_id" value="{GROUP_ID}" />
+<input type="hidden" name="action" value="modify" />
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+    <td>&nbsp;</td>
+	<td style="text-align:center;">
+		<input type="submit" name="advanced" onclick="window.location = '{ADVANCED_LINK}';" value="{ADVANCED_BUTTON}" />
+	</td>
+    <td>&nbsp;</td>
+</tr>
+</table>
+</form>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages_settings.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages_settings.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages_settings.htt	(revision 1130)
@@ -0,0 +1,167 @@
+<!-- BEGIN main_block -->
+
+<script src="{ADMIN_URL}/pages/page_settings.js" type="text/javascript" language="javascript"></script>
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+  <tr style="background:#f0f0f0;">
+	<td valign="middle" align="left"><h2>{HEADING_MODIFY_PAGE_SETTINGS}</h2></td>
+	<td nowrap="nowrap">ID: {PAGE_ID}</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:#999;" 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:8px 0 0 20px;">
+		<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>
+	<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>
+	<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} style="background: {FLAG_ROOT_ICON} no-repeat center left; padding-left: 20px;">{TITLE}</option>
+			<!-- END page_list_block2 -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<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" rows="10" cols="1" style="width:236px;height:50px;">{DESCRIPTION}</textarea>
+	</td>
+</tr>
+<tr>
+	<td width="100" valign="top">{TEXT_KEYWORDS}:</td>
+	<td>
+		<textarea name="keywords" rows="10" cols="1" 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>
+	<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 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 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} style="background: {FLAG_LANG_ICONS} no-repeat center left; padding-left: 20px;">{NAME}</option>
+			<!-- END language_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/groups.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/groups.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/groups.htt	(revision 1130)
@@ -0,0 +1,31 @@
+<!-- BEGIN main_block -->
+
+<form name="groups" action="groups.php" method="post">
+  <input type="hidden" name="action" value="delete" />
+  
+  <table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+	<tr style="background:#f0f0f0;">
+		<td align="left"><h2>{HEADING_MODIFY_DELETE_GROUP}</h2></td>
+		<td align="right">
+		<!-- BEGIN manage_users_block -->
+		<a href="{ADMIN_URL}/users/index.php">{TEXT_MANAGE_USERS}</a>
+		<!-- END manage_users_block -->
+		</td>
+     </tr>
+</table>
+
+  <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 -->
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/addons.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/addons.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/addons.htt	(revision 1130)
@@ -0,0 +1,59 @@
+<!-- BEGIN main_block -->
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+	<tr style="background:#f0f0f0;">
+		<td valign="middle" align="left"><h2>{ADDONS_OVERVIEW}</h2></td>
+		<td align="right">{URL_ADVANCED}</td>
+	</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="99%" align="center">
+	<tr>
+		<td align="center" valign="top">
+			<!-- BEGIN modules_block -->
+			<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_MODULES} >
+				<tr>
+					<td class="graphic" align="center" valign="middle" rowspan="2"><a href="{ADMIN_URL}/modules/index.php"><img src="{THEME_URL}/icons/modules.png" alt="0" /> </a> </td>
+					<td class="description" valign="top"><a href="{ADMIN_URL}/modules/index.php"><div class="title">{MODULES}</div></a>{MODULES_OVERVIEW}</td>
+				</tr>
+			</table>
+			<!-- END modules_block -->
+			<!-- BEGIN templates_block -->
+			<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_TEMPLATES} >
+				<tr>
+					<td class="graphic" align="center" valign="middle" rowspan="2"><a href="{ADMIN_URL}/templates/index.php"><img src="{THEME_URL}/icons/templates.png" alt="{TEMPLATES}" /> </a> </td>
+					<td class="description" valign="top"><a href="{ADMIN_URL}/templates/index.php"><div class="title">{TEMPLATES}</div></a>{TEMPLATES_OVERVIEW}</td>
+				</tr>
+			</table>
+			<!-- END templates_block -->
+			<!-- BEGIN languages_block -->
+			<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_LANGUAGES} >
+				<tr>
+					<td class="graphic" align="center" valign="middle" rowspan="2"><a href="{ADMIN_URL}/languages/index.php"><img src="{THEME_URL}/icons/languages.png" alt="{LANGUAGES}" /> </a> </td>
+					<td class="description" valign="top"> <a href="{ADMIN_URL}/languages/index.php"><div class="title">{LANGUAGES}</div></a>{LANGUAGES_OVERVIEW}</td>
+				</tr>
+			</table>
+			<!-- END languages_block -->
+			<!-- BEGIN reload_block -->
+			<table cellpadding="0" cellspacing="0" border="0" class="section" {DISPLAY_RELOAD} >
+				<tr>
+					<td class="graphic" align="center" valign="middle" rowspan="2"><img src="{THEME_URL}/icons/admintools.png" alt="{TXT_ADMIN_SETTINGS}" /> </td>
+					<td class="description" valign="top"><div class="title">{TXT_ADMIN_SETTINGS}</div>
+						<form action="{RELOAD_URL}" method="post">
+							{MESSAGE_RELOAD_ADDONS}
+							<br style="margin-bottom: 0.5em" />
+							<input {DISPLAY_MODULES} type="checkbox" name="reload_modules" id="reload_modules" value="true" />
+							<label {DISPLAY_MODULES} for="reload_modules">{MODULES}</label>
+							<input {DISPLAY_TEMPLATES} type="checkbox" name="reload_templates" id="reload_templates" value="true" />
+							<label {DISPLAY_TEMPLATES} for="reload_templates">{TEMPLATES}</label>
+							<input {DISPLAY_LANGUAGES} type="checkbox" name="reload_languages" id="reload_languages" value="true" />
+							<label {DISPLAY_LANGUAGES} for="reload_languages">{LANGUAGES}</label>
+							<input type="submit" name="submit" value="{TEXT_RELOAD}" />
+						</form>
+					</td>
+				</tr>
+			</table>
+			<!-- END reload_block -->
+		</td>
+	</tr>
+</table>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: argos_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Jurgen Nijhuis (Argos Media) & Ruud Eisinga
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    1.1
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/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.8.0/trunk/wb/templates/argos_theme/templates/templates.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/templates.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/templates.htt	(revision 1130)
@@ -0,0 +1,85 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+	<tr style="background:#f0f0f0;">
+		<td align="left">{CHANGE_TEMPLATE_NOTICE}</td>
+		<td align="right">
+			{URL_MODULES}
+			-
+			{URL_LANGUAGES}
+			-
+			{URL_ADVANCED}
+		</td>
+     </tr>
+</table>
+
+<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="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="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>
+
+<br />
+</form>
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/languages.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/languages.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/languages.htt	(revision 1130)
@@ -0,0 +1,71 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" style="margin-bottom:10px;">
+	<tr style="background:#f0f0f0;">
+		<td align="left">{CHANGE_TEMPLATE_NOTICE}</td>
+		<td align="right">
+			{URL_MODULES}
+			-
+			{URL_TEMPLATES}
+			-
+			{URL_ADVANCED}
+		</td>
+     </tr>
+</table>
+
+<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="97%" />
+        <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="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="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>
+  <br />
+</form>
+<!-- END main_block -->
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/error.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/error.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/error.htt	(revision 1130)
@@ -0,0 +1,6 @@
+<!-- BEGIN main_block -->
+<div style='text-align:center;'>
+	<p>{MESSAGE}</p>
+	<p><a href="{LINK}">{BACK}</a></p>
+</div>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/pages.htt	(revision 1130)
@@ -0,0 +1,91 @@
+<!-- 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;" onChange="return disabled_hack_for_ie(this);">
+			<!-- BEGIN page_list_block2 -->
+			<option value="{ID}"{DISABLED} style="background: {FLAG_ROOT_ICON} no-repeat center left; padding-left: 20px;">{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>
+<!-- Addition for remembering expanded state of pages -->
+<script type="text/javascript" language="javascript">
+var THEME_URL = '{THEME_URL}';
+var WB_URL = '{WB_URL}';
+</script>
+<script src="{ADMIN_URL}/pages/page_index.js" type="text/javascript" language="javascript"></script>
+<!-- END main_block -->
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/templates_details.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/templates_details.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/templates_details.htt	(revision 1130)
@@ -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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/success.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/success.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/success.htt	(revision 1130)
@@ -0,0 +1,16 @@
+<!-- BEGIN main_block -->
+<center>
+	
+	{MESSAGE}
+	
+	<script language="javascript" type="text/javascript">
+		setTimeout("location.href='{REDIRECT}'", {REDIRECT_TIMER});
+	</script>
+	
+	<noscript>
+		<br /><br />
+		<a href="{REDIRECT}">{NEXT}</a>
+	</noscript>
+	
+</center>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/warning.html
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/warning.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/warning.html	(revision 1130)
@@ -0,0 +1,48 @@
+<!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(../images/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;
+}
+div#message {
+	text-align: center;
+}
+--></style></head>
+<body>
+
+<div id='message'>
+	<h1>Excessive Invalid Logins</h1>
+	You have attempted to login too many times
+</div>
+
+</body>
+</html>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/languages_details.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/languages_details.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/languages_details.htt	(revision 1130)
@@ -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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/users_form.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/users_form.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/users_form.htt	(revision 1130)
@@ -0,0 +1,94 @@
+<!-- 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>
+
+<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="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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/setparameter.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/setparameter.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/setparameter.htt	(revision 1130)
@@ -0,0 +1,63 @@
+<!-- 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>Set Upload Parameters</title>
+
+
+<style type="text/css">
+body,td,th,input,textarea {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+}
+body {
+	background-color: #FFF;
+	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>
+</head>
+<body>
+
+<table cellpadding="4" cellspacing="0" border="0" width="100%" style="border-bottom: 1px solid #666; width: 100%;">
+<tr style="background-color: #DDD;">
+	<td align="center">{TEXT_HEADER}</td>
+</tr>
+</table>
+<form method="post" action="{ADMIN_URL}/media/setparameter.php">
+<table cellpadding="4" cellspacing="0" border="0" width="100%" class="{DISPLAY_LIST_TABLE}">
+	<tr><td>{SETTINGS}</td><td><input type="checkbox" name="show_thumbs" {NO_SHOW_THUMBS_SELECTED}> {NO_SHOW_THUMBS}</td></tr>
+	<tr class="{DISPLAY_ADMIN}"><td></td>&nbsp;<td><input type="checkbox" name="admin_only" {ADMIN_ONLY_SELECTED}> {ADMIN_ONLY}</td></tr>
+	<tr><td colspan="2" style="border-bottom: 1px solid #666; line-height: 1px;">&nbsp;</td></tr>
+<!-- BEGIN list_block -->
+	<tr style="background-color: #{ROW_BG_COLOR};">
+		<td>{PATH_NAME}</td>
+		<td>{WIDTH} <input size="5" type="text" name="{FIELD_NAME_W}" value="{CUR_WIDTH}"> {HEIGHT} <input size="5" type="text" name="{FIELD_NAME_H}" value="{CUR_HEIGHT}"></td>
+	</tr>
+<!-- END list_block -->
+	<tr>
+		<td><input type="button" onclick="javascript: window.location = 'browse.php'" value="{BACK}"></td>
+		<td><input type="submit" name="save" value="{SAVE_TEXT}"></td>
+	</tr>
+</table>
+
+</body>
+</html>
+
+
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/start.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/start.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/start.htt	(revision 1130)
@@ -0,0 +1,75 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="0" cellspacing="0" border="0" width="99%" align="center">
+  <tr>
+    <td colspan="3">{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" width="49%">
+      <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="{THEME_URL}/icons/pages.png" border="0" /> </a> </td>
+          <td class="description" valign="top"> <a href="{ADMIN_URL}/pages/index.php"><div class="title">{PAGES}</div></a>
+		  {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="{THEME_URL}/icons/addons.png" border="0" /> </a> </td>
+          <td class="description" valign="top"> <a href="{ADMIN_URL}/addons/index.php"><div class="title">{ADDONS}</div></a>
+		  {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="{THEME_URL}/icons/settings.png" border="0" /> </a> </td>
+          <td class="description" valign="top"> <a href="{ADMIN_URL}/settings/index.php"><div class="title">{SETTINGS}</div></a>
+		  {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="{THEME_URL}/icons/access.png" border="0" /> </a> </td>
+          <td class="description" valign="top"> <a href="{ADMIN_URL}/access/index.php"><div class="title">{ACCESS}</div></a>
+		  {ACCESS_OVERVIEW}
+		  </td>
+        </tr>
+      </table>
+    </td>
+    <td width="10">&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="{THEME_URL}/icons/media.png" border="0" /> </a> </td>
+          <td class="description" valign="top"> <a href="{ADMIN_URL}/media/index.php"><div class="title">{MEDIA}</div></a>
+		  {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="{THEME_URL}/icons/preferences.png" border="0" /> </a> </td>
+          <td class="description" valign="top"> <a href="{ADMIN_URL}/preferences/index.php"><div class="title">{PREFERENCES}</div></a>
+		  {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="{THEME_URL}/icons/admintools.png" border="0" /> </a> </td>
+          <td class="description" valign="top"> <a href="{ADMIN_URL}/admintools/index.php"><div class="title">{ADMINTOOLS}</div></a>
+		  {ADMINTOOLS_OVERVIEW}
+		  </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/preferences.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/preferences.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/preferences.htt	(revision 1130)
@@ -0,0 +1,127 @@
+<!-- BEGIN main_block -->
+
+<form name="details" action="details.php" method="post">
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td colspan="2"><h2>{HEADING_MY_SETTINGS}</h2></td>
+</tr>
+<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} style="background: url({FLAG}.png) no-repeat center left; padding-left: 20px;">{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">
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td colspan="2"><h2>{HEADING_MY_EMAIL}</h2></td>
+</tr>
+<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">
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td colspan="2"><h2>{HEADING_MY_PASSWORD}</h2></td>
+</tr>
+<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>
+	<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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/media_rename.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/media_rename.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/media_rename.htt	(revision 1130)
@@ -0,0 +1,61 @@
+<!-- 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>Rename Media</title>
+<link href="{THEME_URL}/media.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<!-- 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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/templates/modules_details.htt
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/templates/modules_details.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/templates/modules_details.htt	(revision 1130)
@@ -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
Index: tags/2.8.0/trunk/wb/templates/argos_theme/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/languages/DE.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+$template_description 	= 'Ein erweitertes Backend-Theme f&uuml;r Websitebaker 2.8';
+
+//Texts
+$TEXT['ADMIN_ONLY'] = 'diese Optionen nur Administratoren zug&auml;nglich machen';
+$TEXT['NO_SHOW_THUMBS'] = 'Vorschaubilder verstecken';
+$TEXT['TEXT_HEADER'] = 'Maximale Bildergr&ouml;&szlig;e f&uuml;r Ordner festlegen</b><br><small><i>(&Auml;nderung nur beim Hochladen)</i></small>';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/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.8.0/trunk/wb/templates/argos_theme/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/languages/NL.php	(revision 1130)
@@ -0,0 +1,33 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+$template_description 	= 'Geavanceerde admin-template voor Website Baker 2.8.';
+
+//Texts
+$TEXT['ADMIN_ONLY'] = 'Instellingen alleen beschikbaar voor administrator';
+$TEXT['NO_SHOW_THUMBS'] = 'Thumbnails niet weergeven';
+$TEXT['TEXT_HEADER'] = 'Stel de maximale grootte voor \'resized\' afbeeldingen in per folder</b><br><small><i>(NB: werkt alleen bij nieuwe uploads)</i></small>';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/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.8.0/trunk/wb/templates/argos_theme/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/languages/EN.php	(revision 1130)
@@ -0,0 +1,33 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+$template_description 	= 'Enhanced backend theme for Website Baker 2.8.';
+
+//Texts
+$TEXT['ADMIN_ONLY'] = 'Settings for administrator only';
+$TEXT['NO_SHOW_THUMBS'] = 'Hide thumbnails';
+$TEXT['TEXT_HEADER'] = 'Set maximum imagesize for a folder</b><br><small><i>(resizing on new uploads only)</i></small>';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/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.8.0/trunk/wb/templates/argos_theme/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/languages/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: argos_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Jurgen Nijhuis (Argos Media) & Ruud Eisinga
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    1.1
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/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.8.0/trunk/wb/templates/argos_theme/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker theme: argos_theme
+ * This theme is the default WB backend Theme
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Jurgen Nijhuis (Argos Media) & Ruud Eisinga
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    1.1
+ * @platform   Website Baker 2.8
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent this file from being accessed directly
+if (!defined('WB_PATH')) die(header('Location: ../../index.php'));
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/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.8.0/trunk/wb/templates/argos_theme/media.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/media.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/media.css	(revision 1130)
@@ -0,0 +1,37 @@
+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;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	text-decoration: none;
+	color: #336699;
+}
+input:focus, select:focus, textarea:focus {
+	background: #F1F8FD;
+}
+.content {
+	width: 100%;
+	height: 100px;
+}
+.rename {
+    background: #fff url(images/bgtitle.png) ;
+    background-repeat:repeat-x;
+	padding: 20px;
+}
+.hide {
+	display: none;
+}

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/media.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/argos_theme/browse.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/argos_theme/browse.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/argos_theme/browse.css	(revision 1130)
@@ -0,0 +1,6 @@
+body,td,th,input,textarea {font-family:Arial,Helvetica,sans-serif;font-size:12px;}
+body {background-color:#fff;margin:0;}
+hr {margin:0;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;}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/argos_theme/browse.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/allcss/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/allcss/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/allcss/index.php	(revision 1130)
@@ -0,0 +1,149 @@
+<?php
+/**
+ * $Id$
+ * Website Baker template: allcss
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file contains the overall template markup and the Website Baker
+ * template functions to add the contents from the database.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent this file from being accessed directly
+if (!defined('WB_PATH')) die(header('Location: ../../index.php'));
+
+// TEMPLATE CODE STARTS BELOW
+?>
+<!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>
+	<meta http-equiv="Content-Type" content="text/html; charset=<?php 
+	echo defined('DEFAULT_CHARSET') ? DEFAULT_CHARSET : 'utf-8'; ?>" />
+	<meta name="description" content="<?php page_description(); ?>" />
+	<meta name="keywords" content="<?php page_keywords(); ?>" />
+	<?php 
+	// automatically include optional WB module files (frontend.css, frontend.js)
+	if (function_exists('register_frontend_modfiles')) {
+		register_frontend_modfiles('css');
+		register_frontend_modfiles('js');
+	} ?>
+	<link rel="stylesheet" type="text/css" href="<?php 
+	echo TEMPLATE_DIR; ?>/template.css" media="screen,projection" />
+	<link rel="stylesheet" type="text/css" href="<?php 
+	echo TEMPLATE_DIR; ?>/print.css" media="print" />
+	<title><?php page_title('', '[WEBSITE_TITLE]'); ?></title>
+</head>
+
+<body>
+
+<div class="main">
+	
+	<div class="banner">
+		<a href="<?php echo WB_URL; ?>/" target="_top"><?php page_title('', '[WEBSITE_TITLE]'); ?></a>
+		<span>| <?php page_title('', '[PAGE_TITLE]'); ?></span>
+	</div>
+	
+	<!-- frontend search -->
+	<div class="search_box">
+		<?php 
+		// CODE FOR WEBSITE BAKER FRONTEND SEARCH
+		if (SHOW_SEARCH) { ?>
+			<form name="search" action="<?php echo WB_URL; ?>/search/index.php" method="get">
+				<input type="hidden" name="referrer" value="<?php 
+				echo defined('REFERRER_ID') ? REFERRER_ID : PAGE_ID; ?>" />
+				<input type="text" name="string" class="search_string" />
+				<input type="submit" name="wb_search" id="wb_search" value="<?php 
+				echo $TEXT['SEARCH']; ?>" class="search_submit" />
+			</form><?php 
+		} ?>
+	</div>
+
+	<!-- main navigation menu -->
+	<div class="menu">
+		<?php show_menu(1, 0, -1, true, 
+			'<li><span [class]>[a][menu_title][/a]</span>', '</li>', 
+			'<ul>', '</ul>', 'class="menu_default"', 'class="menu_current"', 0
+			); 
+		?>
+		
+		<?php
+		// CODE FOR WEBSITE BAKER FRONTEND LOGIN
+		if (FRONTEND_LOGIN == 'enabled' && VISIBILITY != 'private' 
+			&& $wb->get_session('USER_ID') == '') { ?>
+			<!-- login form -->
+			<br />
+			<form name="login" id="login" action="<?php echo LOGIN_URL; ?>" method="post">
+				<fieldset>
+					<legend><?php echo $TEXT['LOGIN']; ?></legend>
+					<label for="username" accesskey="1"><?php echo $TEXT['USERNAME']; ?>:</label>
+					<input type="text" name="username" id="username" style="text-transform: lowercase;" /><br />
+					<label for="password" accesskey="2"><?php echo $TEXT['PASSWORD']; ?>:</label>
+					<input type="password" name="password" id="password" /><br />
+					<input type="submit" name="wb_login" id="wb_login" value="<?php echo $MENU['LOGIN']; ?>"/><br />
+	
+					<!-- forgotten details link -->
+					<a href="<?php echo FORGOT_URL; ?>"><?php echo $TEXT['FORGOT_DETAILS']; ?></a>
+
+					<!-- frontend signup -->
+					<?php
+					if (is_numeric(FRONTEND_SIGNUP)) { ?>
+						<a href="<?php echo SIGNUP_URL; ?>"><?php echo $TEXT['SIGNUP']; ?></a>
+					<?php } ?>
+				</fieldset>
+			</form>
+			
+		<?php 
+		} elseif (FRONTEND_LOGIN == 'enabled' && is_numeric($wb->get_session('USER_ID'))) { ?>
+			<!-- logout form -->
+			<br />
+			<form name="logout" id="logout" action="<?php echo LOGOUT_URL; ?>" method="post">
+				<fieldset>
+					<legend><?php echo $TEXT['LOGGED_IN']; ?>:</legend>
+					<?php echo $TEXT['WELCOME_BACK']; ?>, <?php echo $wb->get_display_name(); ?>
+					<input type="submit" name="wb_logout" id="wb_logout" value="<?php echo $MENU['LOGOUT']; ?>" />
+					<!-- edit user preferences -->
+					<a href="<?php echo PREFERENCES_URL; ?>"><?php echo $MENU['PREFERENCES']; ?></a>
+				</fieldset>
+			</form>
+		<?php 
+		} ?>
+	</div>
+	
+	<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>
+<?php 
+// automatically include optional WB module file frontend_body.js)
+if (function_exists('register_frontend_modfiles_body')) { register_frontend_modfiles_body(); } 
+?>
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/templates/allcss/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/allcss/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/allcss/images/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker template: allcss
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/allcss/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.8.0/trunk/wb/templates/allcss/images/header.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/allcss/images/header.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/allcss/images/footer.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/allcss/images/footer.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/allcss/images/background.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/allcss/images/background.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/allcss/info.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/allcss/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/allcss/info.php	(revision 1130)
@@ -0,0 +1,45 @@
+<?php
+/**
+ * $Id$
+ * Website Baker template: allcss
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// OBLIGATORY WEBSITE BAKER VARIABLES
+$template_directory				= 'allcss';
+$template_name						= 'All CSS';
+$template_function			= 'template';
+$template_version					= '2.70';
+$template_platform				= '2.7';
+$template_author					= 'Ryan Djurovich, C. Sommer';
+$template_license					= '<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>';
+$template_license_terms		= '-';
+$template_description			= 'Default template for Website Baker. This template is designed with one goal in mind: to completely control layout with CSS. In case you were wondering, that is where the name came from.';
+
+// OPTIONAL VARIABLES FOR ADDITIONAL MENUES AND BLOCKS
+// $menu[1]								= '';
+// $menu[2]								= '';
+// $block[1]							= '';
+// $block[2]							= '';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/templates/allcss/preview.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/allcss/preview.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/allcss/template.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/allcss/template.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/allcss/template.css	(revision 1130)
@@ -0,0 +1,189 @@
+/**
+ * $Id$
+ * Website Baker template: allcss
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file contains all CSS definitions required to display the template
+ * in the Website Baker frontend. 
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+body,td,th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000;
+}
+body {
+	background-color: #F0F0F0;
+	background-image: url(images/background.jpg);
+	margin: 0;
+}
+a:link, a:visited, a:active {
+	color: #603;
+	text-decoration: none;
+}
+a:hover {
+	color: #936;
+	text-decoration: none;
+}
+hr {
+	margin: 5px 0px 5px 0px;
+	color: #603;
+	border: 0;
+	border-top: 1px solid #603;
+	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: #FFF;
+}
+.banner, .search_box {
+	height: 80px;
+	background-image: url(images/header.jpg);
+	background-repeat: repeat-x;
+	font-size: 20px;
+	font-weight: bold;
+	color: #FFF;
+	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: #FFF;
+}
+.banner span {
+	color: #D0D0D0;
+}
+
+.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 #999;
+}
+.menu_default a:hover {
+	border-bottom: 1px dashed #333;
+}
+
+.menu_current  {
+	border-bottom: 1px dashed #999;
+	font-weight:bold;
+}
+
+.menu fieldset {
+	border: 1px solid #D0D0D0;
+	margin-top: 20px;
+	margin-bottom: 5px;
+	text-align: center;
+	padding-bottom: 3px;
+}
+
+.menu legend {
+	color: #603;
+	font-size: 12px;
+	text-transform: uppercase;
+	font-weight: bold;
+	text-align: center;
+}
+
+.menu 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: #FFF;
+	clear: both;
+	height: 20px;
+	background-image: url(images/footer.jpg);
+	background-repeat: repeat-x;
+	font-size: 10px;
+	color: #666;
+	text-align: center;
+	line-height: 18px;
+}
+.powered_by {
+	text-align: center;
+	font-size: 10px;
+	padding-top: 2px;
+}
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/allcss/print.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/allcss/print.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/allcss/print.css	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/templates/round/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/round/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/round/index.php	(revision 1130)
@@ -0,0 +1,252 @@
+<?php
+/**
+ * $Id$
+ * Website Baker template: round
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file contains the overall template markup and the Website Baker
+ * template functions to add the contents from the database.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent this file from being accessed directly
+if (!defined('WB_PATH')) die(header('Location: ../../../index.php'));
+
+// TEMPLATE CODE STARTS BELOW
+?>
+<!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>
+	<meta http-equiv="Content-Type" content="text/html; charset=<?php 
+	echo defined('DEFAULT_CHARSET') ? DEFAULT_CHARSET : 'utf-8'; ?>" />
+	<meta name="description" content="<?php page_description(); ?>" />
+	<meta name="keywords" content="<?php page_keywords(); ?>" />
+	<?php 
+	// automatically include optional WB module files (frontend.css, frontend.js)
+	if (function_exists('register_frontend_modfiles')) {
+		register_frontend_modfiles('css');
+		register_frontend_modfiles('js');
+	} ?>
+	<link rel="stylesheet" type="text/css" href="<?php 
+		echo TEMPLATE_DIR; ?>/template.css" media="screen,projection" />
+	<link rel="stylesheet" type="text/css" href="<?php 
+		echo TEMPLATE_DIR; ?>/print.css" media="print" />
+	<title><?php page_title('', '[WEBSITE_TITLE]'); ?></title>
+</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; ?>/images/banner.jpg" border="0" width="750" height="80" alt="<?php 
+			page_title('', '[WEBSITE_TITLE]'); ?>" />
+		</a>
+	</td>
+</tr>
+<tr>
+	<?php
+	// navigation menu
+	if(SHOW_MENU) {
+	?>	
+	<td style="padding: 10px; background-color: #FFF;" 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; ?>/images/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; ?>/images/menu_bottom.gif" border="0" alt="" />
+			</td>
+		</tr>
+		</table>
+		
+		
+		<!-- frontend search -->
+		<?php if (SHOW_SEARCH) { ?>
+		<form name="search" action="<?php echo WB_URL; ?>/search/index.php" method="get">
+			<input type="hidden" name="referrer" value="<?php
+				echo defined('REFERRER_ID') ? REFERRER_ID : PAGE_ID; ?>" />
+			<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; ?>/images/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; ?>/images/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; ?>/images/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; ?>/images/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; ?>/images/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; ?>/images/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>
+	<td height="20" width="155" valign="bottom" class="powered_by">
+		<a href="http://www.websitebaker.org/" target="_blank">
+			<img src="<?php echo TEMPLATE_DIR; ?>/images/powered.jpg" border="0" alt="Powered By Website Baker" />
+		</a>
+	</td>
+</tr>
+<tr>
+	<td colspan="2" class="border">
+		<img src="<?php echo TEMPLATE_DIR; ?>/images/footer.png" border="0" alt="" />
+	</td>
+</tr>
+<tr>
+	<td colspan="2" class="footer">
+		<?php page_footer(); ?>
+	</td>
+</tr>
+</table>
+<?php 
+// automatically include optional WB module file frontend_body.js)
+if (function_exists('register_frontend_modfiles_body')) { register_frontend_modfiles_body(); } 
+?>
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/templates/round/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/round/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/round/images/index.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+/**
+ * $Id$
+ * Website Baker template: round
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file prevents directory listing.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/templates/round/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.8.0/trunk/wb/templates/round/images/footer.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/round/images/footer.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/round/images/banner.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/round/images/banner.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/round/images/powered.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/round/images/powered.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/round/images/menu_top.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/round/images/menu_top.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/round/images/menu_bottom.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/round/images/menu_bottom.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/round/images/background.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/round/images/background.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/round/info.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/round/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/round/info.php	(revision 1130)
@@ -0,0 +1,46 @@
+<?php
+/**
+ * $Id$
+ * Website Baker template: round
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// OBLIGATORY WEBSITE BAKER VARIABLES
+$template_directory				= 'round';
+$template_name						= 'Round';
+$template_function			= 'template';
+$template_version					= '2.70';
+$template_platform				= '2.7';
+$template_author					= 'Ryan Djurovich, C. Sommer';
+$template_license					= '<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>';
+$template_license_terms		= '-';
+$template_description			= 'Default template for Website Baker. Simular to the box template, but with rounded edges.';
+
+// OPTIONAL VARIABLES FOR ADDITIONAL MENUES AND BLOCKS
+// $menu[1]								= '';
+// $menu[2]								= '';
+// $block[1]							= '';
+// $block[2]							= '';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/templates/round/preview.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/round/preview.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/round/template.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/round/template.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/round/template.css	(revision 1130)
@@ -0,0 +1,148 @@
+/**
+ * $Id$
+ * Website Baker template: allcss
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file contains all CSS definitions required to display the template
+ * in the Website Baker frontend. 
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+body,td,th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000;
+}
+body {
+	background-color: #036;
+	background-image: url(images/background.jpg);
+	background-repeat: repeat-x;
+	margin: 10px;
+}
+a:link, a:visited, a:active {
+	color: #036;
+	text-decoration: none;
+}
+a:hover {
+	color: #369;
+	text-decoration: none;
+}
+hr {
+	margin: 15px 0px 15px 0px;
+	color: #036;
+	height: 1px;
+	width: 100%;
+}
+h1 {
+	font-size: 18px;
+	color: #036;
+	margin: 5px 0px 5px 0px;
+}
+h2 {
+	font-size: 15px;
+	color: #369;
+	margin: 15px 0px 5px 0px;
+}
+form {
+	margin: 0;
+}
+.header {
+	width: 750px;
+	height: 80px;
+	background-color: #FFF;
+	vertical-align: top;
+}
+.menu {
+	vertical-align: top;
+	background-color: #FFF;
+	width: 170px;
+	padding: 0px;
+}
+.menu ul, .menu li{
+	list-style-type: none;
+	margin: 0;
+	padding: 0;
+}
+.menu ul {
+	border-bottom: 0px;
+	background-color: #036;
+}
+.menu ul ul {
+	padding-left: 10px;
+}
+.menu a:link, .menu a:visited, .menu a:active {
+	padding: 4px 10px 4px 10px;
+	color: #FFF;
+	display: block;
+	background-color: #036;
+	text-decoration: none;
+}
+.menu a:hover {
+	background-color: #369;
+	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: #036;
+	color: #FFF;
+	text-align: center;
+}
+.login input {
+	width: 95%;
+	font-size: 10px;
+}
+.login a:link, .login a:visited, .login a:active {
+	color: #DDD;
+	text-decoration: none;
+}
+.login a:hover {
+	color: #FFF;
+	text-decoration: none;
+}
+.powered_by {
+	padding: 3px 0px 0px 15px;
+	background-color: #FFF;
+}
+.content {
+	padding: 10px;
+	background-color: #FFF;
+	height: 300px;
+	vertical-align: top;
+	text-align: left;
+}
+.footer {
+	padding: 5px;
+	height: 20px;
+	color: #FFF;
+	vertical-align: middle;
+	text-align: center;
+}
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/templates/round/print.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/round/print.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/round/print.css	(revision 1130)
@@ -0,0 +1,50 @@
+/**
+ * $Id$
+ * Website Baker template: round
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the CSS styles used for print devices.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+body,td,th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000;
+}
+body {
+	background-color: #FFF;
+	margin: 0px;
+}
+a:link, a:visited, a:active {
+	color: #036;
+	text-decoration: none;
+}
+a:hover {
+	color: #369;
+	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.8.0/trunk/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.8.0/trunk/wb/templates/simple/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/simple/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/simple/index.php	(revision 1130)
@@ -0,0 +1,108 @@
+<?php
+/**
+ * $Id$
+ * Website Baker template: simple
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file contains the overall template markup and the Website Baker
+ * template functions to add the contents from the database.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent this file from being accessed directly
+if (!defined('WB_PATH')) die(header('Location: ../../index.php'));
+
+// TEMPLATE CODE STARTS BELOW
+?>
+<!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>
+	<meta http-equiv="Content-Type" content="text/html; charset=<?php 
+	echo defined('DEFAULT_CHARSET') ? DEFAULT_CHARSET : 'utf-8'; ?>" />
+	<meta name="description" content="<?php page_description(); ?>" />
+	<meta name="keywords" content="<?php page_keywords(); ?>" />
+	<?php 
+	// automatically include optional WB module files (frontend.css, frontend.js)
+	if (function_exists('register_frontend_modfiles')) {
+		register_frontend_modfiles('css');
+		register_frontend_modfiles('js');
+	} ?>
+	<link rel="stylesheet" type="text/css" href="<?php 
+		echo TEMPLATE_DIR; ?>/template.css" media="screen,projection" />
+	<link rel="stylesheet" type="text/css" href="<?php 
+		echo TEMPLATE_DIR; ?>/print.css" media="print" />
+	<title><?php page_title('', '[WEBSITE_TITLE]'); ?></title>
+</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) { 
+			// navigation menu
+			echo $TEXT['MENU'] . ':';
+			show_menu();
+		} ?>
+		
+		<?php 
+		if (SHOW_SEARCH) { /* Only show search box if search is enabled */ ?>
+			<br />
+			<?php echo $TEXT['SEARCH']; ?>: <br />
+			<form name="search" action="<?php echo WB_URL; ?>/search/index.php" method="get">
+				<input type="hidden" name="referrer" value="<?php
+					echo defined('REFERRER_ID') ? REFERRER_ID : PAGE_ID; ?>" />
+				<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>
+<?php 
+// automatically include optional WB module file frontend_body.js)
+if (function_exists('register_frontend_modfiles_body')) { register_frontend_modfiles_body(); } 
+?>
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/templates/simple/info.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/simple/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/simple/info.php	(revision 1130)
@@ -0,0 +1,46 @@
+<?php
+/**
+ * $Id$
+ * Website Baker template: simple
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// OBLIGATORY WEBSITE BAKER VARIABLES
+$template_directory				= 'simple';
+$template_name						= 'Simple';
+$template_function			= 'template';
+$template_version					= '2.70';
+$template_platform				= '2.7';
+$template_author					= 'Ryan Djurovich, C. Sommer';
+$template_license					= '<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>';
+$template_license_terms		= '-';
+$template_description			= 'Default template for Website Baker. This template is designed for developers to learn how to make templates easily. Please note this template only supports 2 page levels.';
+
+// OPTIONAL VARIABLES FOR ADDITIONAL MENUES AND BLOCKS
+// $menu[1]								= '';
+// $menu[2]								= '';
+// $block[1]							= '';
+// $block[2]							= '';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/templates/simple/preview.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/simple/preview.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/simple/template.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/simple/template.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/simple/template.css	(revision 1130)
@@ -0,0 +1,91 @@
+/**
+ * $Id$
+ * Website Baker template: simple
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file contains all CSS definitions required to display the template
+ * in the Website Baker frontend. 
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+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
Index: tags/2.8.0/trunk/wb/templates/simple/print.css
===================================================================
--- tags/2.8.0/trunk/wb/templates/simple/print.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/simple/print.css	(revision 1130)
@@ -0,0 +1,56 @@
+/**
+ * $Id$
+ * Website Baker template: simple
+ * This template is one of four basis templates distributed with Website Baker.
+ * Feel free to modify or build up on this template.
+ *
+ * This file defines the CSS styles used for print devices.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+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.8.0/trunk/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.8.0/trunk/wb/templates/blank/info.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/blank/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/blank/info.php	(revision 1130)
@@ -0,0 +1,47 @@
+<?php
+/**
+ * $Id$
+ * Website Baker template: blank
+ * This template is one of four basis templates distributed with Website Baker.
+ * Use this template for pages where you do not want anything wrapping the 
+ * content e.g. a page for a global block.
+ *
+ * This file defines the template variables required by Website Baker.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// OBLIGATORY WEBSITE BAKER VARIABLES
+$template_directory				= 'blank';
+$template_name						= 'Blank Template';
+$template_function			= 'template';
+$template_version					= '2.70';
+$template_platform				= '2.7';
+$template_author					= 'Ryan Djurovich, C. Sommer';
+$template_license					= '<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>';
+$template_license_terms		= '-';
+$template_description			= 'This template is for use on page where you do not want anything wrapping the content.';
+
+// OPTIONAL VARIABLES FOR ADDITIONAL MENUES AND BLOCKS
+// $menu[1]								= '';
+// $menu[2]								= '';
+// $block[1]							= '';
+// $block[2]							= '';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/templates/blank/preview.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/templates/blank/preview.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/templates/blank/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/blank/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/blank/index.php	(revision 1130)
@@ -0,0 +1,38 @@
+<?php
+/**
+ * $Id$
+ * Website Baker template: blank
+ * This template is one of four basis templates distributed with Website Baker.
+ * Use this template for pages where you do not want anything wrapping the 
+ * content e.g. a page for a global block.
+ *
+ * This file contains the Website Baker template function to output the content.
+ *
+ * LICENSE: GNU General Public License
+ * 
+ * @author     Ryan Djurovich, C. Sommer
+ * @copyright  GNU General Public License
+ * @license    http://www.gnu.org/licenses/gpl.html
+ * @version    2.70
+ * @platform   Website Baker 2.7
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+// prevent this file from being accessed directly
+if (!defined('WB_PATH')) die(header('Location: ../../index.php'));
+
+// TEMPLATE CODE STARTS BELOW
+
+// output only the page content, nothing else
+page_content();
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/templates/index.php
===================================================================
--- tags/2.8.0/trunk/wb/templates/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/templates/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/NL.php	(revision 1130)
@@ -0,0 +1,601 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.x';
+$language_author = 'Bramus, CodeALot, Luckyluke, Argos';
+$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'] = 'Beheerfuncties';
+$MENU['ACCESS'] = 'Toegang';
+$MENU['USERS'] = 'Gebruikers';
+$MENU['GROUPS'] = 'Groepen';
+$MENU['HELP'] = 'Help';
+$MENU['VIEW'] = 'Website';
+$MENU['LOGOUT'] = 'Uitloggen';
+$MENU['LOGIN'] = 'Inloggen';
+$MENU['FORGOT'] = 'Inloggegevens opnieuw aanvragen';
+
+// Section overviews
+$OVERVIEW['START'] = 'Websitebeheer';
+$OVERVIEW['PAGES'] = 'Aanmaken en beheren van de sitestructuur en pagina&rsquo;s.';
+$OVERVIEW['MEDIA'] = 'Beheren van bestanden in de Media-map.';
+$OVERVIEW['MODULES'] = 'Beheren van modules die extra functies toevoegen aan uw site.';
+$OVERVIEW['TEMPLATES'] = 'Beheren van de templates 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 hulp voor het gebruik van dit systeem.';
+$OVERVIEW['VIEW'] = 'Bekijk uw website zoals deze voor bezoekers te zien is (in een afzonderlijk venster).';
+$OVERVIEW['ADMINTOOLS'] = 'Diverse extra beheerinstellingen.';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Beheren bestaande pagina&rsquo;s';
+$HEADING['DELETED_PAGES'] = 'Verwijderde pagina&rsquo;s';
+$HEADING['ADD_PAGE'] = 'Toevoegen nieuwe pagina';
+$HEADING['ADD_HEADING'] = 'Toevoegen titel';
+$HEADING['MODIFY_PAGE'] = 'Aanpassen pagina';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Pagina-instellingen';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Geavanceerde pagina-instellingen';
+$HEADING['MANAGE_SECTIONS'] = 'Sectiebeheer';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Wijzigen 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'] = 'Templategegevens';
+
+$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'] = 'Serverinstellingen';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailerinstellingen';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Beheerfuncties';
+
+$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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Module voldoet niet aan de eisen';
+$HEADING['INVOKE_MODULE_FILES'] = 'Handmatige module-installatie';
+
+// Other text
+$TEXT['OPEN'] = 'Openen';
+$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'] = 'Aangemeld';
+$TEXT['PUBLIC'] = 'Iedereen';
+$TEXT['NONE'] = 'Geen';
+$TEXT['NONE_FOUND'] = 'Niet gevonden';
+$TEXT['CURRENT'] = 'Huidig(e)';
+$TEXT['CHANGE'] = 'Verander';
+$TEXT['WINDOW'] = 'Scherm';
+$TEXT['DESCRIPTION'] = 'Metatag "Description"';
+$TEXT['KEYWORDS'] = 'Metatag "Keywords"';
+$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'] = 'Aan';
+$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'] = 'Metatag "Description"';
+$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'] = 'Metatag "Keywords"';
+$TEXT['TEXT'] = 'Tekst';
+$TEXT['HEADER'] = 'Header';
+$TEXT['FOOTER'] = 'Footer';
+$TEXT['TEMPLATE'] = 'Template';
+$TEXT['THEME'] = 'Thema Website-beheer';
+$TEXT['INSTALLATION'] = 'Installatie';
+$TEXT['DATABASE'] = 'Database';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Introductie';
+$TEXT['PAGE'] = 'Pagina';
+$TEXT['SIGNUP'] = 'Primaire aanmeldgroep';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP-foutmeldingsniveau';
+$TEXT['ADMIN'] = 'Beheer';
+$TEXT['PATH'] = 'Pad';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = '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'] = 'Reageren';
+$TEXT['COMMENTS'] = 'Reacties';
+$TEXT['COMMENTING'] = 'Reactie-opties';
+$TEXT['SHORT'] = 'Kort';
+$TEXT['LONG'] = 'Lang';
+$TEXT['LOOP'] = '"Loop"';
+$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'] = 'Aanvang publicatie';
+$TEXT['FINISH_PUBLISHING'] = 'Einde publicatie';
+$TEXT['DATE'] = 'Datum';
+$TEXT['START'] = 'Aanvang';
+$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'] = 'Wijzig 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'] = 'Metatag "Title"';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Metatag "Description"';
+$TEXT['WEBSITE_KEYWORDS'] = 'Metatag "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'] = 'Templatebevoegdheden';
+$TEXT['PAGES_DIRECTORY'] = 'Pagina&rsquo;s-map';
+$TEXT['MEDIA_DIRECTORY'] = 'Media-map';
+$TEXT['FILE_MODE'] = 'Bestandsmodus';
+$TEXT['USER'] = 'Gebruiker';
+$TEXT['OTHERS'] = 'Anderen';
+$TEXT['READ'] = 'Lees';
+$TEXT['WRITE'] = 'Schrijf';
+$TEXT['EXECUTE'] = 'Uitvoeren';
+$TEXT['SMART_LOGIN'] = 'Snel 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'] = 'Optie';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Meerdere selecties toestaan';
+$TEXT['TEXTFIELD'] = 'Tekstregel';
+$TEXT['TEXTAREA'] = 'Tekstveld';
+$TEXT['SELECT_BOX'] = 'Selectiemenu';
+$TEXT['CHECKBOX_GROUP'] = 'Aankruisvakjes';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radio buttons';
+$TEXT['SIZE'] = 'Grootte';
+$TEXT['DEFAULT_TEXT'] = 'Standaardtekst';
+$TEXT['SEPERATOR'] = 'Scheidingsteken tussen opties (HTML toegestaan)';
+$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-omleiding';
+$TEXT['HEADING'] = 'Titel';
+$TEXT['MULTIPLE_MENUS'] = 'Meerdere menu&rsquo;s';
+$TEXT['REGISTERED'] = 'Geregistreerd';
+$TEXT['SECTION_BLOCKS'] = 'Sectieblokken';
+$TEXT['REGISTERED_VIEWERS'] = 'Geregistreerde bezoekers';
+$TEXT['ALLOWED_VIEWERS'] = 'Toegestane kijkers';
+$TEXT['SUBMISSION_ID'] = 'Ingezonden bericht';
+$TEXT['SUBMISSIONS'] = 'Inzendingen';
+$TEXT['SUBMITTED'] = 'Ingezonden';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Maximaal aantal inzendingen per uur';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Maximaal aantal te bewaren inzendingen';
+$TEXT['EMAIL_ADDRESS'] = 'E-mailadres';
+$TEXT['CUSTOM'] = 'Handmatige invoer';
+$TEXT['ANONYMOUS'] = 'Anoniem';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Serverbesturingssysteem';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'CHMOD 777 alle bestanden';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Home-map';
+$TEXT['HOME_FOLDERS'] = 'Home-mappen';
+$TEXT['PAGE_TRASH'] = 'Paginaprullenbak';
+$TEXT['INLINE'] = 'Inline';
+$TEXT['SEPARATE'] = 'Gescheiden';
+$TEXT['DELETED'] = 'Verwijderd';
+$TEXT['VIEW_DELETED_PAGES'] = 'Bekijk verwijderde pagina&rsquo;s';
+$TEXT['EMPTY_TRASH'] = 'Prullenbak legen';
+$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'] = 'van de';
+$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'] = 'Laatste wijzigingen door';
+$TEXT['RESULTS_FOR'] = 'Resultaten voor';
+$TEXT['TIME'] = 'Tijd';
+$TEXT['REDIRECT_AFTER'] = 'Omleiding na (sec.)';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG-stijl';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG-editor';
+$TEXT['SERVER_EMAIL'] = 'Server e-mail';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Groepenbeheer';
+$TEXT['MANAGE_USERS'] = 'Gebruikersbeheer';
+$TEXT['PAGE_LANGUAGES'] = 'Meerdere 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['SEC_ANCHOR'] = 'Sessie-voorvoegsel';
+$TEXT['BACKUP'] = 'Backup maken';
+$TEXT['RESTORE'] = 'Backup terugzetten';
+$TEXT['BACKUP_DATABASE'] = 'Backup van de database maken';
+$TEXT['RESTORE_DATABASE'] = 'Backup van de database terugzetten';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup van alle tabellen in de database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup van alleen WB-gerelateerde tabellen';
+$TEXT['BACKUP_MEDIA'] = 'Backup van de Media-map maken';
+$TEXT['RESTORE_MEDIA'] = 'Backup van de Media-map terugzetten';
+$TEXT['ADMINISTRATION_TOOL'] = 'Beheeropties';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha-verificatie';
+$TEXT['VERIFICATION'] = 'Verificatie';
+$TEXT['DEFAULT_CHARSET'] = 'Standaard tekenset';
+$TEXT['CHARSET'] = 'Tekenset';
+$TEXT['MODULE_ORDER'] = 'Modules doorzoeken';
+$TEXT['MAX_EXCERPT'] = 'Maximaal aantal gelijktijdige zoekacties';
+$TEXT['TIME_LIMIT'] = 'Maximale zoektijd per module';
+$TEXT['PUBL_START_DATE'] = 'Startdatum';
+$TEXT['PUBL_END_DATE'] = 'Einddatum';
+$TEXT['CALENDAR'] = 'Kalender';
+$TEXT['DELETE_DATE'] = 'Wis datum';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Specifieer hieronder een standaard afzenderadres en afzendernaam. Het is aanbevolen om een afzenderadres als: <strong>admin@uwdomein.nl</strong> te gebruiken. Om verspreiding van spam tegen te gaan, kunnen sommige mailproviders (bijv. <em>mail.com</em>) mails verwerpen met een afzenderadres als <em>name@mail.com</em>, die verzonden worden vanaf een relay-server. 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 afzendermailadres';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Standaard afzendernaam';
+$TEXT['WBMAILER_NOTICE'] = '<strong>Instellingen SMTP Mailer:</strong><br />Onderstaande instellingen zijn alleen van toepassing indien u mails wilt 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 mailroutine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mailafhandeling';
+$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'] = 'Alleen wanneer men zich dient aan te melden bij de SMTP-host';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP-gebruikersnaam';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP-wachtwoord';
+$TEXT['PLEASE_LOGIN'] = 'Inloggen aub';
+$TEXT['CAP_EDIT_CSS'] = 'Wijzig CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actuele modulebestand: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Wijzig de CSS-definities in het tekstveld hieronder.';
+$TEXT['CODE_SNIPPET'] = "Code snippet";
+$TEXT['REQUIREMENT'] = "Benodigd";
+$TEXT['INSTALLED'] = "ge&iuml;nstalleerd";
+$TEXT['NOT_INSTALLED'] = "niet ge&iuml;nstalleerd";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extensie";
+$TEXT['UNZIP_FILE'] = "Uploaden en uitpakken van ZIP-bestand";
+$TEXT['DELETE_ZIP'] = "Verwijder ZIP van server na uitpakken";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Uw login-gegevens...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hallo {LOGIN_DISPLAY_NAME},
+
+Uw '{LOGIN_WEBSITE_TITLE}' inloggegevens zijn:
+Gebruikersnaam: {LOGIN_NAME}
+Wachtwoord: {LOGIN_PASSWORD}
+
+Uw wachtwoord is ingesteld en zichtbaar hierboven. 
+Dit betekent dat uw oude wachtwoord niet meer werkt. 
+
+Indien deze melding niet voor u bestemd is, verwijder deze dan onmiddellijk.
+EOT;
+
+$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 websitebeheer';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Waarschuwing, de installatiemap bestaat nog steeds. U dient deze te verwijderen om veiligheidsrisico&rsquo;s te vermijden!';
+$MESSAGE['START']['CURRENT_USER'] = 'U bent ingelogd als';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Het configuratiebestand kan niet worden geopend';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Het configuratiebestand kan niet worden opgeslagen';
+$MESSAGE['SETTINGS']['SAVED'] = 'Instellingen 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 toegevoegd';
+$MESSAGE['USERS']['SAVED'] = 'Gebruiker opgeslagen';
+$MESSAGE['USERS']['DELETED'] = 'Gebruiker 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 toegevoegd';
+$MESSAGE['GROUPS']['SAVED'] = 'Groep opgeslagen';
+$MESSAGE['GROUPS']['DELETED'] = 'Groep 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 opgeslagen';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'E-mail gewijzigd';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Het (huidige) ingevoerde wachtwoord is niet correct';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Wachtwoord 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 mediabestanden gevonden in de huidige map';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Bestand niet gevonden';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Bestand verwijderd';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Map 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'] = 'Hernoemen geslaagd';
+$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'] = 'Map aangemaakt';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Aanmaken map mislukt';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' geupload';
+$MESSAGE['MEDIA']['UPLOADED'] = ' geupload';
+
+$MESSAGE['PAGES']['ADDED'] = 'Pagina toegevoegd';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Paginatitel 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 opgeslagen';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Pagina-instellingen 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 verwijderd';
+$MESSAGE['PAGES']['RESTORED'] = 'Pagina teruggehaald';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Vul a.u.b. een paginatitel in';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Vul a.u.b. een menutitel in';
+$MESSAGE['PAGES']['REORDERED'] = 'Pagina 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 opslaan in het bestand /pages/intro.php (onvoldoende rechten)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Introductiepagina 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 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 voltooid';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Upgrade voltooid';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'De&iuml;nstallatie voltooid';
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />De {{type}} <b>{{type_name}}</b> kan niet verwijderd worden omdat het in gebruik is op {{pages}}:<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "volgende pagina;volgende pagina's";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "De template <b>{{name}}</b> kan niet verwijderd worden omdat het de standaard-template is.";
+
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website in bewerking';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Probeert u het a.u.b. 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['GENERIC']['INVALID_ADDON_FILE'] =    'Ongeldig Website Baker installatiebestand. Controleer het *.zip bestand.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Ongeldig Website Baker taalbestand. Controleer het tekstbestand.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'De volgende velden zijn verplicht';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = '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['ADDON']['RELOAD'] = 'Aanpassen van de database met informatie van de modules (voorbeeld na een FTP-upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Fout tijdens de update van de module-informatie.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'De modules zijn herladen';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'De templates zijn herladen';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'De taalbestanden zijn herladen';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'De installatie van deze module is mislukt. Uw systeem voldoet niet aan de eisen voor een goede werking van deze module. Om deze module op uw systeem te laten werken, moeten onderstaande problemen opgelost worden.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'Wanneer modules via FTP ge&uuml;pload  worden (niet aanbevolen), worden de module-installatiebestanden <tt>install.php </tt>, <tt> upgrade.php </tt> of <tt> uninstall.php </tt> niet automatisch uitgevoerd. Deze modules werken mogelijk niet correct of worden niet correct verwijderd.<br /><br />U kunt deze modulebestanden handmatig uitvoeren voor onderstaande modules die u via FTP ge&uuml;pload hebt.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Waarschuwing: bestaande instellingen in de database van de modules zullen verloren gaan. Gebruik deze optie alleen als u problemen ondervindt met modules ge&uuml;pload via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/DA.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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 = 'Dansk';
+$language_version = '2.8';
+$language_platform = '2.8.x';
+$language_author = '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&oslash;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'] = 'Overf&oslash;r 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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On krav er ikke opfyldt';
+$HEADING['INVOKE_MODULE_FILES'] = 'Eksekver modulfiler manuelt';
+
+// 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'] = 'Overliggende niveau';
+$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'] = 'Overf&oslash;r 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 indstillnger';
+$TEXT['HIDE_ADVANCED'] = 'Skjul avancerede indstillinger';
+$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['THEME'] = 'Backend-tema';
+$TEXT['INSTALLATION'] = 'Installation';
+$TEXT['DATABASE'] = 'Database';
+$TEXT['HOST'] = 'V&aelig;rt';
+$TEXT['INTRO'] = 'Introduktion';
+$TEXT['PAGE'] = 'Side';
+$TEXT['SIGNUP'] = 'Registrering';
+$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'] = 'Kommentere';
+$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'] = 'Slut';
+$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'] = 'Brugerdefineret';
+$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'] = 'Separat';
+$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['REDIRECT_AFTER'] = 'Videresend efter';
+$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['SEC_ANCHOR'] = 'Sektionsankertekst';
+$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'] = 'Lav backup af 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 tid til uddrag per modul';
+$TEXT['PUBL_START_DATE'] = 'Startdato';
+$TEXT['PUBL_END_DATE'] = 'Slutdato';
+$TEXT['CALENDAR'] = 'Kalender';
+$TEXT['DELETE_DATE'] = 'Slet 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 udbyder, 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; din 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'] = 'Rediger CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Aktuel modulfil: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Rediger CSS definitioner i tekstfeltet nedenfor';
+$TEXT['CODE_SNIPPET'] = 'Kodestump';
+$TEXT['REQUIREMENT'] = 'Krav';
+$TEXT['INSTALLED'] = 'installeret';
+$TEXT['NOT_INSTALLED'] = 'ikke installeret';
+$TEXT['ADDON'] = 'Add-On';
+$TEXT['EXTENSION'] = 'Udvidelse';
+$TEXT['UNZIP_FILE'] = 'Overf&oslash;r og udpak et zip-arkiv';
+$TEXT['DELETE_ZIP'] = 'Slet zip-arkiv efter udpakning';
+
+// 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'] = 'Angiv et brugernavn';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Angiv 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 forkert';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Du skal indtaste en gyldig email-adresse';
+$MESSAGE['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Dine login-oplysninger...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hej {LOGIN_DISPLAY_NAME},
+
+Dine '{LOGIN_WEBSITE_TITLE}' loginoplysninger er:
+Brugernavn: {LOGIN_NAME}
+Adgangskode: {LOGIN_PASSWORD}
+
+Din adgangskode er sat til ovenst&aring;ende.
+Det betyder, at din gamle adgangskode ikke virker mere.
+
+Hvis du har modtaget denne besked ved en fejl, bedes du straks slette den.
+EOT;
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Indtast 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 - Kontakt en systemadministrator';
+$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 - beklager!';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Velkommen til administration af din Website Baker';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'ADVARSEL! Installationsbiblioteket (mappen) 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 ';
+
+$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'] = 'Det angivne brugernavn er for kort';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Den angivne adgangskode er for kort';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'De to adgangskoder du indtastede  er ikke ens';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Email-adressen du indtastede er ugyldig';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Den email-adresse du indtastede findes 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 ikke udfyldt';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Er du helt sikker p&aring; du vil slette denne gruppe (og alle brugere som tilh&oslash;rer den)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Der blev ikke fundet nogen grupper';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Gruppens navn findes 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; til punktet 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 (mappe) 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 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 udf&oslash;rt';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Omd&oslash;bning kunne ikke udf&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 (en mappe) med det navn du indtastede!';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Bibliotek (mappe) blev oprettet';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Kunne ikke oprette biblioteket (mappen)';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = 'fil blev overf&oslash;rt';
+$MESSAGE['MEDIA']['UPLOADED'] = 'filer blev overf&oslash;rt';
+
+$MESSAGE['PAGES']['ADDED'] = 'Siden er 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';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Fejl under oprettelse af adgangsfil i /pages biblioteket (mappen) (utilstr&aelig;kkelige rettigheder)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Fejl under sletning af adgangsfil i /pages biblioteket  (utilstr&aelig;kkelige rettigheder)';
+$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 omorganiseret';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Fejl ved fors&oslash;g p&aring; at omorganisere 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 rettigheder)';
+$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 opm&aelig;rksom p&aring; at den fil du vil over&oslash;re skal v&aelig;re i flg. format:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'OBS: V&aelig;r opm&aelig;rksom p&aring; at den fil du vil over&oslash;re skal v&aelig;re i et af flg. formater:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Kunne ikke over&oslash;re 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 (mappe)';
+$MESSAGE['GENERIC']['INVALID'] = 'Filen du over&oslash;rte er fejlbeh&aelig;ftet';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Kan ikke afinstallere: Den valgte fil er i brug';
+
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL'] = '<br /><br />{{type}} <b>{{type_name}}</b> kan ikke afinstalleres, da den stadig bruges p&aring; {{pages}}.<br /><br />';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = 'denne side;disse sider';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = 'Kan ikke afinstallere skabelonen <b>{{name}}</b>, da den er standardskabelonen!';
+
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website under konstruktion';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Kom venligst igen senere...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'V&aelig;r t&aring;lmodig, dette kan godt vare et stykke tid.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Fejl ved &aring;bning af filen.';
+$MESSAGE['GENERIC']['INVALID_ADDON_FILE'] = 'Website Baker installationsfil ikke i korrekt format. Kontroller *.zip formatet.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Website Baker sprogfil ikke i korrekt format. Kontroller tekstfilen.';
+
+$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['ADDON']['RELOAD'] = 'Opdater databasen med information fra  Add-on-filer (f.eks. efter en FPT-overf&oslash;rsel).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Fejl under opdatering af Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Moduler opdateret fejlfrit';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Skabelinger opdateret fejlfrit';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Sprog opdateret fejlfrit';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on-installation mislykkedes. Dit system lever ikke op til de krav, denne Add-on stiller. For at f&aring; denne Add-on til at fungere p&aring; dit system, m&aring; du bringe f&oslash;lgende forhold i orden.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'N&aring;r moduler overf&oslash;res via FTP (anbefales ikke), vil modul-installationsfilerne <tt>install.php</tt>, <tt>upgrade.php</tt> og <tt>uninstall.php</tt> ikke bliver udf&oslash;rt automatisk. Disse moduler vil eventuelt ikke fungere korrekt eller kan ikke afinstalleres rigtigt.<br /><br />Du kan eksekvere modulfiler manuelt for module, der er overf&oslash;rt via FTP, nedenfor.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Advarsel: Eksisterende databaseregistreringer om modulerne vil g&aring; tabt. Anvend kun denne mulighed, hvis du oplever problemer med at overf&oslash;re via FTP.';
+
+?>

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/FI.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/FI.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/FI.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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;';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text file.';
+
+$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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Moduulin lataus onnistui';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Sivupohjan lataus onnistui';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Kielen lataus onnistui';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/EN.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text 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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/CS.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/CS.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/CS.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text file.';
+
+$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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Moduly byly &uacute;sp&#283;&scaron;n&#283; p&#345;ehr&aacute;ny';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = '&Scaron;ablony byly &uacute;sp&#283;&scaron;n&#283; p&#345;ehr&aacute;ny';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Jazyky byly &uacute;sp&#283;&scaron;n&#283; p&#345;ehr&aacute;ny';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/SE.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/SE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/SE.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text file.';
+
+$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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Moduler laddades om';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Mallar laddades om';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Spr&aring;k laddades om';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/ES.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/ES.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/ES.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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 Informaci&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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br />No se puede desinstalar el {{type}} <b>{{type_name}}</b>, dado que se est&aacute; utilizando {{pages}}:<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "en la p&aacute;gina siguiente;en las p&aacute;ginas siguientes";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "No se puede desinstalar el template {{name}} dado que se trata del template est&aacute;ndar.";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text file.';
+
+$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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'M&oacute;dulos recargados correctamente';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Plantillas recargadas correctamente';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Lenguajes recargados correctamente';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/FR.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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'] = 'Outils d&apos;Administrations';
+$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&apos;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&apos;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&apos;utilisateurs et des permissions';
+$OVERVIEW['HELP'] = 'Aide et FAQ sur l&apos;utilisation du site';
+$OVERVIEW['VIEW'] = 'Aper&ccedil;u du site dans une nouvelle fen&ecirc;tre';
+$OVERVIEW['ADMINTOOLS'] = 'Acc่s aux Outils d&apos;administration de Website Baker...';
+
+// 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&apos;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'] = 'R&eacute;glages pour l&apos;envoi d&apos;Email';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Outils d&apos;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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Les param&egrave;tres requis du Add-On ne sont pas v&eacute;rifi&eacute;s';
+$HEADING['INVOKE_MODULE_FILES'] = 'Ex&eacute;cuter manuellement les fichiers module';
+
+// 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['THEME'] = 'Th&egrave;me graphique du Backend';
+$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&apos;erreur PHP';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Chemin';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Page d&apos;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&apos;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&apos;Intro';
+$TEXT['INSTALLATION_URL'] = 'Adresse (URL) d&apos;installation';
+$TEXT['INSTALLATION_PATH'] = 'Chemin d&apos;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&apos;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&apos;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&apos;&eacute;criture sur fichier';
+$TEXT['LINUX_UNIX_BASED'] = 'Bas&eacute; sur Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Fichier d&apos;Accueil';
+$TEXT['HOME_FOLDERS'] = 'Fichiers d&apos;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&apos;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'] = 'Page 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['REDIRECT_AFTER'] = 'Redirection apr&egrave;s';
+$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['SEC_ANCHOR'] = 'Texte Section-Anchor';
+$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&apos;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'] = 'Priorit&eacute; des modules lors de la recherche';
+$TEXT['MAX_EXCERPT'] = 'Nombre de lignes max pour le r&eacute;sultat de la recherche';
+$TEXT['TIME_LIMIT'] = 'Limite de temps d&apos;extraction des r&eacute;sultats par module';
+$TEXT['PUBL_START_DATE'] = 'Date d&eacute;but';
+$TEXT['PUBL_END_DATE'] = 'Date fin';
+$TEXT['CALENDAR'] = 'Calendrier';
+$TEXT['DELETE_DATE'] = 'Effacer date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Veuillez sp&eacute;cifier une adresse et un nom complet pour l&apos;exp&eacute;diteur de vos Email. Il est conseill&eacute; d&apos;utiliser une adresse exp&eacute;diteur de type: <strong>admin@votredomaine.com</strong>. Les syst&egrave;mes anti-spam de certains fournisseurs d&apos;acc&egrave;s (par ex <em>mail.com</em>) peuvent rejeter les Email envoy&eacute;s par des serveurs &eacute;trangers dont l&apos;adresse exp&eacute;diteur est de forme: <em>nom@domaine.com</em>.<br /><br />Les valeurs par d&eacute;faut sont utilis&eacute;es seulement si aucune autre valeur n&apos;est sp&eacute;cifi&eacute;e par Website Baker. Si votre serveur supporte  <acronym title="Simple mail transfer protocol">SMTP</acronym>, vous pouvez utiliser cette option pour l&apos;envoi d&apos;Email.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Exp&eacute;diteur par d&eacute;faut';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Nom de l&apos;exp&eacute;diteur';
+$TEXT['WBMAILER_NOTICE'] = '<strong>R&eacute;glages SMTP pour l&apos;envoi d&apos;Email:</strong><br />Les r&eacute;glages ci dessous sont uniquement requis si vous utilisez l&apos;envoi d&apos;Email via <acronym title="Simple mail transfer protocol">SMTP</acronym>. Si vous ne connaissez pas votre h&ocirc;te SMTP ou si vous n&ecirc;tes pas certain des param&egrave;tres n&eacute;cessaires, utilisez tout simplement l&apos;envoi d&apos;Email par le protocole par d&eacute;faut : PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Protocole d&apos;envoi d&apos;Email';
+$TEXT['WBMAILER_SMTP_HOST'] = 'H&ocirc;te SMTP';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'Authentification SMTP';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'activer seulement si votre h&ocirc;te SMTP n&eacute;cessite une authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'Nom d&apos;utilisateur SMTP';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'Mot de passe SMTP';
+$TEXT['PLEASE_LOGIN'] = 'Veuillez vous identifier';
+$TEXT['CAP_EDIT_CSS'] = 'Modifier CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Fichier du module en cours d&apos;&eacute;dition: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Modifiez les styles CSS dans la zone de texte ci-dessous.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Param&egrave;tres requis";
+$TEXT['INSTALLED'] = "install&eacute;";
+$TEXT['NOT_INSTALLED'] = "pas install&eacute;";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'D&eacute;sol&eacute;, vous n&apos;avez pas les droits pour visualiser cette page';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'D&eacute;sol&eacute;, il n&apos;y a pas de contenu publi&eacute; &agrave; afficher';
+
+$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&apos;utilisateur';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Merci de saisir votre mot de passe';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Votre nom d&apos;utilisateur est trop court';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Votre mot de passe est trop court';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Votre nom d&apos;utilisateur est trop long';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Votre mot de passe est trop long';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Votre nom d&apos;utilisateur ou votre mot de passe est incorrect';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'L&apos;adresse email est obligatoire';
+$MESSAGE['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Param&egrave;tres de votre connexion ...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Bonjour, {LOGIN_DISPLAY_NAME},
+
+Les param&egrave;tres de connexion de votre site '{LOGIN_WEBSITE_TITLE}' sont :
+Identifiant: {LOGIN_NAME}
+Mot de passe: {LOGIN_PASSWORD}
+
+Votre mot de passe a &eacute;t&eacute; renseign&eacute; comme ci-dessus.
+Par cons&eacute;quent, votre ancien mot de passe n'est plus actif.
+
+Si vous avez re&ccdil;u ce message par erreur, merci de le supprimer imm&eacute;diatement.
+EOT;
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Merci de saisir votre adresse email';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'L&apos;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&apos;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&apos;une fois par heure';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Bienvenue dans la zone d&apos;administration';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'ATTENTION : le r&eacute;pertoire d&apos;installation existe toujours';
+$MESSAGE['START']['CURRENT_USER'] = 'Vous &ecirc;tes connect&eacute; en tant que : ';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Impossible d&apos;ouvrir le fichier de configuration';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Impossible d&apos;&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&apos;a &eacute;t&eacute; s&eacute;lectionn&eacute;';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Le nom d&apos;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&apos;adresse email n&apos;est pas valide';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'L&apos;adresse email est d&eacute;ja utilis&eacute;e';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Le nom d&apos;utilisateur est d&eacute;ja utilis&eacute;';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Vous ne devez modifier les valeurs ci-dessus uniquement lors d&apos;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&apos;inclure ../ dans le nom du dossier';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Le r&eacute;pertoire n&apos;existe pas';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Impossible d&apos;avoir ../ dans le nom du dossier cible';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Impossible d&apos;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&apos;avezpas entr&eacute; de nouveau nom';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Vous n&apos;avez pas entr&eacute; d&apos;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&apos;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&apos;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&apos;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&apos;avez pas les droits pour modifier cette pages';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Impossible d&apos;&eacute;crire dans le fichier d&apos;intro (privil&egrave;ges insuffisants)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Page d&apos;intro sauvegard&eacute;e avec succ&egrave;s';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Mis &agrave; jour par';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Cliquez ici pour modifier la page d&apos;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&apos;&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&apos;utilisation';
+
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> ne peut pas &ecirc;tre install&eacute; car il est actuellement en cours d'utilisation dans les pages {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "cette page;ces pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Impossible de d&eacute;sinstaller le template <b>{{name}}</b>, parce que c'est le template par d&eacute;faut!";
+
+$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 louverture du fichier';
+$MESSAGE['GENERIC']['INVALID_ADDON_FILE'] = 'Fichier d&apos;installation Website Baker incorrect. V&eacute;rifiez le format *.zip .';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Fichier de langue Website Baker incorrect. V&eacute;rifiez le fichier texte.';
+
+$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&apos;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&apos;envoyer un Email &agrave; : '.SERVER_EMAIL.'';
+
+$MESSAGE['ADDON']['RELOAD'] = 'Mise &agrave; jour de la base de donn&eacute;es avec les informations des fichiers Add-on (ou apr&egrave;s l&apos;upload via FTP).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Erreur pendant la mise &agrave; jour des informations Add-On.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Les modules ont &eacute;t&eacute; correctement recharg&eacute;s';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Les templates ont &eacute;t&eacute; correctement recharg&eacute;s';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Les langues ont &eacute;t&eacute; correctement recharg&eacute;es';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Echec de l&apos;installation du Add-on. Votre syst&egrave;me ne respecte pas les pr&eacute;-requis de cet Add-on. Pour faire fonctionner cet Add-on, merci de solutionner les erreurs list&eacute;es ci-dessous.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'Quand les modules sont upload&eacute;s via FTP (ce qui n&apos;est pas recommand&eacute;), les fichiers d&apos;installation du module <tt>install.php</tt>, <tt>upgrade.php</tt> ou <tt>uninstall.php</tt> ne seront pas ex&eacute;cut&eacute;s automatiquement. Ces modules peuvent ne pas fonctionner ou ne pas se d&eacute;sinstaller correctement.<br /><br />Vous pouvez ex&eacute;cuter les fichiers module manuellement pour les modules upload&eacute;s via FTP ci-dessous.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Attention: les donn&eacute;es de la base de donn&eacute;es du module existant vont &ecirc;tre perdues. Utilisez cette option si vous rencontrez des probl&egrave;mes avec des modules upload&eacute;s via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/ET.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/ET.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/ET.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text 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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/HR.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/HR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/HR.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text file.';
+
+$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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Uspje&scaron;no nasnimljeni moduli';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Uspje&scaron;no nasnimljeni predlo&scaron;ci';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Uspje&scaron;no nasnimljeni jezici';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/PL.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/PL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/PL.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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;';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> nie mo&#380;e by&#263; odinstalowany, poniewa&#380; jest u&#380;ywany przez {{pages}}:<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "nast&#281;puj&#261;c&#261; stron&#281;;nast&#281;puj&#261;ce strony";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Szablon <b>{{name}}</b> nie mo&#380;e by&#263; odinstalowany, poniewa&#380; jest ustawiony jako szablon domy&#347;lny!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text file.';
+
+$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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Modu&#322;y zosta&#322;y za&#322;adowane ponownie';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Szablony zosta&#322;y za&#322;adowane ponownie';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'J&#281;zyki zosta&#322;y za&#322;adowane ponownie';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/HU.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/HU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/HU.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text 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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/IT.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/IT.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/IT.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text 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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Moduli ricaricati con successo';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Templates ricaricati con successo';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Lingue ricaricate con successo';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/NO.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.x';
+$language_author = 'Odd Egil Hansen (oeh)';
+$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 e-post 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 E-post';
+$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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Kravene for installering av denne modulen er ikke oppfylt';
+$HEADING['INVOKE_MODULE_FILES'] = 'Start modul filene mauelt';
+
+// 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'] = 'E-post';
+$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['THEME'] = 'Backend-Theme';
+$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 Tillgang';
+$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 Tillgang';
+$TEXT['DIRECTORIES'] = 'Kataloger';
+$TEXT['DIRECTORY_MODE'] = 'Katalog Modus';
+$TEXT['LIST_OPTIONS'] = 'Vis Valg';
+$TEXT['OPTION'] = 'Valg';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Tillat 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'] = 'E-post Adresse';
+$TEXT['CUSTOM'] = 'Egendefinert';
+$TEXT['ANONYMOUS'] = 'Anonym';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Serveren Operativ System';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Global skrivetilgang til filer';
+$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'] = 'Separat';
+$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'] = 'Endre Bilde St&oslash;rrelse Til';
+$TEXT['UNLIMITED'] = 'Ubegrenset';
+$TEXT['OF'] = 'Av';
+$TEXT['OUT_OF'] = 'Av antall';
+$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['REDIRECT_AFTER'] = 'Videresend etter';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG Stil';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Server E-post';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$TEXT['BACKUP'] = 'Sikkerhetskopiere';
+$TEXT['RESTORE'] = 'Gjenopprett';
+$TEXT['BACKUP_DATABASE'] = 'Sikkerhetskopiere database';
+$TEXT['RESTORE_DATABASE'] = 'Gjenopprett Database';
+$TEXT['BACKUP_ALL_TABLES'] = 'Sikkerhetskopiere alle tabeller i databasen';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Sikkerhetskopiere bare WB- spesifikke tabeller';
+$TEXT['BACKUP_MEDIA'] = 'Sikkerhetskopi 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'] = 'Maksimalt antall linjer for utdrag';
+$TEXT['TIME_LIMIT'] = 'Maksimal 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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Krav";
+$TEXT['INSTALLED'] = "installert";
+$TEXT['NOT_INSTALLED'] = "ikke installert";
+$TEXT['ADDON'] = "Tillegg";
+$TEXT['EXTENSION'] = "Utvidelse";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Beklager, du har ikke tillgang til &aring; se denne siden';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Beklager, ikke noe aktivt innhold &aring; vise.';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Mangelfull tillgangs 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'] = 'Det angitte brukernavnet er for kort';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Det angitte passordet er for kort';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Det angitte brukernavnet er for langt';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Det angitte passordet er for langt';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Brukernavnet eller passordet er feil';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Du m&aring; skrive inn en e-post adresse';
+$MESSAGE['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Dine p&aring;-loggings detaljer...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hei {LOGIN_DISPLAY_NAME},
+
+Dine p&aring;-loggings detaljer for '{LOGIN_WEBSITE_TITLE}' er:
+Brukernavn: {LOGIN_NAME}
+Passord: {LOGIN_PASSWORD}
+
+Dit passord er sendt til e-postadressen over.
+Dette betyr at ditt tidligere passord ikke er gyldig lenger.
+
+Hvis du har mottatt denne e-posten ved en feil, v&aelig;r vennlig &aring; slette den med en gang.
+EOT;
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Vennligst skriv e-post adressen nedenfor';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'E-post 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 e-post';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Beklager, men passord kan ikke tilbakestilles mer enn en gang i timen.';
+
+$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; opprette 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'] = 'E-post adresse ikke gyldig';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'E-post adresse allerede i bruk';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Brukernavn er allerede brukt, du m&aring; anngi et annet brukernavn';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Merk: Skriv kun inn verdier i feltene ovenfor hvis du vil endre passordet 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 e-post';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Passordet du skrev inn er ikke korrekt';
+$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 benytte ../ 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 benytte ../ i navnet';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Kan ikke benytte index.php som navnet';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Det ble ikke funnet noen media i den angitte katalogen';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Fant ingen 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 filen eller katalogen?';
+$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 anga 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 allerede';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'En katalog med samme navn eksisterer allerede';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Lykkes &aring; opprette katalogen';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Mislykkes &aring; opprette katalogen';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' Lykkes &aring; laste opp filen';
+$MESSAGE['MEDIA']['UPLOADED'] = ' Lykkes &aring; laste opp filene';
+
+$MESSAGE['PAGES']['ADDED'] = 'Lykkes &aring; legge til siden';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Lykkes &aring; legge til side overskrift';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'En side med lik eller tilsvarende 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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> kunne ikke avinstalleres, da den fortsatt benyttes p&aring; siden {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "denne siden;disse sidene";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Kan ikke avinstallere designmalen <b>{{name}}</b>, da den benyttes som standard designmal!";
+
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Nettstedet er under konstruksjon';
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Feil i Website Baker installasjons filen. Vennligst sjekk formatet pๅ *.zip filen.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Feil i Website Baker spr&aring;k filen. Vennligst sjekk tekst filen.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Du m&aring; skrive inn detaljer for f&oslash;lgende felt';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Beklager, dette skjemaet har blitt sendt for mange ganger denne timen. Vennligst pr&oslash;v igjen om en 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['ADDON']['RELOAD'] = 'Oppdater databasen med innformasjon fra Tilleggs filen (for eksempel etter ๅ ha lastet opp via FTP).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'En feil oppstod under oppdateringen av Tilleggs innformasjonen.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Lykkes i &aring; oppdatere moduler';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Lykkes i &aring; oppdatere maler';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Lykkes i &aring; oppdatere spr&aring;k';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'En fei oppstod under installasjonen av Tillegget. Dit system oppfyller ikke kravene for denne Tilleggs modulen. For &aring; f&aring; denne Tilleggs modulen til &aring; fungere p&aring; systemet ditt, m&aring; du fikse de feilene som er inngitt under.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'N&aring;r Tillegg lastes opp via FTP (ikke &aring; annbefale), vill ikke modulens installasjons filer <tt>install.php</tt>, <tt>upgrade.php</tt> eller <tt>uninstall.php</tt> bli kj&oslash;rt automatisk. Moduler, lastet opp p&aring; denne m&aring;ten, vil muligens ikke fungere p&aring; korrekt m&aring;te eller ikke la seg av-installere.<br /><br />Du kan, for moduler lastet om via FTP, kj&oslash;re disse modul filene manuelt nedenfor.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'OBS: Den eksisterende databasen for modulen vil g&aring; tapt. Benytt denne muligheten hvis du har problemer med Moduler som er lastet opp via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/LV.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/LV.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/LV.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text file.';
+
+$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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Moduli veiksmigi parladeti';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = '&scaron;abloni veiksmigi parladeti';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Valodas veiksmigi parladetas';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/CA.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/CA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/CA.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text 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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/PT.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/PT.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/PT.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />O m&oacute;dulo n&atilde;o <b>{{type_name}}</b> pode ser desinstalado porque est&aacute; a ser utilizado {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "na seguinte p&aacute;gina;nas seguintes p&aacute;ginas";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "O Template n&atilde;o pode ser desinstalado porque &eacute; o Template padr&atilde;o";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text file.';
+
+$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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'M&oacute;dulos recarregados com sucesso';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Temas (Templates) recarregados com sucesso';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Idiomas recarregados com sucesso';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/TR.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/TR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/TR.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text 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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Mod&uuml;l, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekildeninkini tekrar y&uuml;klendi';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Kal&yacute;plar, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekildeninkini tekrar y&uuml;klendi';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Diller, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekildeninkini tekrar y&uuml;klendi';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/RU.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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;';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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;:';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text file.';
+
+$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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['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['ADDON']['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['ADDON']['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;';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/BG.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/BG.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/BG.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.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;';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On requirements not met';
+$HEADING['INVOKE_MODULE_FILES'] = 'Execute module files manually';
+
+// 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['THEME'] = 'Backend-Theme';
+$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['REDIRECT_AFTER'] = 'Redirect after';
+$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['SEC_ANCHOR'] = 'Section-Anchor text';
+$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.';
+$TEXT['CODE_SNIPPET'] = "Code-snippet";
+$TEXT['REQUIREMENT'] = "Requirement";
+$TEXT['INSTALLED'] = "installed";
+$TEXT['NOT_INSTALLED'] = "not installed";
+$TEXT['ADDON'] = "Add-On";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Upload and unpack a zip archive";
+$TEXT['DELETE_ZIP'] = "Delete zip archive after unpacking";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Your login details...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hello {LOGIN_DISPLAY_NAME},
+
+Your '{LOGIN_WEBSITE_TITLE}' login details are:
+Username: {LOGIN_NAME}
+Password: {LOGIN_PASSWORD}
+
+Your password has been set 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.
+EOT;
+
+$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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled, because it is still in use on {{pages}}.<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "this page;these pages";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall the template <b>{{name}}</b>, because it is the default template!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Invalid Website Baker installation file. Please check the *.zip format.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Invalid Website Baker language file. Please check the text file.';
+
+$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['ADDON']['RELOAD'] = 'Update database with information from Add-on files (e.g. after FTP upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Error while updating the Add-On information.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Add-on installation failed. Your system does not fulfill the requirements of this Add-on. To make this Add-on working on your system, please fix the issues summarized below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'When modules are uploaded via FTP (not recommended), the module installation files <tt>install.php</tt>, <tt>upgrade.php</tt> or <tt>uninstall.php</tt> will not be executed automatically. Those modules may not work correct or do not uninstall properly.<br /><br />You can execute the module files manually for modules uploaded via FTP below.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warning: Existing module database entries will get lost. Only use this option if you experience problems with modules uploaded via FTP.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/DE.php	(revision 1130)
@@ -0,0 +1,602 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2009, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 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.8';
+$language_platform = '2.8.x';
+$language_author = 'Stefan Braunewell, Matthias Gallas';
+$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';
+
+$HEADING['ADDON_PRECHECK_FAILED'] = 'Add-On Voraussetzungen nicht erf&uuml;llt';
+$HEADING['INVOKE_MODULE_FILES'] = 'Moduldateien manuell aufrufen';
+
+// 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';
+$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'] = 'Fu&szlig;zeile';
+$TEXT['TEMPLATE'] = 'Template';
+$TEXT['THEME'] = 'Backend-Theme';
+$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;&szlig;e &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'] = 'Schlie&szlig;en';
+$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'] = 'Fu&szlig;zeile';
+$TEXT['RESULTS_HEADER'] = 'Ergebnisse &Uuml;berschrift';
+$TEXT['RESULTS_LOOP'] = 'Ergebnisse Schleife';
+$TEXT['RESULTS_FOOTER'] = 'Ergebnisse Fu&szlig;zeile';
+$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;&szlig;e';
+$TEXT['DEFAULT_TEXT'] = 'Standardtext';
+$TEXT['SEPERATOR'] = 'Separator';
+$TEXT['BACK'] = 'Zur&uuml;ck';
+$TEXT['UNDER_CONSTRUCTION'] = 'In Bearbeitung';
+$TEXT['MULTISELECT'] = 'Mehrfachauswahl';
+$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 Adresse';
+$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 Fu&szlig;zeile';
+$TEXT['POSTS_PER_PAGE'] = 'Nachrichten pro Seite';
+$TEXT['RESIZE_IMAGE_TO'] = 'Bildgr&ouml;&szlig;e 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['REDIRECT_AFTER'] = 'Weiterleitung nach';
+$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['SEC_ANCHOR'] = 'Abschnitts-Anker Text';
+$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 Absender Adresse 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-Mail Routine: 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.';
+$TEXT['CODE_SNIPPET'] = "Funktionserweiterung";
+$TEXT['REQUIREMENT'] = "Voraussetzung";
+$TEXT['INSTALLED'] = "installiert";
+$TEXT['NOT_INSTALLED'] = "nicht installiert";
+$TEXT['ADDON'] = "Addon";
+$TEXT['EXTENSION'] = "Extension";
+$TEXT['UNZIP_FILE'] = "Zip-Archiv hochladen und entpacken";
+$TEXT['DELETE_ZIP'] = "Zip-Archiv nach dem entpacken l&ouml;schen";
+
+// 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['SIGNUP2']['SUBJECT_LOGIN_INFO'] = 'Deine WB Logindaten ...';
+$MESSAGE['SIGNUP2']['BODY_LOGIN_INFO'] = <<< EOT
+Hallo {LOGIN_DISPLAY_NAME},
+
+Deine neuen Logindaten f&uuml;r '{LOGIN_WEBSITE_TITLE}' lauten:
+Benutzername: {LOGIN_NAME}
+Passwort: {LOGIN_PASSWORD}
+
+Dein bisheriges Passwort wurde durch das neue Passwort oben ersetzt.
+Das bisherige Passwort ist nicht mehr g&uuml;ltig.
+
+Wenn Du dieses E-Mail versehentlich erhalten hast, bitte einfach l&ouml;schen.
+EOT;
+
+$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 Zielverzeichnisses 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 hinzugef&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']['CANNOT_UNINSTALL_IN_USE_TMPL'] = "<br /><br />Das {{type}} <b>{{type_name}}</b> kann nicht deinstalliert werden, weil es auf {{pages}} benutzt wird:<br /><br />";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE_TMPL_PAGES'] = "folgender Seite;folgenden Seiten";
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Das Template <b>{{name}}</b> kann nicht deinstalliert werden, weil es das Standardtemplate ist!";
+
+$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['GENERIC']['INVALID_ADDON_FILE'] = 'Ung&uuml;ltige Website Baker Installationsdatei. Bitte *.zip Format pr&uuml;fen.';
+$MESSAGE['GENERIC']['INVALID_LANGUAGE_FILE'] = 'Ung&uuml;ltige Website Baker Sprachdatei. Bitte Textdatei pr&uuml;fen.';
+
+$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['ADDON']['RELOAD'] = 'Abgleich der Datenbank mit den Informationen aus den Addon-Dateien (z.B. nach FTP Upload).';
+$MESSAGE['ADDON']['ERROR_RELOAD'] = 'Fehler beim Abgleich der Addon Informationen.';
+$MESSAGE['ADDON']['MODULES_RELOADED'] = 'Module erfolgreich geladen';
+$MESSAGE['ADDON']['TEMPLATES_RELOADED'] = 'Designvorlagen erfolgreich geladen';
+$MESSAGE['ADDON']['LANGUAGES_RELOADED'] = 'Sprachen erfolgreich geladen';
+$MESSAGE['ADDON']['PRECHECK_FAILED'] = 'Installation fehlgeschlagen. Dein System erf&uuml;llt nicht alle Voraussetzungen die f&uuml;r diese Erweiterung ben&ouml;tigt werden. Um diese Erweiterung nutzen zu k&ouml;nnen, m&uuml;ssen nachfolgende Updates durchgef&uuml;hrt werden.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION'] = 'Beim Hochladen oder L&ouml;schen von Modulen per FTP (nicht empfohlen), werden eventuell vorhandene Moduldateien <tt>install.php</tt>, <tt>upgrade.php</tt> oder <tt>uninstall.php</tt> nicht automatisch ausgef&uuml;hrt. Solche Module funktionieren daher meist nicht richtig, oder hinterlassen Datenbankeintr&auml;ge beim L&ouml;schen per FTP.<br /><br /> Nachfolgend k&ouml;nnen die Moduldateien von per FTP hochgeladenen Modulen manuell ausgef&uuml;hrt werden.';
+$MESSAGE['ADDON']['MANUAL_INSTALLATION_WARNING'] = 'Warnung: Eventuell vorhandene Datenbankeintr&auml;ge eines Moduls gehen verloren. Bitte nur bei bei Problemen mit per FTP hochgeladenen Modulen verwenden. ';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/languages/index.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/modify_field.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/modify_field.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/modify_field.php	(revision 1130)
@@ -0,0 +1,229 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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="selected"'; } ?>><?php echo $TEXT['HEADING']; ?></option>
+				<option value="textfield"<?php if($type == 'textfield') { echo ' selected="selected"'; } ?>><?php echo $TEXT['SHORT'].' '.$TEXT['TEXT']; ?> (Textfield)</option>
+				<option value="textarea"<?php if($type == 'textarea') { echo ' selected="selected"'; } ?>><?php echo $TEXT['LONG'].' '.$TEXT['TEXT']; ?> (Textarea)</option>
+				<option value="select"<?php if($type == 'select') { echo ' selected="selected"'; } ?>><?php echo $TEXT['SELECT_BOX']; ?></option>
+				<option value="checkbox"<?php if($type == 'checkbox') { echo ' selected="selected"'; } ?>><?php echo $TEXT['CHECKBOX_GROUP']; ?></option>
+				<option value="radio"<?php if($type == 'radio') { echo ' selected="selected"'; } ?>><?php echo $TEXT['RADIO_BUTTON_GROUP']; ?></option>
+				<option value="email"<?php if($type == 'email') { echo ' selected="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 $TEXT['LIST_OPTIONS']; ?>:</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="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="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="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="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;" />
+		</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>
+</form>
+<?php
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/form/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/languages/DA.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 = 'Dette modul giver mulighed for at lave tilpassede online formularer, f.eks. en kontaktformular. Tak til  Rudolph Lartey som har hjulpet med at forbedre dette modul ved at lave kode for ekstra felttyper osv.';
+
+//Variables for the  backend
+$MOD_FORM['SETTINGS'] = 'Formularindstillinger';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/form/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.8.0/trunk/wb/modules/form/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/languages/FR.php	(revision 1130)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE MODULE: FORM
+ -----------------------------------------------------------------------------------------
+*/
+//Module 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'] = 'Configurations du formulaire';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/form/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.8.0/trunk/wb/modules/form/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/languages/NL.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/languages/NO.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/languages/EN.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/languages/RU.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/languages/DE.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/modify.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/modify.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/modify.php	(revision 1130)
@@ -0,0 +1,197 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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"); }
+
+//overwrite php.ini on Apache servers for valid SESSION ID Separator
+if(function_exists('ini_set')) {
+	ini_set('arg_separator.output', '&amp;');
+}
+
+//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; ?>&amp;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; ?>&amp;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; ?>">
+			<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 THEME_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 THEME_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 THEME_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 THEME_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; ?>">
+			<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 THEME_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 THEME_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'];
+}
+
+?>

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/form/add_field.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/add_field.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/add_field.php	(revision 1130)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/save_field.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/save_field.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/save_field.php	(revision 1130)
@@ -0,0 +1,104 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/view_submission.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/view_submission.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/view_submission.php	(revision 1130)
@@ -0,0 +1,93 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/view.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/view.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/view.php	(revision 1130)
@@ -0,0 +1,486 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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;
+	}
+}
+}
+
+if (!function_exists("new_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'];
+	$form_name = 'form';
+	$use_xhtml_strict = false;
+} else {
+	$header = '';
+	$field_loop = '';
+	$footer = '';
+	$form_name = 'form';
+	$use_xhtml_strict = false;
+}
+
+?>
+<form <?php echo ( ( (strlen($form_name) > 0) AND (false == $use_xhtml_strict) ) ? "name=\"".$form_name."\"" : ""); ?> action="<?php echo htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])); ?>#wb_<?PHP echo $section_id;?>" method="post">
+<div>
+<input type="hidden" name="submission_id" value="<?php echo $_SESSION['form_submission_id']; ?>" />
+</div>
+<?php
+if(ENABLED_ASP) { // first add some honeypot-fields
+?>
+<div>
+<input type="hidden" name="submitted_when" value="<?php $t=time(); echo $t; $_SESSION['submitted_when']=$t; ?>" />
+</div>
+<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].' class="select">'.implode($options).'</select>';		
+		} elseif($field['type'] == 'heading') {
+			$vars[] = '{FIELD}';
+			$str = '<input type="hidden" name="field'.$field_id.'" id="field'.$field_id.'" value="===['.$field['title'].']===" />';
+			$values[] = ( true == $use_xhtml_strict) ? "<div>".$str."</div>" : $str;
+			$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 {
+					/**	
+					 *	Adding the IP to the body and try to send the email
+					 */
+					$email_body .= "\n\nIP: ".$_SERVER['REMOTE_ADDR'];
+					
+					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','".time()."','$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'");
+		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.8.0/trunk/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.8.0/trunk/wb/modules/form/modify_settings.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/modify_settings.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/modify_settings.php	(revision 1130)
@@ -0,0 +1,262 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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"><?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="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="checked"'; } ?> />
+			<label for="use_captcha_false"><?php echo $TEXT['DISABLED']; ?></label>
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['MAX_SUBMISSIONS_PER_HOUR']; ?>:</td>
+		<td class="setting_value">
+			<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_value">
+			<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_value">
+			<textarea name="header" cols="80" rows="6" 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_value">
+			<textarea name="field_loop" cols="80" rows="6" 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_value">
+			<textarea name="footer" cols="80" rows="6" 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"><?php echo $TEXT['EMAIL'].' '.$TEXT['TO']; ?>:</td>
+		<td class="setting_value">
+			<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_value">
+			<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_value">
+			<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_value">
+			<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"><?php echo $TEXT['EMAIL'].' '.$TEXT['TO']; ?>:</td>
+		<td class="setting_value">
+			<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_value">
+			<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_value">
+			<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_value">
+			<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_value">
+			<textarea name="success_email_text" cols="80" rows="1" 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'].':'; not vailde
+				if($setting['success_page'] == $success_page) {
+					$selected = ' 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;">
+		</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.8.0/trunk/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.8.0/trunk/wb/modules/form/backend.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/backend.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/backend.css	(revision 1130)
@@ -0,0 +1,27 @@
+.setting_name {
+	vertical-align: top;
+	width: 30%;
+}
+.setting_value {
+	vertical-align: top;
+	width: 70%;
+}
+.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.8.0/trunk/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.8.0/trunk/wb/modules/form/delete.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/delete.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/delete.php	(revision 1130)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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' AND section_id='$section_id'");
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_form_settings WHERE page_id = '$page_id' AND section_id='$section_id'");
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/form/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/info.php	(revision 1130)
@@ -0,0 +1,41 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/move_down.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/move_down.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/move_down.php	(revision 1130)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/search.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/search.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/search.php	(revision 1130)
@@ -0,0 +1,65 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/delete_field.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/delete_field.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/delete_field.php	(revision 1130)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/install.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/install.php	(revision 1130)
@@ -0,0 +1,111 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/index.php	(revision 1130)
@@ -0,0 +1,33 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/uninstall.php	(revision 1130)
@@ -0,0 +1,41 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/move_up.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/move_up.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/move_up.php	(revision 1130)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/delete_submission.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/delete_submission.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/delete_submission.php	(revision 1130)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/save_settings.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/save_settings.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/save_settings.php	(revision 1130)
@@ -0,0 +1,86 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/add.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/add.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/add.php	(revision 1130)
@@ -0,0 +1,56 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/form/frontend.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/form/frontend.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/form/frontend.css	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/modules/droplets/tool.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/tool.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/tool.php	(revision 1130)
@@ -0,0 +1,150 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*	droplets are small codeblocks that are called from anywhere in the template. 
+* 	To call a droplet just use [[dropletname]]. optional parameters for a droplet can be used like [[dropletname?parameter=value&parameter2=value]]
+*/
+
+// Direct access prevention
+defined('WB_PATH') OR die(header('Location: ../index.php'));
+
+// Load Language file
+if(LANGUAGE_LOADED) {
+	if(!file_exists(WB_PATH.'/modules/droplets/languages/'.LANGUAGE.'.php')) {
+		require_once(WB_PATH.'/modules/droplets/languages/EN.php');
+	} else {
+		require_once(WB_PATH.'/modules/droplets/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/droplets/backend.css')) {
+	echo '<style type="text/css">';
+	include(WB_PATH .'/modules/droplets/backend.css');
+	echo "\n</style>\n";
+}
+
+// Get userid for showing admin only droplets or not
+$loggedin_user = $admin->get_user_id();
+	
+// And... action
+$admintool_url = ADMIN_URL .'/admintools/index.php';
+
+//removes empty entries from the table so they will not be displayed
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_droplets WHERE name=''");
+?>
+
+<br />
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td valign="bottom" width="50%">
+		<button class="add" type="button" name="add_droplet" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/droplets/add_droplet.php';"><?php echo $TEXT['ADD'].' '.$DR_TEXT['DROPLETS']; ?></button>	
+	</td>
+	<!-- commentet out the droplets logo for a more similar backend design with other admin tools
+	<td align="center"><img src="<?php /*echo WB_URL;*/ ?>/modules/droplets/img/droplets_logo.png" border="1" alt=""/></td>
+	-->
+	<td valign="top" width="50%" align="right">
+		<a href="#" onclick="javascript: window.open('<?php echo WB_URL; ?>/modules/droplets/readme/<?php echo $DR_TEXT['README']; ?>','helpwindow','width=700,height=550,directories=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,resizable=yes');"><?php echo $DR_TEXT['HELP']; ?></a>
+		<br /><br />
+		<a href="#" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/droplets/backup_droplets.php';"><?php echo $DR_TEXT['BACKUP']; ?></a>
+	</td>
+</tr>
+</table>
+<br />
+
+<h2><?php echo $TEXT['MODIFY'].'/'.$TEXT['DELETE'].' '.$DR_TEXT['DROPLETS']; ?></h2>
+<?php
+if ($loggedin_user == '1') {
+	$query_droplets = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_droplets ORDER BY modified_when DESC");
+} else { 
+	$query_droplets = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_droplets WHERE admin_view <> '1' ORDER BY modified_when DESC");
+}
+$num_droplets = $query_droplets->numRows();
+if($num_droplets > 0) {
+	?>
+	<table class="row_a" border="0" cellspacing="0" cellpadding="3" width="100%">
+	<thead>
+		<tr>
+			<td width="3%"></td>
+			<td width="21%"><?php echo $TEXT['NAME']; ?></td>
+			<td width="68%"><?php echo $TEXT['DESCRIPTION']; ?></td>
+			<td width="4%"><?php echo $TEXT['ACTIVE']; ?></td>
+			<td width="3%"></td>
+		</tr>
+	</thead>
+	<?php
+	$row = 'a';
+	while($droplet = $query_droplets->fetchRow()) {
+		$get_modified_user = $database->query("SELECT display_name,username, user_id FROM ".TABLE_PREFIX."users WHERE user_id = '".$droplet['modified_by']."' LIMIT 1");
+		if($get_modified_user->numRows() > 0) {
+			$fetch_modified_user = $get_modified_user->fetchRow();
+			$modified_user = $fetch_modified_user['username'];
+			$modified_userid = $fetch_modified_user['user_id'];
+		} else {
+			$modified_user = $TEXT['UNKNOWN'];
+			$modified_userid = 0;
+		}
+		$comments = str_replace(array("\r\n", "\n", "\r"), '<br />', $droplet['comments']);
+		if (!strpos($comments,"[[")) $comments = "Use: [[".$droplet['name']."]]<br />".$comments;
+		$comments = str_replace(array("[[", "]]"), array('<b>[[',']]</b>'), $comments);
+		$valid_code = check_syntax($droplet['code']);
+		if (!$valid_code === true) $comments = '<font color=\'red\'><strong>'.$DR_TEXT['INVALIDCODE'].'</strong></font><br /><br />'.$comments;
+		$unique_droplet = check_unique ($droplet['name']);
+		if ($unique_droplet === false) $comments = '<font color=\'red\'><strong>'.$DR_TEXT['NOTUNIQUE'].'</strong></font><br /><br />'.$comments;
+		$comments = '<span>'.$comments.'</span>';
+		?>
+		
+		<tr class="row_<?php echo $row; ?>" >
+			<td >
+				<a href="<?php echo WB_URL; ?>/modules/droplets/modify_droplet.php?droplet_id=<?php echo $droplet['id']?>" title="<?php echo $TEXT['MODIFY']; ?>">
+					<img src="<?php echo THEME_URL; ?>/images/modify_16.png" border="0" alt="Modify" /> 
+				</a>
+			</td>
+			<td >
+				<a href="<?php echo WB_URL; ?>/modules/droplets/modify_droplet.php?droplet_id=<?php echo $droplet['id']?>" class="tooltip">
+							<?php if ($valid_code && $unique_droplet) { ?><img src="<?php echo WB_URL; ?>/modules/droplets/img/droplet.png" border="0" alt=""/>
+							<?php } else {  ?><img src="<?php echo WB_URL; ?>/modules/droplets/img/invalid.gif" border="0" title="" alt=""/><?php }  ?>
+					<?php echo $droplet['name']; ?><?php echo $comments; ?>
+				</a>
+			</td>
+			<td >
+				<small><?php echo substr($droplet['description'],0,90); ?></small>
+			</td>
+			<td >
+				<b><?php if($droplet['active'] == 1){ echo '<span style="color: green;">'. $TEXT['YES']. '</span>'; } else { echo '<span style="color: red;">'.$TEXT['NO'].'</span>';  } ?></b>
+			</td>
+			<td >
+				<a href="javascript: confirm_link('<?php echo $TEXT['ARE_YOU_SURE']; ?>', '<?php echo WB_URL; ?>/modules/droplets/delete_droplet.php?droplet_id=<?php echo $droplet['id']?>');" title="<?php echo $TEXT['DELETE']; ?>">
+					<img src="<?php echo THEME_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
+}
+
+function check_syntax($code) {
+    return @eval('return true;' . $code);
+}
+
+function check_unique($name) {
+	global $database;
+	$query_droplets = $database->query("SELECT name FROM ".TABLE_PREFIX."mod_droplets WHERE name = '$name'");
+	return ($query_droplets->numRows() == 1);
+}
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/languages/EN.php	(revision 1130)
@@ -0,0 +1,43 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 tool allows you to manage your local Droplets.';
+
+//Variables for the backend
+$DR_TEXT['DROPLETS']	= 'Droplet';
+$DR_TEXT['BACKUP']		= 'Backup Droplets (Zip)';
+$DR_TEXT['RESTORE']		= 'Restore Droplets (Zipped)';
+$DR_TEXT['HELP']		= 'Help / Readme';
+$DR_TEXT['README']		= 'readme.html';
+$DR_TEXT['INVALIDCODE']	= 'This Droplet has invalid PHP code';
+$DR_TEXT['NOTUNIQUE']	= 'This Dropletname is used more than once!';
+$DR_TEXT['ADMIN_EDIT']	= 'Edit-Only';
+$DR_TEXT['ADMIN_VIEW']	= 'View-Only';
+$DR_TEXT['WYSIWYG']		= 'Wysiwyg';
+$DR_TEXT['HELP']		= 'Help / Readme';
+$DR_TEXT['USED']		= 'This droplet is used on the following page(-s):<br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/languages/DA.php	(revision 1130)
@@ -0,0 +1,43 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 tool allows you to manage your local Droplets.';
+
+//Variables for the backend
+$DR_TEXT['DROPLETS'] = 'Droplet';
+$DR_TEXT['BACKUP'] = 'Backup af dropletter (Zip)';
+$DR_TEXT['RESTORE'] = 'Indl&aelig;s backup af dropletter (fra Zip-fil)';
+$DR_TEXT['HELP'] = 'Hj&aelig;lp';
+$DR_TEXT['README'] = 'readme.html';
+$DR_TEXT['INVALIDCODE'] = 'Denne droplet indholder ugyldig PHP kode';
+$DR_TEXT['NOTUNIQUE'] = 'Dete dropletnavn bruges flere steder';
+$DR_TEXT['ADMIN_EDIT'] = 'Kun redigere';
+$DR_TEXT['ADMIN_VIEW'] = 'Kun se';
+$DR_TEXT['WYSIWYG'] = 'Wysiwyg';
+$DR_TEXT['HELP'] = 'Hj&aelig;lp';
+$DR_TEXT['USED'] = 'Denne droplet bruges p&Atilde;&yen; f&oslash;lgende side(r):<br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/languages/DE.php	(revision 1130)
@@ -0,0 +1,43 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 Modulbeschreibung
+$module_description 	= 'Mit Droplets kann PHP-Code in WYSIWYG-Abschnitten, Templates oder Modulen an beliebiger Stelle zur Verf&uuml;gung gestellt werden.';
+
+// Ueberschriften und Textausgaben
+$DR_TEXT['DROPLETS']	= 'Droplet';
+$DR_TEXT['BACKUP']		= 'Droplets sichern (Zip)';
+$DR_TEXT['RESTORE']		= 'Droplets wiederherstellen (Zipped)';
+$DR_TEXT['HELP']		= 'Hilfe';
+$DR_TEXT['README']		= 'readme.html';
+$DR_TEXT['INVALIDCODE']	= 'Dieses Droplet enth&auml;lt ung&uuml;ltigen PHP code';
+$DR_TEXT['NOTUNIQUE']	= 'Dieser Dropletname ist bereits vorhanden!';
+$DR_TEXT['ADMIN_EDIT']	= 'bearbeiten';
+$DR_TEXT['ADMIN_VIEW']	= 'ansehen';
+$DR_TEXT['WYSIWYG']		= 'Wysiwyg';
+$DR_TEXT['HELP']		= 'Hilfe';
+$DR_TEXT['USED']		= 'Dieses Droplet wird auf folgenden Seiten benutzt (-s):<br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/install.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/install.php	(revision 1130)
@@ -0,0 +1,88 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*	droplets are small codeblocks that are called from anywhere in the template. 
+* 	To call a droplet just use [[dropletname]]. optional parameters for a droplet can be used like [[dropletname?parameter=value&parameter2=value]]
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) die(header('Location: ../../index.php'));
+
+$table = TABLE_PREFIX .'mod_droplets';
+$database->query("DROP TABLE IF EXISTS `$table`");
+
+$database->query("CREATE TABLE `$table` (
+	`id` INT NOT NULL auto_increment,
+	`name` VARCHAR(32) NOT NULL,
+	`code` LONGTEXT NOT NULL ,
+	`description` TEXT NOT NULL,
+	`modified_when` INT NOT NULL default '0',
+	`modified_by` INT NOT NULL default '0',
+	`active` INT NOT NULL default '0',
+	`admin_edit` INT NOT NULL default '0',
+	`admin_view` INT NOT NULL default '0',
+	`show_wysiwyg` INT NOT NULL default '0',
+	`comments` TEXT NOT NULL,
+	PRIMARY KEY ( `id` )
+	)"
+);
+
+//add all droplets from the droplet subdirectory
+$folder=opendir(WB_PATH.'/modules/droplets/example/.'); 
+$names = array();
+while ($file = readdir($folder)) {
+	$ext=strtolower(substr($file,-4));
+	if ($ext==".php"){
+		if ($file<>"index.php" ) {
+			$names[count($names)] = $file; 
+		}
+	}
+}
+closedir($folder);
+
+foreach ($names as $dropfile) {
+	$droplet = addslashes(getDropletCodeFromFile($dropfile));
+	if ($droplet != "") {
+		$description = "Example Droplet";
+		$comments = "Example Droplet";
+		$cArray = explode("\n",$droplet);
+		if (substr($cArray[0],0,3) == "//:") {
+			$description = trim(substr($cArray[0],3));
+			array_shift ( $cArray );
+		}
+		if (substr($cArray[0],0,3) == "//:") {
+			$comments = trim(substr($cArray[0],3));
+			array_shift ( $cArray );
+		}
+		$droplet = implode ( "\n", $cArray );
+		$name = substr($dropfile,0,-4);
+		$modified_when = time();
+		$modified_by = method_exists($admin, 'get_user_id') ? $admin->get_user_id() : 1;
+		$database->query("INSERT INTO `$table`  
+			(name, code, description, comments, active, modified_when, modified_by) 
+			VALUES 
+			('$name', '$droplet', '$description', '$comments', '1', '$modified_when', '$modified_by')");
+		
+		// do not output anything if this script is called during fresh installation
+		if (method_exists($admin, 'get_user_id')) echo "Droplet import: $name<br/>";
+	}  
+}
+
+function getDropletCodeFromFile ( $dropletfile ) {
+	$data = "";
+	$filename = WB_PATH."/modules/droplets/example/".$dropletfile;
+	if (file_exists($filename)) {
+		$filehandle = fopen ($filename, "r");
+		$data = fread ($filehandle, filesize ($filename));
+		fclose($filehandle);
+		// unlink($filename); doesnt work in unix
+	}	
+	return $data;
+}
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/modify_droplet.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/modify_droplet.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/modify_droplet.php	(revision 1130)
@@ -0,0 +1,176 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*	droplets are small codeblocks that are called from anywhere in the template. 
+* 	To call a droplet just use [[dropletname]]. optional parameters for a droplet can be used like [[dropletname?parameter=value&parameter2=value]]
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['droplet_id']) OR !is_numeric($_GET['droplet_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+} else {
+	$droplet_id = $_GET['droplet_id'];
+}
+
+require_once(WB_PATH.'/framework/class.admin.php');
+require_once(WB_PATH.'/framework/functions.php');
+
+$admintool_link = ADMIN_URL .'/admintools/index.php';
+$module_edit_link = ADMIN_URL .'/admintools/tool.php?tool=droplets';
+$admin = new admin('admintools', 'admintools');
+
+// 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/droplets/backend.css")) {
+	echo '<style type="text/css">';
+	include(WB_PATH .'/modules/droplets/backend.css');
+	echo "n</style>n";
+}
+
+// Load Language file
+if(LANGUAGE_LOADED) {
+	if(!file_exists(WB_PATH.'/modules/droplets/languages/'.LANGUAGE.'.php')) {
+		require_once(WB_PATH.'/modules/droplets/languages/EN.php');
+	} else {
+		require_once(WB_PATH.'/modules/droplets/languages/'.LANGUAGE.'.php');
+	}
+}
+require_once(WB_PATH . '/include/editarea/wb_wrapper_edit_area.php');
+echo registerEditArea ('contentedit','php',true,'both',true,true,600,450,'search, fullscreen, |, undo, redo, |, select_font,|, highlight, reset_highlight, |, help');
+		
+
+$modified_when = time();
+$modified_by = $admin->get_user_id();
+
+// Get header and footer
+$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_droplets WHERE id = '$droplet_id'");
+$fetch_content = $query_content->fetchRow();
+$content = (htmlspecialchars($fetch_content['code']));
+?>
+<h4 style="margin: 0; border-bottom: 1px solid #DDD; padding-bottom: 5px;">
+	<a href="<?php echo $admintool_link;?>"><?php echo $HEADING['ADMINISTRATION_TOOLS']; ?></a>
+	->
+	<a href="<?php echo $module_edit_link;?>">Droplet Edit</a>
+</h4>
+<br />
+<form name="modify" action="<?php echo WB_URL; ?>/modules/droplets/save_droplet.php" method="post" style="margin: 0;">
+<input type="hidden" name="data_codepress" value="" />
+<input type="hidden" name="droplet_id" value="<?php echo $droplet_id; ?>" />
+<input type="hidden" name="show_wysiwyg" value="<?php echo $fetch_content['show_wysiwyg']; ?>" />
+
+<table class="row_a" cellpadding="4" cellspacing="0" border="0" width="100%">
+		<tr>
+		<td width="10%" class="setting_name">
+			<?php echo $TEXT['NAME']; ?>:
+		</td>
+		<td width="90%">
+			<input type="text" name="title" value="<?php echo stripslashes($fetch_content['name']); ?>" style="width: 38%;" maxlength="32" />
+		</td>
+	</tr>
+	<tr>
+		<td valign="top" class="setting_name" width="60px"><?php echo $TEXT['DESCRIPTION']; ?>:</td>
+		<td>
+			<input type="text" name="description" value="<?php echo stripslashes($fetch_content['description']); ?>" style="width: 98%;" />
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name" width="60px">
+			<?php echo $TEXT['ACTIVE']; ?>:
+		</td>
+		<td>	
+			<input type="radio" name="active" id="active_true" value="1" <?php if($fetch_content['active'] == 1) { echo ' checked="checked"'; } ?> />
+			<a href="#" onclick="javascript: document.getElementById('active_true').checked = true;">
+			<label><?php echo $TEXT['YES']; ?></label>
+			</a>
+			<input type="radio" name="active" id="active_false" value="0" <?php if($fetch_content['active'] == 0) { echo ' checked="checked"'; } ?> />
+			<a href="#" onclick="javascript: document.getElementById('active_false').checked = true;">
+			<label><?php echo $TEXT['NO']; ?></label>
+			</a>
+		</td>
+	</tr>
+<?php
+// Next show only if admin is logged in, user_id = 1
+if ($modified_by == 1) {
+	?>
+	<tr>
+		<td class="setting_name" width="60px">
+			<?php echo $TEXT['ADMIN']; ?>:
+		</td>
+		<td> 
+			<?php echo $DR_TEXT['ADMIN_EDIT']; ?>&nbsp;   	
+			<input type="radio" name="admin_edit" id="admin_edit_true" value="1" <?php if($fetch_content['admin_edit'] == 1) { echo ' checked="checked"'; } ?> />
+			<a href="#" onclick="javascript: document.getElementById('admin_edit_true').checked = true;">
+			<label><?php echo $TEXT['YES']; ?></label>
+			</a>
+			<input type="radio" name="admin_edit" id="admin_edit_false" value="0" <?php if($fetch_content['admin_edit'] == 0) { echo ' checked="checked"'; } ?> />
+			<a href="#" onclick="javascript: document.getElementById('admin_edit_false').checked = true;">
+			<label><?php echo $TEXT['NO']; ?></label>
+			</a>
+			&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
+			<?php echo $DR_TEXT['ADMIN_VIEW']; ?>:
+			<input type="radio" name="admin_view" id="admin_view_true" value="1" <?php if($fetch_content['admin_view'] == 1) { echo ' checked="checked"'; } ?> />
+			<a href="#" onclick="javascript: document.getElementById('admin_view_true').checked = true;">
+			<label><?php echo $TEXT['YES']; ?></label>
+			</a>
+			<input type="radio" name="admin_view" id="admin_view_false" value="0" <?php if($fetch_content['admin_view'] == 0) { echo ' checked="checked"'; } ?> />
+			<a href="#" onclick="javascript: document.getElementById('admin_view_false').checked = true;">
+			<label><?php echo $TEXT['NO']; ?></label>
+			</a>
+		</td>
+	</tr>
+	<?php
+}
+?>
+	<tr>
+		<td valign="top" class="setting_name" width="60px"><?php echo $TEXT['CODE']; ?>:</td>
+		<td ><textarea name="savecontent" id ="contentedit" style="width: 98%; height: 450px;" rows="50" cols="120"><?php echo $content; ?></textarea>&nbsp;
+		</td>
+	</tr>
+	<tr>
+		<td colspan="2">					
+		</td>
+	</tr>
+	<tr>
+		<td valign="top" class="setting_name" width="60px"><?php echo $TEXT['COMMENTS']; ?>:</td>
+		<td>
+			<textarea name="comments" style="width: 98%; height: 100px;" rows="50" cols="120"><?php echo stripslashes($fetch_content['comments']); ?></textarea>
+		</td>
+	</tr>
+	<tr>
+		<td colspan="2">&nbsp;					
+		</td>
+	</tr>
+</table>
+<br />
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+	<tr>
+		<td align="left">
+<?php
+// Show only save button if allowed....
+if ($modified_by == 1 OR $fetch_content['admin_edit'] == 0 ) {
+	?>
+			<button  class="save" name="save" type="submit"><?php echo $TEXT['SAVE']; ?></button>
+	<?php
+}
+?>
+
+		</td>
+		<td align="right">
+			<button class="cancel" type="button" onclick="javascript: window.location = '<?php echo $module_edit_link; ?>';"><?php echo $TEXT['CANCEL']; ?></button>
+		</td>
+	</tr>
+</table>
+</form>
+<?php
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/modify_droplet.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/add_droplet.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/add_droplet.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/add_droplet.php	(revision 1130)
@@ -0,0 +1,46 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*	droplets are small codeblocks that are called from anywhere in the template. 
+* 	To call a droplet just use [[dropletname]]. optional parameters for a droplet can be used like [[dropletname?parameter=value&parameter2=value]]
+*/
+
+require('../../config.php');
+
+require_once(WB_PATH.'/framework/class.admin.php');
+require_once(WB_PATH.'/framework/functions.php');
+$admin = new admin('admintools','admintools',false,false);
+if($admin->get_permission('admintools') == true) {
+	
+	$admintool_link = ADMIN_URL .'/admintools/index.php';
+	$module_edit_link = ADMIN_URL .'/admintools/tool.php?tool=droplets';
+	$admin = new admin('admintools', 'admintools');
+
+	$modified_when = time();
+	$modified_by = $admin->get_user_id();
+
+	// Insert new row into database
+	$database->query("INSERT INTO ".TABLE_PREFIX."mod_droplets (active,modified_when,modified_by) VALUES ('1','$modified_when','$modified_by' )");
+
+	// Get the id
+	$droplet_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(), $module_edit_link);
+	} else {
+		$admin->print_success($TEXT['SUCCESS'], WB_URL.'/modules/droplets/modify_droplet.php?droplet_id='.$droplet_id);
+	}
+
+	// Print admin footer
+	$admin->print_footer();
+} else {
+	die(header('Location: ../../index.php'));
+} 
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/add_droplet.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/save_droplet.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/save_droplet.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/save_droplet.php	(revision 1130)
@@ -0,0 +1,68 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*	droplets are small codeblocks that are called from anywhere in the template. 
+* 	To call a droplet just use [[dropletname]]. optional parameters for a droplet can be used like [[dropletname?parameter=value&parameter2=value]]
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_POST['droplet_id']) OR !is_numeric($_POST['droplet_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+} else {
+	$droplet_id = $_POST['droplet_id'];
+}
+// Include WB admin wrapper script
+require_once(WB_PATH.'/framework/class.admin.php');
+require_once(WB_PATH.'/framework/functions.php');
+
+// check website baker platform (with WB 2.7, Admin-Tools were moved out of settings dialogue)
+if(file_exists(ADMIN_PATH .'/admintools/tool.php')) {
+	$admintool_link = ADMIN_URL .'/admintools/index.php';
+	$module_edit_link = ADMIN_URL .'/admintools/tool.php?tool=droplets';
+	$admin = new admin('admintools', 'admintools');
+} else {
+	$admintool_link = ADMIN_URL .'/settings/index.php?advanced=yes#administration_tools"';
+	$module_edit_link = ADMIN_URL .'/settings/tool.php?tool=droplets';
+	$admin = new admin('Settings', 'settings_advanced');
+}
+
+// Validate all fields
+if($admin->get_post('title') == '') {
+	$admin->print_error($MESSAGE['GENERIC']['FILL_IN_ALL'], WB_URL.'/modules/droplets/modify_droplet.php?droplet_id='.$droplet_id);
+} else {
+	$title = $admin->add_slashes($admin->get_post('title'));
+	$active = $admin->get_post('active');
+	$admin_view = $admin->get_post('admin_view');
+	$admin_edit = $admin->get_post('admin_edit');
+	$show_wysiwyg = $admin->get_post('show_wysiwyg');
+	$description = $admin->add_slashes($admin->get_post('description'));
+	$tags = array('<?php', '?>' , '<?');
+	$content = $admin->add_slashes(str_replace($tags, '', $_POST['savecontent']));
+	
+	$comments = $admin->add_slashes($admin->get_post('comments'));
+	$modified_when = time();
+	$modified_by = $admin->get_user_id(); 
+}
+
+// Update row
+$database->query("UPDATE ".TABLE_PREFIX."mod_droplets SET name = '$title', active = '$active', admin_view = '$admin_view', admin_edit = '$admin_edit', show_wysiwyg = '$show_wysiwyg', description = '$description', code = '$content', comments = '$comments', modified_when = '$modified_when', modified_by = '$modified_by' WHERE id = '$droplet_id'");
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/droplets/modify_droplet.php?droplet_id='.$droplet_id);
+} else {
+    $admin->print_success($TEXT['SUCCESS'], $module_edit_link);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/save_droplet.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/backend.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/backend.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/backend.css	(revision 1130)
@@ -0,0 +1,27 @@
+ul, li   { 
+	list-style: none;
+	margin: 0;
+	padding: 0 
+}
+
+.setting_name {
+	vertical-align: top;
+}
+
+.newsection {
+	border-top: 1px dashed #fff;
+}
+
+thead	{ 
+	font-weight: bold; 
+	background-color: #c7d1db; 
+	height: 25px }
+
+.row_om_out   { 
+	background: #ecf4f5 inherit; 
+	border: outset 1px #a5b3b4 
+}
+
+.row_om_over   { background: #ffffe0; border: outset 1px #679b38 }
+a.tooltip span {display:none; margin-left:14px; width:430px;}
+a.tooltip:hover span{display:inline; position:absolute; padding:5px; border:1px solid #000000; background:#ffffff; color:#000000;}

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/info.php	(revision 1130)
@@ -0,0 +1,25 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*	droplets are small codeblocks that are called from anywhere in the template. 
+* 	To call a droplet just use [[dropletname]]. optional parameters for a droplet can be used like [[dropletname?parameter=value&parameter2=value]]
+*/
+
+$module_directory = 'droplets';
+$module_name = 'Droplets';
+$module_function = 'tool';
+$module_version = '1.0.1';
+$module_platform = '2.8.x';
+$module_author = 'Ruud and pcwacht';
+$module_license = 'GPL';
+$module_description = 'This tool allows you to manage your local Droplets.';
+
+$module_home = 'http://www.websitebakers.com/pages/droplets/about-droplets.php';
+$module_guid = '9F2AC2DF-C3E1-4E15-BA4C-2A86E37FE6E5';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/droplets.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/droplets.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/droplets.php	(revision 1130)
@@ -0,0 +1,51 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*	droplets are small codeblocks that are called from anywhere in the template. 
+* 	To call a droplet just use [[dropletname]]. optional parameters for a droplet can be used like [[dropletname?parameter=value&parameter2=value]]
+*/
+
+function evalDroplets ($wb_page_data) {
+	global $database;
+	$parameter = array();
+	preg_match_all('~\[\[(.*?)\]\]~', $wb_page_data, $matches);
+	foreach ($matches[1] as $match) {
+		if (strpos($match,"?")) {
+			list ($droplet,$params) = explode("?",$match);
+			if(!empty($params)) {
+				$params = html_entity_decode($params,ENT_COMPAT,DEFAULT_CHARSET); // make sure we can parse the parameters correctly
+				$paramarray = explode("&",$params); //create array of parms as parm=value
+				foreach ($paramarray as $paramelement) {
+					$parameterTemp = explode("=", $paramelement,2);
+					if (count($parameterTemp) == 2)
+						$parameter[$parameterTemp[0]] = htmlentities($parameterTemp[1],ENT_COMPAT,DEFAULT_CHARSET); //re-encode the parameter values
+					else
+						$parameter['parm'] = htmlentities($parameterTemp[0],ENT_COMPAT,DEFAULT_CHARSET);
+				}
+			}
+		} else {
+			$droplet = $match;
+			$parameter = "";
+		}
+		$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_droplets WHERE name = '$droplet' AND active = 1 ");
+		if ($query_content && $query_content->numRows() > 0){
+			$fetch_content = $query_content->fetchRow();
+			$codedata = ($fetch_content['code']);
+			if(is_array($parameter)) extract($parameter, EXTR_SKIP);
+			$newvalue = eval($codedata);
+			if ($newvalue == "" && !$newvalue === true) 
+				$newvalue = "<font color=\"red\">Error in: $match, no correct returnvalue.</font>";
+			if ($newvalue === true) 
+				$newvalue = "";
+			$wb_page_data = str_replace("[[".$match."]]", $newvalue, $wb_page_data);
+		}
+	}
+	return $wb_page_data;
+}
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/droplets.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/upgrade.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/upgrade.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/upgrade.php	(revision 1130)
@@ -0,0 +1,41 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*
+*	droplets are small codeblocks that are called from anywhere in the template. 
+* 	To call a droplet just use [[dropletname]]. optional parameters for a droplet can be used like [[dropletname?parameter=value&parameter2=value]]
+*/
+
+if(!defined('WB_PATH')) die(header('Location: ../../index.php'));
+
+$table = TABLE_PREFIX .'mod_droplets';
+
+$info = $database->query("SELECT * from `$table` limit 0,1" );
+$fields = $info->fetchRow();
+if (!array_key_exists("admin_edit", $fields)) {
+	/**
+	 *	Call from the upgrade-script
+	 */
+	
+	if (function_exists('db_add_field')) {
+		db_add_field("admin_edit", 'mod_droplets', "INT NOT NULL default '0'");
+		db_add_field("admin_view", 'mod_droplets', "INT NOT NULL default '0'");
+		db_add_field("show_wysiwyg", 'mod_droplets', "INT NOT NULL default '0'");
+	} else {
+		/**
+		 * Not call by the upgrade-script
+		 */
+		$database->query("ALTER TABLE `$table` (
+			`admin_edit` INT NOT NULL default '0',
+			`admin_view` INT NOT NULL default '0',
+			`show_wysiwyg` INT NOT NULL default '0'
+			)");
+	}
+}
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/upgrade.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/delete_droplet.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/delete_droplet.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/delete_droplet.php	(revision 1130)
@@ -0,0 +1,51 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*	droplets are small codeblocks that are called from anywhere in the template. 
+* 	To call a droplet just use [[dropletname]]. optional parameters for a droplet can be used like [[dropletname?parameter=value&parameter2=value]]
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['droplet_id']) OR !is_numeric($_GET['droplet_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+} else {
+	$droplet_id = $_GET['droplet_id'];
+}
+
+// Include WB admin wrapper script
+require_once(WB_PATH.'/framework/class.admin.php');
+require_once(WB_PATH.'/framework/functions.php');
+
+// check website baker platform (with WB 2.7, Admin-Tools were moved out of settings dialogue)
+if(file_exists(ADMIN_PATH .'/admintools/tool.php')) {
+	$admintool_link = ADMIN_URL .'/admintools/index.php';
+	$module_edit_link = ADMIN_URL .'/admintools/tool.php?tool=droplets';
+	$admin = new admin('admintools', 'admintools');
+} else {
+	$admintool_link = ADMIN_URL .'/settings/index.php?advanced=yes#administration_tools"';
+	$module_edit_link = ADMIN_URL .'/settings/tool.php?tool=droplets';
+	$admin = new admin('Settings', 'settings_advanced');
+}
+
+// Delete droplet
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_droplets WHERE id = '$droplet_id' LIMIT 1");
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/droplets/modify_droplet.php?droplet_id='.$droplet_id);
+} else {
+    $admin->print_success($TEXT['SUCCESS'], $module_edit_link);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/delete_droplet.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/PreviousPage.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/PreviousPage.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/PreviousPage.php	(revision 1130)
@@ -0,0 +1,13 @@
+//:Create a previous link to your page
+//:Display a link to the previous page on the same menu level
+$info = show_menu2(0, SM2_CURR, SM2_START, SM2_ALL|SM2_BUFFER, '[if(class==menu-current){[level] [sib] [sibCount] [parent]}]', '', '', '');+list($nLevel, $nSib, $nSibCount, $nParent) = explode(' ', $info);++// show previous+$prv = $nSib > 1 ? $nSib - 1 : 0;+if ($prv > 0) { +return show_menu2(0, SM2_CURR, SM2_START, SM2_ALL|SM2_BUFFER, "[if(sib==$prv){[a][menu_title]</a> &lt;&lt;}]", '', '', '');+}+else +return '(no previous)';+
Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/PreviousPage.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/Text2Image.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/Text2Image.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/Text2Image.php	(revision 1130)
@@ -0,0 +1,30 @@
+//:Create an image from the textparameter
+//:Use [[text2image?text=The text to create]]
+//clean up old files..+$dir = WB_PATH.'/temp/';+$dp = opendir($dir) or die ('Could not open '.$dir);+while ($file = readdir($dp)) {+	if ((eregi('img_',$file)) && (filemtime($dir.$file)) < (strtotime('-10 minutes'))) {+		unlink($dir.$file);+	}+}+closedir($dp);++$imgfilename = 'img_'.rand().'_'.time().'.jpg';+//create image+$padding = 0;+$font = 3;  	++$height = imagefontheight($font) + ($padding * 2);+$width = imagefontwidth($font) * strlen($text) + ($padding * 2);+$image_handle = imagecreatetruecolor($width, $height);+$text_color = imagecolorallocate($image_handle, 0, 0, 0);+$background_color = imagecolorallocate($image_handle, 255, 255, 255);+$bg_height = imagesy($image_handle);+$bg_width = imagesx($image_handle);+imagefilledrectangle($image_handle, 0, 0, $bg_width, $bg_height, $background_color);+imagestring($image_handle, $font, $padding, $padding, $text, $text_color);+imagejpeg($image_handle,WB_PATH.'/temp/'.$imgfilename,100);+imagedestroy($image_handle);++return '<img src="'.WB_URL.'/temp/'.$imgfilename.'" style="border:0px;margin:0px;padding:0px;vertical-align:middle;" />';
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/Text2Image.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/NextPage.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/NextPage.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/NextPage.php	(revision 1130)
@@ -0,0 +1,11 @@
+//:Create a next link to your page
+//:Display a link to the next page on the same menu level
+$info = show_menu2(0, SM2_CURR, SM2_START, SM2_ALL|SM2_BUFFER, '[if(class==menu-current){[level] [sib] [sibCount] [parent]}]', '', '', '');+list($nLevel, $nSib, $nSibCount, $nParent) = explode(' ', $info);++// show next+$nxt = $nSib < $nSibCount ? $nSib + 1 : 0;+if ($nxt > 0) {+return show_menu2(0, SM2_CURR, SM2_START, SM2_ALL|SM2_BUFFER,	"[if(sib==$nxt){&gt;&gt; [a][menu_title]</a>}]", '', '', '');+}+else return '(no next)';
Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/NextPage.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/Oneliner.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/Oneliner.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/Oneliner.php	(revision 1130)
@@ -0,0 +1,5 @@
+//:Create a random oneliner on your page
+//:Use: [[OneLiner]]. The file with the oneliner data is located in /modules/droplets/example/oneliners.txt
+$line = file (dirname(__FILE__)."/example/oneliners.txt");+shuffle($line);+return $line[0]; 
Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/Oneliner.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/Skype.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/Skype.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/Skype.php	(revision 1130)
@@ -0,0 +1,3 @@
+//:Your skype status as an image
+//:Commandline to use: [[skype?user=skypename]]
+return '<img src="http://mystatus.skype.com/'.$user.'.png?t='.time().'" alt="My Skype status" />';
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/Skype.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/EmailFilter.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/EmailFilter.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/EmailFilter.php	(revision 1130)
@@ -0,0 +1,170 @@
+//:Emailfiltering on your output - output filtering with the options below - Mailto links can be encrypted by a Javascript 
+//:usage:  [[EmailFilter]] + 
+// You can configure the output filtering with the options below.
+// Tip: Mailto links can be encrypted by a Javascript function. 
+// To make use of this option, one needs to add the PHP code 
+//       register_frontend_modfiles('js');
+// into the <head> section of the index.php of your template. 
+// Without this modification, only the @ character in the mailto part will be replaced.
+
+// Basic Email Configuration: 
+// Filter Email addresses in text 0 = no, 1 = yes - default 1
+$filter_settings['email_filter'] = '1';
+
+// Filter Email addresses in mailto links 0 = no, 1 = yes - default 1
+$filter_settings['mailto_filter'] = '1';
+
+// Email Replacements, replace the '@' and the '.' by default (at) and (dot)
+$filter_settings['at_replacement']  = '(at)';
+$filter_settings['dot_replacement'] = '(dot)';
+
+// No need to change stuff underneatch unless you know what you are doing.
+
+// 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 true;
+}
+
+// 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/droplets/js/mdcr.js"></script>';
+	if(strpos($wb_page_data, $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']);
+	
+// 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|8)
+		if(count($match) == 8) {
+			/**
+				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];
+
+			// do not filter mail addresses included in input tags (<input ... value = "test@mail)
+			if (strpos($match[6], 'value') !== false) 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 **/
+				
+				// extract possible class and id attribute from ahref link
+				preg_match('/class\s*?=\s*?("|\')(.*?)\1/ix', $match[0], $class_attr);
+				$class_attr = empty($class_attr) ? '' : 'class="' . $class_attr[2] . '" ';
+				preg_match('/id\s*?=\s*?("|\')(.*?)\1/ix', $match[0], $id_attr);
+				$id_attr = empty($id_attr) ? '' : 'id="' . $id_attr[2] . '" ';
+				
+				// 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 {$class_attr}{$id_attr}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];
+	}		
+}
+	
+// 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 .= '|(value\s*=\s*"|\')??\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)
+$content = $wb_page_data;			
+// find all email addresses embedded in the content and filter them using a callback function
+$content = preg_replace_callback($pattern, 'filter_mail_addresses', $content);
+$wb_page_data = $content;
+return true;
+		

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/EmailFilter.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/Lorem.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/Lorem.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/Lorem.php	(revision 1130)
@@ -0,0 +1,18 @@
+//:Create Lorum Ipsum text
+//:Use: [[Lorem?blocks=6]] (max 6 paragraphs)
+$lorem = array();
+$lorem[] = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut odio. Nam sed est. Nam a risus et est iaculis adipiscing. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer ut justo. In tincidunt viverra nisl. Donec dictum malesuada magna. Curabitur id nibh auctor tellus adipiscing pharetra. Fusce vel justo non orci semper feugiat. Cras eu leo at purus ultrices tristique.<br /><br />";
+$lorem[] = "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.<br /><br />";
+$lorem[] = "Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.<br /><br />";
+$lorem[] = "Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.<br /><br />";
+$lorem[] = "Cras consequat magna ac tellus. Duis sed metus sit amet nunc faucibus blandit. Fusce tempus cursus urna. Sed bibendum, dolor et volutpat nonummy, wisi justo convallis neque, eu feugiat leo ligula nec quam. Nulla in mi. Integer ac mauris vel ligula laoreet tristique. Nunc eget tortor in diam rhoncus vehicula. Nulla quis mi. Fusce porta fringilla mauris. Vestibulum sed dolor. Aliquam tincidunt interdum arcu. Vestibulum eget lacus. Curabitur pellentesque egestas lectus. Duis dolor. Aliquam erat volutpat. Aliquam erat volutpat. Duis egestas rhoncus dui. Sed iaculis, metus et mollis tincidunt, mauris dolor ornare odio, in cursus justo felis sit amet arcu. Aenean sollicitudin. Duis lectus leo, eleifend mollis, consequat ut, venenatis at, ante.<br /><br />";
+$lorem[] = "Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.<br /><br />"; 
+
+$blocks = (int)$blocks - 1;
+if ($blocks <= 0) $blocks = 0;
+if ($blocks > 5) $blocks = 5;
+$returnvalue = "";
+for ( $i=0 ; $i<=$blocks ; $i++) {
+    $returnvalue .= $lorem[$i];
+}
+return $returnvalue;
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/Lorem.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/SearchBox.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/SearchBox.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/SearchBox.php	(revision 1130)
@@ -0,0 +1,15 @@
+//:Create a searchbox
+//:Creates a serachbox on the position of [[searchbox]]. Optional parameter "?msg=the search message"
+global $TEXT;
+$return_value = true;
+if (!isset($msg)) $msg='search this site..';
+$j = "onfocus=\"if(this.value=='$msg'){this.value='';this.style.color='#000';}else{this.select();}\"
+        onblur=\"if(this.value==''){this.value='$msg';this.style.color='#b3b3b3';}\"";
+if(SHOW_SEARCH) { 
+	$return_value  = '<div class="searchbox">';
+	$return_value  .= '<form action="'.WB_URL.'/search/index'.PAGE_EXTENSION.'" method="get" name="search" class="searchform" id="search">';
+	$return_value  .= '<input style="color:#b3b3b3;" type="text" name="string" size="25" class="textbox" value="'.$msg.'" '.$j.'  />&nbsp;';
+	$return_value  .= '</form>';
+	$return_value  .= '</div>';
+}
+return $return_value;

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/SearchBox.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/LoginBox.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/LoginBox.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/LoginBox.php	(revision 1130)
@@ -0,0 +1,24 @@
+//:Puts a Login / Logout box on your page.
+//:Use: [[LoginBox]]. Remember to enable frontend login in your website settings.
+global $wb, $TEXT, $MENU;
+$return_value = " ";
+if(FRONTEND_LOGIN == 'enabled' && VISIBILITY != 'private' && $wb->get_session('USER_ID') == '') {
+	$return_value  = '<form name="login" action="'.LOGIN_URL.'" method="post" class="login_table">';
+	$return_value .= '<h2>'.$TEXT['LOGIN'].'</h2>';
+	$return_value .= $TEXT['USERNAME'].':<input type="text" name="username" style="text-transform: lowercase;" /><br />';
+	$return_value .= $TEXT['PASSWORD'].':<input type="password" name="password" /><br />';
+	$return_value .= '<input type="submit" name="submit" value="'.$TEXT['LOGIN'].'" class="dbutton" /><br />';
+	$return_value .= '<a href="'.FORGOT_URL.'">'.$TEXT['FORGOT_DETAILS'].'</a><br />';
+	if(is_numeric(FRONTEND_SIGNUP))  
+		$return_value .= '<a href="'.SIGNUP_URL.'">'.$TEXT['SIGNUP'].'</a>';
+	$return_value .= '</form>';
+} elseif(FRONTEND_LOGIN == 'enabled' && is_numeric($wb->get_session('USER_ID'))) {
+	$return_value = '<form name="logout" action="'.LOGOUT_URL.'" method="post" class="login_table">';
+	$return_value .= '<h2>'.$TEXT['LOGGED_IN'].'</h2>';
+	$return_value .= $TEXT['WELCOME_BACK'].', '.$wb->get_display_name().'<br />';
+	$return_value .= '<input type="submit" name="submit" value="'.$MENU['LOGOUT'].'" class="dbutton" /><br />';
+	$return_value .= '<a href="'.PREFERENCES_URL.'">'.$MENU['PREFERENCES'].'</a><br />';
+	$return_value .= '<a href="'.ADMIN_URL.'/index.php" target="_blank">'.$TEXT['ADMINISTRATION'].'</a>';
+	$return_value .= '</form>';
+}
+return $return_value;
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/LoginBox.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/ModifiedWhen.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/ModifiedWhen.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/ModifiedWhen.php	(revision 1130)
@@ -0,0 +1,8 @@
+//:Displays the last modification time of the current page
+//:Use [[ModifiedWhen]]
+global $database, $wb;+if (PAGE_ID>0) {+	$query=$database->query("SELECT modified_when FROM ".TABLE_PREFIX."pages where page_id=".PAGE_ID);+	$mod_details=$query->fetchRow();+	return "This page was last modified on ".date("d/m/Y",$mod_details[0]). " at ".date("H:i",$mod_details[0]).".";+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/ModifiedWhen.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/RandomImage.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/RandomImage.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/RandomImage.php	(revision 1130)
@@ -0,0 +1,15 @@
+//:Get a random image from a folder in the MEDIA folder.
+//:Commandline to use: [[RandomImage?dir=subfolder_in_mediafolder]]
+$folder=opendir(WB_PATH.MEDIA_DIRECTORY.'/'.$dir.'/.'); +$names = array();+while ($file = readdir($folder))  {+	$ext=strtolower(substr($file,-4));+	if ($ext==".jpg"||$ext==".gif"||$ext==".png"){+		$names[count($names)] = $file; +	}+}+closedir($folder);+shuffle($names);+$image=$names[0]; +$name=substr($image,0,-4);+return '<img src="'.WB_URL.MEDIA_DIRECTORY.'/'.$dir.'/'.$image.'" alt="'.$name.'" width="'.$width.'" height="'.$height.'"/>';
Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/RandomImage.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/SiteModified.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/SiteModified.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/SiteModified.php	(revision 1130)
@@ -0,0 +1,8 @@
+//:Create information on when your site was last updated.
+//:Create information on when your site was last updated. Any page update counts.
+global $database, $wb;+if (PAGE_ID>0) {+	$query=$database->query("SELECT max(modified_when) FROM ".TABLE_PREFIX."pages");+	$mod_details=$query->fetchRow();+	return "This site was last modified on ".date("d/m/Y",$mod_details[0]). " at ".date("H:i",$mod_details[0]).".";+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/SiteModified.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/ParentPage.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/ParentPage.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/ParentPage.php	(revision 1130)
@@ -0,0 +1,13 @@
+//:Create a parent link to your page
+//:Display a link to the parent page of the current page
+$info = show_menu2(0, SM2_CURR, SM2_START, SM2_ALL|SM2_BUFFER, '[if(class==menu-current){[level] [sib] [sibCount] [parent]}]', '', '', '');+list($nLevel, $nSib, $nSibCount, $nParent) = explode(' ', $info);++// show up level+if ($nLevel > 0) {+$lev = $nLevel - 1;+return show_menu2(0, SM2_ROOT, SM2_CURR, SM2_CRUMB|SM2_BUFFER, "[if(level==$lev){[a][menu_title]</a>}]", '', '', '');+}+else +return '(no parent)';+
Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/ParentPage.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/example/oneliners.txt
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/oneliners.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/oneliners.txt	(revision 1130)
@@ -0,0 +1,151 @@
+A bug in the code is worth two in the documentation.
+According to my calculations the problem doesn't exist.
+A computer's attention span is as long as its power cord.
+A computer scientist is someone who fixes things that aren't broken.
+Adding manpower to a late software project makes it later.
+Air conditioned environment - Do NOT open Windows!
+All computers wait at the same speed.
+All wiyht. Rho sritched mg kegtops awound?
+Willyoupleasehelpmefixmykeyboard?Thespacebarisbroken!
+All you need to know is the user interface.
+Alpha. Software undergoes alpha testing as a first step in getting user feedback. Alpha is Latin for "doesn't work."
+Any programming language is at its best before it is implemented and used.
+Any program that runs right is obsolete.
+A paperless office has about as much chance as a paperless bathroom.
+A printer consists of three main parts: the case, the jammed paper tray and the blinking red light.
+A Life? Cool! Where can I download one of those from?
+A program is never finished until the programmer dies.
+ASCII stupid question, get a stupid ANSI!
+As far as we know, our computer has never had an undetected error.
+A user friendly computer first requires a friendly user.
+A user will find any interface design intuitive...with enough practice.
+Backup not found: (A)bort (R)etry (P)anic
+Bad or missing mouse driver. Spank the cat [Y/N]?
+Be aware of Programmers who carry screwdrivers.
+Best file compression around: "DEL *.*" = 100% compression
+Beta. Software undergoes beta testing shortly before it's released. Beta is Latin for "still doesn't work."
+Bug? That's not a bug, that's a feature.
+Build a system that even a fool can use, and only a fool will use it.
+Buy a Pentium IV 2GHz so you can reboot faster.
+Cannot load Windows 95, Incorrect DOS Version.
+COFFEE.EXE Missing---Insert Cup and Press Any Key.
+Compatible: Gracefully accepts erroneous data from any source.
+Computer analyst to programmer: "You start coding. I'll go find out what they want."
+Computer and car salesmen differ in that the latter know when they are lying.
+Computer programmers do it byte by byte.
+Computer programmers don't byte, they nibble a bit.
+Computers are a more fun way to do the same work you'd have to do without them.
+Computers are like air-conditioners: both stop working, if you open windows.
+Computers are not intelligent. They only think they are.
+Computers are unreliable, but humans are even more unreliable.
+Computers can never replace human stupidity.
+Computer Science: solving today's problems tomorrow.
+Computers follow your orders, not your intentions.
+Computers make very fast, very accurate mistakes.
+Crashing is the only thing windows does quickly.
+Daddy, what does FORMATTING DRIVE C mean?
+Disclaimer: Any errors in spelling, tact, or fact are transmission errors.
+Disinformation is not as good as datinformation.
+Don't compute and drive; the life you save may be your own.
+Don't document the program; program the document.
+Don't hit the keys so hard, it hurts.
+Don't let the computer bugs bite!
+DOS=HIGH? I knew it was on something!
+DOS Tip #1: Add DEVICE=FNGRCROS.SYS to CONFIG.SYS
+DOS Tip #2: Add BUGS=OFF to your CONFIG.SYS
+Email returned to sender -- insufficient voltage.
+Enter any 11-digit prime number to continue...
+Error:015: Unable to exit Windows. Try the door.
+Error reading FAT record: Try the SKINNY one? (Y/N)
+Ever notice how fast Windows runs? Neither did I...
+Every bug you find is the last one.
+Every time I type 'win', I loose ...
+Excuse me for butting in, but I'm interrupt-driven.
+Failure is not an option, it comes bundled with the software.
+.....File not found. Should I fake it? (Y/N)
+For any problem there is a solution that is simple, quick, and ultimately worse than the problem.
+Hardware: The parts of a computer system that can be kicked.
+Hi, my name is Any Key. Please don't hit me!
+Hiroshima..45........Tjernobil..86........Windows..95....
+Hit any user to continue.
+Home is where the computer is plugged in.
+How an engineer writes a program: Start by debugging an empty file...
+I am a computer, dumber than any human and smarter than an administrator.
+If at first you don't succeed, call it version 1.0.
+If a train station is where the train stops, what is a work station?
+I finally made my stupid computer faster; I dropped it out of the window, and it went really fast.
+If the automobile had followed the same development cycle as the computer, a Rolls-Royce today would cost $100, get a million miles to the gallon, and explode once a year, illing everyone inside.
+If the pen is mightier than the sword, and a picture is worth a thousand words, how dangerous is a fax?
+If your computer says, "Printer out of Paper," this problem cannot be resolved by continuously clicking the "OK" button.
+I have a dream: 1073741824 bytes free.
+I haven't lost my mind; it's backed up on tape somewhere.
+I hit the CTRL key but I'm still not in control!
+I'm writing a book. I've got the page numbers done.
+In a few minutes a computer can make a mistake so great that it would take many men many months to equal it.
+Is reading in the bathroom considered Multi-Tasking.
+It is easier to write an incorrect program than understand a correct one.
+It said "Insert disk 3..." but only 2 fit.
+It's not a bug; it's an undocumented feature.
+It works! Now if only I could remember what I did...
+I wish life has a scroll back buffer.
+Keyboard : Instrument used to enter errors into computer.
+Keyboard not connected, press F1 to continue.
+MACINTOSH stands for Most Applications Crash If Not The Operating System Hangs.
+Maintenance-free: When it breaks, it can't be fixed...
+Math problems? Call 1-800-[(10x)(ln(13e))]-[sin(xy)/2.362x]
+Melted fruit snacks found on Keyboard. Delete nephew [Y/N]?
+MICROSOFT: Most Intelligent Customers Realize Our Software is Only for Fools and Teenagers.
+Mommy! The cursor's winking at me!
+My software never has bugs. It just develops random features.
+Never say "OOPS!" always say "Ah, Interesting!"
+No matter how much data you add to your laptop, it will not get heavier.
+Of course I know how to copy disks. Where's the xerox machine?
+One person's error is another person's data.
+One picture is worth 128K words.
+Operator! Trace this call and tell me where I am.
+Owners of digital watches: Your day's are numbered!
+Oxymoron: Microsoft Works.
+Press any key...no, no, no, NOT THAT ONE!
+Press any key to continue or any other key to quit...
+Press CTRL-ALT-DEL to continue....
+Programmers don't die, they just GOSUB without RETURN.
+Programmer's Time-Space Continuum: Programmers continuously space the time.
+RAM disk is NOT an installation procedure.
+Reference Manual: Object that raises the monitor to eye level. Also used to compensate for that short table leg.
+Scheduled Release Date: A carefully calculated date determined by estimating the actual shipping date and subtracting six months from it.
+Shift to the left! Shift to the right! Pop up, push down, byte, byte, byte!
+Southern DOS: Y'all reckon? (Yep/Nope)
+Speed Kills! Use Windows 95.
+System going down at 1:45 for disk crashing.
+The box said: 'install on Windows 95, NT 4.0 or better'. So I installed it on Linux.
+The definition of an upgrade: Take old bugs out, put new ones in.
+The name is Baud......, James Baud.
+The program is absolutely right; therefore the computer must be wrong.
+The programmer's national anthem is 'AAAAAAAAHHHHHHHH'.
+The Queue Principle: The longer you wait in line, the greater the likelihood that you are standing in the wrong line.
+There are never enough hours in a day, but always too many days before Saturday.
+There are two ways to write error-free programs; only the third one works.
+There can never be a computer language in which you cannot write a bad program.
+There were computers in Biblical times. Eve had an Apple.
+These settings will have no effect until you restart the system.
+Reset Universe (Y/N) ?
+Those who can, do. Those who cannot, teach. Those who cannot teach, HACK!
+To be, or not to be, those are the parameters.
+To err is human, but to really foul things up requires a computer.
+User error: replace user and press any key to continue.
+Warning, keyboard not found. Press Enter to continue.
+What boots up must come down.
+Who's General Failure and why's he reading my disk?
+Why doesn't DOS ever say "EXCELLENT command or filename!"
+Why do they call this a word processor? It's simple, ... you've seen what food processors do to food, right?
+Why do we want intelligent terminals when there are so many stupid users?
+Will the information superhighway have any rest stops?
+Windows 3.1 not found: (C)heer, (P)arty, (D)ance?
+Windows is NOT a virus. Viruses DO something.
+WINDOWS stands for Will Install Needless Data On Whole System.
+Windows: the ultimate triumph of marketing over technology.
+You are making progress if each mistake is a new one.
+You don't have to know how the computer works, just how to work the computer.
+You forgot to do your backup 16 days ago. Tomorrow you'll need that version.
+You had mail, but the super-user read it, and deleted it!
+You never finish a program, you just stop working on it. 
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/example/oneliners.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.8.0/trunk/wb/modules/droplets/example/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/example/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/example/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/droplets/example/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.8.0/trunk/wb/modules/droplets/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/readme/readme.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/readme/readme.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/readme/readme.html	(revision 1130)
@@ -0,0 +1,62 @@
+<html>
+
+	<head>
+	<title>Droplets</title>
+	<link href="readme.css" rel="stylesheet" type="text/css" media="screen" />
+</head>
+
+	<body>
+		<small><font color="#7f7f7f">Droplets Help</font></small><br />
+		<h2> <img src="../img/droplets_logo.png" alt="" width="297" height="81" border="0"></h2> <br />
+		Droplets are small chunks of php code (just like the code module) that can be included in your template or any other content section. <br />
+		Including a droplet is done by encapsulating the droplet name in double brackets. <br />
+		If you want to use the droplet &quot;ModifiedWhen&quot; (to show the last modified date and time of the current page) you only need to add <b>[[ModifiedWhen]]</b> to your template or WYSIWYG contentpage. <br />
+		<br />
+		You are encouraged to create your own droplets and share them with the community. <br />
+		<br />
+		<h3>Installation</h3>
+		<br />
+		Droplets are installed as a admin tool. The installation is done using the normal &quot;Add module&quot; page in the WB backend. <br />
+		When the installation is successfull, there is a new tool added to the Admin-Tools menu. <br />
+		Clicking the tool will display the current installed droplets, and a button to create your own. <br />
+		<br />
+		<h3>Getting Droplets</h3>
+		<br />
+		A fast growing number of Droplets are available for use, you can use the <a href="http://www.websitebakers.com/pages/droplets/official-library.php" target="_new">Official Droplets Library</a> in the AMASP project website, or you can search the WB Forum. <br />
+		<br />
+		<h3>Coding Droplets</h3>
+		<br />
+		Droplets run in PHP mode, no <font color="#ff0000">&lt;?php</font> or <font color="#ff0000">?&gt;</font> is allowed in the code! If any of these tags are found in the code they will be removed. Your code will not run as expected. <br />
+		The droplet code can NOT echo or print data to the output stream directly. The Droplet name is replaced by the return value of the PHP code.<br />
+		Example: [[HelloWorld]] <br />
+		<br />
+		<font color="#ff0000">Wrong code:</font> echo &quot;Hello World&quot;; <br />
+		<font color="#339966">Correct code:</font> return &quot;Hello World&quot;; <br />
+		<br />
+		Since version 0.3 Droplets can modify the complete page content. <br />
+		When the Droplet is called, an extra variable ($wb_page_data) is made available. 
+		This variable holds all the content of your current generated webpage.
+		You can modify any part of this content simply by replacing it in the variable. There is no need to return this variable, the Droplet code will process changed content automatically.<br /><br />
+		
+		Since version 0.3 Droplets will check the PHP code you have saved for validity. <br />
+		When the code will not execute correctly a red flashing icon will apear in the backend Droplets list. <br />
+		The standard blue icon is no guarantee that the Droplets does what you would expect it to do, it will just tell you if the code is valid PHP code.<br /><br />
+		
+		Since version 0.3 Droplets you do not need to return any data. When you end your code with <pre>return true;</pre> there will not be an errormessage. The processed Droplet tag will be removed.<br />
+
+		<br />
+		<h3>PHP color coding</h3>
+		<br />
+		The Droplets edit page is ready to use the EditArea module. This module creates a color coded editor for PHP code. <br />
+		EditArea comes as a seperate module (installed as an admin tool). <br />
+		Use the WB Forum or the <a href="http://www.websitebakers.com/" target="_new">AMASP</a> project to find the latest EditArea download. <br />
+		<br />
+		<h3>More Information</h3>
+		<br />
+		More information (including localized help) can be found on the <a href="http://www.websitebakers.com/pages/droplets/about-droplets.php" target="_new">Droplets pages</a> of the AMASP project website. <br />
+		<br />
+		<br />
+		<br />
+	</body>
+
+</html>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/readme/readme.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.8.0/trunk/wb/modules/droplets/readme/readme.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/readme/readme.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/readme/readme.css	(revision 1130)
@@ -0,0 +1,85 @@
+html {
+font-size:76%;
+}
+body {
+font-family:"Trebuchet MS",Tahoma,Verdana,Arial,Helvetica,sans-serif;
+font-size:1.1em;
+line-height:1.5em;
+margin:10px;
+padding:0;
+text-align:left;
+}
+h1, h2, h3, h4, h5, h6 {
+color:#009999;
+font-family:"Trebuchet MS",Tahoma,Verdana,Arial,Helvetica,sans-serif;
+font-weight:normal;
+letter-spacing:-1px;
+margin:0;
+}
+h1, h2 {
+border-bottom:1px solid #009999;
+font-size:1.8em;
+margin:15px 0 5px;
+padding-bottom:15px;
+}
+h3 {
+border-bottom:1px solid #009999;
+font-size:1.8em;
+margin:15px 0 5px;
+padding-bottom:15px;
+}
+h4 {
+font-size:1.4em;
+margin:10px 0 5px;
+}
+h5 {
+font-size:1.2em;
+margin:10px 0 5px;
+}
+h6 {
+font-size:1em;
+margin:10px 0 0;
+}
+p {
+margin:8px 0;
+}
+acronym {
+cursor:help;
+}
+code, blockquote {
+background:#FFFFFF none repeat scroll 0 0;
+border:1px dashed #DDDDDD;
+color:#666666;
+display:block;
+margin:15px 0;
+padding:5px;
+}
+pre {
+background:#FFFFFF none repeat scroll 0 0;
+border:1px dashed #DDDDDD;
+color:#666666;
+display:inline;
+margin:15px 0;
+padding:5px;
+}
+hr {
+background-color:#009999;
+border:0 none;
+color:#DDDDDD;
+height:1px;
+margin:5px 0;
+}
+.left {
+float:left;
+}
+.right {
+float:right;
+}
+.hide {
+display:none;
+}
+
+#body {
+background:#222222;
+padding:20px;
+}

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/readme/readme.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.8.0/trunk/wb/modules/droplets/readme/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/readme/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/readme/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/droplets/readme/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.8.0/trunk/wb/modules/droplets/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/uninstall.php	(revision 1130)
@@ -0,0 +1,20 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*	droplets are small codeblocks that are called from anywhere in the template. 
+* 	To call a droplet just use [[dropletname]]. optional parameters for a droplet can be used like [[dropletname?parameter=value&parameter2=value]]
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) die(header('Location: ../index.php'));
+
+$table = TABLE_PREFIX .'mod_droplets';
+$database->query("DROP TABLE IF EXISTS `$table`");
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/backup_droplets.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/backup_droplets.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/backup_droplets.php	(revision 1130)
@@ -0,0 +1,78 @@
+<?php
+
+// $Id$
+
+/*
+*	@version	1.0
+*	@author		Ruud Eisinga (Ruud) John (PCWacht)
+*	@date		June 2009
+*
+*/
+
+// tool_edit.php
+require_once('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+require_once(WB_PATH.'/framework/functions.php');
+// create admin object depending on platform (admin tools were moved out of settings with WB 2.7)
+$admin = new admin('admintools', 'admintools');
+$admintool_link = ADMIN_URL .'/admintools/index.php';
+$module_edit_link = ADMIN_URL .'/admintools/tool.php?tool=droplets';
+$template_edit_link = ADMIN_URL .'/admintools/tool.php?tool=templateedit';
+
+
+?>
+<h4 style="margin: 0; border-bottom: 1px solid #DDD; padding-bottom: 5px;">
+	<a href="<?php echo $admintool_link;?>"><?php echo $HEADING['ADMINISTRATION_TOOLS']; ?></a>
+	->
+	<a href="<?php echo $module_edit_link;?>">Droplets</a>
+</h4>
+<?php
+
+$temp_dir = WB_PATH.'/temp/droplets/';
+$temp_file = '/modules/droplets/backup-droplets.zip';
+// make the temporary working directory
+mkdir($temp_dir);
+$query_droplets = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_droplets ORDER BY modified_when DESC");
+while($droplet = $query_droplets->fetchRow()) {
+	echo 'Saving: '.$droplet["name"].'.php<br />';
+	$sFile = $temp_dir.$droplet["name"].'.php';
+	$fh = fopen($sFile, 'w') ;
+	fwrite($fh, '//:'.$droplet['description']."\n");
+	fwrite($fh, '//:'.str_replace("\n"," ",$droplet['comments'])."\n");
+	fwrite($fh, $droplet['code']);
+	fclose($fh);
+}
+echo '<br />Create archive: backup-droplets.zip<br />';
+
+require_once(WB_PATH.'/include/pclzip/pclzip.lib.php');
+$archive = new PclZip(WB_PATH.$temp_file);
+$file_list = $archive->create($temp_dir, PCLZIP_OPT_REMOVE_ALL_PATH);
+if ($file_list == 0){
+	echo "Packaging error: '.$archive->errorInfo(true).'";
+	die("Error : ".$archive->errorInfo(true));
+}
+else {
+	echo '<br /><br />Backup created - <a href="'.WB_URL.$temp_file.'">Download</a>';
+}
+delete_directory ( $temp_dir );
+$admin->print_footer();
+
+
+function delete_directory($dirname) {
+    if (is_dir($dirname))
+        $dir_handle = opendir($dirname);
+    if (!$dir_handle)
+        return false;
+    while($file = readdir($dir_handle)) {
+        if ($file != "." && $file != "..") {
+            if (!is_dir($dirname."/".$file))
+                unlink($dirname."/".$file);
+            else
+                delete_directory($dirname.'/'.$file);          
+        }
+    }
+    closedir($dir_handle);
+    rmdir($dirname);
+    return true;
+}
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/backup_droplets.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/img/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/img/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/img/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/droplets/img/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.8.0/trunk/wb/modules/droplets/img/droplets_logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/img/droplets_logo.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/img/invalid.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/img/invalid.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/img/droplet.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/modules/droplets/img/droplet.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/droplets/js/mdcr.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/js/mdcr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/js/mdcr.js	(revision 1130)
@@ -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.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/droplets/js/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/droplets/js/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/droplets/js/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/droplets/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.8.0/trunk/wb/modules/show_menu2/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/info.php	(revision 1130)
@@ -0,0 +1,47 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2009, 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.9';
+$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.en.txt" target="_blank">readme</a> file.';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/show_menu2/README.de.txt
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/README.de.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/README.de.txt	(revision 1130)
@@ -0,0 +1,651 @@
+๏ปฟshow_menu2, version 4.9
+=======================
+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". Das 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 unterschiedlichsten Menรผstrukturen zu 
+erzeugen. Zahlreiche Beispiele dazu findet man auf der Demo-Website: http://
+code.jellycan.com/sm2test/
+
+
+
+HรUFIGE FRAGEN
+==============
+
+Q:  Ich bin kein Programmierer. Gibt es keine einfachere Dokumentation? 
+A:  Nein, denn dies hier ist bereits die einfache Dokumentation.
+
+
+Q:  Wie kann ich ein sogenanntes Drop-Down Menรผ erstellen?
+A:  Dies hat nichts mit show_menu2 zu tun. Um ein Drop-Down Menรผ zu erzeugen muร
+    lediglich der CSS-Code des jeweiligen Templates angepaรt werden. Die nรถtigen 
+    Anpassungen findet man z.B. im "allcss2" Template aus dem WB Addon     
+    Repository -> http://addons.websitebaker.org/pages/templates.php
+
+
+Q:  Warum verschwindet das Menรผ nachdem ich in einer mehrsprachigen WB-Site die 
+    Suchfunktion benutzt habe?
+A:  Im verwendeten Template fehlen die notwendigen Zeilen:
+
+    1.  Im WB Admin Backend: Optionen -> Erweiterte Optionen anzeigen ->        
+        Suchoptionen -> Kopfzeile - hier direkt nach dem รถffnenden <form> tag 
+        folgende Zeile einfรผgen:
+       +        <input type="hidden" name="referrer" value="[REFERRER_ID]" />
+
+    2.  In der index.php des verwendeten Templates folgende Zeile unmittelbar   
+        nach dem รถffnenden <form> tag der Suche einfรผgen:
+
+        <input type="hidden" name="referrer" value="<?php echo defined('REFERRER_ID')?REFERRER_ID:PAGE_ID;?>" />
+
+
+Q:  Mehrsprachig? Das klingt toll. Wie macht man das?
+A:  http://help.websitebaker.org/pages/de/advanced-doku/designer-guide/mehrsprachige-webseiten.php
+
+
+Q:  Jedesmal wenn eine Seite aufgerufen wird, erzeugt SM2 folgende Warnmeldung:
+    "show_menu2 error: $aOptions is invalid. No flags from group 1 supplied!"
+A:  Der Funktion wurden die falschen Werte oder eine falsche Anzahl an 
+    Werten รผbergeben.
+    Siehe den Abschnitt PARAMETER fรผr die korrekten Flag Werte die dem 
+    $aOptions Parameter zu รผbergeben sind.    
+
+
+Q:  How do I use a different class/picture/color/widget for each entry in a menu?
+A:  Use the [page_id] format string in the $aItemOpen string. Create a unique 
+    class or id for each menu item, then reference that item in your CSS or Javascript
+    to do whatever you want.
+    
+    To add a unique class for each menu item (or similar):
+    
+        "<li><a href="[url]" target="[target]" class="[class] p[page_id]">[menu_title]</a>"
+
+        ... creating menu items like ...
+    
+        <li><a href="/pages/foo/bar.php" target="_top" class="menu-top p45">Top Menu</a>
+
+        Reference this in your CSS like:
+        
+        a.p45 { color: red; }
+    
+    To add a unique ID for each menu item (or similar):
+    
+        "<li><a id="p[page_id]" href="[url]" target="[target]" class="[class]">[menu_title]</a>"
+    
+        ... creating menu items like ...
+    
+        <li><a id="p45" href="/pages/foo/bar.php" target="_top" class="menu-top">Top Menu</a>
+
+        Reference this in your CSS like:
+        
+        a#p45 { color: red; }
+        
+        Note that the ID can only be used if that menu is generated and displayed one time
+        only on the page (because HTML ID's must be unique within a page). 
+    
+    
+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,
+        $aOptions       = 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.
+Jeder Parameter muร absolut korrekt verwendet werden. Folgende Regeln kรถnnen 
+dabei helfen:
+
+    $aMenu = 0 ist in den meisten Anwendungsfรคllen der beste Wert.
+    
+    $aStart muร entweder eine page ID oder ein Wert der mit "SM2_" beginnt sein.
+    
+    $aMaxLevel kann nur Werte erhalten, die mit "SM2_" beginnen.
+    
+    $aOptions bis auf einige wenige Spezialfรคlle sind hier nur Werte die mit 
+    "SM2_" beginnen zulรคssig.
+    
+    Alle weiteren Parameter enthalten die (HTML)Tags die die Ausgabe des Menรผs 
+    steuern.
+    
+    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 einschliesslich $aOptions 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 es erforderlich ist, 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. Diese 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 unterhalb der obersten Ebene
+                    SM2_ROOT+2    Beginnt zwei Ebenen unterhalb 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,egal 
+                     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       Nur die Startebene (gleiche Wirkung wie SM2_START)
+                     SM2_MAX+1     Die Startebene und eine Ebene darunter.
+
+$aOptions   
+    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. Das 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 als 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_SHOWHIDDEN  Hidden pages are usually hidden all of the time, including 
+                    when they are active (i.e. current page or a parent page).
+                    Use private pages for time when you want pages to be
+                    hidden except when active. However for compatibility with
+                    release 4.8, supply this flag to enable hidden pages to
+                    become visible when they are active.
+
+    Fรผr diesen Parameter gibt es auch einen erweiterten Modus, bei dem die Optionen
+    als assoziatives Array รผbergeben werden. Nรคheres dazu im Abschnitt ERWEITERTE
+    OPTIONEN. Fรผr die meisten Anwendungsfรคlle wird dies jedoch NICHT benรถtigt.
+    
+$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 Kompatibilitรคt zur Website Baker
+    Standardfunktion show_menu() zu gewรคhrleisten.
+    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. Die nรคhere Beschreibung dazu findet sich im Abschnitt FORMATTER. 
+    Wenn hier ein Formatter angegeben wird, werden alle Argumente
+    nach $aItemOpen ignoriert.
+
+$aItemClose
+    Dieser String schlieรt 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 schlieรt 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.
+
+    
+
+ERWEITERTE OPTIONEN
+===================
+Der Parameter $aOptions kann auf zweierlei Arten verwendet werden. Zum einen, wie oben 
+im Abschnitt PARAMETER beschrieben, diese Art sollte fรผr die allermeisten 
+Anwendungsfรคlle ausreichen. Um allerdings in speziellen Fรคllen die Sonderoptionen 
+ansprechen zu kรถnnen, mรผssen die erforderlichen Werte als assoziatives Array 
+bereitgestellt werden.
+Bitte beachten: Die SM2_* Flags sind auch hierbei erforderlich und mรผรen als 'flags' 
+รผbergeben werden.
+
+    'flags'     **ZWINGEND ERFORDELICH** Dies sind die Flags die oben im Abschnitt 
+                PARAMETER unter $aOptions beschrieben wurden.
+
+    'notrim'    Hiermit wird eine Anzahl von Ebenen festegelegt, die relativ bezogen 
+                auf die in $aStart festgelegte Menรผebene, immer angezeigt werden. Dies 
+                bewirkt, daร fรผr diese Ebenen das SM2_TRIM Flag ignoriert wird.
+
+Um dieses Array zu verwenden, empfiehlt es sich es erst anzulegen und dann den 
+$aOptions parameter mit dem angelegten Array zu beliefern:
+
+    $options = array('flags' => (SM2_TRIM|...), 'notrim' => 1);
+    show_menu2(0, SM2_ROOT, SM2_CURR+1, $options);
+    
+    
+    
+FORMAT STRINGS
+==============
+Die folgenden Tags kรถnnen in den Formatstrings fรผr $aItemOpen und $aMenuOpen
+verwendet werden und sollen durch den entsprechenden Text ersetzt werden.
+
+[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 รผbergeordneten 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) verknรผ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 in einem 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 sind 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() { }
+};
Index: tags/2.8.0/trunk/wb/modules/show_menu2/include.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/include.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/include.php	(revision 1130)
@@ -0,0 +1,832 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2009, 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.9: 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_SHOWHIDDEN', 0x0800); // bit 11
+
+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 (array_key_exists('sm2_is_curr', $aPage)) { 
+            $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
+    $aOptions       = SM2_TRIM,
+    $aItemOpen      = false,
+    $aItemClose     = false,
+    $aMenuOpen      = false,
+    $aMenuClose     = false,
+    $aTopItemOpen   = false,
+    $aTopMenuOpen   = false
+    )
+{
+    global $wb;
+
+    // extract the flags and set $aOptions to an array
+    $flags = 0;
+    if (is_int($aOptions)) {
+        $flags = $aOptions;
+        $aOptions = array();
+    }
+    else if (isset($aOptions['flags'])) {
+        $flags = $aOptions['flags'];
+    }
+    else {
+        $flags = SM2_TRIM;
+        $aOptions = array();
+        error_log('show_menu2 error: $aOptions is invalid. No flags supplied!');
+    }
+    
+    // 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 == ($flags & _SM2_GROUP_1)) {
+        error_log('show_menu2 error: $aOptions is invalid. No flags from group 1 supplied!');
+        $flags |= SM2_TRIM; // default to TRIM
+    }
+    
+    // search page results don't have any of the page data loaded by WB, so we load it 
+    // ourselves using the referrer ID as the current page
+    $CURR_PAGE_ID = defined('REFERRER_ID') ? REFERRER_ID : PAGE_ID;
+    if (count($wb->page) == 0 && defined('REFERRER_ID') && REFERRER_ID > 0) {
+        global $database;
+        $sql = "SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '".REFERRER_ID."'";
+        $result = $database->query($sql);
+        if ($result->numRows() == 1) {
+            $wb->page = $result->fetchRow();
+        }
+        unset($result);
+    }
+    
+    // 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 = $CURR_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 (($flags & 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 ($flags & 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';
+        $sql = str_replace('hidden', 'IGNOREME', $sql); // we want the hidden pages
+        $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. hidden pages aren't shown unless they are on the current page
+                    if ($page['visibility'] == 'hidden') {
+                        $page['sm2_hide'] = true;
+                    }
+                    
+                    // 2. all pages with no active sections (unless it is the top page) are ignored
+                    else if (!$wb->page_is_active($page) && $page['link'] != $wb->default_link && !INTRO_PAGE) {
+                        continue;
+                    }
+
+                    // 3. all pages not visible to this user (unless always visible to registered users) are ignored
+                    else 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'] == $CURR_PAGE_ID) {
+                    $page['sm2_is_curr'] = true;
+                    $page['sm2_on_curr_path'] = true;
+                    if ($flags & SM2_SHOWHIDDEN) { 
+                        // show hidden pages if active and SHOWHIDDEN flag supplied
+                        unset($page['sm2_hide']); 
+                    }
+                }
+
+                // 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;
+                    if ($flags & SM2_SHOWHIDDEN) {
+                        // show hidden pages if active and SHOWHIDDEN flag supplied
+                        unset($page['sm2_hide']); 
+                    }
+                }
+                
+                // 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'] != $CURR_PAGE_ID) {
+                    $mark['sm2_is_sibling'] = true;
+                }
+                unset($mark);
+            }
+            unset($childSet);
+        }
+        
+        // mark all children of the current page. We don't do this when 
+        // $CURR_PAGE_ID is 0, as 0 is the parent of everything. 
+        // $CURR_PAGE_ID == 0 occurs on special pages like search results
+        // when no referrer is available.s
+        if ($CURR_PAGE_ID != 0) {
+            sm2_mark_children($rgParent, $CURR_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($flags, $aItemOpen, $aItemClose, 
+                $aMenuOpen, $aMenuClose, $aTopItemOpen, $aTopMenuOpen);
+        }
+        
+        // adjust the level until we show everything and ignore the SM2_TRIM flag.
+        // Usually this will be less than the start level to disable it.
+        $showAllLevel = $aStartLevel - 1;
+        if (isset($aOptions['notrim'])) {
+            $showAllLevel = $aStartLevel + $aOptions['notrim'];
+        }
+        
+        // display the menu
+        $formatter->initialize();
+        sm2_recurse(
+            $GLOBALS['show_menu2_data'][$aMenu],
+            $aStart,    // parent id to start displaying sub-menus
+            $aStartLevel, $showAllLevel, $aMaxLevel, $flags, 
+            $formatter);
+        $formatter->finalize();
+        
+        // if we are returning something, get the data
+        if (($flags & SM2_BUFFER) != 0) {
+            $retval = $formatter->getOutput();
+        }
+    }
+
+    // clear the data if we aren't caching it
+    if (($flags & 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, $aShowAllLevel, $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 skipping the hidden pages so we can pass 
+    // this in and check if the item is first or last
+    $sibCount = 0;
+    foreach ($rgParent[$aStart] as $page) {
+        if (!array_key_exists('sm2_hide', $page)) $sibCount++;
+    }
+    
+    $currSib = 0;
+    foreach ($rgParent[$aStart] as $page) {
+        // skip all hidden pages 
+        if (array_key_exists('sm2_hide', $page)) { // not set if false, so existence = true
+            continue;
+        }
+        
+        $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 ($pageLevel > $aShowAllLevel  // permit all levels to be shown
+                && !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, $aShowAllLevel, $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.8.0/trunk/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.8.0/trunk/wb/modules/show_menu2/README.en.txt
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/README.en.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/README.en.txt	(revision 1130)
@@ -0,0 +1,594 @@
+show_menu2, version 4.9
+=======================
+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 different 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. 
+
+
+
+COMMON QUESTIONS
+================
+
+Q:  I'm not a programmer. Do you have simpler documentation? 
+A:  Nup. This is it. Go hard. Gambarre.
+
+
+Q:  How do I create a drop-down menu?
+A:  This is unrelated to show_menu2. You need to change the template CSS code 
+    to display the menu as a drop-down. Try the "allcss2" template from the WB
+    addon repository. http://addons.websitebaker.org/pages/templates.php
+
+
+Q:  Why does the menu disappear after I do a search on my multilingual WB site?
+A:  You're missing some required lines in your template.
+
+    1.  Log into WB administration, and go to Settings -> Show advanced settings 
+        -> Search Settings -> Header Code and add the following input field 
+        after the <form> open tag: 
+
+        <input type="hidden" name="referrer" value="[REFERRER_ID]" />
+
+
+    2.  In the index.php of your template, add the following input field 
+        immediately following the search <form> open tag.
+
+        <input type="hidden" name="referrer" value="<?php echo defined('REFERRER_ID')?REFERRER_ID:PAGE_ID;?>" />
+
+
+Q:  Multilingual? That sounds cool. How do I do that?
+A:  http://help.websitebaker.org/pages/en/advanced-docu.php
+
+
+Q:  SM2 is generating a warning every time the page is accessed:
+    "show_menu2 error: $aOptions is invalid. No flags from group 1 supplied!"
+A:  You are passing the wrong values to the function. Have a closer look at the 
+    parameters that you are passing. See the PARAMETERS section below for the 
+    correct flag values to pass for the $aOptions parameter.
+
+
+Q:  How do I use a different class/picture/color/widget for each entry in a menu?
+A:  Use the [page_id] format string in the $aItemOpen string. Create a unique 
+    class or id for each menu item, then reference that item in your CSS or Javascript
+    to do whatever you want.
+    
+    To add a unique class for each menu item (or similar):
+    
+        "<li><a href="[url]" target="[target]" class="[class] p[page_id]">[menu_title]</a>"
+
+        ... creating menu items like ...
+    
+        <li><a href="/pages/foo/bar.php" target="_top" class="menu-top p45">Top Menu</a>
+
+        Reference this in your CSS like:
+        
+        a.p45 { color: red; }
+    
+    To add a unique ID for each menu item (or similar):
+    
+        "<li><a id="p[page_id]" href="[url]" target="[target]" class="[class]">[menu_title]</a>"
+    
+        ... creating menu items like ...
+    
+        <li><a id="p45" href="/pages/foo/bar.php" target="_top" class="menu-top">Top Menu</a>
+
+        Reference this in your CSS like:
+        
+        a#p45 { color: red; }
+        
+        Note that the ID can only be used if that menu is generated and displayed one time
+        only on the page (because HTML ID's must be unique within a page). 
+    
+
+
+FUNCTION
+========
+
+The complete call signature and default parameter value for show_menu2 is:
+
+    show_menu2(
+        $aMenu          = 0,
+        $aStart         = SM2_ROOT,
+        $aMaxLevel      = SM2_CURR+1,
+        $aOptions       = 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.
+Ensure that you use each parameter correctly. Use the following rules:
+
+    $aMenu will be 0 for most people.
+    
+    $aStart must be either a page ID or a value starting with "SM2_".
+    
+    $aMaxLevel must be only values that start with "SM2_".
+    
+    $aOptions must be only values that start with "SM2_" (unless you are 
+    in a very small minority of users).
+    
+    All other parameters are the HTML tag templates that will be 
+    output for menus and menu items.
+    
+Note that every parameter from $aItemOpen can be supplied as false to get 
+the default value.
+
+
+
+HTML 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.
+
+$aOptions  
+    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_SHOWHIDDEN  Hidden pages are usually hidden all of the time, including 
+                    when they are active (i.e. current page or a parent page).
+                    Use private pages for time when you want pages to be
+                    hidden except when active. However for compatibility with
+                    release 4.8, supply this flag to enable hidden pages to
+                    become visible when they are active.
+
+    This parameter also has an extended mode where an associative array of 
+    options is supplied. See the EXTENDED OPTIONS section for details. 
+    Most users will NOT need to use this.
+
+$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.
+
+
+
+EXTENDED OPTIONS
+================
+The $aOptions parameter is a dual mode parameter. For most users, only the
+SM2_* flags will be sufficient. However, to access the extra options, it 
+must be supplied as an associative array. Note that the SM2_* flags are
+still required and must be supplied as 'flags'.
+
+    'flags'     **REQUIRED** These are the flags described in PARAMETERS
+                above for the $aOptions parameter. 
+
+    'notrim'    Specify a number of levels relative to the menu level of 
+                $aStart that will always be displayed. This will cause the
+                SM2_TRIM flag to be ignored for these levels.
+                        
+To supply one of these options in addition to the flags, the option array 
+should be created and passed as the $aOptions parameter:
+
+    $options = array('flags' => (SM2_TRIM|...), 'notrim' => 1);
+    show_menu2(0, SM2_ROOT, SM2_CURR+1, $options);
+    
+    
+    
+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() { }
+};
Index: tags/2.8.0/trunk/wb/modules/show_menu2/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/languages/DA.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2009, 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.
+
+ -----------------------------------------------------------------------------------------
+  DANISH LANGUAGE FILE FOR THE ADDON: SHOW_MENU2
+ -----------------------------------------------------------------------------------------
+*/
+
+// Dansk modulbeskrivelse
+$module_description = 'Dette modul integrerer den udvidede men&uuml;funktion <code>show_menu2()</code> i Website Baker. Der findes detaljeret information p&aring; <a href="http://code.jellycan.com/show_menu2/" target="_blank">http://code.jellycan.com/show_menu2/</a> eller i <a href="{WB_URL}/modules/show_menu2/README.en.txt" target="_blank">readme</a>filen.';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/show_menu2/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.8.0/trunk/wb/modules/show_menu2/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/languages/NL.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2009, 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.
+
+ -----------------------------------------------------------------------------------------
+  DUTCH LANGUAGE FILE FOR THE ADDON: SHOW_MENU2
+ -----------------------------------------------------------------------------------------
+*/
+
+//Module Description
+$module_description = 'Deze module integreert een de geavanceerde menu functie <code> show_menu2 () </ code> in Website Baker. Gedetailleerde informatie is beschikbaar op <a href="http://code.jellycan.com/show_menu2/" target="_blank"> http://code.jellycan.com/show_menu2/ </a> of in de <a href = "{WB_URL}/modules/show_menu2/README_EN" target = "_blank"> README </a>.
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/show_menu2/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.8.0/trunk/wb/modules/show_menu2/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/languages/NO.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2009, 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.
+
+ -----------------------------------------------------------------------------------------
+  NORWEGIAN LANGUAGE FILE FOR THE ADDON: SHOW_MENU2
+ -----------------------------------------------------------------------------------------
+*/
+
+// Norwegian Moduledscripton
+$module_description = 'Dette er en kode snutt (snippet) beregnet p&aring; Website Baker CMS og er en fullgod erstatning for den innebygde meny modulen. For n&aelig;rmere beskrivelse se (Kun p&aring; Engelsk) <a href="http://code.jellycan.com/show_menu2/" target="_blank">http://code.jellycan.com/show_menu2/</a> , for mer WB spesifikke detaljer se <a href="' .WB_URL .'/modules/show_menu2/README.en.txt" target="_blank">readme</a> filen.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/show_menu2/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.8.0/trunk/wb/modules/show_menu2/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/languages/FR.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2009, 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.
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE ADDON: SHOW_MENU2
+ -----------------------------------------------------------------------------------------
+*/
+
+//Module Description
+$module_description = 'Ce module int&egrave;gre la fonction de menu avanc&eacute;e <code> show_menu2 () </ code> dans Website Baker. Une information d&eacute;taill&eacute;e est disponible sur <a href="http://code.jellycan.com/show_menu2/" target="_blank"> http://code.jellycan.com/show_menu2/ </a> ou dans le fichier <a href = "{WB_URL}/modules/show_menu2/README_DE" target = "_blank"> README </a>.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/show_menu2/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.8.0/trunk/wb/modules/show_menu2/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/languages/DE.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2009, 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.
+
+ -----------------------------------------------------------------------------------------
+  GERMAN LANGUAGE FILE FOR THE ADDON: SHOW_MENU2
+ -----------------------------------------------------------------------------------------
+*/
+
+// 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.txt" target="_blank">readme</a> Datei.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/show_menu2/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/languages/index.php	(revision 1130)
@@ -0,0 +1,25 @@
+<?php
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2009, 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.8.0/trunk/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.8.0/trunk/wb/modules/show_menu2/legacy.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/legacy.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/legacy.php	(revision 1130)
@@ -0,0 +1,196 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2009, 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.8.0/trunk/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.8.0/trunk/wb/modules/show_menu2/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/index.php	(revision 1130)
@@ -0,0 +1,27 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2009, 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.8.0/trunk/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.8.0/trunk/wb/modules/show_menu2/LICENCE.txt
===================================================================
--- tags/2.8.0/trunk/wb/modules/show_menu2/LICENCE.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/show_menu2/LICENCE.txt	(revision 1130)
@@ -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.8.0/trunk/wb/modules/jsadmin/js/dragdrop.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/js/dragdrop.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/js/dragdrop.js	(revision 1130)
@@ -0,0 +1,346 @@
+// 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(JsAdmin.ADMIN_URL + "/pages/index.php") > -1) {
+		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="' + JsAdminTheme.THEME_URL + '/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", "transparent");
+	}
+	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", "#f0f0f0");
+	
+	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.8.0/trunk/wb/modules/jsadmin/js/dragdrop.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/jsadmin/js/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/js/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/js/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/js/jsadmin.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/js/jsadmin.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/js/jsadmin.js	(revision 1130)
@@ -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.8.0/trunk/wb/modules/jsadmin/js/jsadmin.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/jsadmin/js/tool.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/js/tool.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/js/tool.js	(revision 1130)
@@ -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.8.0/trunk/wb/modules/jsadmin/js/tool.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/jsadmin/js/restore_pages.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/js/restore_pages.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/js/restore_pages.js	(revision 1130)
@@ -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.8.0/trunk/wb/modules/jsadmin/js/restore_pages.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/jsadmin/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/languages/DA.php	(revision 1130)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DANISH LANGUAGE FILE FOR THE ADDON: JAVASCRIPT ADMIN
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_JSADMIN['TXT_HEADING_B'] = 'V&aelig;lg de Javascript funktioner, du vil g&oslash;re aktive';
+$MOD_JSADMIN['TXT_PERSIST_ORDER_B'] = 'Husk udvidede sider';
+$MOD_JSADMIN['TXT_AJAX_ORDER_PAGES_B'] = 'Byt om p&aring; sider ved hj&aelig;lp af  drag-and-drop';
+$MOD_JSADMIN['TXT_AJAX_ORDER_SECTIONS_B'] = 'Byt om p&aring; sektioner ved hj&aelig;lp af  drag-and-drop';
+$MOD_JSADMIN['TXT_ERROR_INSTALLINFO_B'] = '<h1>Fejl</h1><p>JavaScript Admin kr&aelig;ver YUI (Yahoo User Interface) framework.<br />F&oslash;lgende filer er n&oslash;dvendige for at f&aring; Javascript Admin til at virke som forventet:<br /><br />';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/jsadmin/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.8.0/trunk/wb/modules/jsadmin/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/languages/FR.php	(revision 1130)
@@ -0,0 +1,38 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE ADDON: JAVASCRIPT ADMIN
+ -----------------------------------------------------------------------------------------
+*/
+//Module Description
+$module_description = 'Ce module am&eacute;liore l&apos;interactivit&eacute; de l&apos;interface d&apos;administration gr&acirc;ce &agrave; l&apos;ajout de fonctionnalit&eacute;s javascript am&eacute;lior&eacute;es. Utilise la librairie YahooUI.';
+
+// Headings and text outputs
+$MOD_JSADMIN['TXT_HEADING_B'] 				= 'Veuillez s&eacute;lectionner la fonctionnalit&eacute; Javascript &agrave; activer';
+$MOD_JSADMIN['TXT_PERSIST_ORDER_B'] 		= 'Garder en m&eacute;moire l&apos;arborescence des pages';
+$MOD_JSADMIN['TXT_AJAX_ORDER_PAGES_B'] 	= 'R&eacute;organisation des pages gr&acirc;ce au glisser-d&eacute;poser';
+$MOD_JSADMIN['TXT_AJAX_ORDER_SECTIONS_B'] = 'R&eacute;organisation des sections gr&acirc;ce au glisser-d&eacute;poser';
+$MOD_JSADMIN['TXT_ERROR_INSTALLINFO_B'] 	= '<h1>Erreur</h1><p>JavaScript Admin a besoin du framework YUI (Yahoo User Interface).<br />Les fichiers suivants sont requis pour que Javascript Admin fonctionne correctement:<br /><br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/jsadmin/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.8.0/trunk/wb/modules/jsadmin/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/languages/NL.php	(revision 1130)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/languages/NO.php	(revision 1130)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/languages/EN.php	(revision 1130)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/languages/RU.php	(revision 1130)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/languages/DE.php	(revision 1130)
@@ -0,0 +1,39 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/backend.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/backend.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/backend.css	(revision 1130)
@@ -0,0 +1,29 @@
+/* Fix for funky spacing on page listing */
+.pages_list li {
+	margin-bottom: -2px;
+}
+
+body.jsadmin_busy td.content {
+	background: url(images/busy.gif) 4px 4px no-repeat;
+}
+
+body.jsadmin_success td.content {
+	background: url(images/success.gif) 4px 4px no-repeat;
+}
+
+body.jsadmin_failure td.content {
+	background: url(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;
+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/jsadmin/backend.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/jsadmin/jsadmin_backend_include.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/jsadmin_backend_include.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/jsadmin_backend_include.php	(revision 1130)
@@ -0,0 +1,116 @@
+<?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-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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= 7; // 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= 5;}
+      else{ $js_buttonCell= 5;} // This ist the Cell where the Button "Up" is , by Swen Uth
+		}
+	} elseif($page_type == 'config') {
+		$js_scripts[] = 'tool.js';
+	}
+?>
+
+<script  type="text/javascript" language="JavaScript">
+<!--
+var JsAdmin = { WB_URL : '<?php echo WB_URL ?>', ADMIN_URL : '<?php echo ADMIN_URL ?>' };
+var JsAdminTheme = { THEME_URL : '<?php echo THEME_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
+  }
+
+ }
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/tool.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/tool.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/tool.php	(revision 1130)
@@ -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-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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="checked"' : '';
+$ajax_order_pages = get_setting('mod_jsadmin_ajax_order_pages', true) ? 'checked="checked"' : '';
+$ajax_order_sections = get_setting('mod_jsadmin_ajax_order_sections', true) ? 'checked="checked"' : '';
+?>
+<?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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/uninstall.php	(revision 1130)
@@ -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-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/images/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/jsadmin.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/jsadmin.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/jsadmin.php	(revision 1130)
@@ -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-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/install.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/install.php	(revision 1130)
@@ -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-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/index.php	(revision 1130)
@@ -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-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/move_to.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/move_to.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/move_to.php	(revision 1130)
@@ -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-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/info.php	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/modules/jsadmin/README.txt
===================================================================
--- tags/2.8.0/trunk/wb/modules/jsadmin/README.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/jsadmin/README.txt	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/modules/news/view.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/view.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/view.php	(revision 1130)
@@ -0,0 +1,400 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 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');
+}
+
+//overwrite php.ini on Apache servers for valid SESSION ID Separator
+if(function_exists('ini_set')) {
+	ini_set('arg_separator.output', '&amp;');
+}
+
+// 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])
+if (isset($groups)) {
+   unset($groups);
+}
+$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 = '';
+	}
+	
+	$t = time();
+	// 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 
+		AND (published_when = '0' OR published_when <= $t) AND (published_until = 0 OR published_until >= $t)");
+	$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)
+	$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).'&amp;g='.$_GET['g'].'">&lt;&lt; ';
+			} else {
+				$pl_prepend = '<a href="?p='.($position-$setting_posts_per_page).'">&lt;&lt; ';
+			}
+			$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).'&amp;g='.$_GET['g'].'"> ';
+			} else {
+				$nl_prepend = '<a href="?p='.($position+$setting_posts_per_page).'"> ';
+			}
+			$nl_append = ' &gt;&gt;</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';
+	}
+
+	if ($num_posts === 0) {
+		$setting_header = '';
+		$setting_post_loop = '';
+		$setting_footer = '';
+		$setting_posts_per_page = '';
+
+	}
+
+	// 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> &gt;&gt; '.$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
+				if ($post['published_when'] === '0') $post['published_when'] = time();
+				if ($post['published_when'] > $post['posted_when']) {
+					$post_date = gmdate(DATE_FORMAT, $post['published_when']+TIMEZONE);
+					$post_time = gmdate(TIME_FORMAT, $post['published_when']+TIMEZONE);
+				} else {
+					$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']);
+				$publ_time = date(TIME_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 .= '&amp;'; } 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'];
+				$display_image = ($group_image == '') ? "none" : "inherit";
+				$display_group = ($group_id == 0) ? 'none' : 'inherit'; 
+				if ($group_image != "") $group_image= "<img src='".$group_image."' alt='".$group_title."' />";
+				// 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]', '[PUBLISHED_TIME]', '[USER_ID]', '[USERNAME]', '[DISPLAY_NAME]', '[EMAIL]', '[TEXT_READ_MORE]','[SHOW_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, '#" onclick="javascript:void(0);return false;" style="cursor:no-drop;', $post_date, $post_time, $publ_date, $publ_time, $uid, $users[$uid]['username'], $users[$uid]['display_name'], $users[$uid]['email'], '', 'none');
+					} 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, $publ_time, $uid, $users[$uid]['username'], $users[$uid]['display_name'], $users[$uid]['email'], $MOD_NEWS['TEXT_READ_MORE'], 'visible');
+					}
+				} else {
+					if($post_long_len < 9) {
+						$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $short, '#" onclick="javascript:void(0);return false;" style="cursor:no-drop;', $post_date, $post_time, $publ_date, $publ_time, '', '', '', '', '','none');
+					} 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, $publ_time, '', '', '', '', $MOD_NEWS['TEXT_READ_MORE'],'visible');
+					}
+				}
+				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 .= '&amp;'; } 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
+			if ($post['published_when'] === '0') $post['published_when'] = time();
+			if ($post['published_when'] > $post['posted_when']) {
+				$post_date = gmdate(DATE_FORMAT, $post['published_when']+TIMEZONE);
+				$post_time = gmdate(TIME_FORMAT, $post['published_when']+TIMEZONE);
+			} else {
+				$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']);
+			$publ_time = date(TIME_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'];
+			$display_image = ($group_image == '') ? "none" : "inherit";
+			$display_group = ($group_id == 0) ? 'none' : 'inherit'; 
+			if ($group_image != "") $group_image= "<img src='".$group_image."' alt='".$group_title."' />";
+			$vars = array('[PAGE_TITLE]', '[GROUP_ID]', '[GROUP_TITLE]', '[GROUP_IMAGE]', '[DISPLAY_GROUP]', '[DISPLAY_IMAGE]', '[TITLE]', '[SHORT]', '[BACK]', '[TEXT_BACK]', '[TEXT_LAST_CHANGED]', '[MODI_DATE]', '[TEXT_AT]', '[MODI_TIME]', '[PUBLISHED_DATE]', '[PUBLISHED_TIME]', '[TEXT_POSTED_BY]', '[TEXT_ON]', '[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, $MOD_NEWS['TEXT_BACK'], $MOD_NEWS['TEXT_LAST_CHANGED'], $post_date, $MOD_NEWS['TEXT_AT'], $post_time, $publ_date, $publ_time, $MOD_NEWS['TEXT_POSTED_BY'], $MOD_NEWS['TEXT_ON'], $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, $MOD_NEWS['TEXT_BACK'], $MOD_NEWS['TEXT_LAST_CHANGED'], $post_date, $MOD_NEWS['TEXT_AT'], $post_time, $publ_date, $publ_time, $MOD_NEWS['TEXT_POSTED_BY'], $MOD_NEWS['TEXT_ON'], '', '', '', '');
+			}
+			$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
+		$vars = array('[ADD_COMMENT_URL]','[TEXT_COMMENTS]');
+		$values = array(WB_URL.'/modules/news/comment.php?id='.POST_ID.'&amp;sid='.$section_id, $MOD_NEWS['TEXT_COMMENTS']);
+		echo str_replace($vars, $values, $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($wb->strip_slashes($comment['comment']));
+				$comment['title'] = $wb->strip_slashes($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]','[TEXT_ON]','[DATE]','[TEXT_AT]','[TIME]','[TEXT_BY]','[USER_ID]','[USERNAME]','[DISPLAY_NAME]', '[EMAIL]');
+				if(isset($users[$uid]['username']) AND $users[$uid]['username'] != '') {
+					$values = array(($comment['title']), ($comment['comment']), $MOD_NEWS['TEXT_ON'], $commented_date, $MOD_NEWS['TEXT_AT'], $commented_time, $MOD_NEWS['TEXT_BY'], $uid, ($users[$uid]['username']), ($users[$uid]['display_name']), ($users[$uid]['email']));
+				} else {
+					$values = array(($comment['title']), ($comment['comment']), $MOD_NEWS['TEXT_ON'], $commented_date, $MOD_NEWS['TEXT_AT'], $commented_time, $MOD_NEWS['TEXT_BY'], '0', strtolower($TEXT['UNKNOWN']), $TEXT['UNKNOWN'], '');
+				}
+				echo str_replace($vars, $values, $setting_comments_loop);
+			}
+		} else {
+			// Say no comments found
+			$content = '';
+			if(isset($TEXT['NONE_FOUND'])) {
+				$content .= '<tr><td>'.$TEXT['NONE_FOUND'].'<br /></td></tr>';
+			} else {
+				$content .= '<tr><td>None Found<br /></td></tr>';
+			}
+			echo $content;
+		}
+		
+		// Print comments footer
+		$vars = array('[ADD_COMMENT_URL]','[TEXT_ADD_COMMENT]');
+		$values = array(WB_URL.'/modules/news/comment.php?id='.POST_ID.'&amp;sid='.$section_id, $MOD_NEWS['TEXT_ADD_COMMENT']);
+		echo str_replace($vars, $values, $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.8.0/trunk/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.8.0/trunk/wb/modules/news/modify_post.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/modify_post.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/modify_post.php	(revision 1130)
@@ -0,0 +1,257 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.'" rows="10" cols="1" 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>
+<div class="jsadmin jcalendar hide"></div> 
+<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="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="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 H:i')))); else print date($jscal_format, $fetch_content['published_when']);?>" style="width: 120px;" />
+	<img src="<?php echo THEME_URL ?>/images/clock_16.png" id="publishdate_trigger" style="cursor: pointer;" title="<?php echo $TEXT['CALENDAR']; ?>" alt="<?php echo $TEXT['CALENDAR']; ?>" onmouseover="this.style.background='lightgrey';" onmouseout="this.style.background=''" />
+	<img src="<?php echo THEME_URL ?>/images/clock_del_16.png" style="cursor: pointer;" title="<?php echo $TEXT['DELETE_DATE']; ?>" alt="<?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 THEME_URL ?>/images/clock_16.png" id="enddate_trigger" style="cursor: pointer;" title="<?php echo $TEXT['CALENDAR']; ?>" alt="<?php echo $TEXT['CALENDAR']; ?>" onmouseover="this.style.background='lightgrey';" onmouseout="this.style.background=''" />
+	<img src="<?php echo THEME_URL ?>/images/clock_del_16.png" style="cursor: pointer;" title="<?php echo $TEXT['DELETE_DATE']; ?>" alt="<?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;" />
+	</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>
+
+<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; ?>" >
+			<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 THEME_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 THEME_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.8.0/trunk/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.8.0/trunk/wb/modules/news/comment_page.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/comment_page.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/comment_page.php	(revision 1130)
@@ -0,0 +1,128 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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);
+}
+
+//overwrite php.ini on Apache servers for valid SESSION ID Separator
+if(function_exists('ini_set')) {
+	ini_set('arg_separator.output', '&amp;');
+}
+
+// check if frontend.css file needs to be included into the <body></body> of page
+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 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');
+}
+
+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
+	$vars = array('[POST_TITLE]','[TEXT_COMMENT]');
+	$values = array(POST_TITLE, $MOD_NEWS['TEXT_COMMENT']);
+	echo str_replace($vars, $values, ($settings['comments_page']));
+	?>
+	<form name="comment" action="<?php echo WB_URL.'/modules/news/submit_comment.php?page_id='.PAGE_ID.'&amp;section_id='.SECTION_ID.'&amp;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'); ?>" rows="10" cols="1" 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" rows="10" cols="1" 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 $MOD_NEWS['TEXT_ADD_COMMENT']; ?>" />
+	</form>	
+	<?php
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/news/modify_settings.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/modify_settings.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/modify_settings.php	(revision 1130)
@@ -0,0 +1,208 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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"><?php echo $TEXT['HEADER']; ?>:</td>
+			<td class="setting_value">
+				<textarea name="header" rows="10" cols="1" 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_value">
+				<textarea name="post_loop" rows="10" cols="1" 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_value">
+				<textarea name="footer" rows="10" cols="1" 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_value">
+				<textarea name="post_header" rows="10" cols="1" 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_value">
+				<textarea name="post_footer" rows="10" cols="1" 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_value">
+				<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 class="setting_name"><?php echo $TEXT['COMMENTING']; ?>:</td>
+			<td class="setting_value">
+				<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="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="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 class="setting_name"><?php echo $TEXT['RESIZE_IMAGE_TO']; ?>:</td>
+			<td class="setting_value">
+				<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_value">
+				<textarea name="comments_header" rows="10" cols="1" 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_value">
+				<textarea name="comments_loop" rows="10" cols="1" 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_value">
+				<textarea name="comments_footer" rows="10" cols="1" 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_value">
+				<textarea name="comments_page" rows="10" cols="1" 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;" />
+			</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.8.0/trunk/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.8.0/trunk/wb/modules/news/modify_comment.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/modify_comment.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/modify_comment.php	(revision 1130)
@@ -0,0 +1,86 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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" rows="10" cols="1" 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.8.0/trunk/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.8.0/trunk/wb/modules/news/frontend.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/frontend.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/frontend.css	(revision 1130)
@@ -0,0 +1,87 @@
+.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;
+}
+
+.loop-header {
+	width: 100%;
+}
+
+.page-header {
+	width: 100%;	
+}
+.post-header {
+	width: 100%;	
+}
+
+.page-left {
+	text-align: left;	
+}
+.page-center {
+	text-align: center;
+}
+
+.page-right {
+	text-align: right;	
+}
+
+.comment-header {
+	width: 100%;
+}
+
+.public-info {
+	text-align: right;
+}
+
+.group-page {
+	text-align: center;
+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/news/add.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/add.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/add.php	(revision 1130)
@@ -0,0 +1,81 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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\" class=\"loop-header\">'."\n";
+$post_loop = '<tr class=\"post_top\">
+<td class=\"post_title\"><a href=\"[LINK]\">[TITLE]</a></td>
+<td class=\"post_date\">[PUBLISHED_TIME], [PUBLISHED_DATE]</td>
+</tr>
+<tr>
+<td class=\"post_short\" colspan=\"2\">
+[SHORT]
+<span style=\"visibility:[SHOW_READ_MORE];\"><a href=\"[LINK]\">[TEXT_READ_MORE]</a></span>
+</td>
+</tr>';
+$footer = '</table>
+<table cellpadding="0" cellspacing="0" class="page-header" style="display: [DISPLAY_PREVIOUS_NEXT_LINKS]">
+<tr>
+<td class="page-left">[PREVIOUS_PAGE_LINK]</td>
+<td class="page-center">[OF]</td>
+<td class="page-right">[NEXT_PAGE_LINK]</td>
+</tr>
+</table>';
+$post_header = addslashes('<table cellpadding="0" cellspacing="0" class="post-header">
+<tr>
+<td><h1>[TITLE]</h1></td>
+<td rowspan="3" style="display: [DISPLAY_IMAGE]">[GROUP_IMAGE]</td>
+</tr>
+<tr>
+<td class="public-info"><b>[TEXT_POSTED_BY] [DISPLAY_NAME] ([USERNAME]) [TEXT_ON] [PUBLISHED_DATE]</b></td>
+</tr>
+<tr style="display: [DISPLAY_GROUP]">
+<td class="group-page"><a href="[BACK]">[PAGE_TITLE]</a> &gt;&gt; <a href="[BACK]?g=[GROUP_ID]">[GROUP_TITLE]</a></td>
+</tr>
+</table>');
+$post_footer = '<p>[TEXT_LAST_CHANGED]: [MODI_DATE] [TEXT_AT] [MODI_TIME]</p>
+<a href=\"[BACK]\">[TEXT_BACK]</a>';
+$comments_header = addslashes('<br /><br />
+<h2>[TEXT_COMMENTS]</h2>
+<table cellpadding="2" cellspacing="0" class="comment-header">');
+$comments_loop = addslashes('<tr>
+<td class="comment_title">[TITLE]</td>
+<td class="comment_info">[TEXT_BY] [DISPLAY_NAME] [TEXT_ON] [DATE] [TEXT_AT] [TIME]</td>
+</tr>
+<tr>
+<td colspan="2" class="comment_text">[COMMENT]</td>
+</tr>');
+$comments_footer = '</table>
+<br /><a href=\"[ADD_COMMENT_URL]\">[TEXT_ADD_COMMENT]</a>';
+$comments_page = '<h1>[TEXT_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.8.0/trunk/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.8.0/trunk/wb/modules/news/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/languages/DA.php	(revision 1130)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 side er beregnet til at lave en nyhedsside.';
+
+//Variables for the backend
+$MOD_NEWS['SETTINGS'] = 'Nyhedsindstillinger';
+
+//Variables for the frontend
+$MOD_NEWS['TEXT_READ_MORE'] = 'L&aelig;s mere';
+$MOD_NEWS['TEXT_POSTED_BY'] = 'Indsendt af';
+$MOD_NEWS['TEXT_ON'] = 'den';
+$MOD_NEWS['TEXT_LAST_CHANGED'] = 'Sidst &aelig;ndret';
+$MOD_NEWS['TEXT_AT'] = 'kl.';
+$MOD_NEWS['TEXT_BACK'] = 'Tilbage';
+$MOD_NEWS['TEXT_COMMENTS'] = 'Kommentarer';
+$MOD_NEWS['TEXT_COMMENT'] = 'Kommentar';
+$MOD_NEWS['TEXT_ADD_COMMENT'] = 'Tilf&oslash;j kommentar';
+$MOD_NEWS['TEXT_BY'] = 'Af';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/news/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.8.0/trunk/wb/modules/news/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/languages/NL.php	(revision 1130)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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';
+
+//Variables for the frontend
+$MOD_NEWS['TEXT_READ_MORE'] = 'Lees verder';
+$MOD_NEWS['TEXT_POSTED_BY'] = 'Geplaatst door';
+$MOD_NEWS['TEXT_ON'] = 'op';
+$MOD_NEWS['TEXT_LAST_CHANGED'] = 'Laatst vernieuwd';
+$MOD_NEWS['TEXT_AT'] = 'om';
+$MOD_NEWS['TEXT_BACK'] = 'Terug';
+$MOD_NEWS['TEXT_COMMENTS'] = 'Commentaren';
+$MOD_NEWS['TEXT_COMMENT'] = 'Commentaar';
+$MOD_NEWS['TEXT_ADD_COMMENT'] = 'Toevoegen commentaar';
+$MOD_NEWS['TEXT_BY'] = 'door';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/news/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/languages/NO.php	(revision 1130)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 Nyhets sider.';
+  
+//Variables for the backend
+$MOD_NEWS['SETTINGS'] = 'Innstillinger for Nyheter';
+
+//Variables for the frontend
+$MOD_NEWS['TEXT_READ_MORE'] = 'Les Mer';
+$MOD_NEWS['TEXT_POSTED_BY'] = 'Skervet Av';
+$MOD_NEWS['TEXT_ON'] = 'P&aring;';
+$MOD_NEWS['TEXT_LAST_CHANGED'] = 'Sist Endret';
+$MOD_NEWS['TEXT_AT'] = 'p&aring;';
+$MOD_NEWS['TEXT_BACK'] = 'Tilbake';
+$MOD_NEWS['TEXT_COMMENTS'] = 'Kommentarer';
+$MOD_NEWS['TEXT_COMMENT'] = 'Kommentar';
+$MOD_NEWS['TEXT_ADD_COMMENT'] = 'Legg Til Kommentar';
+$MOD_NEWS['TEXT_BY'] = 'Av';
+  
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/news/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/languages/FR.php	(revision 1130)
@@ -0,0 +1,47 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE ADDON: NEWS
+ -----------------------------------------------------------------------------------------
+*/
+//Module Description
+$module_description = 'This page type is designed for making a news page.';
+
+//Variables for the  backend
+$MOD_NEWS['SETTINGS'] = 'Configurations Nouvelles';
+
+//Variables for the frontend
+$MOD_NEWS['TEXT_READ_MORE'] = 'En savoir plus';
+$MOD_NEWS['TEXT_POSTED_BY'] = 'Post&eacute; par';
+$MOD_NEWS['TEXT_ON'] = '&agrave;';
+$MOD_NEWS['TEXT_LAST_CHANGED'] = 'Derni&egrave;re modification';
+$MOD_NEWS['TEXT_AT'] = '&agrave;';
+$MOD_NEWS['TEXT_BACK'] = 'Retour';
+$MOD_NEWS['TEXT_COMMENTS'] = 'Commentaires';
+$MOD_NEWS['TEXT_COMMENT'] = 'Commentaire';
+$MOD_NEWS['TEXT_ADD_COMMENT'] = 'Ajouter un commentaire';
+$MOD_NEWS['TEXT_BY'] = 'Par';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/news/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.8.0/trunk/wb/modules/news/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/languages/EN.php	(revision 1130)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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';
+
+//Variables for the frontend
+$MOD_NEWS['TEXT_READ_MORE'] = 'Read More';
+$MOD_NEWS['TEXT_POSTED_BY'] = 'Posted by';
+$MOD_NEWS['TEXT_ON'] = 'on';
+$MOD_NEWS['TEXT_LAST_CHANGED'] = 'Last changed';
+$MOD_NEWS['TEXT_AT'] = 'at';
+$MOD_NEWS['TEXT_BACK'] = 'Back';
+$MOD_NEWS['TEXT_COMMENTS'] = 'Comments';
+$MOD_NEWS['TEXT_COMMENT'] = 'Comment';
+$MOD_NEWS['TEXT_ADD_COMMENT'] = 'Add Comment';
+$MOD_NEWS['TEXT_BY'] = 'By';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/news/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/languages/RU.php	(revision 1130)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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;';
+
+//Variables for the frontend
+$MOD_NEWS['TEXT_READ_MORE'] = '&#1063;&#1080;&#1090;&#1072;&#1090;&#1100; &#1076;&#1072;&#1083;&#1100;&#1096;&#1077;';
+$MOD_NEWS['TEXT_POSTED_BY'] = 'Posted by';
+$MOD_NEWS['TEXT_ON'] = 'on';
+$MOD_NEWS['TEXT_LAST_CHANGED'] = '&#1055;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1077;&#1077; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077;';
+$MOD_NEWS['TEXT_AT'] = 'at';
+$MOD_NEWS['TEXT_BACK'] = '&#1053;&#1072;&#1079;&#1072;&#1076;';
+$MOD_NEWS['TEXT_COMMENTS'] = '&#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1080;';
+$MOD_NEWS['TEXT_COMMENT'] = '&#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100;';
+$MOD_NEWS['TEXT_ADD_COMMENT'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100;';
+$MOD_NEWS['TEXT_BY'] = 'By';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/news/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/languages/DE.php	(revision 1130)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 = 'Mit diesem Modul k&ouml;nnen sie eine News Seite ihrer Seite hinzuf&uuml;gen.';
+
+//Variables for the backend
+$MOD_NEWS['SETTINGS'] = 'News Einstellungen';
+
+//Variables for the frontend
+$MOD_NEWS['TEXT_READ_MORE'] = 'Weiterlesen';
+$MOD_NEWS['TEXT_POSTED_BY'] = 'Ver&ouml;ffentlicht von';
+$MOD_NEWS['TEXT_ON'] = 'am';
+$MOD_NEWS['TEXT_LAST_CHANGED'] = 'Zuletzt ge&auml;ndert am';
+$MOD_NEWS['TEXT_AT'] = 'um';
+$MOD_NEWS['TEXT_BACK'] = 'Zur&uuml;ck';
+$MOD_NEWS['TEXT_COMMENTS'] = 'Kommentare';
+$MOD_NEWS['TEXT_COMMENT'] = 'Kommentar';
+$MOD_NEWS['TEXT_ADD_COMMENT'] = 'Kommentar hinzuf&uuml;gen';
+$MOD_NEWS['TEXT_BY'] = 'von';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/news/rss.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/rss.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/rss.php	(revision 1130)
@@ -0,0 +1,102 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 strtolower(DEFAULT_LANGUAGE); ?></language>
+<copyright><?php $thedate = date('Y'); $websitetitle = WEBSITE_TITLE; echo "Copyright {$thedate}, {$websitetitle}"; ?></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
+$t = TIME();
+$time_check_str= "(published_when = '0' OR published_when <= ".$t.") AND (published_until = 0 OR published_until >= ".$t.")";
+//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 AND ".$time_check_str." ORDER BY posted_when DESC";
+} else {
+	$query = "SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE page_id=".$page_id." AND active=1 AND ".$time_check_str." 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.8.0/trunk/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.8.0/trunk/wb/modules/news/modify.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/modify.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/modify.php	(revision 1130)
@@ -0,0 +1,216 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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=''"); 
+
+//overwrite php.ini on Apache servers for valid SESSION ID Separator
+if(function_exists('ini_set')) {
+	ini_set('arg_separator.output', '&amp;');
+}
+
+?>
+<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; ?>&amp;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; ?>&amp;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; ?>&amp;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; ?>">
+			<td width="20" style="padding-left: 5px;">
+				<a href="<?php echo WB_URL; ?>/modules/news/modify_post.php?page_id=<?php echo $page_id; ?>&amp;section_id=<?php echo $section_id; ?>&amp;post_id=<?php echo $post['post_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>">
+					<img src="<?php echo THEME_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; ?>&amp;section_id=<?php echo $section_id; ?>&amp;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=THEME_URL.'/images/noclock_16.png';
+			elseif(($start<=$t || $start==0) && $end>=$t)
+				$icon=THEME_URL.'/images/clock_16.png';
+			else
+				$icon=THEME_URL.'/images/clock_red_16.png';
+			?>
+			<a href="<?php echo WB_URL; ?>/modules/news/modify_post.php?page_id=<?php echo $page_id; ?>&amp;section_id=<?php echo $section_id; ?>&amp;post_id=<?php echo $post['post_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>">
+				<img src="<?php echo $icon; ?>" border="0" alt="" />
+			</a>
+			</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; ?>&amp;section_id=<?php echo $section_id; ?>&amp;post_id=<?php echo $post['post_id']; ?>" title="<?php echo $TEXT['MOVE_UP']; ?>">
+					<img src="<?php echo THEME_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; ?>&amp;section_id=<?php echo $section_id; ?>&amp;post_id=<?php echo $post['post_id']; ?>" title="<?php echo $TEXT['MOVE_DOWN']; ?>">
+					<img src="<?php echo THEME_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; ?>&amp;section_id=<?php echo $section_id; ?>&amp;post_id=<?php echo $post['post_id']; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
+					<img src="<?php echo THEME_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; ?>">
+			<td width="20" style="padding-left: 5px;">
+				<a href="<?php echo WB_URL; ?>/modules/news/modify_group.php?page_id=<?php echo $page_id; ?>&amp;section_id=<?php echo $section_id; ?>&amp;group_id=<?php echo $group['group_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>">
+					<img src="<?php echo THEME_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; ?>&amp;section_id=<?php echo $section_id; ?>&amp;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; ?>&amp;section_id=<?php echo $section_id; ?>&amp;group_id=<?php echo $group['group_id']; ?>" title="<?php echo $TEXT['MOVE_UP']; ?>">
+					<img src="<?php echo THEME_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; ?>&amp;section_id=<?php echo $section_id; ?>&amp;group_id=<?php echo $group['group_id']; ?>" title="<?php echo $TEXT['MOVE_DOWN']; ?>">
+					<img src="<?php echo THEME_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; ?>&amp;group_id=<?php echo $group['group_id']; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
+					<img src="<?php echo THEME_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.8.0/trunk/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.8.0/trunk/wb/modules/news/save_post.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/save_post.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/save_post.php	(revision 1130)
@@ -0,0 +1,126 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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).PAGE_SPACER.$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 = '".time()."', 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.8.0/trunk/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.8.0/trunk/wb/modules/news/submit_comment.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/submit_comment.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/submit_comment.php	(revision 1130)
@@ -0,0 +1,118 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+
+//overwrite php.ini on Apache servers for valid SESSION ID Separator
+if(function_exists('ini_set')) {
+	ini_set('arg_separator.output', '&amp;');
+}
+
+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&amp;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&amp;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 = time();
+	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']}&amp;sid={$_GET['section_id']}");
+	else
+		exit(header("Location: ".WB_URL.PAGES_DIRECTORY.""));
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/news/modify_group.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/modify_group.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/modify_group.php	(revision 1130)
@@ -0,0 +1,108 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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="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="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;" />
+	</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.8.0/trunk/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.8.0/trunk/wb/modules/news/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/uninstall.php	(revision 1130)
@@ -0,0 +1,40 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+rm_full_dir(WB_PATH.MEDIA_DIRECTORY.'/.news');
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/news/backend.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/backend.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/backend.css	(revision 1130)
@@ -0,0 +1,24 @@
+.setting_name {
+	vertical-align: top;
+	width: 20%;
+}
+.setting_value {
+	vertical-align: top;
+	width: 80%;
+}
+
+/* 
+  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.8.0/trunk/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.8.0/trunk/wb/modules/news/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/info.php	(revision 1130)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8';
+$module_platform = '2.8';
+$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.8.0/trunk/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.8.0/trunk/wb/modules/news/move_down.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/move_down.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/move_down.php	(revision 1130)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/add_post.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/add_post.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/add_post.php	(revision 1130)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/comment.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/comment.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/comment.php	(revision 1130)
@@ -0,0 +1,87 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/delete.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/delete.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/delete.php	(revision 1130)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/add_group.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/add_group.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/add_group.php	(revision 1130)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/search.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/search.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/search.php	(revision 1130)
@@ -0,0 +1,111 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/install.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/install.php	(revision 1130)
@@ -0,0 +1,171 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/delete_post.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/delete_post.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/delete_post.php	(revision 1130)
@@ -0,0 +1,72 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/index.php	(revision 1130)
@@ -0,0 +1,27 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/move_up.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/move_up.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/move_up.php	(revision 1130)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/save_group.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/save_group.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/save_group.php	(revision 1130)
@@ -0,0 +1,105 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/delete_group.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/delete_group.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/delete_group.php	(revision 1130)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/save_settings.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/save_settings.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/save_settings.php	(revision 1130)
@@ -0,0 +1,66 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/save_comment.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/save_comment.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/save_comment.php	(revision 1130)
@@ -0,0 +1,62 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/news/delete_comment.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/news/delete_comment.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/news/delete_comment.php	(revision 1130)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/include.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/include.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/include.php	(revision 1130)
@@ -0,0 +1,119 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+
+	// Loading config.php is not needed here, it is loaded before. It breaks the module when the editor is called form another dir as WB_PATH/modules/mymodule
+	// 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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/languages/DA.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DANISH LANGUAGE FILE FOR THE MODULE: FCKEDITOR
+ -----------------------------------------------------------------------------------------
+*/
+
+// Dansk modulbeskrivelse
+$module_description 	= 'Dette modul muligg&oslash;r redigering af sideindhold ved hj&aelig;lp af  <a href="http://www.fckeditor.net/" target="_blank">FCKeditor v2.6.4</a>.';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/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.8.0/trunk/wb/modules/fckeditor/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/languages/NL.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 FCKEDITOR MODULE
+ -----------------------------------------------------------------------------------------
+*/
+
+// Nederlandstalige beschrijving van de module
+$module_description 	= 'Met deze <a href="http://www.fckeditor.net/" target="_blank">FCKeditor v2.6.4</a> module kunt u de inhoud van een pagina wijzigen.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/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.8.0/trunk/wb/modules/fckeditor/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/languages/NO.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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:: FCKEDITOR
+ -----------------------------------------------------------------------------------------
+*/
+
+//Module Description
+$module_description 	= 'Med denne modulen kan du redigere innholdet p&aring; sidene dine ved &aring; benytte redigeringsverkt&oslash;yet <a href="http://www.fckeditor.net/" target="_blank">FCKeditor v2.6.4</a>.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/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.8.0/trunk/wb/modules/fckeditor/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/languages/FR.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ 
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE ADDON: FCKEDITOR
+ -----------------------------------------------------------------------------------------
+*/
+//Module Description
+$module_description = 'Ce module permet de modifier le contenu de la page avec <a href="http://www.fckeditor.net/" target="_blank">FCKeditor v2.6.4</a>.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/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.8.0/trunk/wb/modules/fckeditor/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/languages/DE.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.4</a>.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/wbmodules.htt
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/wbmodules.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/wbmodules.htt	(revision 1130)
@@ -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

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/wbmodules.htt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.js	(revision 1130)
@@ -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

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/ru.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/ru.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/ru.js	(revision 1130)
@@ -0,0 +1,7 @@
+FCKLang.WBModulesBtn			= 'ะััะฐะฒะธัั/ะ ะตะดะฐะบัะธัะพะฒะฐัั ะฒะฝัััะตะฝะฝัั ัััะปะบั' ;
+FCKLang.WBModulesDlgTitle		= ' ะััะฐะฒะธัั ะฒะฝัััะตะฝะฝัั ัััะปะบั' ;
+FCKLang.WBModulesDlgName		= 'ะััะฐะฒะบะฐ ะฒะฝัััะตะฝะฝะตะน ัััะปะบะธ' ;
+FCKLang.WBModulesErrSelection		= 'ะะพะถะฐะปัะนััะฐ ะฒัะดะตะปะธัะต ัััะปะฐััะธะนัั ัะตะบัั' ;
+FCKLang.WBModulesErrPageSelect		= 'ะัะฑะตัะธัะต ัััะฐะฝะธัั ััะพะฑั ัะดะตะปะฐัั ัััะปะบั' ;
+FCKLang.WBModuleslblPageSelection	= 'ะัะฑะตัะธัะต ัััะฐะฝะธัั ะดะปั ัััะปะบะธ:';
+FCKLang.WBModuleslblTitle		= 'ะะฐะณะพะปะพะฒะพะบ';
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/ru.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/de.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/de.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/de.js	(revision 1130)
@@ -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

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/de.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/nl.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/nl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/nl.js	(revision 1130)
@@ -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';
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/nl.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/en.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/en.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/en.js	(revision 1130)
@@ -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';
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/en.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/index.php	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fck_wbmodules.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fck_wbmodules.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fck_wbmodules.php	(revision 1130)
@@ -0,0 +1,96 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.htt');
+$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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.css	(revision 1130)
@@ -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);
+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckplugin.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckplugin.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckplugin.js	(revision 1130)
@@ -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 );

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckplugin.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/wbdroplets.htt
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/wbdroplets.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/wbdroplets.htt	(revision 1130)
@@ -0,0 +1,101 @@
+<!-- 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 Droplet</title>
+		<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />
+		<meta name="robots" content="noindex, nofollow" />
+		<script type="text/javascript" src="fckwbdroplets.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);
+				
+				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;
+				}
+			}
+
+			//Code that runs after the OK button is clicked 
+			function Ok() {
+				//Validate is option is selected
+				var oDropletList = document.getElementById( 'cmbDroplets' ) ;
+				if(oDropletList.selectedIndex == -1) {
+					alert( FCKLang.WBDropletsErrPageSelect );
+					return false;
+				}
+				
+				var oTagLink = document.getElementById( 'chkTaglink' );
+				
+				var sDropletStr = oDropletList[oDropletList.selectedIndex].value;
+				FCK.InsertHtml("[[" + sDropletStr + "]]");
+				// 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;
+
+			}
+			
+			var oldid = 'LoginBox';
+			
+			function showdetail(obj) {
+				var olditem = document.getElementById(oldid);
+				var newitem = document.getElementById(obj.value);
+				olditem.className='hidden';
+				newitem.className='unhidden';
+				oldid = obj.value;
+			}
+		//-->
+		</script>
+		<style>
+			.hidden { display: none; }
+			.unhidden { display: block; }
+		</style>
+	</head>
+	<body scroll="yes" >
+		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0"> 
+			<tr> 
+				<td>
+					<table width="100%">
+						<tr> 
+							<td colspan="2"><span fckLang="WBDropletslblPageSelection">Select a Droplet to insert on page:</span>&nbsp;</td>
+						</tr>
+						<tr>
+							<td colspan="2">
+								<select id="cmbDroplets" style="WIDTH: 100%" size="10" name="cmbDroplets"  onchange="javascript:showdetail(this);" >
+									<!-- BEGIN droplets_list_block -->
+									<option value="{TITLE}"{SELECTED}>{TITLE}</option>
+									<!-- END droplets_list_block -->
+								</select>
+							</td>
+						</tr>
+					</table>
+					{LIST}
+				</td>
+			</tr>
+		</table>		
+	</body>
+</html> 
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/wbdroplets.htt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fck_wbdroplets.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fck_wbdroplets.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fck_wbdroplets.php	(revision 1130)
@@ -0,0 +1,66 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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/WBDroplets');
+$template->set_file('page', 'wbdroplets.htt');
+$template->set_block('page', 'main_block', 'main');
+
+// Get pages and put them into the pages list
+$template->set_block('main_block', 'droplets_list_block', 'page_list');
+$database = new database();
+$get_droplet = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_droplets where active=1 ORDER BY name");
+if($get_droplet->numRows() > 0) {
+	// Loop through pages
+	$list = "";
+	while($droplet = $get_droplet->fetchRow()) {
+		// method page_is_visible was introduced with WB 2.7
+		$title = stripslashes($droplet['name']);
+		$desc = stripslashes($droplet['description']);
+		$comm = stripslashes($droplet['comments']);
+		$template->set_var('TITLE', $title);
+		$template->set_var('DESC', $desc);
+		$list .= "<div id='".$title."' class='hidden'><b>".$title.": </b> ".$desc."<br>".$comm."</div>";
+		$template->parse('page_list', 'droplets_list_block', true);
+	}
+} else {
+	$template->set_var('TITLE', 'None found');
+	$template->parse('page_list', 'droplets_list_block', false);
+}
+$template->set_var('LIST', $list);
+$template->set_var("CHARSET", defined('DEFAULT_CHARSET') ? DEFAULT_CHARSET : 'utf-8' );
+
+// 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fck_wbdroplets.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/wbdroplets.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/wbdroplets.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckwbdroplets.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckwbdroplets.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckwbdroplets.css	(revision 1130)
@@ -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);
+}
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckwbdroplets.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/de.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/de.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/de.js	(revision 1130)
@@ -0,0 +1,6 @@
+FCKLang.WBDropletsBtn			= 'WB Droplets einf\u00fcgen' ;
+FCKLang.WBDropletsDlgTitle		= 'WB Droplets' ;
+FCKLang.WBDropletsDlgName		= 'Website Baker Droplet einf\u00fcgen' ;
+FCKLang.WBDropletsErrPageSelect		= 'Bitte eine Droplet markieren, das eingef\u00fcgt werden soll!' ;
+FCKLang.WBDropletslblPageSelection	= 'Auswahlfenster der m\u00f6glichen Droplets:';
+FCKLang.WBDropletslblTitle		= 'Titel:';
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/de.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/nl.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/nl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/nl.js	(revision 1130)
@@ -0,0 +1,6 @@
+FCKLang.WBDropletsBtn			= 'WB droplets toevoegen' ;
+FCKLang.WBDropletsDlgTitle		= 'WB droplets' ;
+FCKLang.WBDropletsDlgName		= 'Website Baker droplet toevoegen' ;
+FCKLang.WBDropletsErrPageSelect		= 'Eerst een droplet selecteren' ;
+FCKLang.WBDropletslblPageSelection	= 'Selecteer een droplet:';
+FCKLang.WBDropletslblTitle		= 'Titel';
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/nl.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/en.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/en.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/en.js	(revision 1130)
@@ -0,0 +1,6 @@
+FCKLang.WBDropletsBtn			= 'Insert WB Droplets into page' ;
+FCKLang.WBDropletsDlgTitle		= 'WB Droplets' ;
+FCKLang.WBDropletsDlgName		= 'Website Baker droplet insert' ;
+FCKLang.WBDropletsErrPageSelect		= 'Please select a Droplet to insert on page' ;
+FCKLang.WBDropletslblPageSelection	= 'Select a Droplet to insert on page:';
+FCKLang.WBDropletslblTitle		= 'Title';
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/en.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/lang/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckwbdroplets.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckwbdroplets.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckwbdroplets.js	(revision 1130)
@@ -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

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckwbdroplets.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckplugin.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckplugin.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckplugin.js	(revision 1130)
@@ -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(
+	'WBDroplets',
+	new FCKDialogCommand(
+		'WBDroplets',
+		FCKLang["WBDropletsDlgTitle"],
+		FCKPlugins.Items['WBDroplets'].Path + 'fck_wbdroplets.php',
+		370,
+		370
+	)
+);
+ 
+// Create the "WBModules" toolbar button.
+// FCKToolbarButton( commandName, label, tooltip, style, sourceView, contextSensitive )
+var oWBModulesItem = new FCKToolbarButton( 'WBDroplets', FCKLang["WBDropletsBtn"], null, null, false, true ); 
+oWBModulesItem.IconPath = FCKConfig.PluginsPath + 'WBDroplets/wbdroplets.gif'; 
+
+// 'CMSContent' is the name that is used in the toolbar config.
+FCKToolbarItems.RegisterItem( 'WBDroplets', oWBModulesItem );
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/fckplugin.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/WBDroplets/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/es.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/es.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/es.js	(revision 1130)
@@ -0,0 +1,27 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/fr.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/fr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/fr.js	(revision 1130)
@@ -0,0 +1,27 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/de.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/de.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/de.js	(revision 1130)
@@ -0,0 +1,27 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/pl.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/pl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/pl.js	(revision 1130)
@@ -0,0 +1,27 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/it.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/it.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/it.js	(revision 1130)
@@ -0,0 +1,27 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/en.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/en.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/en.js	(revision 1130)
@@ -0,0 +1,27 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fck_placeholder.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fck_placeholder.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fck_placeholder.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fckplugin.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fckplugin.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fckplugin.js	(revision 1130)
@@ -0,0 +1,187 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/fckplugin.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/fckplugin.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/fckplugin.js	(revision 1130)
@@ -0,0 +1,111 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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_HEIGHT : window.frameElement.offsetHeight,
+
+	Check : function()
+	{
+		var delta = FCKAutoGrow.GetHeightDelta() ;
+		if ( delta != 0 )
+		{
+			var newHeight = window.frameElement.offsetHeight + delta ;
+
+			newHeight = FCKAutoGrow.GetEffectiveHeight( newHeight ) ;
+
+			if ( newHeight != window.frameElement.height )
+			{
+				window.frameElement.style.height = newHeight + "px" ;
+
+				// 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() ;
+				}
+			}
+		}
+	},
+
+	CheckEditorStatus : function( sender, status )
+	{
+		if ( status == FCK_STATUS_COMPLETE )
+			FCKAutoGrow.Check() ;
+	},
+
+	GetEffectiveHeight : function( height )
+	{
+		if ( height < FCKAutoGrow.MIN_HEIGHT )
+			height = FCKAutoGrow.MIN_HEIGHT;
+		else
+		{
+			var max = FCKConfig.AutoGrowMax;
+			if ( max && max > 0 && height > max )
+				height = max;
+		}
+
+		return height;
+	},
+
+	GetHeightDelta : function()
+	{
+		var oInnerDoc = FCK.EditorDocument ;
+
+		var iFrameHeight ;
+		var iInnerHeight ;
+
+		if ( FCKBrowserInfo.IsIE )
+		{
+			iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ;
+			iInnerHeight = oInnerDoc.body.scrollHeight ;
+		}
+		else
+		{
+			iFrameHeight = FCK.EditorWindow.innerHeight ;
+			iInnerHeight = oInnerDoc.body.offsetHeight +
+				( parseInt( FCKDomTools.GetCurrentElementStyle( oInnerDoc.body, 'margin-top' ), 10 ) || 0 ) +
+				( parseInt( FCKDomTools.GetCurrentElementStyle( oInnerDoc.body, 'margin-bottom' ), 10 ) || 0 ) ;
+		}
+
+		return iInnerHeight - iFrameHeight ;
+	},
+
+	SetListeners : function()
+	{
+		if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+			return ;
+
+		FCK.EditorWindow.attachEvent( 'onscroll', FCKAutoGrow.Check ) ;
+		FCK.EditorDocument.attachEvent( 'onkeyup', FCKAutoGrow.Check ) ;
+	}
+};
+
+FCK.AttachToOnSelectionChange( FCKAutoGrow.Check ) ;
+
+if ( FCKBrowserInfo.IsIE )
+	FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKAutoGrow.SetListeners ) ;
+
+FCK.Events.AttachEvent( 'OnStatusChange', FCKAutoGrow.CheckEditorStatus ) ;
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/fckplugin.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/fckplugin.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/fckplugin.js	(revision 1130)
@@ -0,0 +1,529 @@
+๏ปฟ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 ( 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 ;
+
+		if (evt.preventDefault)
+			evt.preventDefault();
+		else
+			evt.returnValue = false;
+	},
+	"_ResizeBarMouseUpListener" : function( evt )
+	{
+		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 ( 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.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'
+			} ) ;
+	},
+	"Reset" : function()
+	{
+		FCKDragTableHandler._LeftCell = FCKDragTableHandler._RightCell = FCKDragTableHandler._TableMap = null ;
+	}
+
+};
+
+FCK.Events.AttachEvent( "OnMouseMove", FCKDragTableHandler.MouseMoveListener ) ;
+FCK.Events.AttachEvent( "OnAfterSetHTML", FCKDragTableHandler.Reset ) ;
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/fckplugin.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/fckplugin.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/fckplugin.js	(revision 1130)
@@ -0,0 +1,33 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/fckplugin.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/fckplugin.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/fckplugin.js	(revision 1130)
@@ -0,0 +1,29 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/fckplugin.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/fckplugin.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/fckplugin.js	(revision 1130)
@@ -0,0 +1,123 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link.html	(revision 1130)
@@ -0,0 +1,307 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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" />
+				<script type="text/javascript">
+					document.write( '<iframe name="UploadWindow" style="display: none" src="' + FCKTools.GetVoidUrl() + '"><\/iframe>' ) ;
+				</script>
+			</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 nowrap="nowrap" >
+						<span fckLang="DlgGenStyle">Style</span><br />
+						<input id="txtAttStyle" style="width: 100%" type="text" />
+					</td>
+				</tr>
+				<tr>
+					<td nowrap="nowrap">
+						<span fckLang="DlgGenContRel">Advisory Relation</span><br />
+						<select id="cmbAttContentRel"  style="width: 40%">
+							<option value="" fckLang="DlgGenNotSet" selected>&lt;not set&gt;</option>
+							<option value="lightbox" fckLang="Lightbox">Lightbox</option>
+							<option value="thumbnail" fckLang="Thumbnail">Thumbnail</option>
+							<option value="stylesheet" fckLang="Stylesheet">Stylesheet</option>
+							<option value="alternate" fckLang="Alternate">Alternate</option>
+						</select>
+					</td>
+				</tr>
+			</table>
+		</div>
+	</body>
+</html>
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/fck_link_org.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/fck_link_org.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/fck_link_org.js	(revision 1130)
@@ -0,0 +1,893 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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() ;
+
+// This method simply returns the two inputs in numerical order. You can even
+// provide strings, as the method would parseInt() the values.
+oParser.SortNumerical = function(a, b)
+{
+	return parseInt( a, 10 ) - parseInt( b, 10 ) ;
+}
+
+oParser.ParseEMailParams = function(sParams)
+{
+	// Initialize the oEMailParams object.
+	var oEMailParams = new Object() ;
+	oEMailParams.Subject = '' ;
+	oEMailParams.Body = '' ;
+
+	var aMatch = sParams.match( /(^|^\?|&)subject=([^&]+)/i ) ;
+	if ( aMatch ) oEMailParams.Subject = decodeURIComponent( aMatch[2] ) ;
+
+	aMatch = sParams.match( /(^|^\?|&)body=([^&]+)/i ) ;
+	if ( aMatch ) oEMailParams.Body = decodeURIComponent( aMatch[2] ) ;
+
+	return oEMailParams ;
+}
+
+// This method returns either an object containing the email info, or FALSE
+// if the parameter is not an email link.
+oParser.ParseEMailUri = function( sUrl )
+{
+	// Initializes the EMailInfo object.
+	var oEMailInfo = new Object() ;
+	oEMailInfo.Address = '' ;
+	oEMailInfo.Subject = '' ;
+	oEMailInfo.Body = '' ;
+
+	var aLinkInfo = sUrl.match( /^(\w+):(.*)$/ ) ;
+	if ( aLinkInfo && aLinkInfo[1] == 'mailto' )
+	{
+		// This seems to be an unprotected email link.
+		var aParts = aLinkInfo[2].match( /^([^\?]+)\??(.+)?/ ) ;
+		if ( aParts )
+		{
+			// Set the e-mail address.
+			oEMailInfo.Address = aParts[1] ;
+
+			// Look for the optional e-mail parameters.
+			if ( aParts[2] )
+			{
+				var oEMailParams = oParser.ParseEMailParams( aParts[2] ) ;
+				oEMailInfo.Subject = oEMailParams.Subject ;
+				oEMailInfo.Body = oEMailParams.Body ;
+			}
+		}
+		return oEMailInfo ;
+	}
+	else if ( aLinkInfo && aLinkInfo[1] == 'javascript' )
+	{
+		// This may be a protected email.
+
+		// Try to match the url against the EMailProtectionFunction.
+		var func = FCKConfig.EMailProtectionFunction ;
+		if ( func != null )
+		{
+			try
+			{
+				// Escape special chars.
+				func = func.replace( /([\/^$*+.?()\[\]])/g, '\\$1' ) ;
+
+				// Define the possible keys.
+				var keys = new Array('NAME', 'DOMAIN', 'SUBJECT', 'BODY') ;
+
+				// Get the order of the keys (hold them in the array <pos>) and
+				// the function replaced by regular expression patterns.
+				var sFunc = func ;
+				var pos = new Array() ;
+				for ( var i = 0 ; i < keys.length ; i ++ )
+				{
+					var rexp = new RegExp( keys[i] ) ;
+					var p = func.search( rexp ) ;
+					if ( p >= 0 )
+					{
+						sFunc = sFunc.replace( rexp, '\'([^\']*)\'' ) ;
+						pos[pos.length] = p + ':' + keys[i] ;
+					}
+				}
+
+				// Sort the available keys.
+				pos.sort( oParser.SortNumerical ) ;
+
+				// Replace the excaped single quotes in the url, such they do
+				// not affect the regexp afterwards.
+				aLinkInfo[2] = aLinkInfo[2].replace( /\\'/g, '###SINGLE_QUOTE###' ) ;
+
+				// Create the regexp and execute it.
+				var rFunc = new RegExp( '^' + sFunc + '$' ) ;
+				var aMatch = rFunc.exec( aLinkInfo[2] ) ;
+				if ( aMatch )
+				{
+					var aInfo = new Array();
+					for ( var i = 1 ; i < aMatch.length ; i ++ )
+					{
+						var k = pos[i-1].match(/^\d+:(.+)$/) ;
+						aInfo[k[1]] = aMatch[i].replace(/###SINGLE_QUOTE###/g, '\'') ;
+					}
+
+					// Fill the EMailInfo object that will be returned
+					oEMailInfo.Address = aInfo['NAME'] + '@' + aInfo['DOMAIN'] ;
+					oEMailInfo.Subject = decodeURIComponent( aInfo['SUBJECT'] ) ;
+					oEMailInfo.Body = decodeURIComponent( aInfo['BODY'] ) ;
+
+					return oEMailInfo ;
+				}
+			}
+			catch (e)
+			{
+			}
+		}
+
+		// Try to match the email against the encode protection.
+		var aMatch = aLinkInfo[2].match( /^(?:void\()?location\.href='mailto:'\+(String\.fromCharCode\([\d,]+\))\+'(.*)'\)?$/ ) ;
+		if ( aMatch )
+		{
+			// The link is encoded
+			oEMailInfo.Address = eval( aMatch[1] ) ;
+			if ( aMatch[2] )
+			{
+				var oEMailParams = oParser.ParseEMailParams( aMatch[2] ) ;
+				oEMailInfo.Subject = oEMailParams.Subject ;
+				oEMailInfo.Body = oEMailParams.Body ;
+			}
+			return oEMailInfo ;
+		}
+	}
+	return false;
+}
+
+oParser.CreateEMailUri = function( address, subject, body )
+{
+	// Switch for the EMailProtection setting.
+	switch ( FCKConfig.EMailProtection )
+	{
+		case 'function' :
+			var func = FCKConfig.EMailProtectionFunction ;
+			if ( func == null )
+			{
+				if ( FCKConfig.Debug )
+				{
+					alert('EMailProtection alert!\nNo function defined. Please set "FCKConfig.EMailProtectionFunction"') ;
+				}
+				return '';
+			}
+
+			// Split the email address into name and domain parts.
+			var aAddressParts = address.split( '@', 2 ) ;
+			if ( aAddressParts[1] == undefined )
+			{
+				aAddressParts[1] = '' ;
+			}
+
+			// Replace the keys by their values (embedded in single quotes).
+			func = func.replace(/NAME/g, "'" + aAddressParts[0].replace(/'/g, '\\\'') + "'") ;
+			func = func.replace(/DOMAIN/g, "'" + aAddressParts[1].replace(/'/g, '\\\'') + "'") ;
+			func = func.replace(/SUBJECT/g, "'" + encodeURIComponent( subject ).replace(/'/g, '\\\'') + "'") ;
+			func = func.replace(/BODY/g, "'" + encodeURIComponent( body ).replace(/'/g, '\\\'') + "'") ;
+
+			return 'javascript:' + func ;
+
+		case 'encode' :
+			var aParams = [] ;
+			var aAddressCode = [] ;
+
+			if ( subject.length > 0 )
+				aParams.push( 'subject='+ encodeURIComponent( subject ) ) ;
+			if ( body.length > 0 )
+				aParams.push( 'body=' + encodeURIComponent( body ) ) ;
+			for ( var i = 0 ; i < address.length ; i++ )
+				aAddressCode.push( address.charCodeAt( i ) ) ;
+
+			return 'javascript:void(location.href=\'mailto:\'+String.fromCharCode(' + aAddressCode.join( ',' ) + ')+\'?' + aParams.join( '&' ) + '\')' ;
+	}
+
+	// EMailProtection 'none'
+
+	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 ) ;
+
+	// Search for a protected email link.
+	var oEMailInfo = oParser.ParseEMailUri( sHRef );
+
+	if ( oEMailInfo )
+	{
+		sType = 'email' ;
+
+		GetE('txtEMailAddress').value = oEMailInfo.Address ;
+		GetE('txtEMailSubject').value = oEMailInfo.Subject ;
+		GetE('txtEMailBody').value    = oEMailInfo.Body ;
+	}
+	else if ( sProtocol )
+	{
+		sProtocol = sProtocol[0].toLowerCase() ;
+		GetE('cmbLinkProtocol').value = sProtocol ;
+
+		// Remove the protocol and get the remaining URL.
+		var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ;
+		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 )
+{
+	GetE('txtUrl').value = url ;
+	OnUrlChange() ;
+	dialog.SetSelectedTab( 'Info' ) ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	// Remove animation
+	window.parent.Throbber.Hide() ;
+	GetE( 'divUpload' ).style.display  = '' ;
+
+	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 ;
+	}
+
+	// Show animation
+	window.parent.Throbber.Show( 100 ) ;
+	GetE( 'divUpload' ).style.display  = 'none' ;
+
+	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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/fck_link.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/fck_link.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/fck_link.js	(revision 1130)
@@ -0,0 +1,895 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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() ;
+
+// This method simply returns the two inputs in numerical order. You can even
+// provide strings, as the method would parseInt() the values.
+oParser.SortNumerical = function(a, b)
+{
+	return parseInt( a, 10 ) - parseInt( b, 10 ) ;
+}
+
+oParser.ParseEMailParams = function(sParams)
+{
+	// Initialize the oEMailParams object.
+	var oEMailParams = new Object() ;
+	oEMailParams.Subject = '' ;
+	oEMailParams.Body = '' ;
+
+	var aMatch = sParams.match( /(^|^\?|&)subject=([^&]+)/i ) ;
+	if ( aMatch ) oEMailParams.Subject = decodeURIComponent( aMatch[2] ) ;
+
+	aMatch = sParams.match( /(^|^\?|&)body=([^&]+)/i ) ;
+	if ( aMatch ) oEMailParams.Body = decodeURIComponent( aMatch[2] ) ;
+
+	return oEMailParams ;
+}
+
+// This method returns either an object containing the email info, or FALSE
+// if the parameter is not an email link.
+oParser.ParseEMailUri = function( sUrl )
+{
+	// Initializes the EMailInfo object.
+	var oEMailInfo = new Object() ;
+	oEMailInfo.Address = '' ;
+	oEMailInfo.Subject = '' ;
+	oEMailInfo.Body = '' ;
+
+	var aLinkInfo = sUrl.match( /^(\w+):(.*)$/ ) ;
+	if ( aLinkInfo && aLinkInfo[1] == 'mailto' )
+	{
+		// This seems to be an unprotected email link.
+		var aParts = aLinkInfo[2].match( /^([^\?]+)\??(.+)?/ ) ;
+		if ( aParts )
+		{
+			// Set the e-mail address.
+			oEMailInfo.Address = aParts[1] ;
+
+			// Look for the optional e-mail parameters.
+			if ( aParts[2] )
+			{
+				var oEMailParams = oParser.ParseEMailParams( aParts[2] ) ;
+				oEMailInfo.Subject = oEMailParams.Subject ;
+				oEMailInfo.Body = oEMailParams.Body ;
+			}
+		}
+		return oEMailInfo ;
+	}
+	else if ( aLinkInfo && aLinkInfo[1] == 'javascript' )
+	{
+		// This may be a protected email.
+
+		// Try to match the url against the EMailProtectionFunction.
+		var func = FCKConfig.EMailProtectionFunction ;
+		if ( func != null )
+		{
+			try
+			{
+				// Escape special chars.
+				func = func.replace( /([\/^$*+.?()\[\]])/g, '\\$1' ) ;
+
+				// Define the possible keys.
+				var keys = new Array('NAME', 'DOMAIN', 'SUBJECT', 'BODY') ;
+
+				// Get the order of the keys (hold them in the array <pos>) and
+				// the function replaced by regular expression patterns.
+				var sFunc = func ;
+				var pos = new Array() ;
+				for ( var i = 0 ; i < keys.length ; i ++ )
+				{
+					var rexp = new RegExp( keys[i] ) ;
+					var p = func.search( rexp ) ;
+					if ( p >= 0 )
+					{
+						sFunc = sFunc.replace( rexp, '\'([^\']*)\'' ) ;
+						pos[pos.length] = p + ':' + keys[i] ;
+					}
+				}
+
+				// Sort the available keys.
+				pos.sort( oParser.SortNumerical ) ;
+
+				// Replace the excaped single quotes in the url, such they do
+				// not affect the regexp afterwards.
+				aLinkInfo[2] = aLinkInfo[2].replace( /\\'/g, '###SINGLE_QUOTE###' ) ;
+
+				// Create the regexp and execute it.
+				var rFunc = new RegExp( '^' + sFunc + '$' ) ;
+				var aMatch = rFunc.exec( aLinkInfo[2] ) ;
+				if ( aMatch )
+				{
+					var aInfo = new Array();
+					for ( var i = 1 ; i < aMatch.length ; i ++ )
+					{
+						var k = pos[i-1].match(/^\d+:(.+)$/) ;
+						aInfo[k[1]] = aMatch[i].replace(/###SINGLE_QUOTE###/g, '\'') ;
+					}
+
+					// Fill the EMailInfo object that will be returned
+					oEMailInfo.Address = aInfo['NAME'] + '@' + aInfo['DOMAIN'] ;
+					oEMailInfo.Subject = decodeURIComponent( aInfo['SUBJECT'] ) ;
+					oEMailInfo.Body = decodeURIComponent( aInfo['BODY'] ) ;
+
+					return oEMailInfo ;
+				}
+			}
+			catch (e)
+			{
+			}
+		}
+
+		// Try to match the email against the encode protection.
+		var aMatch = aLinkInfo[2].match( /^(?:void\()?location\.href='mailto:'\+(String\.fromCharCode\([\d,]+\))\+'(.*)'\)?$/ ) ;
+		if ( aMatch )
+		{
+			// The link is encoded
+			oEMailInfo.Address = eval( aMatch[1] ) ;
+			if ( aMatch[2] )
+			{
+				var oEMailParams = oParser.ParseEMailParams( aMatch[2] ) ;
+				oEMailInfo.Subject = oEMailParams.Subject ;
+				oEMailInfo.Body = oEMailParams.Body ;
+			}
+			return oEMailInfo ;
+		}
+	}
+	return false;
+}
+
+oParser.CreateEMailUri = function( address, subject, body )
+{
+	// Switch for the EMailProtection setting.
+	switch ( FCKConfig.EMailProtection )
+	{
+		case 'function' :
+			var func = FCKConfig.EMailProtectionFunction ;
+			if ( func == null )
+			{
+				if ( FCKConfig.Debug )
+				{
+					alert('EMailProtection alert!\nNo function defined. Please set "FCKConfig.EMailProtectionFunction"') ;
+				}
+				return '';
+			}
+
+			// Split the email address into name and domain parts.
+			var aAddressParts = address.split( '@', 2 ) ;
+			if ( aAddressParts[1] == undefined )
+			{
+				aAddressParts[1] = '' ;
+			}
+
+			// Replace the keys by their values (embedded in single quotes).
+			func = func.replace(/NAME/g, "'" + aAddressParts[0].replace(/'/g, '\\\'') + "'") ;
+			func = func.replace(/DOMAIN/g, "'" + aAddressParts[1].replace(/'/g, '\\\'') + "'") ;
+			func = func.replace(/SUBJECT/g, "'" + encodeURIComponent( subject ).replace(/'/g, '\\\'') + "'") ;
+			func = func.replace(/BODY/g, "'" + encodeURIComponent( body ).replace(/'/g, '\\\'') + "'") ;
+
+			return 'javascript:' + func ;
+
+		case 'encode' :
+			var aParams = [] ;
+			var aAddressCode = [] ;
+
+			if ( subject.length > 0 )
+				aParams.push( 'subject='+ encodeURIComponent( subject ) ) ;
+			if ( body.length > 0 )
+				aParams.push( 'body=' + encodeURIComponent( body ) ) ;
+			for ( var i = 0 ; i < address.length ; i++ )
+				aAddressCode.push( address.charCodeAt( i ) ) ;
+
+			return 'javascript:void(location.href=\'mailto:\'+String.fromCharCode(' + aAddressCode.join( ',' ) + ')+\'?' + aParams.join( '&' ) + '\')' ;
+	}
+
+	// EMailProtection 'none'
+
+	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 ) ;
+
+	// Search for a protected email link.
+	var oEMailInfo = oParser.ParseEMailUri( sHRef );
+
+	if ( oEMailInfo )
+	{
+		sType = 'email' ;
+
+		GetE('txtEMailAddress').value = oEMailInfo.Address ;
+		GetE('txtEMailSubject').value = oEMailInfo.Subject ;
+		GetE('txtEMailBody').value    = oEMailInfo.Body ;
+	}
+	else if ( sProtocol )
+	{
+		sProtocol = sProtocol[0].toLowerCase() ;
+		GetE('cmbLinkProtocol').value = sProtocol ;
+
+		// Remove the protocol and get the remaining URL.
+		var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ;
+		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('cmbAttContentRel').value	= oLink.rel ;
+	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, 'rel'		, GetE('cmbAttContentRel').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 )
+{
+	GetE('txtUrl').value = url ;
+	OnUrlChange() ;
+	dialog.SetSelectedTab( 'Info' ) ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	// Remove animation
+	window.parent.Throbber.Hide() ;
+	GetE( 'divUpload' ).style.display  = '' ;
+
+	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 ;
+	}
+
+	// Show animation
+	window.parent.Throbber.Show( 100 ) ;
+	GetE( 'divUpload' ).style.display  = 'none' ;
+
+	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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link_org.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link_org.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link_org.html	(revision 1130)
@@ -0,0 +1,295 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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" />
+				<script type="text/javascript">
+					document.write( '<iframe name="UploadWindow" style="display: none" src="' + FCKTools.GetVoidUrl() + '"><\/iframe>' ) ;
+				</script>
+			</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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about.html	(revision 1130)
@@ -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-2009 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.4.1</b><br />
+								Build 23187</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-2009 <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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash.js	(revision 1130)
@@ -0,0 +1,300 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 )
+{
+	// Remove animation
+	window.parent.Throbber.Hide() ;
+	GetE( 'divUpload' ).style.display  = '' ;
+
+	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 ;
+	}
+
+	// Show animation
+	window.parent.Throbber.Show( 100 ) ;
+	GetE( 'divUpload' ).style.display  = 'none' ;
+
+	return true ;
+}
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/sponsors/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/sponsors/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/sponsors/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/sponsors/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image.js	(revision 1130)
@@ -0,0 +1,512 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 )
+{
+	// Remove animation
+	window.parent.Throbber.Hide() ;
+	GetE( 'divUpload' ).style.display  = '' ;
+
+	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 ;
+	}
+
+	// Show animation
+	window.parent.Throbber.Show( 100 ) ;
+	GetE( 'divUpload' ).style.display  = 'none' ;
+
+	return true ;
+}
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image_preview.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image_preview.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image_preview.html	(revision 1130)
@@ -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-2009 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 ;
+
+// Set the preview CSS
+document.write( FCKTools.GetStyleHtml( FCKConfig.EditorAreaCSS ) ) ;
+document.write( FCKTools.GetStyleHtml( FCKConfig.EditorAreaStyles ) ) ;
+
+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>
+	<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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.css	(revision 1130)
@@ -0,0 +1,85 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.js	(revision 1130)
@@ -0,0 +1,347 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 (see _dev/css_compression.txt).
+	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 ;
+
+	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:
+	if ( oSource.style.cssText !== '' )
+		oDest.style.cssText = oSource.style.cssText ;
+}
+
+/**
+* Replaces a tag with another one, keeping its contents:
+* for example TD --> TH, and TH --> TD.
+* input: the original node, and the new tag name
+* http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-renameNode
+*/
+function RenameNode( oNode , newTag )
+{
+	// TODO: if the browser natively supports document.renameNode call it.
+	// does any browser currently support it in order to test?
+
+	// Only rename element nodes.
+	if ( oNode.nodeType != 1 )
+		return null ;
+
+	// If it's already correct exit here.
+	if ( oNode.nodeName == newTag )
+		return oNode ;
+
+	var oDoc = oNode.ownerDocument ;
+	// Create the new node
+	var newNode = oDoc.createElement( newTag ) ;
+
+	// Copy all attributes
+	CopyAttributes( oNode, newNode, {} ) ;
+
+	// Move children to the new node
+	FCKDomTools.MoveChildren( oNode, newNode ) ;
+
+	// Finally replace the node and return the new one
+	oNode.parentNode.replaceChild( newNode, oNode ) ;
+
+	return newNode ;
+}
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/fck_select.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/fck_select.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/fck_select.js	(revision 1130)
@@ -0,0 +1,194 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html
===================================================================
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_form.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_form.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_form.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_anchor.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_anchor.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_anchor.html	(revision 1130)
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 )
+			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
+		if ( FCKBrowserInfo.IsIE )
+		{
+			// Setting anchor names directly in IE will trash the HTML code stored
+			// in FCKTempBin after undos. See #2263.
+			var replaceAnchor = oEditor.FCK.EditorDocument.createElement( '<a name="' +
+					FCKTools.HTMLEncode( sNewName ).replace( '"', '&quot;' ) + '">' ) ;
+			oEditor.FCKDomTools.MoveChildren( oAnchor, replaceAnchor ) ;
+			oAnchor.parentNode.replaceChild( replaceAnchor, oAnchor ) ;
+			oAnchor = replaceAnchor ;
+		}
+		else
+			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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_replace.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_replace.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_replace.html	(revision 1130)
@@ -0,0 +1,650 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 ;
+var FCKDomTools = oEditor.FCKDomTools ;
+var FCKDomRange = oEditor.FCKDomRange ;
+var FCKListsLib = oEditor.FCKListsLib ;
+var FCKTools = oEditor.FCKTools ;
+var EditorDocument = oEditor.FCK.EditorDocument ;
+var HighlightStyle = oEditor.FCKStyles.GetStyle( '_FCK_SelectionHighlight' )  ;
+
+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 ) ;
+}
+
+GetNextNonEmptyTextNode = function( node, stopNode )
+{
+	while ( ( node = FCKDomTools.GetNextSourceNode( node, false, 3, stopNode ) ) && node && node.length < 1 )
+		1 ;
+	return node ;
+}
+
+CharacterCursor = function( arg )
+{
+	if ( arg.nodeType && arg.nodeType == 9 )
+	{
+		this._textNode = GetNextNonEmptyTextNode( arg.body, arg.documentElement ) ;
+		this._offset = 0 ;
+		this._doc = arg ;
+	}
+	else
+	{
+		this._textNode = arguments[0] ;
+		this._offset = arguments[1] ;
+		this._doc = FCKTools.GetElementDocument( arguments[0] ) ;
+	}
+}
+CharacterCursor.prototype =
+{
+	GetCharacter : function()
+	{
+		return ( this._textNode && this._textNode.nodeValue.charAt( this._offset ) ) || null ;
+	},
+
+	// Non-normalized.
+	GetTextNode : function()
+	{
+		return this._textNode ;
+	},
+
+	// Non-normalized.
+	GetIndex : function()
+	{
+		return this._offset ;
+	},
+
+	// Return value means whehther we've crossed a line break or a paragraph boundary.
+	MoveNext : function()
+	{
+		if ( this._offset < this._textNode.length - 1 )
+		{
+			this._offset++ ;
+			return false ;
+		}
+
+		var crossed = false ;
+		var curNode = this._textNode ;
+		while ( ( curNode = FCKDomTools.GetNextSourceNode( curNode ) )
+				&& curNode && ( curNode.nodeType != 3 || curNode.length < 1 ) )
+		{
+			var tag = curNode.nodeName.toLowerCase() ;
+			if ( FCKListsLib.BlockElements[tag] || tag == 'br' )
+				crossed = true ;
+		}
+
+		this._textNode = curNode ;
+		this._offset = 0 ;
+		return crossed ;
+	},
+
+	// Return value means whehther we've crossed a line break or a paragraph boundary.
+	MoveBack : function()
+	{
+		if ( this._offset > 0 && this._textNode.length > 0 )
+		{
+			this._offset = Math.min( this._offset - 1, this._textNode.length - 1 ) ;
+			return false ;
+		}
+
+		var crossed = false ;
+		var curNode = this._textNode ;
+		while ( ( curNode = FCKDomTools.GetPreviousSourceNode( curNode ) )
+				&& curNode && ( curNode.nodeType != 3 || curNode.length < 1 ) )
+		{
+			var tag = curNode.nodeName.toLowerCase() ;
+			if ( FCKListsLib.BlockElements[tag] || tag == 'br' )
+				crossed = true ;
+		}
+
+		this._textNode = curNode ;
+		this._offset = curNode && curNode.length - 1 ;
+		return crossed ;
+	},
+
+	Clone : function()
+	{
+		return new CharacterCursor( this._textNode, this._offset ) ;
+	}
+} ;
+
+CharacterRange = function( initCursor, maxLength )
+{
+	this._cursors = initCursor.push ? initCursor : [initCursor] ;
+	this._maxLength = maxLength ;
+	this._highlightRange = null ;
+}
+CharacterRange.prototype =
+{
+	ToDomRange : function()
+	{
+		var firstCursor = this._cursors[0] ;
+		var lastCursor = this._cursors[ this._cursors.length - 1 ] ;
+		var domRange = new FCKDomRange( FCKTools.GetElementWindow( firstCursor.GetTextNode() ) ) ;
+		var w3cRange = domRange._Range = domRange.CreateRange() ;
+		w3cRange.setStart( firstCursor.GetTextNode(), firstCursor.GetIndex() ) ;
+		w3cRange.setEnd( lastCursor.GetTextNode(), lastCursor.GetIndex() + 1 ) ;
+		domRange._UpdateElementInfo() ;
+		return domRange ;
+	},
+
+	Highlight : function()
+	{
+		if ( this._cursors.length < 1 )
+			return ;
+
+		var domRange = this.ToDomRange() ;
+		HighlightStyle.ApplyToRange( domRange, false, true ) ;
+		this._highlightRange = domRange ;
+
+		var charRange = CharacterRange.CreateFromDomRange( domRange ) ;
+		var focusNode = domRange.StartNode ;
+		if ( focusNode.nodeType != 1 )
+			focusNode = focusNode.parentNode ;
+		FCKDomTools.ScrollIntoView( focusNode, false ) ;
+		this._cursors = charRange._cursors ;
+	},
+
+	RemoveHighlight : function()
+	{
+		if ( this._highlightRange )
+		{
+			HighlightStyle.RemoveFromRange( this._highlightRange, false, true ) ;
+			var charRange = CharacterRange.CreateFromDomRange( this._highlightRange ) ;
+			this._cursors = charRange._cursors ;
+			this._highlightRange = null ;
+		}
+	},
+
+	GetHighlightDomRange : function()
+	{
+		return this._highlightRange;
+	},
+
+	MoveNext : function()
+	{
+		var next = this._cursors[ this._cursors.length - 1 ].Clone() ;
+		var retval = next.MoveNext() ;
+		if ( retval )
+			this._cursors = [] ;
+		this._cursors.push( next ) ;
+		if ( this._cursors.length > this._maxLength )
+			this._cursors.shift() ;
+		return retval ;
+	},
+
+	MoveBack : function()
+	{
+		var prev = this._cursors[0].Clone() ;
+		var retval = prev.MoveBack() ;
+		if ( retval )
+			this._cursors = [] ;
+		this._cursors.unshift( prev ) ;
+		if ( this._cursors.length > this._maxLength )
+			this._cursors.pop() ;
+		return retval ;
+	},
+
+	GetEndCharacter : function()
+	{
+		if ( this._cursors.length < 1 )
+			return null ;
+		var retval = this._cursors[ this._cursors.length - 1 ].GetCharacter() ;
+		return retval ;
+	},
+
+	GetNextRange : function( len )
+	{
+		if ( this._cursors.length == 0 )
+			return null ;
+		var cur = this._cursors[ this._cursors.length - 1 ].Clone() ;
+		cur.MoveNext() ;
+		return new CharacterRange( cur, len ) ;
+	},
+
+	GetCursors : function()
+	{
+		return this._cursors ;
+	}
+} ;
+
+CharacterRange.CreateFromDomRange = function( domRange )
+{
+	var w3cRange = domRange._Range ;
+	var startContainer = w3cRange.startContainer ;
+	var endContainer = w3cRange.endContainer ;
+	var startTextNode, startIndex, endTextNode, endIndex ;
+
+	if ( startContainer.nodeType == 3 )
+	{
+		startTextNode = startContainer ;
+		startIndex = w3cRange.startOffset ;
+	}
+	else if ( domRange.StartNode.nodeType == 3 )
+	{
+		startTextNode = domRange.StartNode ;
+		startIndex = 0 ;
+	}
+	else
+	{
+		startTextNode = GetNextNonEmptyTextNode( domRange.StartNode, domRange.StartNode.parentNode ) ;
+		if ( !startTextNode )
+			return null ;
+		startIndex = 0 ;
+	}
+
+	if ( endContainer.nodeType == 3 && w3cRange.endOffset > 0 )
+	{
+		endTextNode = endContainer ;
+		endIndex = w3cRange.endOffset - 1 ;
+	}
+	else
+	{
+		endTextNode = domRange.EndNode ;
+		while ( endTextNode.nodeType != 3 )
+			endTextNode = endTextNode.lastChild ;
+		endIndex = endTextNode.length - 1 ;
+	}
+
+	var cursors = [] ;
+	var current = new CharacterCursor( startTextNode, startIndex ) ;
+	cursors.push( current ) ;
+	if ( !( current.GetTextNode() == endTextNode && current.GetIndex() == endIndex ) && !domRange.CheckIsEmpty() )
+	{
+		do
+		{
+			current = current.Clone() ;
+			current.MoveNext() ;
+			cursors.push( current ) ;
+		}
+		while ( !( current.GetTextNode() == endTextNode && current.GetIndex() == endIndex ) ) ;
+	}
+
+	return new CharacterRange( cursors, cursors.length ) ;
+}
+
+// Knuth-Morris-Pratt Algorithm for stream input
+KMP_NOMATCH = 0 ;
+KMP_ADVANCED = 1 ;
+KMP_MATCHED = 2 ;
+KmpMatch = function( 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 ;
+	}
+};
+
+// Place a range at the start of document.
+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 ) ;
+}
+
+/* Is this character a unicode whitespace or a punctuation mark?
+ * References:
+ * http://unicode.org/Public/UNIDATA/PropList.txt (whitespaces)
+ * http://php.chinaunix.net/manual/tw/ref.regex.php (punctuation marks)
+ */
+function CheckIsWordSeparator( c )
+{
+	if ( !c )
+		return true;
+	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 /[.,"'?!;:]/.test( c ) ;
+}
+
+FindRange = null ;
+function _Find()
+{
+	var searchString = GetSearchString() ;
+	if ( !FindRange )
+		FindRange = new CharacterRange( new CharacterCursor( EditorDocument ), searchString.length ) ;
+	else
+	{
+		FindRange.RemoveHighlight() ;
+		FindRange = FindRange.GetNextRange( searchString.length ) ;
+	}
+	var matcher = new KmpMatch( searchString, ! GetCheckCase() ) ;
+	var matchState = KMP_NOMATCH ;
+	var character = '%' ;
+
+	while ( character != null )
+	{
+		while ( ( character = FindRange.GetEndCharacter() ) )
+		{
+			matchState = matcher.FeedCharacter( character ) ;
+			if ( matchState == KMP_MATCHED )
+				break ;
+			if ( FindRange.MoveNext() )
+				matcher.Reset() ;
+		}
+
+		if ( matchState == KMP_MATCHED )
+		{
+			if ( GetMatchWord() )
+			{
+				var cursors = FindRange.GetCursors() ;
+				var head = cursors[ cursors.length - 1 ].Clone() ;
+				var tail = cursors[0].Clone() ;
+				if ( !head.MoveNext() && !CheckIsWordSeparator( head.GetCharacter() ) )
+					continue ;
+				if ( !tail.MoveBack() && !CheckIsWordSeparator( tail.GetCharacter() ) )
+					continue ;
+			}
+
+			FindRange.Highlight() ;
+			return true ;
+		}
+	}
+
+	FindRange = null ;
+	return false ;
+}
+
+function Find()
+{
+	if ( ! _Find() )
+		alert( FCKLang.DlgFindNotFoundMsg ) ;
+}
+
+function Replace()
+{
+	var saveUndoStep = function( selectRange )
+	{
+		var ieRange ;
+		if ( oEditor.FCKBrowserInfo.IsIE )
+			ieRange = document.selection.createRange() ;
+
+		selectRange.Select() ;
+		oEditor.FCKUndo.SaveUndoStep() ;
+		var cloneRange = selectRange.Clone() ;
+		cloneRange.Collapse( false ) ;
+		cloneRange.Select() ;
+
+		if ( ieRange )
+			setTimeout( function(){ ieRange.select() ; }, 1 ) ;
+	}
+
+	if ( FindRange && FindRange.GetHighlightDomRange() )
+	{
+		var range = FindRange.GetHighlightDomRange() ;
+		var bookmark = range.CreateBookmark() ;
+		FindRange.RemoveHighlight() ;
+		range.MoveToBookmark( bookmark ) ;
+
+		saveUndoStep( range ) ;
+		range.DeleteContents() ;
+		range.InsertNode( EditorDocument.createTextNode( GetReplaceString() ) ) ;
+		range._UpdateElementInfo() ;
+
+		FindRange = CharacterRange.CreateFromDomRange( range ) ;
+	}
+	else
+	{
+		if ( ! _Find() )
+		{
+			FindRange && FindRange.RemoveHighlight() ;
+			alert( FCKLang.DlgFindNotFoundMsg ) ;
+		}
+	}
+}
+
+function ReplaceAll()
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+	var replaceCount = 0 ;
+
+	while ( _Find() )
+	{
+		var range = FindRange.GetHighlightDomRange() ;
+		var bookmark = range.CreateBookmark() ;
+		FindRange.RemoveHighlight() ;
+		range.MoveToBookmark( bookmark) ;
+
+		range.DeleteContents() ;
+		range.InsertNode( EditorDocument.createTextNode( GetReplaceString() ) ) ;
+		range._UpdateElementInfo() ;
+
+		FindRange = CharacterRange.CreateFromDomRange( range ) ;
+		replaceCount++ ;
+	}
+	if ( replaceCount == 0 )
+	{
+		FindRange && FindRange.RemoveHighlight() ;
+		alert( FCKLang.DlgFindNotFoundMsg ) ;
+	}
+	dialog.Cancel() ;
+}
+
+window.onunload = function()
+{
+	if ( FindRange )
+	{
+		FindRange.RemoveHighlight() ;
+		FindRange.ToDomRange().Select() ;
+	}
+}
+	</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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_button.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_button.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_button.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_paste.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_paste.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_paste.html	(revision 1130)
@@ -0,0 +1,347 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 = '' ;
+		SelectField( 'txtData' ) ;
+	}
+
+	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>[\s\S]*?<\/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 style, meta and link tags
+	html = html.replace( /<STYLE[^>]*>[\s\S]*?<\/STYLE[^>]*>/gi, '' ) ;
+	html = html.replace( /<(?:META|LINK)[^>]*>\s*/gi, '' ) ;
+
+	// 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*>([\s\S]*?)<\/SPAN>/gi, '$1' ) ;
+
+	html = html.replace( /<FONT\s*>([\s\S]*?)<\/FONT>/gi, '$1' ) ;
+
+	// Remove XML elements and declarations
+	html = html.replace(/<\\?\?xml[^>]*>/gi, '' ) ;
+
+	// Remove w: tags with contents.
+	html = html.replace( /<w:[^>]*>[\s\S]*?<\/w:[^>]*>/gi, '' ) ;
+
+	// Remove Tags with XML namespace declarations: <o:p><\/o:p>
+	html = html.replace(/<\/?\w+:[^>]*>/gi, '' ) ;
+
+	// Remove comments [SF BUG-1481861].
+	html = html.replace(/<\!--[\s\S]*?-->/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[\s\S]*?<\/\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[^>]*>([\s\S]*?)<\/FONT><\/\1>/gi, '<$1>$2<\/$1>' );
+		html = html.replace( /<(H\d)><EM>([\s\S]*?)<\/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)([^>]*>[\\s\\S]*?)(<\/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_specialchar.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_specialchar.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_specialchar.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select.html	(revision 1130)
@@ -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-2009 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" 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">
+							</td>
+							<td width="50%"><span fckLang="DlgSelectOpValue">Value</span><br>
+								<input id="txtValue" style="WIDTH: 100%" type="text">
+							</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"></select>
+							</td>
+							<td rowSpan="2"><select id="cmbValue" style="WIDTH: 100%" onchange="GetE('cmbText').selectedIndex = this.selectedIndex;Select(this);"
+									size="5"></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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_colorselector.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_colorselector.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_colorselector.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_table.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_table.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_table.html	(revision 1130)
@@ -0,0 +1,439 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 FCKDomTools = oEditor.FCKDomTools ;
+
+// Gets the table if there is one selected.
+var table ;
+var e = dialog.Selection.GetSelectedElement() ;
+var hasColumnHeaders ;
+
+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 ;
+
+		hasColumnHeaders = true ;
+		// Check if all the first cells in every row are TH
+		for (var row=0; row<table.rows.length; row++)
+		{
+			// If just one cell isn't a TH then it isn't a header column
+			if ( table.rows[row].cells[0].nodeName != 'TH' )
+			{
+				hasColumnHeaders = false ;
+
+				break;
+			}
+		}
+
+		// Check if the table contains <thead>
+		if ((table.tHead !== null) )
+		{
+			if (hasColumnHeaders)
+				GetE('selHeaders').value = 'both' ;
+			else
+				GetE('selHeaders').value = 'row' ;
+		}
+		else
+		{
+			if (hasColumnHeaders)
+				GetE('selHeaders').value = 'col' ;
+			else
+				GetE('selHeaders').value = '' ;
+		}
+
+
+		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 ) ;
+
+	var oDoc = oEditor.FCK.EditorDocument ;
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	if ( ! bExists )
+		table = oDoc.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 = oDoc.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 ) ;
+	}
+
+	var headers = GetE('selHeaders').value ;
+	if ( bExists )
+	{
+		// Should we make a <thead>?
+		if ( table.tHead==null && (headers=='row' || headers=='both') )
+		{
+			var oThead = table.createTHead() ;
+			var tbody = FCKDomTools.GetFirstChild( table, 'TBODY' ) ;
+			var theRow= FCKDomTools.GetFirstChild( tbody, 'TR' ) ;
+
+			//now change TD to TH:
+			for (var i = 0; i<theRow.childNodes.length ; i++)
+			{
+				var th = RenameNode(theRow.childNodes[i], 'TH') ;
+				if (th != null)
+					th.scope='col' ;
+			}
+			oThead.appendChild( theRow ) ;
+		}
+
+		if ( table.tHead!==null && !(headers=='row' || headers=='both') )
+		{
+			// Move the row out of the THead and put it in the TBody:
+			var tHead = table.tHead ;
+			var tbody = FCKDomTools.GetFirstChild( table, 'TBODY' ) ;
+
+			var previousFirstRow = tbody.firstChild ;
+			while ( tHead.firstChild )
+			{
+				var theRow = tHead.firstChild ;
+				for (var i = 0; i < theRow.childNodes.length ; i++ )
+				{
+					var newCell = RenameNode( theRow.childNodes[i], 'TD' ) ;
+					if ( newCell != null )
+						newCell.removeAttribute( 'scope' ) ;
+				}
+				tbody.insertBefore( theRow, previousFirstRow ) ;
+			}
+			table.removeChild( tHead ) ;
+		}
+
+		// Should we make all first cells in a row TH?
+		if ( (!hasColumnHeaders)  && (headers=='col' || headers=='both') )
+		{
+			for( var row=0 ; row < table.rows.length ; row++ )
+			{
+				var newCell = RenameNode(table.rows[row].cells[0], 'TH') ;
+				if ( newCell != null )
+					newCell.scope = 'row' ;
+			}
+		}
+
+		// Should we make all first TH-cells in a row make TD? If 'yes' we do it the other way round :-)
+		if ( (hasColumnHeaders)  && !(headers=='col' || headers=='both') )
+		{
+			for( var row=0 ; row < table.rows.length ; row++ )
+			{
+				var oRow = table.rows[row] ;
+				if ( oRow.parentNode.nodeName == 'TBODY' )
+				{
+					var newCell = RenameNode(oRow.cells[0], 'TD') ;
+					if (newCell != null)
+						newCell.removeAttribute( 'scope' ) ;
+				}
+			}
+		}
+	}
+
+	if (! bExists)
+	{
+		var iRows = GetE('txtRows').value ;
+		var iCols = GetE('txtColumns').value ;
+
+		var startRow = 0 ;
+		// Should we make a <thead> ?
+		if (headers=='row' || headers=='both')
+		{
+			startRow++ ;
+			var oThead = table.createTHead() ;
+			var oRow = table.insertRow(-1) ;
+			oThead.appendChild(oRow);
+
+			for ( var c = 0 ; c < iCols ; c++ )
+			{
+				var oThcell = oDoc.createElement( 'TH' ) ;
+				oThcell.scope = 'col' ;
+				oRow.appendChild( oThcell ) ;
+				if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+					oEditor.FCKTools.AppendBogusBr( oThcell ) ;
+			}
+		}
+
+		// Opera automatically creates a tbody when a thead has been added
+		var oTbody = FCKDomTools.GetFirstChild( table, 'TBODY' ) ;
+		if ( !oTbody )
+		{
+			// make TBODY if it doesn't exist
+			oTbody = oDoc.createElement( 'TBODY' ) ;
+			table.appendChild( oTbody ) ;
+		}
+		for ( var r = startRow ; r < iRows; r++ )
+		{
+			var oRow = oDoc.createElement( 'TR' ) ;
+			oTbody.appendChild(oRow) ;
+
+			var startCol = 0 ;
+			// Is the first column a header?
+			if (headers=='col' || headers=='both')
+			{
+				var oThcell = oDoc.createElement( 'TH' ) ;
+				oThcell.scope = 'row' ;
+				oRow.appendChild( oThcell ) ;
+				if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+					oEditor.FCKTools.AppendBogusBr( oThcell ) ;
+
+				startCol++ ;
+			}
+			for ( var c = startCol ; c < iCols ; c++ )
+			{
+				// IE will leave the TH at the end of the row if we use now oRow.insertCell(-1)
+				var oCell = oDoc.createElement( 'TD' ) ;
+				oRow.appendChild( oCell ) ;
+				if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+					oEditor.FCKTools.AppendBogusBr( oCell ) ;
+			}
+		}
+
+		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="1" 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"
+											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"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td><span fcklang="DlgTableHeaders">Headers</span>:</td>
+									<td>
+										&nbsp;<select id="selHeaders">
+											<option fcklang="DlgTableHeadersNone" value="">None</option>
+											<option fcklang="DlgTableHeadersRow" value="row">First row</option>
+											<option fcklang="DlgTableHeadersColumn" value="col">First column</option>
+											<option fcklang="DlgTableHeadersBoth" value="both">Both</option>
+										</select>
+									</td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableBorder">Border size</span>:</td>
+									<td>
+										&nbsp;<input id="txtBorder" type="text" maxlength="2" size="2" value="1"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableAlign">Alignment</span>:</td>
+									<td>
+										&nbsp;<select id="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"
+											onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;<select id="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" onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;<span fcklang="DlgTableWidthPx">pixels</span></td>
+								</tr>
+								<tr>
+									<td colspan="3">&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"
+											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"
+											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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_tablecell.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_tablecell.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_tablecell.html	(revision 1130)
@@ -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-2009 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() ;
+
+var FCKDomTools = oEditor.FCKDomTools ;
+
+// 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('selCellType').value     = oCell.nodeName.toLowerCase() ;
+	}
+}
+
+// Fired when the user press the OK button
+function Ok()
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	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 ) ;
+
+		var cellType = GetE('selCellType').value ;
+		if ( aCells[i].nodeName.toLowerCase() != cellType )
+			aCells[i] = RenameNode( aCells[i], cellType ) ;
+	}
+
+	// The cells need to be reselected, otherwise the caret will appear inside the table borders (Gecko)
+	// or sent back to the beginning of the document (Opera and Safari).
+	// Strangely, IE works ok so no change is needed for IE.
+	if ( !oEditor.FCKBrowserInfo.IsIE )
+	{
+		var selection = oEditor.FCK.EditorWindow.getSelection() ;
+		selection.removeAllRanges() ;
+		for ( var i = 0 ; i < aCells.length ; i++ )
+		{
+			var range = oEditor.FCK.EditorDocument.createRange() ;
+			range.selectNode( aCells[i] ) ;
+			selection.addRange( range ) ;
+		}
+	}
+
+	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" />&nbsp;<select id="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" 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">
+											<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">
+											<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">
+											<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="DlgCellType">Cell Type</span>:</td>
+									<td colspan="2">
+										&nbsp; <select id="selCellType">
+											<option fcklang="DlgCellTypeData" value="td" />Data
+											<option fcklang="DlgCellTypeHeader" value="th" />Header
+										</select>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<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"
+											></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"></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" /></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" /></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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textfield.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textfield.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textfield.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops.html	(revision 1130)
@@ -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-2009 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" 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_radiobutton.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_radiobutton.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_radiobutton.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_hiddenfield.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_hiddenfield.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_hiddenfield.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_source.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_source.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_source.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_smiley.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_smiley.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_smiley.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_listprop.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_listprop.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_listprop.html	(revision 1130)
@@ -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-2009 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( sListType == 'OL' ? 'txtStartPosition' : 'selBulleted' ) ;
+}
+
+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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textarea.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textarea.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textarea.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages.html	(revision 1130)
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.FCKUndo.SaveUndoStep() ;
+		oEditor.FCK.EditorDocument.body.innerHTML = document.getElementById('txtHtml').value ;
+		if ( oEditor.FCKBrowserInfo.IsIE )
+			oEditor.FCKSelection.Collapse( true ) ;
+	}
+	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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_checkbox.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_checkbox.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dialog/fck_checkbox.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/basexml.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/basexml.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/basexml.php	(revision 1130)
@@ -0,0 +1,99 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 ( $_GET['Command'] == 'FileUpload' )
+		SendUploadResults( $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 )
+{
+	if ($text)
+		echo '<Error number="' . $number . '" text="' . htmlspecialchars( $text ) . '" />' ;
+	else
+		echo '<Error number="' . $number . '" />' ;
+}
+?>
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/commands.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/commands.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/commands.php	(revision 1130)
@@ -0,0 +1,280 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 ) ;
+
+	if ($oCurrentFolder !== false)
+	{
+		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 ) ;
+
+	if ($oCurrentFolder !== false)
+	{
+		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 . '" />' ;
+				}
+			}
+		}
+		closedir( $oCurrentFolder ) ;
+	}
+
+	// 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 . '" />' ;
+}
+
+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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/upload.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/upload.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/upload.php	(revision 1130)
@@ -0,0 +1,59 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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	= "/" ;
+
+// 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/io.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/io.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/io.php	(revision 1130)
@@ -0,0 +1,303 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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( './' ) ;
+	// #2124 ensure that no slash is at the end
+	$sRealPath = rtrim($sRealPath,"\\/");
+
+	$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, '' ) ;
+
+	if ( preg_match(",(/\.)|[[:cntrl:]]|(//)|(\\\\)|([\:\*\?\"\<\>\|]),", $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 = '' )
+{
+	// Minified version of the document.domain automatic fix script (#1919).
+	// The original script can be found at _dev/domain_fix_template.js
+	echo <<<EOF
+<script type="text/javascript">
+(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();
+EOF;
+
+	if ($errorNumber && $errorNumber != 201) {
+		$fileUrl = "";
+		$fileName = "";
+	}
+
+	$rpl = array( '\\' => '\\\\', '"' => '\\"' ) ;
+	echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . strtr( $fileUrl, $rpl ) . '","' . strtr( $fileName, $rpl ) . '", "' . strtr( $customMsg, $rpl ) . '") ;' ;
+	echo '</script>' ;
+	exit ;
+}
+
+?>
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/connector.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/connector.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/connector.php	(revision 1130)
@@ -0,0 +1,87 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php.org
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php.org	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php.org	(revision 1130)
@@ -0,0 +1,151 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/util.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/util.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/util.php	(revision 1130)
@@ -0,0 +1,220 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php	(revision 1130)
@@ -0,0 +1,230 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/phpcompat.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/phpcompat.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/phpcompat.php	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html	(revision 1130)
@@ -0,0 +1,30 @@
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html	(revision 1130)
@@ -0,0 +1,29 @@
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html.org
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html.org	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html.org	(revision 1130)
@@ -0,0 +1,210 @@
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html.org
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html.org	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html.org	(revision 1130)
@@ -0,0 +1,192 @@
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/fckxml.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/fckxml.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/fckxml.js	(revision 1130)
@@ -0,0 +1,147 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 )
+			{
+				var oXml ;
+				try
+				{
+					// this is the same test for an FF2 bug as in fckxml_gecko.js
+					// but we've moved the responseXML assignment into the try{}
+					// so we don't even have to check the return status codes.
+					var test = oXmlHttp.responseXML.firstChild ;
+					oXml = oXmlHttp.responseXML ;
+				}
+				catch ( e )
+				{
+					try
+					{
+						oXml = (new DOMParser()).parseFromString( oXmlHttp.responseText, 'text/xml' ) ;
+					}
+					catch ( e ) {}
+				}
+
+				if ( !oXml || !oXml.firstChild || oXml.firstChild.nodeName == 'parsererror' )
+				{
+					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 = oXml ;
+				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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/common.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/common.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/common.js	(revision 1130)
@@ -0,0 +1,88 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html	(revision 1130)
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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>
+		<title>Available types</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 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 USED WITHIN WEBSITE BAKER
+	var oCombo = document.getElementById('cmbType') ;
+	oCombo.innerHTML = '' ;
+	for ( var i = 0 ; i < aTypes.length ; i++ )
+	{
+		if ( oConnector.ShowAllTypes || aTypes[i][0] == oConnector.ResourceType )
+			AddSelectOption( oCombo, aTypes[i][1], aTypes[i][0] ) ;
+	}
+	*/
+}
+
+		</script>
+	</head>
+	<body>
+		<!-- HIDE RESOURCE TYPES - NOT USED IN WEBSITE BAKER 	
+		<table class="fullHeight" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td nowrap>
+					Resource Type<BR>
+					<select id="cmbType" style="WIDTH: 100%" onchange="SetResourceType(this.value);">
+						<option>&nbsp;
+					</select>
+				</td>
+			</tr>
+		</table>
+		-->
+	</body>
+</html>
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.html	(revision 1130)
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+   "http://www.w3.org/TR/html4/frameset.dtd">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 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 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmfolders.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmfolders.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmfolders.html	(revision 1130)
@@ -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-2009 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>
+		<title>Folders</title>
+		<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 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">
+		<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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html	(revision 1130)
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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>
+		<title>Create Folder</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 )
+{
+	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>
+		<table class="fullHeight" 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html.org
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html.org	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html.org	(revision 1130)
@@ -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-2009 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>
+		<title>Available types</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 SetResourceType( type )
+{
+	window.parent.frames["frmFolders"].SetResourceType( type ) ;
+}
+
+var aTypes = [
+	['File','File'],
+	['Image','Image'],
+	['Flash','Flash'],
+	['Media','Media']
+] ;
+
+window.onload = function()
+{
+	var oCombo = document.getElementById('cmbType') ;
+	oCombo.innerHTML = '' ;
+	for ( var i = 0 ; i < aTypes.length ; i++ )
+	{
+		if ( oConnector.ShowAllTypes || aTypes[i][0] == oConnector.ResourceType )
+			AddSelectOption( oCombo, aTypes[i][1], aTypes[i][0] ) ;
+	}
+}
+
+		</script>
+	</head>
+	<body>
+		<table class="fullHeight" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td nowrap>
+					Resource Type<BR>
+					<select id="cmbType" style="WIDTH: 100%" onchange="SetResourceType(this.value);">
+						<option>&nbsp;
+					</select>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.css	(revision 1130)
@@ -0,0 +1,87 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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;
+	margin-top:0;
+	margin-bottom:0;
+}
+
+form
+{
+	margin: 0;
+	padding: 0;
+}
+
+.Frame
+{
+	background-color: #f1f1e3;
+	border: thin inset #f1f1e3;
+}
+
+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
+{
+	color: #3b3b1f;
+	border: #737357 1px solid;
+	background-color: #c7c78f;
+}
+
+.FolderListCurrentFolder img
+{
+	background-image: url(images/FolderOpened.gif);
+}
+
+.FolderListFolder img
+{
+	background-image: url(images/Folder.gif);
+}
+
+.fullHeight {
+	height: 100%;
+}
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmupload.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmupload.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmupload.html	(revision 1130)
@@ -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-2009 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>
+	<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>
+		<form id="frmUpload" action="" target="frmUploadWorker" method="post" enctype="multipart/form-data" onsubmit="return OnSubmit();">
+			<table class="fullHeight" 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmactualfolder.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmactualfolder.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmactualfolder.html	(revision 1130)
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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>
+		<title>Folder path</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">
+// 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 SetCurrentFolder( resourceType, folderPath )
+{
+	document.getElementById('tdName').innerHTML = folderPath ;
+}
+
+window.onload = function()
+{
+	window.top.IsLoadedActualFolder = true ;
+}
+
+		</script>
+	</head>
+	<body>
+		<table class="fullHeight" 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" alt=""></td>
+								<td>&nbsp;</td>
+							</tr>
+						</table>
+					</button>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourceslist.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourceslist.html	(revision 1130)
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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>
+<head>
+	<title>Resources</title>
+	<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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/filemanager/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_gecko.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_gecko.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_gecko.js	(revision 1130)
@@ -0,0 +1,108 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.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),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),IsMac:s.Contains('macintosh')};(function(A){A.IsGecko=(navigator.product=='Gecko')&&!A.IsSafari&&!A.IsOpera;A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/rv:(\d+\.\d+)/);var C=B&&parseFloat(B[1]);if (C){A.IsGecko10=(C<1.8);A.IsGecko19=(C>1.8);}}})(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) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45) 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;break;case 8:if (E) F=true;break;};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);};FCKTempBin.Reset();FCK.Selection.Release();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 (FCKBrowserInfo.IsIE) FCKTempBin.ToHtml();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);C.MoveToSelection();C.DeleteContents();if (FCKListsLib.BlockElements[B]!=null){if (C.StartBlock){if (C.CheckStartOfBlock()) C.MoveToPosition(C.StartBlock,3);else if (C.CheckEndOfBlock()) C.MoveToPosition(C.StartBlock,4);else 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.IsGeckoLike){if (D) FCKDomTools.ScrollIntoView(D,false);FCKDomTools.ScrollIntoView(A,false);}}else{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){if (FCKSelection._GetSelectionDocument(FCK.EditorDocument.selection)!=FCK.EditorDocument) return;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;if (FCKBrowserInfo.IsIE) FCKTempBin.ToElements();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;},ToHtml:function(){for (var i=0;i<this.Elements.length;i++){this.Elements[i]='<div>&nbsp;'+this.Elements[i].outerHTML+'</div>';this.Elements[i].isHtml=true;}},ToElements:function(){var A=FCK.EditorDocument.createElement('div');for (var i=0;i<this.Elements.length;i++){if (this.Elements[i].isHtml){A.innerHTML=this.Elements[i];this.Elements[i]=A.firstChild.removeChild(A.firstChild.lastChild);}}}};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");}};(function(){var A=window.frameElement;var B=A.width;var C=A.height;if (/^\d+$/.test(B)) B+='px';if (/^\d+$/.test(C)) C+='px';var D=A.style;D.border=D.padding=D.margin=0;D.backgroundColor='transparent';D.backgroundImage='none';D.width=B;D.height=C;})();
+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'||(!FCKBrowserInfo.IsOpera&&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){this.EditorDocument.addEventListener('dragover',function (evt){ if (!FCK.MouseDownFlag&&FCK.Config.ForcePasteAsPlainText) evt.returnValue=false;},true);this.EditorDocument.addEventListener('drop',this._ExecDrop,true);this.EditorDocument.addEventListener('mousedown',function(ev){var N=ev.srcElement;if (N.nodeName.IEquals('IMG','HR','INPUT','TEXTAREA','SELECT')){FCKSelection.SelectNode(N);}},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)	{if (FCKConfig.ForcePasteAsPlainText) FCK.PasteAsPlainText();else 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){var B=FCK.EditorDocument,range;A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGecko){A=A.replace(/&nbsp;$/,'$&<span _fcktemp="1"/>');var C=new FCKDocumentFragment(this.EditorDocument);C.AppendHtml(A);var D=C.RootNode.lastChild;range=new FCKDomRange(this.EditorWindow);range.MoveToSelection();range.DeleteContents();range.InsertNode(C.RootNode);range.MoveToPosition(D,4);}else B.execCommand('inserthtml',false,A);this.Focus();if (!range){range=new FCKDomRange(this.EditorWindow);range.MoveToSelection();};var E=range.CreateBookmark();FCKDocumentProcessor.Process(B);try{range.MoveToBookmark(E);range.Select();}catch (e) {};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=[];if (FCKSelection.GetSelection().isCollapsed) return 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;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);}else FCKConfig.BasePath=document.location.protocol+'//'+document.location.host+document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=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) {  }};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.push([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.push(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={Output:function(){},OutputObject:function(){}};
+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()*0xffffffff,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||0;E+=parseInt(this.GetCurrentElementStyle(A,'marginBottom')||0,10)||0;};var F=FCKTools.GetDocumentPosition(C,A);E+=F.y;var G=FCKTools.GetScrollPosition(C).Y;if (E>0&&(E>G||E<G-D)) 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]);},GetSelectedDivContainers:function(){var A=[];var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.GetTouchedStartNode();var D=B.GetTouchedEndNode();var E=C;if (C==D){while (D.nodeType==1&&D.lastChild) D=D.lastChild;D=FCKDomTools.GetNextSourceNode(D);}while (E&&E!=D){if (E.nodeType!=3||!/^[ \t\n]*$/.test(E.nodeValue)){var F=new FCKElementPath(E);var G=F.BlockLimit;if (G&&G.nodeName.IEquals('div')&&A.IndexOf(G)==-1) A.push(G);};E=FCKDomTools.GetNextSourceNode(E);};return A;}};
+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 (/[\\\/\.][^{}]*$/.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 (/[\\\/\.][^{}]*$/.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.ResetStyles=function(A){A.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';};
+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.4.1",VersionBuild : "23187",Instances : window.FCKeditorAPI && window.FCKeditorAPI.Instances || {},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	: window.FCKeditorAPI && window.FCKeditorAPI._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){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.FCKConfig&&FCKConfig.MsWebBrowserControlCompat&&!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){if (window.FCKConfig&&FCKConfig.MsWebBrowserControlCompat) 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,HtmlDocType:/DTD HTML/,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',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',is:'Icelandic',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','>':'gt','ห':'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={'>':'gt'};A='>';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();if (FCKConfig.DocType.length>0&&FCKRegexLib.HtmlDocType.test(FCKConfig.DocType)) E=E.replace(FCKRegexLib.SpaceNoClose,'>');else 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.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')){if (B.nextSibling) return false;else{B.removeAttribute('_moz_editor_bogus_node');B.removeAttribute('type');}};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) {};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.push(A)-1);};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);if (B.style.width) A.removeAttribute('width');if (B.style.height) A.removeAttribute('height');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;}};if (FCKBrowserInfo.IsGecko){FCKXHtml.TagProcessors['link']=function(A,B){if (B.href.substr(0,9).toLowerCase()=='chrome://') return false;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|DL|DT|DD|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|DL|DT|DD|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|DL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \>]/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.push(C)-1)+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.style.width=H.style.height='100%';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A.replace(/<head>/i,'<head>'+I);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(A.replace(/<head>/i,'<head>'+I));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;setTimeout(function(){try{K.Window.document.documentElement.doScroll("left");}catch(e){setTimeout(arguments.callee,0);return;};K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);},0);}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;A.body.offsetLeft;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;},_CheckAndMergePre:function(A,B){if (A!=FCKDomTools.GetPreviousSourceElement(B,true)) return;var C=A.innerHTML.replace(/\n$/,'')+'\n\n'+B.innerHTML.replace(/^\n/,'');if (FCKBrowserInfo.IsIE) B.outerHTML='<pre>'+C+'</pre>';else B.innerHTML=C;FCKDomTools.RemoveNode(A);},_CheckAndSplitPre:function(A){var B;var C=A.firstChild;C=C&&C.nextSibling;while (C){var D=C.nextSibling;if (D&&D.nextSibling&&C.nodeName.IEquals('br')&&D.nodeName.IEquals('br')){FCKDomTools.RemoveNode(C);C=D.nextSibling;FCKDomTools.RemoveNode(D);B=FCKDomTools.InsertAfterNode(B||A,FCKDomTools.CloneElement(A));continue;};if (B){C=C.previousSibling;FCKDomTools.MoveNode(C.nextSibling,B);};C=C.nextSibling;}},_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;while((F=E.GetNextParagraph())){var I=this.BuildElement(G);var J=I.nodeName.IEquals('pre');var K=F.nodeName.IEquals('pre');var L=J&&!K;var M=!J&&K;if (L) I=this._ToPre(G,F,I);else if (M) I=this._FromPre(G,F,I);else FCKDomTools.MoveChildren(F,I);F.parentNode.insertBefore(I,F);FCKDomTools.RemoveNode(F);if (J){if (H) this._CheckAndMergePre(H,I);H=I;}else if (M) this._CheckAndSplitPre(I);};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=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A.collapsed){this.EndNode=this.StartNode;this.EndContainer=this.StartContainer;this.EndBlock=this.StartBlock;this.EndBlockLimit=this.StartBlockLimit;}else{var D=A.endContainer;if (B!=D) C=new FCKElementPath(D);var E=D;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=D;this.EndBlock=C.Block;this.EndBlockLimit=C.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&&D.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;}while (C&&C.nodeType==3&&E.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);if (FCKDomTools.CheckIsEmptyElement(D,function(element) { return element.getAttribute('_fck_bookmark')!='true';})&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(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=FCKDomTools.GetNextSourceNode(H,true,null,I)||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);},AppendHtml:function(A){var B=this.RootNode.ownerDocument.createElement('div');B.innerHTML=A;FCKDomTools.MoveChildren(B,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'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);this.TabText='';if (D>0||FCKBrowserInfo.IsSafari){while (D--) this.TabText+='\xa0';E.SetKeystrokes([9,'Tab']);};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;};if (FCKBrowserInfo.IsIE){var F=FCKDomTools.GetPreviousSourceElement(B.StartNode,true);if (F&&F.nodeName.toLowerCase()=='br'){var G=B.Clone();G.SetStart(F,4);if (G.CheckIsEmpty()){F.parentNode.removeChild(F);return true;}}};var H=B.StartBlock;var I=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&H&&I){if (!C){var J=B.CheckEndOfBlock();B.DeleteContents();if (H!=I){B.SetStart(I,1);B.SetEnd(I,1);};B.Select();A=(H==I);};if (B.CheckStartOfBlock()){var K=B.StartBlock;var L=FCKDomTools.GetPreviousSourceElement(K,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,L,K);}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.IsGeckoLike){if (F){var M=this.Window.document.createElement('span');M.innerHTML='&nbsp;';C.InsertNode(M);FCKDomTools.ScrollIntoView(M,false);C.DeleteContents();}else{FCKDomTools.ScrollIntoView(F||I,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);FCKDomTools.ScrollIntoView(I,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.push(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.BasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var 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);};var F=function(elementName,doc){var G=doc.getElementsByTagName(elementName);for (var i=G.length-1;i>=0;i--) B(G[i]);};var H=function(doc){F('object',doc);F('embed',doc);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){if (FCKBrowserInfo.IsGecko) FCKTools.RunFunction(H,this,[doc]);else H(doc);},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);});if (FCKBrowserInfo.IsSafari){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByClassName?A.getElementsByClassName('Apple-style-span'):Array.prototype.filter.call(A.getElementsByTagName('span'),function(item){ return item.className=='Apple-style-span';});for (var i=B.length-1;i>=0;i--) FCKDomTools.RemoveNode(B[i],true);}};
+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){var B=A.getRangeAt(0);if (B.collapsed||B.startContainer.nodeType==3) return A.anchorNode.parentNode;else return A.anchorNode;};var C=new FCKElementPath(A.anchorNode);var D=new FCKElementPath(A.focusNode);var E=null;var F=null;if (C.Elements.length>D.Elements.length){E=C.Elements;F=D.Elements;}else{E=D.Elements;F=C.Elements;};var G=E.length-F.length;for(var i=0;i<F.length;i++){if (E[G+i]==F[i]) return F[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.nodeName.IEquals(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.IEquals(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=B[i].parentNode;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];F.insertBefore(B,(A?G:G.nextSibling));}};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(A.parentNode);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++){FCKDomTools.ClearElementJSProperty(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;for (var i=0;i<A.length;i++){if (A[i].parentNode.parentNode!=A[0].parentNode.parentNode) return false;};this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0]);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);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(FCK.EditorDocument.createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.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.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(FCK.EditorDocument.createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.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);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=FCK.EditorDocument.createElement(B.nodeName);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(FCK.EditorDocument.createElement(B.nodeName));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.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;var G=B.rowSpan;if (isNaN(G)) G=1;if (G>1){B.rowSpan=Math.ceil(G/2);var H=D+Math.ceil(G/2);var I=C[H];var J=null;for (var i=E+1;i<I.length;i++){if (I[i].parentNode.rowIndex==H){J=I[i];break;}};var K=FCK.EditorDocument.createElement(B.nodeName);K.rowSpan=Math.floor(G/2);if (F>1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);B.parentNode.parentNode.parentNode.rows[H].insertBefore(K,J);}else{var L=B.parentNode.sectionRowIndex+1;var M=FCK.EditorDocument.createElement('tr');var N=B.parentNode.parentNode;if (N.rows.length>L) N.insertBefore(M,N.rows[L]);else N.appendChild(M);for (var i=0;i<C[D].length;){var O=C[D][i].colSpan;if (isNaN(O)||O<1) O=1;if (i==E){i+=O;continue;};var P=C[D][i].rowSpan;if (isNaN(P)) P=1;C[D][i].rowSpan=P+1;i+=O;};var K=FCK.EditorDocument.createElement(B.nodeName);if (F>1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);M.appendChild(K);}};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._CreateTableMap=function(A){var B=(A.nodeName=='TABLE'?A:A.parentNode.parentNode.parentNode);var C=B.rows;var r=-1;var D=[];for (var i=0;i<C.length;i++){r++;if (!D[r]) D[r]=[];var c=-1;for (var j=0;j<C[i].cells.length;j++){var E=C[i].cells[j];c++;while (D[r][c]) c++;var F=isNaN(E.colSpan)?1:E.colSpan;var G=isNaN(E.rowSpan)?1:E.rowSpan;for (var H=0;H<G;H++){if (!D[r+H]) D[r+H]=[];for (var I=0;I<F;I++){D[r+H][c+I]=C[i].cells[j];}};c+=F-1;}};return D;};FCKTableHandler._InstallTableMap=function(A,B){var C=FCKBrowserInfo.IsIE?"_fckrowspan":"rowSpan";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[C]=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[C]++;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];FCKDomTools.ClearElementJSProperty(D,'_colScanned');FCKDomTools.ClearElementJSProperty(D,'_rowScanned');}};for (var i=0;i<A.length;i++){var I=FCK.EditorDocument.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);if (C!='rowSpan'){D.rowSpan=D[C];D.removeAttribute(C);};j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};if (FCKBrowserInfo.IsIE){B.rows[i].replaceNode(I);}else{B.rows[i].innerHTML='';FCKDomTools.MoveChildren(I,B.rows[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);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);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;if (B.parentNode.parentNode!=G.parentNode.parentNode) 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.nodeName.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||(C.status==0&&C.readyState==4)){B=C.responseXML;if (!B) B=(new DOMParser()).parseFromString(C.responseText,'text/xml');}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 FCKVisitLinkCommand=function(){this.Name='VisitLink';};FCKVisitLinkCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState('Unlink');if (A==0){var B=FCKSelection.MoveToAncestorNode('A');if (!B.href) A=-1;};return A;},Execute:function(){var A=FCKSelection.MoveToAncestorNode('A');var B=A.getAttribute('_fcksavedurl')||A.getAttribute('href',2);if (!/:\/\//.test(B)){var C=FCKConfig.BaseHref;var D=FCK.GetInstanceObject('parent');if (!C){C=D.document.location.href;C=C.substring(0,C.lastIndexOf('/')+1);};if (/^\//.test(B)){try{C=C.match(/^.*:\/\/+[^\/]+/)[0];}catch (e){C=D.document.location.protocol+'://'+D.parent.document.location.host;}};B=C+B;};if (!window.open(B,'_blank')) alert(FCKLang.VisitLinkBlocked);}};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 FCKDeleteDivCommand=function(){};FCKDeleteDivCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCKSelection.GetParentElement();var B=new FCKElementPath(A);return B.BlockLimit&&B.BlockLimit.nodeName.IEquals('div')?0:-1;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCKDomTools.GetSelectedDivContainers();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();for (var i=0;i<A.length;i++) FCKDomTools.RemoveNode(A[i],true);B.MoveToBookmark(C);B.Select();}};var FCKNbsp=function(){this.Name='Non Breaking Space';};FCKNbsp.prototype={Execute:function(){FCK.InsertHtml('&nbsp;');},GetState:function(){return (FCK.EditMode!=0?-1:0);}};
+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';if (FCKBrowserInfo.IsIE){try{FCK.EditorDocument.selection.createRange().select();}catch (e){}}else{var C=FCK.EditorWindow.getSelection().focusNode;if (C){if (C.nodeType!=1) C=C.parentNode;FCKDomTools.ScrollIntoView(C,false);}};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');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;case 'WSC':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','wsc/w.html',530,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;var H,oEditorScrollPos;if (FCK.EditMode==0){H=new FCKDomRange(FCK.EditorWindow);H.MoveToSelection();oEditorScrollPos=FCKTools.GetScrollPosition(FCK.EditorWindow);}else{var I=FCK.EditingArea.Textarea;H=!FCKBrowserInfo.IsIE&&[I.selectionStart,I.selectionEnd];oEditorScrollPos=[I.scrollLeft,I.scrollTop];};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 J=FCKTools.GetViewPaneSize(C);B.position="absolute";A.offsetLeft;B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=J.Width+"px";B.height=J.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);var K=FCKTools.GetWindowPosition(C,A);if (K.x!=0) B.left=(-1*K.x)+"px";if (K.y!=0) B.top=(-1*K.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();if (FCK.EditMode==0){H.Select();FCK.EditorWindow.scrollTo(oEditorScrollPos.X,oEditorScrollPos.Y);}else{if (!FCKBrowserInfo.IsIE){I.selectionStart=H[0];I.selectionEnd=H[1];};I.scrollLeft=oEditorScrollPos[0];I.scrollTop=oEditorScrollPos[1];}};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){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();}while (J.nodeName.IEquals('table','tbody','tr','ol','ul')) J=J.parentNode;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=[];var P={};while ((H=G.GetNextParagraph())){var Q=null;var R=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){Q=H.parentNode;R=H;break;};H=H.parentNode;};if (Q&&R&&!R._fckblockquotemoveout){O.push(R);FCKDomTools.SetElementMarker(P,R,'_fckblockquotemoveout',true);}};FCKDomTools.ClearAllMarkers(P);var S=[];var T=[],P={};var U=function(N){for (var i=0;i<N.childNodes.length;i++){if (FCKListsLib.BlockElements[N.childNodes[i].nodeName.toLowerCase()]) return false;};return true;};while (O.length>0){var W=O.shift();var N=W.parentNode;if (W==W.parentNode.firstChild) N.parentNode.insertBefore(N.removeChild(W),N);else if (W==W.parentNode.lastChild) N.parentNode.insertBefore(N.removeChild(W),N.nextSibling);else FCKDomTools.BreakParent(W,W.parentNode,B);if (!N._fckbqprocessed){T.push(N);FCKDomTools.SetElementMarker(P,N,'_fckbqprocessed',true);};S.push(W);};for (var i=T.length-1;i>=0;i--){var N=T[i];if (U(N)) FCKDomTools.RemoveNode(N);};FCKDomTools.ClearAllMarkers(P);if (FCKConfig.EnterMode.IEquals('br')){while (S.length){var W=S.shift();var a=true;if (W.nodeName.IEquals('div')){var M=FCKTools.GetElementDocument(W).createDocumentFragment();var c=a&&W.previousSibling&&!FCKListsLib.BlockBoundaries[W.previousSibling.nodeName.toLowerCase()];if (a&&c) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));var d=W.nextSibling&&!FCKListsLib.BlockBoundaries[W.nextSibling.nodeName.toLowerCase()];while (W.firstChild) M.appendChild(W.removeChild(W.firstChild));if (d) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));W.parentNode.replaceChild(M,W);a=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 'VisitLink':B=new FCKVisitLinkCommand();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 'Nbsp':B=new FCKNbsp();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 'CreateDiv':B=new FCKDialogCommand('CreateDiv',FCKLang.CreateDiv,'dialog/fck_div.html',380,210,null,null,true);break;case 'EditDiv':B=new FCKDialogCommand('EditDiv',FCKLang.EditDiv,'dialog/fck_div.html',380,210,null,null,false);break;case 'DeleteDiv':B=new FCKDeleteDivCommand();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');FCKTools.ResetStyles(D);D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.style.width=D.style.height='0px';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.ResizeForSubpanel=function(A,B,C){if (!FCKBrowserInfo.IsIE7) return false;if (!this._Popup.isOpen){this.Subpanel=null;return false;};if (B==0&&C==0){if (this.Subpanel!==A) return false;this.Subpanel=null;this.IncreasedX=0;}else{this.Subpanel=A;if ((this.IncreasedX>=B)&&(this.IncreasedY>=C)) return false;this.IncreasedX=Math.max(this.IncreasedX,B);this.IncreasedY=Math.max(this.IncreasedY,C);};var x=this.ShowRect.x;var w=this.IncreasedX;if (this.IsRTL) x=x-w;var D=this.ShowRect.w+w;var E=Math.max(this.ShowRect.h,this.IncreasedY);if (this.ParentPanel) this.ParentPanel.ResizeForSubpanel(this,D,E);this._Popup.show(x,this.ShowRect.y,D,E,this.RelativeElement);return this.IsRTL;};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 (FCKBrowserInfo.IsIE7){if (this.ParentPanel&&this.ParentPanel.ResizeForSubpanel(this,D,E.offsetHeight)){FCKTools.RunFunction(this.Show,this,[x,y,A]);return;}};if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};if (FCKBrowserInfo.IsIE7){this.ShowRect={x:x,y:y,w:D,h:E.offsetHeight};this.IncreasedX=0;this.IncreasedY=0;this.RelativeElement=A;};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.style.width=N+'px';M._IFrame.style.height=O+'px';},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.style.width=this._IFrame.style.height='0px';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;if (this._Popup&&this.ParentPanel&&!A) this.ParentPanel.ResizeForSubpanel(this,0,0);FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;this.RelativeElement=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 'CreateDiv':B=new FCKToolbarButton('CreateDiv',FCKLang.CreateDiv,null,null,false,true,74);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'});};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save(true);var J=FCKTools.GetViewPaneSize(D);var K={ 'X':0,'Y':0 };var L=FCKBrowserInfo.IsIE&&(!FCKBrowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));if (L) K=FCKTools.GetScrollPosition(D);var M=Math.max(K.Y+(J.Height-height-20)/2,0);var N=Math.max(K.X+(J.Width-width-20)/2,0);var O=E.createElement('iframe');FCKTools.ResetStyles(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=I;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');FCKTools.ResetStyles(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');FCKTools.ResetStyles(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();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R._fck_originalTabIndex=R.tabIndex;R.tabIndex=-1;},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R.tabIndex=R._fck_originalTabIndex;FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},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){if (FCKConfig.BrowserContextMenu) return true;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;if (FCKConfig.BrowserContextMenu) return true;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){if (FCKConfig.BrowserContextMenu) return true;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))||FCKConfig.BrowserContextMenu) 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();menu.AddItem('VisitLink',FCKLang.VisitLink);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);}}};case 'DivContainer':return {AddItems:function(menu,tag,tagName){var J=FCKDomTools.GetSelectedDivContainers();if (J.length>0){menu.AddSeparator();menu.AddItem('EditDiv',FCKLang.EditDiv,75);menu.AddItem('DeleteDiv',FCKLang.DeleteDiv,76);}}};};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){if (!FCKBrowserInfo.IsIE) 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_ie.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_ie.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_ie.js	(revision 1130)
@@ -0,0 +1,109 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.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||(FCKConfig.MsWebBrowserControlCompat&&!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),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),IsMac:s.Contains('macintosh')};(function(A){A.IsGecko=(navigator.product=='Gecko')&&!A.IsSafari&&!A.IsOpera;A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/rv:(\d+\.\d+)/);var C=B&&parseFloat(B[1]);if (C){A.IsGecko10=(C<1.8);A.IsGecko19=(C>1.8);}}})(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) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45) 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;break;case 8:if (E) F=true;break;};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);};FCKTempBin.Reset();FCK.Selection.Release();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 (FCKBrowserInfo.IsIE) FCKTempBin.ToHtml();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);C.MoveToSelection();C.DeleteContents();if (FCKListsLib.BlockElements[B]!=null){if (C.StartBlock){if (C.CheckStartOfBlock()) C.MoveToPosition(C.StartBlock,3);else if (C.CheckEndOfBlock()) C.MoveToPosition(C.StartBlock,4);else 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.IsGeckoLike){if (D) FCKDomTools.ScrollIntoView(D,false);FCKDomTools.ScrollIntoView(A,false);}}else{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){if (FCKSelection._GetSelectionDocument(FCK.EditorDocument.selection)!=FCK.EditorDocument) return;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;if (FCKBrowserInfo.IsIE) FCKTempBin.ToElements();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;},ToHtml:function(){for (var i=0;i<this.Elements.length;i++){this.Elements[i]='<div>&nbsp;'+this.Elements[i].outerHTML+'</div>';this.Elements[i].isHtml=true;}},ToElements:function(){var A=FCK.EditorDocument.createElement('div');for (var i=0;i<this.Elements.length;i++){if (this.Elements[i].isHtml){A.innerHTML=this.Elements[i];this.Elements[i]=A.firstChild.removeChild(A.firstChild.lastChild);}}}};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");}};(function(){var A=window.frameElement;var B=A.width;var C=A.height;if (/^\d+$/.test(B)) B+='px';if (/^\d+$/.test(C)) C+='px';var D=A.style;D.border=D.padding=D.margin=0;D.backgroundColor='transparent';D.backgroundImage='none';D.width=B;D.height=C;})();
+FCK.Description="FCKeditor for Internet Explorer 5.5+";FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.BasePath;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("onbeforedeactivate",function(){ FCKSelection.Save();});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);FCKSelection.Restore();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);}else FCKConfig.BasePath=document.location.protocol+'//'+document.location.host+document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=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) {  }};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.push([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.push(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={Output:function(){},OutputObject:function(){}};
+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()*0xffffffff,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||0;E+=parseInt(this.GetCurrentElementStyle(A,'marginBottom')||0,10)||0;};var F=FCKTools.GetDocumentPosition(C,A);E+=F.y;var G=FCKTools.GetScrollPosition(C).Y;if (E>0&&(E>G||E<G-D)) 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]);},GetSelectedDivContainers:function(){var A=[];var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.GetTouchedStartNode();var D=B.GetTouchedEndNode();var E=C;if (C==D){while (D.nodeType==1&&D.lastChild) D=D.lastChild;D=FCKDomTools.GetNextSourceNode(D);}while (E&&E!=D){if (E.nodeType!=3||!/^[ \t\n]*$/.test(E.nodeValue)){var F=new FCKElementPath(E);var G=F.BlockLimit;if (G&&G.nodeName.IEquals('div')&&A.IndexOf(G)==-1) A.push(G);};E=FCKDomTools.GetNextSourceNode(E);};return A;}};
+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 (/[\\\/\.][^{}]*$/.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 (/[\\\/\.][^{}]*$/.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.ResetStyles=function(A){A.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';};
+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':if (document.location.protocol!='file:') 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.4.1",VersionBuild : "23187",Instances : window.FCKeditorAPI && window.FCKeditorAPI.Instances || {},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	: window.FCKeditorAPI && window.FCKeditorAPI._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){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.FCKConfig&&FCKConfig.MsWebBrowserControlCompat&&!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){if (window.FCKConfig&&FCKConfig.MsWebBrowserControlCompat) 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,HtmlDocType:/DTD HTML/,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',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',is:'Icelandic',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','>':'gt','ห':'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={'>':'gt'};A='>';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();if (FCKConfig.DocType.length>0&&FCKRegexLib.HtmlDocType.test(FCKConfig.DocType)) E=E.replace(FCKRegexLib.SpaceNoClose,'>');else 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.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')){if (B.nextSibling) return false;else{B.removeAttribute('_moz_editor_bogus_node');B.removeAttribute('type');}};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) {};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.push(A)-1);};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);if (B.style.width) A.removeAttribute('width');if (B.style.height) A.removeAttribute('height');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,bHasStyle;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'){bHasStyle=true;continue;}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);}};if (bHasStyle||B.style.cssText.length>0){var I=FCKTools.ProtectFormStyles(B);var J=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);FCKTools.RestoreFormStyles(B,I);this._AppendAttribute(C,'style',J);}};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|DL|DT|DD|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|DL|DT|DD|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|DL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \>]/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.push(C)-1)+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.style.width=H.style.height='100%';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A.replace(/<head>/i,'<head>'+I);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(A.replace(/<head>/i,'<head>'+I));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;setTimeout(function(){try{K.Window.document.documentElement.doScroll("left");}catch(e){setTimeout(arguments.callee,0);return;};K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);},0);}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;A.body.offsetLeft;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;},_CheckAndMergePre:function(A,B){if (A!=FCKDomTools.GetPreviousSourceElement(B,true)) return;var C=A.innerHTML.replace(/\n$/,'')+'\n\n'+B.innerHTML.replace(/^\n/,'');if (FCKBrowserInfo.IsIE) B.outerHTML='<pre>'+C+'</pre>';else B.innerHTML=C;FCKDomTools.RemoveNode(A);},_CheckAndSplitPre:function(A){var B;var C=A.firstChild;C=C&&C.nextSibling;while (C){var D=C.nextSibling;if (D&&D.nextSibling&&C.nodeName.IEquals('br')&&D.nodeName.IEquals('br')){FCKDomTools.RemoveNode(C);C=D.nextSibling;FCKDomTools.RemoveNode(D);B=FCKDomTools.InsertAfterNode(B||A,FCKDomTools.CloneElement(A));continue;};if (B){C=C.previousSibling;FCKDomTools.MoveNode(C.nextSibling,B);};C=C.nextSibling;}},_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;while((F=E.GetNextParagraph())){var I=this.BuildElement(G);var J=I.nodeName.IEquals('pre');var K=F.nodeName.IEquals('pre');var L=J&&!K;var M=!J&&K;if (L) I=this._ToPre(G,F,I);else if (M) I=this._FromPre(G,F,I);else FCKDomTools.MoveChildren(F,I);F.parentNode.insertBefore(I,F);FCKDomTools.RemoveNode(F);if (J){if (H) this._CheckAndMergePre(H,I);H=I;}else if (M) this._CheckAndSplitPre(I);};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=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A.collapsed){this.EndNode=this.StartNode;this.EndContainer=this.StartContainer;this.EndBlock=this.StartBlock;this.EndBlockLimit=this.StartBlockLimit;}else{var D=A.endContainer;if (B!=D) C=new FCKElementPath(D);var E=D;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=D;this.EndBlock=C.Block;this.EndBlockLimit=C.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&&D.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;}while (C&&C.nodeType==3&&E.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);if (FCKDomTools.CheckIsEmptyElement(D,function(element) { return element.getAttribute('_fck_bookmark')!='true';})&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(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=FCKDomTools.GetNextSourceNode(H,true,null,I)||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'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);this.TabText='';if (D>0||FCKBrowserInfo.IsSafari){while (D--) this.TabText+='\xa0';E.SetKeystrokes([9,'Tab']);};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;};if (FCKBrowserInfo.IsIE){var F=FCKDomTools.GetPreviousSourceElement(B.StartNode,true);if (F&&F.nodeName.toLowerCase()=='br'){var G=B.Clone();G.SetStart(F,4);if (G.CheckIsEmpty()){F.parentNode.removeChild(F);return true;}}};var H=B.StartBlock;var I=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&H&&I){if (!C){var J=B.CheckEndOfBlock();B.DeleteContents();if (H!=I){B.SetStart(I,1);B.SetEnd(I,1);};B.Select();A=(H==I);};if (B.CheckStartOfBlock()){var K=B.StartBlock;var L=FCKDomTools.GetPreviousSourceElement(K,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,L,K);}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.IsGeckoLike){if (F){var M=this.Window.document.createElement('span');M.innerHTML='&nbsp;';C.InsertNode(M);FCKDomTools.ScrollIntoView(M,false);C.DeleteContents();}else{FCKDomTools.ScrollIntoView(F||I,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);FCKDomTools.ScrollIntoView(I,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.push(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.BasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var 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);};var F=function(elementName,doc){var G=doc.getElementsByTagName(elementName);for (var i=G.length-1;i>=0;i--) B(G[i]);};var H=function(doc){F('object',doc);F('embed',doc);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){if (FCKBrowserInfo.IsGecko) FCKTools.RunFunction(H,this,[doc]);else H(doc);},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);});if (FCKBrowserInfo.IsSafari){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByClassName?A.getElementsByClassName('Apple-style-span'):Array.prototype.filter.call(A.getElementsByTagName('span'),function(item){ return item.className=='Apple-style-span';});for (var i=B.length-1;i>=0;i--) FCKDomTools.RemoveNode(B[i],true);}};
+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.nodeName.IEquals(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.Equals(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(A){var B=FCK.EditorDocument;if (!B) return;if (this.locked) return;this.locked=!!A;var C=B.selection;var D;if (C){try {D=C.createRange();}catch(e) {};if (D){if (D.parentElement&&FCKTools.GetElementDocument(D.parentElement())!=B) D=null;else if (D.item&&FCKTools.GetElementDocument(D.item(0))!=B) D=null;}};this.SelectionData=D;};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 (String(this._GetSelectionDocument(FCK.EditorDocument.selection).body.contentEditable)=='true'){FCK.IsSelectionChangeLocked=false;return;};this.SelectionData.select();}catch (e) {};FCK.IsSelectionChangeLocked=false;}};FCKSelection.Release=function(){this.locked=false;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=B[i].parentNode;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];F.insertBefore(B,(A?G:G.nextSibling));}};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(A.parentNode);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++){FCKDomTools.ClearElementJSProperty(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;for (var i=0;i<A.length;i++){if (A[i].parentNode.parentNode!=A[0].parentNode.parentNode) return false;};this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0]);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);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(FCK.EditorDocument.createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.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.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(FCK.EditorDocument.createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.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);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=FCK.EditorDocument.createElement(B.nodeName);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(FCK.EditorDocument.createElement(B.nodeName));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.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;var G=B.rowSpan;if (isNaN(G)) G=1;if (G>1){B.rowSpan=Math.ceil(G/2);var H=D+Math.ceil(G/2);var I=C[H];var J=null;for (var i=E+1;i<I.length;i++){if (I[i].parentNode.rowIndex==H){J=I[i];break;}};var K=FCK.EditorDocument.createElement(B.nodeName);K.rowSpan=Math.floor(G/2);if (F>1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);B.parentNode.parentNode.parentNode.rows[H].insertBefore(K,J);}else{var L=B.parentNode.sectionRowIndex+1;var M=FCK.EditorDocument.createElement('tr');var N=B.parentNode.parentNode;if (N.rows.length>L) N.insertBefore(M,N.rows[L]);else N.appendChild(M);for (var i=0;i<C[D].length;){var O=C[D][i].colSpan;if (isNaN(O)||O<1) O=1;if (i==E){i+=O;continue;};var P=C[D][i].rowSpan;if (isNaN(P)) P=1;C[D][i].rowSpan=P+1;i+=O;};var K=FCK.EditorDocument.createElement(B.nodeName);if (F>1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);M.appendChild(K);}};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._CreateTableMap=function(A){var B=(A.nodeName=='TABLE'?A:A.parentNode.parentNode.parentNode);var C=B.rows;var r=-1;var D=[];for (var i=0;i<C.length;i++){r++;if (!D[r]) D[r]=[];var c=-1;for (var j=0;j<C[i].cells.length;j++){var E=C[i].cells[j];c++;while (D[r][c]) c++;var F=isNaN(E.colSpan)?1:E.colSpan;var G=isNaN(E.rowSpan)?1:E.rowSpan;for (var H=0;H<G;H++){if (!D[r+H]) D[r+H]=[];for (var I=0;I<F;I++){D[r+H][c+I]=C[i].cells[j];}};c+=F-1;}};return D;};FCKTableHandler._InstallTableMap=function(A,B){var C=FCKBrowserInfo.IsIE?"_fckrowspan":"rowSpan";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[C]=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[C]++;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];FCKDomTools.ClearElementJSProperty(D,'_colScanned');FCKDomTools.ClearElementJSProperty(D,'_rowScanned');}};for (var i=0;i<A.length;i++){var I=FCK.EditorDocument.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);if (C!='rowSpan'){D.rowSpan=D[C];D.removeAttribute(C);};j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};if (FCKBrowserInfo.IsIE){B.rows[i].replaceNode(I);}else{B.rows[i].innerHTML='';FCKDomTools.MoveChildren(I,B.rows[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);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);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;if (B.parentNode.parentNode!=G.parentNode.parentNode) 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','TH']);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||(B.status==0&&B.readyState==4)){this.DOMDocument=B.responseXML;if (!this.DOMDocument||this.DOMDocument.firstChild==null){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 FCKVisitLinkCommand=function(){this.Name='VisitLink';};FCKVisitLinkCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState('Unlink');if (A==0){var B=FCKSelection.MoveToAncestorNode('A');if (!B.href) A=-1;};return A;},Execute:function(){var A=FCKSelection.MoveToAncestorNode('A');var B=A.getAttribute('_fcksavedurl')||A.getAttribute('href',2);if (!/:\/\//.test(B)){var C=FCKConfig.BaseHref;var D=FCK.GetInstanceObject('parent');if (!C){C=D.document.location.href;C=C.substring(0,C.lastIndexOf('/')+1);};if (/^\//.test(B)){try{C=C.match(/^.*:\/\/+[^\/]+/)[0];}catch (e){C=D.document.location.protocol+'://'+D.parent.document.location.host;}};B=C+B;};if (!window.open(B,'_blank')) alert(FCKLang.VisitLinkBlocked);}};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 FCKDeleteDivCommand=function(){};FCKDeleteDivCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCKSelection.GetParentElement();var B=new FCKElementPath(A);return B.BlockLimit&&B.BlockLimit.nodeName.IEquals('div')?0:-1;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCKDomTools.GetSelectedDivContainers();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();for (var i=0;i<A.length;i++) FCKDomTools.RemoveNode(A[i],true);B.MoveToBookmark(C);B.Select();}};var FCKNbsp=function(){this.Name='Non Breaking Space';};FCKNbsp.prototype={Execute:function(){FCK.InsertHtml('&nbsp;');},GetState:function(){return (FCK.EditMode!=0?-1:0);}};
+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';if (FCKBrowserInfo.IsIE){try{FCK.EditorDocument.selection.createRange().select();}catch (e){}}else{var C=FCK.EditorWindow.getSelection().focusNode;if (C){if (C.nodeType!=1) C=C.parentNode;FCKDomTools.ScrollIntoView(C,false);}};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=true;};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;case 'WSC':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','wsc/w.html',530,480);}};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;var H,oEditorScrollPos;if (FCK.EditMode==0){H=new FCKDomRange(FCK.EditorWindow);H.MoveToSelection();oEditorScrollPos=FCKTools.GetScrollPosition(FCK.EditorWindow);}else{var I=FCK.EditingArea.Textarea;H=!FCKBrowserInfo.IsIE&&[I.selectionStart,I.selectionEnd];oEditorScrollPos=[I.scrollLeft,I.scrollTop];};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 J=FCKTools.GetViewPaneSize(C);B.position="absolute";A.offsetLeft;B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=J.Width+"px";B.height=J.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);var K=FCKTools.GetWindowPosition(C,A);if (K.x!=0) B.left=(-1*K.x)+"px";if (K.y!=0) B.top=(-1*K.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();if (FCK.EditMode==0){H.Select();FCK.EditorWindow.scrollTo(oEditorScrollPos.X,oEditorScrollPos.Y);}else{if (!FCKBrowserInfo.IsIE){I.selectionStart=H[0];I.selectionEnd=H[1];};I.scrollLeft=oEditorScrollPos[0];I.scrollTop=oEditorScrollPos[1];}};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){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();}while (J.nodeName.IEquals('table','tbody','tr','ol','ul')) J=J.parentNode;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=[];var P={};while ((H=G.GetNextParagraph())){var Q=null;var R=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){Q=H.parentNode;R=H;break;};H=H.parentNode;};if (Q&&R&&!R._fckblockquotemoveout){O.push(R);FCKDomTools.SetElementMarker(P,R,'_fckblockquotemoveout',true);}};FCKDomTools.ClearAllMarkers(P);var S=[];var T=[],P={};var U=function(N){for (var i=0;i<N.childNodes.length;i++){if (FCKListsLib.BlockElements[N.childNodes[i].nodeName.toLowerCase()]) return false;};return true;};while (O.length>0){var W=O.shift();var N=W.parentNode;if (W==W.parentNode.firstChild) N.parentNode.insertBefore(N.removeChild(W),N);else if (W==W.parentNode.lastChild) N.parentNode.insertBefore(N.removeChild(W),N.nextSibling);else FCKDomTools.BreakParent(W,W.parentNode,B);if (!N._fckbqprocessed){T.push(N);FCKDomTools.SetElementMarker(P,N,'_fckbqprocessed',true);};S.push(W);};for (var i=T.length-1;i>=0;i--){var N=T[i];if (U(N)) FCKDomTools.RemoveNode(N);};FCKDomTools.ClearAllMarkers(P);if (FCKConfig.EnterMode.IEquals('br')){while (S.length){var W=S.shift();var a=true;if (W.nodeName.IEquals('div')){var M=FCKTools.GetElementDocument(W).createDocumentFragment();var c=a&&W.previousSibling&&!FCKListsLib.BlockBoundaries[W.previousSibling.nodeName.toLowerCase()];if (a&&c) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));var d=W.nextSibling&&!FCKListsLib.BlockBoundaries[W.nextSibling.nodeName.toLowerCase()];while (W.firstChild) M.appendChild(W.removeChild(W.firstChild));if (d) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));W.parentNode.replaceChild(M,W);a=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 'VisitLink':B=new FCKVisitLinkCommand();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 'Nbsp':B=new FCKNbsp();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 'CreateDiv':B=new FCKDialogCommand('CreateDiv',FCKLang.CreateDiv,'dialog/fck_div.html',380,210,null,null,true);break;case 'EditDiv':B=new FCKDialogCommand('EditDiv',FCKLang.EditDiv,'dialog/fck_div.html',380,210,null,null,false);break;case 'DeleteDiv':B=new FCKDeleteDivCommand();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');FCKTools.ResetStyles(D);D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.style.width=D.style.height='0px';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.ResizeForSubpanel=function(A,B,C){if (!FCKBrowserInfo.IsIE7) return false;if (!this._Popup.isOpen){this.Subpanel=null;return false;};if (B==0&&C==0){if (this.Subpanel!==A) return false;this.Subpanel=null;this.IncreasedX=0;}else{this.Subpanel=A;if ((this.IncreasedX>=B)&&(this.IncreasedY>=C)) return false;this.IncreasedX=Math.max(this.IncreasedX,B);this.IncreasedY=Math.max(this.IncreasedY,C);};var x=this.ShowRect.x;var w=this.IncreasedX;if (this.IsRTL) x=x-w;var D=this.ShowRect.w+w;var E=Math.max(this.ShowRect.h,this.IncreasedY);if (this.ParentPanel) this.ParentPanel.ResizeForSubpanel(this,D,E);this._Popup.show(x,this.ShowRect.y,D,E,this.RelativeElement);return this.IsRTL;};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 (FCKBrowserInfo.IsIE7){if (this.ParentPanel&&this.ParentPanel.ResizeForSubpanel(this,D,E.offsetHeight)){FCKTools.RunFunction(this.Show,this,[x,y,A]);return;}};if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};if (FCKBrowserInfo.IsIE7){this.ShowRect={x:x,y:y,w:D,h:E.offsetHeight};this.IncreasedX=0;this.IncreasedY=0;this.RelativeElement=A;};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.style.width=N+'px';M._IFrame.style.height=O+'px';},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.style.width=this._IFrame.style.height='0px';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;if (this._Popup&&this.ParentPanel&&!A) this.ParentPanel.ResizeForSubpanel(this,0,0);FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;this.RelativeElement=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 'CreateDiv':B=new FCKToolbarButton('CreateDiv',FCKLang.CreateDiv,null,null,false,true,74);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'});};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save(true);var J=FCKTools.GetViewPaneSize(D);var K={ 'X':0,'Y':0 };var L=FCKBrowserInfo.IsIE&&(!FCKBrowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));if (L) K=FCKTools.GetScrollPosition(D);var M=Math.max(K.Y+(J.Height-height-20)/2,0);var N=Math.max(K.X+(J.Width-width-20)/2,0);var O=E.createElement('iframe');FCKTools.ResetStyles(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=I;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');FCKTools.ResetStyles(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');FCKTools.ResetStyles(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();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R._fck_originalTabIndex=R.tabIndex;R.tabIndex=-1;},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R.tabIndex=R._fck_originalTabIndex;FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},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){if (FCKConfig.BrowserContextMenu) return true;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;if (FCKConfig.BrowserContextMenu) return true;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){if (FCKConfig.BrowserContextMenu) return true;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))||FCKConfig.BrowserContextMenu) 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();menu.AddItem('VisitLink',FCKLang.VisitLink);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);}}};case 'DivContainer':return {AddItems:function(menu,tag,tagName){var J=FCKDomTools.GetSelectedDivContainers();if (J.length>0){menu.AddSeparator();menu.AddItem('EditDiv',FCKLang.EditDiv,75);menu.AddItem('DeleteDiv',FCKLang.DeleteDiv,76);}}};};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){if (!FCKBrowserInfo.IsIE) 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/fckadobeair.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/fckadobeair.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/js/fckadobeair.js	(revision 1130)
@@ -0,0 +1,176 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.BasePath + 'css/fck_internal.css' ;
+			window.FCK_ShowTableBordersCSS	= FCKConfig.BasePath + 'css/fck_showtableborders_gecko.css' ;
+
+			_Original_FCK_StartEditor.apply( this, arguments ) ;
+		}
+	})();
+}
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fo.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fo.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fo.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Opna tilknรฝti",
+Anchor				: "Ger/broyt marknastein",
+AnchorDelete		: "Strika marknastein",
+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",
+CreateDiv			: "Ger DIV รธki",
+EditDiv				: "Broyt DIV รธki",
+DeleteDiv			: "Strika DIV รธki",
+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		: "Vรญs blokkar",
+
+// Context Menu
+EditLink			: "Broyt tilknรฝti",
+CellCM				: "Meski",
+RowCM				: "Raรฐ",
+ColumnCM			: "Kolonna",
+InsertRowAfter		: "Set raรฐ inn aftanรก",
+InsertRowBefore		: "Set raรฐ inn รกรฐrenn",
+DeleteRows			: "Strika rรธรฐir",
+InsertColumnAfter	: "Set kolonnu inn aftanรก",
+InsertColumnBefore	: "Set kolonnu inn รกรฐrenn",
+DeleteColumns		: "Strika kolonnur",
+InsertCellAfter		: "Set meska inn aftanรก",
+InsertCellBefore	: "Set meska inn รกรฐrenn",
+DeleteCells			: "Strika meskar",
+MergeCells			: "Flรฆtta meskar",
+MergeRight			: "Flรฆtta meskar til hรธgru",
+MergeDown			: "Flรฆtta saman",
+HorizontalSplitCell	: "Kloyv meska vatnrรฆtt",
+VerticalSplitCell	: "Kloyv meska loddrรฆtt",
+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.",
+VisitLinkBlocked	: "Taรฐ eyรฐnaรฐist ikki at opna nรฝggjan rรบt. 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+DlgCellRowSpan		: "Rรธรฐir, meskin fevnir um",
+DlgCellCollSpan		: "Kolonnur, meskin fevnir um",
+DlgCellBackColor	: "Bakgrundslitur",
+DlgCellBorderColor	: "Litur รก borda",
+DlgCellBtnSelect	: "Vel...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Finn og broyt",
+
+// 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		: "Trygdaruppseting alnรณtskagans forรฐar tekstviรฐgeranum รญ beinleiรฐis atgongd til avritingarminniรฐ. Tygum mugu royna aftur รญ hesum rรบtinum.",
+DlgPasteIgnoreFont		: "Forfjรณna Font definitiรณnirnar",
+DlgPasteRemoveStyles	: "Strika typografi definitiรณnir",
+
+// Color Picker
+ColorAutomatic	: "Automatiskt",
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "Generelt",
+DlgDivAdvancedTab	: "Fjรธlbroytt",
+DlgDivStyle		: "Typografi",
+DlgDivInlineStyle	: "Inline typografi"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/bs.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/bs.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/bs.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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
+VisitLinkBlocked	: "It was not possible to open a new 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
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/cs.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/cs.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/cs.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Otevลรญt 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",
+CreateDiv			: "Vytvoลit Div kontejner",
+EditDiv				: "Upravit Div kontejner",
+DeleteDiv			: "Odstranit Div kontejner",
+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.",
+VisitLinkBlocked	: "Nenรญ moลพnรฉ otevลรญt novรฉ okno. Provฤลte, zda vลกechny nรกstroje pro blokovรกnรญ vyskakovacรญch oken jsou vypnuty.",
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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ลรญ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "Obecnรฉ",
+DlgDivAdvancedTab	: "Rozลกรญลenรฉ",
+DlgDivStyle		: "Styl",
+DlgDivInlineStyle	: "Vloลพenรฝ styl"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en-au.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en-au.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en-au.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open 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",
+CreateDiv			: "Create Div Container",
+EditDiv				: "Edit Div Container",
+DeleteDiv			: "Remove Div Container",
+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.",
+VisitLinkBlocked	: "It was not possible to open a new 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",
+DlgCellTypeData		: "Data",
+DlgCellTypeHeader	: "Header",
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",
+DlgDivAdvancedTab	: "Advanced",
+DlgDivStyle		: "Style",
+DlgDivInlineStyle	: "Inline Style"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/es.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/es.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/es.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Abrir enlace",
+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",
+CreateDiv			: "Crear contenedor (div)",
+EditDiv				: "Editar contenedor (div)",
+DeleteDiv			: "Eliminar contenedor (div)",
+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).",
+VisitLinkBlocked	: "Nose ha podido abrir la ventana. Asegurese de que todos los bloqueadores de popups estรกn deshabilitados.",
+
+// 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",
+DlgTableHeaders		: "Encabezados",
+DlgTableHeadersNone		: "Ninguno",
+DlgTableHeadersColumn	: "Primera columna",
+DlgTableHeadersRow		: "Primera fila",
+DlgTableHeadersBoth		: "Ambas",
+
+// 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",
+DlgCellType		: "Tipo de celda",
+DlgCellTypeData		: "Datos",
+DlgCellTypeHeader	: "Encabezado",
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",
+DlgDivAdvancedTab	: "Avanzado",
+DlgDivStyle		: "Estilo",
+DlgDivInlineStyle	: "Estilos CSS"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/km.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/km.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/km.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "แแแแแแแถแแ",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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) แแถแแพแแถแแแแพแแแถแแแบแแ แ",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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		: "แแแแแแแธแแแแแแ",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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	: "แแแแแถแแแแถแแผแแแแแถแ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "แแแแถแแแแแแแถแแแแแแแแแ แแผแแแถแแแแ",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/eu.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/eu.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/eu.js	(revision 1130)
@@ -0,0 +1,535 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 Formatua",
+InsertLinkLbl		: "Esteka",
+InsertLink			: "Txertatu/Editatu Esteka",
+RemoveLink			: "Kendu Esteka",
+VisitLink			: "Ireki 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",
+CreateDiv			: "Sortu Div Edukitzailea",
+EditDiv				: "Editatu Div Edukitzailea",
+DeleteDiv			: "Ezabatu Div Edukitzailea",
+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			: "Formatua",
+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 testua 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 segurtasun hobespenak editore honen zenbait ezaugarri mugatu ditzake. \"ActiveX kontrolak eta pluginak\" 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.",
+VisitLinkBlocked	: "Ezin da leiho berri bat 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			: "Ordezko Testua",
+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	: "Ertzik gabe",
+DlgFlashScaleFit	: "Doitu",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Esteka",
+DlgLnkInfoTab		: "Estekaren Informazioa",
+DlgLnkTargetTab		: "Helburua",
+
+DlgLnkType			: "Esteka Mota",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Aingura orrialde honetan",
+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 leihoa>",
+DlgLnkTargetBlank	: "Leiho Berria (_blank)",
+DlgLnkTargetParent	: "Leiho Gurasoa (_parent)",
+DlgLnkTargetSelf	: "Leiho Berdina (_self)",
+DlgLnkTargetTop		: "Goiko Leihoa (_top)",
+DlgLnkTargetFrameName	: "Marko Helburuaren Izena",
+DlgLnkPopWinName	: "Popup Leihoaren Izena",
+DlgLnkPopWinFeat	: "Popup Leihoaren 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 leihoaren 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Gelaxken Ezaugarriak",
+DlgCellWidth		: "Zabalera",
+DlgCellWidthPx		: "pixel",
+DlgCellWidthPc		: "ehuneko",
+DlgCellHeight		: "Altuera",
+DlgCellWordWrap		: "Itzulbira",
+DlgCellWordWrapNotSet	: "<Ezarri gabe>",
+DlgCellWordWrapYes	: "Bai",
+DlgCellWordWrapNo	: "Ez",
+DlgCellHorAlign		: "Lerrokatu Horizontalki",
+DlgCellHorAlignNotSet	: "<Ezarri gabe>",
+DlgCellHorAlignLeft	: "Ezkerrean",
+DlgCellHorAlignCenter	: "Erdian",
+DlgCellHorAlignRight: "Eskuman",
+DlgCellVerAlign		: "Lerrokatu Bertikalki",
+DlgCellVerAlignNotSet	: "<Ezarri gabe>",
+DlgCellVerAlignTop	: "Goian",
+DlgCellVerAlignMiddle	: "Erdian",
+DlgCellVerAlignBottom	: "Behean",
+DlgCellVerAlignBaseline	: "Oinean",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+DlgCellRowSpan		: "Lerroak Hedatu",
+DlgCellCollSpan		: "Zutabeak Hedatu",
+DlgCellBackColor	: "Atzeko Kolorea",
+DlgCellBorderColor	: "Ertzako Kolorea",
+DlgCellBtnSelect	: "Aukeratu...",
+
+// 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	: "Metodoa",
+
+// 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		: "Atzealdea",
+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 Atzealdea",
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "Orokorra",
+DlgDivAdvancedTab	: "Aurreratua",
+DlgDivStyle		: "Estiloa",
+DlgDivInlineStyle	: "Inline Estiloa"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ko.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ko.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ko.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "๋งํฌ ์ญ์ ",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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		: "์๋์ฐ ๋ํ์ฐฝ์ ์ด ์ ์์ต๋๋ค. ํ์์ฐจ๋จ ์ค์ ์ด ๊บผ์ ธ์๋์ง ํ์ธํ์ฌ ์ฃผ์ญ์์ค.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "์ ์ค์ ",
+DlgCellWidth		: "๋๋น",
+DlgCellWidthPx		: "ํฝ์",
+DlgCellWidthPc		: "ํผ์ผํธ",
+DlgCellHeight		: "๋์ด",
+DlgCellWordWrap		: "์๋๋ฉ",
+DlgCellWordWrapNotSet	: "<์ค์ ๋์ง ์์>",
+DlgCellWordWrapYes	: "์",
+DlgCellWordWrapNo	: "์๋์ค",
+DlgCellHorAlign		: "์ํ ์ ๋ ฌ",
+DlgCellHorAlignNotSet	: "<์ค์ ๋์ง ์์>",
+DlgCellHorAlignLeft	: "์ผ์ชฝ",
+DlgCellHorAlignCenter	: "๊ฐ์ด๋ฐ",
+DlgCellHorAlignRight: "์ค๋ฅธ์ชฝ",
+DlgCellVerAlign		: "์์ง ์ ๋ ฌ",
+DlgCellVerAlignNotSet	: "<์ค์ ๋์ง ์์>",
+DlgCellVerAlignTop	: "์",
+DlgCellVerAlignMiddle	: "์ค๊ฐ",
+DlgCellVerAlignBottom	: "์๋",
+DlgCellVerAlignBaseline	: "๊ธฐ์ค์ ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "๋ ๋ง์ ์ ๋ณด๋ฅผ ๋ณด์๋ ค๋ฉด ๋ค์ ์ฌ์ดํธ๋ก ๊ฐ์ญ์์ค.",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/hu.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/hu.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/hu.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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",
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//MISSING
+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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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:",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/no.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/no.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/no.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "รpne lenke",
+Anchor				: "Sett inn/Rediger anker",
+AnchorDelete		: "Fjern anker",
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//MISSING
+Undo				: "Angre",
+Redo				: "Gjรธr om",
+NumberedListLbl		: "Nummerert liste",
+NumberedList		: "Sett inn/Fjern nummerert 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				: "Sรธk",
+Replace				: "Erstatt",
+SpellCheck			: "Stavekontroll",
+UniversalKeyboard	: "Universelt tastatur",
+PageBreakLbl		: "Sideskift",
+PageBreak			: "Sett inn sideskift",
+
+Form			: "Skjema",
+Checkbox		: "Avmerkingsboks",
+RadioButton		: "Alternativknapp",
+TextField		: "Tekstboks",
+Textarea		: "Tekstomrรฅde",
+HiddenField		: "Skjult felt",
+Button			: "Knapp",
+SelectionField	: "Rullegardinliste",
+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		: "Sett inn rad etter",
+InsertRowBefore		: "Sett inn rad fรธr",
+DeleteRows			: "Slett rader",
+InsertColumnAfter	: "Sett inn kolonne etter",
+InsertColumnBefore	: "Sett inn kolonne fรธr",
+DeleteColumns		: "Slett kolonner",
+InsertCellAfter		: "Sett inn celle etter",
+InsertCellBefore	: "Sett inn celle fรธr",
+DeleteCells			: "Slett celler",
+MergeCells			: "Slรฅ sammen celler",
+MergeRight			: "Slรฅ sammen hรธyre",
+MergeDown			: "Slรฅ sammen ned",
+HorizontalSplitCell	: "Del celle horisontalt",
+VerticalSplitCell	: "Del celle vertikalt",
+TableDelete			: "Slett tabell",
+CellProperties		: "Egenskaper for celle",
+TableProperties		: "Egenskaper for tabell",
+ImageProperties		: "Egenskaper for bilde",
+FlashProperties		: "Egenskaper for Flash-objekt",
+
+AnchorProp			: "Egenskaper for anker",
+ButtonProp			: "Egenskaper for knapp",
+CheckboxProp		: "Egenskaper for avmerkingsboks",
+HiddenFieldProp		: "Egenskaper for skjult felt",
+RadioButtonProp		: "Egenskaper for alternativknapp",
+ImageButtonProp		: "Egenskaper for bildeknapp",
+TextFieldProp		: "Egenskaper for tekstfelt",
+SelectionFieldProp	: "Egenskaper for rullegardinliste",
+TextareaProp		: "Egenskaper for tekstomrรฅde",
+FormProp			: "Egenskaper for skjema",
+
+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. Vil du rense den for unรธdvendig kode fรธr du limer inn?",
+NotCompatiblePaste	: "Denne kommandoen er kun tilgjenglig for Internet Explorer versjon 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 implimentert",
+UnknownToolbarSet	: "Verktรธylinjesett \"%1\" finnes ikke",
+NoActiveX			: "Din nettlesers sikkerhetsinstillinger kan begrense noen av funksjonene i redigeringsverktรธyet. Du mรฅ aktivere \"Kjรธr ActiveX-kontroller og plugin-modeller\". Du kan oppleve feil og advarsler om manglende funksjoner",
+BrowseServerBlocked : "Kunne ikke รฅpne dialogboksen for filarkiv. Sjekk at popup-blokkering er deaktivert.",
+DialogBlocked		: "Kunne ikke รฅpne dialogboksen. Sjekk at popup-blokkering er deaktivert.",
+VisitLinkBlocked	: "Kunne ikke รฅpne et nytt vindu. Sjekk at popup-blokkering er deaktivert.",
+
+// 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รฅkkode",
+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 bilde-urlen",
+DlgImgLinkTab		: "Lenke",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash-egenskaper",
+DlgFlashChkPlay		: "Autospill",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Slรฅ pรฅ Flash-meny",
+DlgFlashScale		: "Skaler",
+DlgFlashScaleAll	: "Vis alt",
+DlgFlashScaleNoBorder	: "Ingen ramme",
+DlgFlashScaleFit	: "Skaler til รฅ passe",
+
+// 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 et 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	: "Foreldrevindu (_parent)",
+DlgLnkTargetSelf	: "Samme vindu (_self)",
+DlgLnkTargetTop		: "Hele vindu (_top)",
+DlgLnkTargetFrameName	: "Mรฅlramme",
+DlgLnkPopWinName	: "Navn pรฅ popup-vindus",
+DlgLnkPopWinFeat	: "Egenskaper for popup-vindu",
+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 et 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	: "Valgt",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Sett inn smil",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Velg spesielt tegn",
+
+// Table Dialog
+DlgTableTitle		: "Egenskaper for tabell",
+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	: "Cellemarg",
+DlgTableCellPad		: "Cellepolstring",
+DlgTableCaption		: "Tittel",
+DlgTableSummary		: "Sammendrag",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+DlgCellRowSpan		: "Radspenn",
+DlgCellCollSpan		: "Kolonnespenn",
+DlgCellBackColor	: "Bakgrunnsfarge",
+DlgCellBorderColor	: "Rammefarge",
+DlgCellBtnSelect	: "Velg...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Sรธk og erstatt",
+
+// Find Dialog
+DlgFindTitle		: "Sรธk",
+DlgFindFindBtn		: "Sรธk",
+DlgFindNotFoundMsg	: "Fant ikke sรธketeksten.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Erstatt",
+DlgReplaceFindLbl		: "Sรธk etter:",
+DlgReplaceReplaceLbl	: "Erstatt med:",
+DlgReplaceCaseChk		: "Skill mellom store og smรฅ bokstaver",
+DlgReplaceReplaceBtn	: "Erstatt",
+DlgReplaceReplAllBtn	: "Erstatt alle",
+DlgReplaceWordChk		: "Bare hele ord",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl+X).",
+PasteErrorCopy	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk 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		: "Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktรธyet direkte tilgang til utklippstavlen. Du mรฅ lime det igjen i dette vinduet.",
+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 er ikke installert. Vil du laste den ned nรฅ?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (verdi)",
+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	: "Egenskaper for uordnet liste",
+NumberedListProp	: "Egenskaper for ordnet liste",
+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	: "Generelt",
+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		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Vesteuropeisk",
+DlgDocCharSetOther	: "Annet tegnsett",
+
+DlgDocDocType		: "Dokumenttype header",
+DlgDocDocTypeOther	: "Annet dokumenttype header",
+DlgDocIncXHTML		: "Inkluder XHTML-deklarasjon",
+DlgDocBgColor		: "Bakgrunnsfarge",
+DlgDocBgImage		: "URL for bakgrunnsbilde",
+DlgDocBgNoScroll	: "Lรฅs 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 mer informasjon, se",
+
+// Div Dialog
+DlgDivGeneralTab	: "Generelt",
+DlgDivAdvancedTab	: "Avansert",
+DlgDivStyle		: "Stil",
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sk.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sk.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sk.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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ลพiลฅ",
+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",
+VisitLink			: "รsลฅ na odkaz",
+Anchor				: "Vloลพiลฅ/zmeniลฅ kotvu",
+AnchorDelete		: "Odstrรกniลฅ kotvu",
+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รกcii 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			: "Citรกcia",
+CreateDiv			: "Vytvoriลฅ Div kontajner",
+EditDiv				: "Editovaลฅ Div kontajner",
+DeleteDiv			: "Odstrรกniลฅ Div kontajner",
+Undo				: "Spรคลฅ",
+Redo				: "Znovu",
+NumberedListLbl		: "ฤรญslovanie",
+NumberedList		: "Vloลพiลฅ/odstrรกniลฅ ฤรญslovanie",
+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		: "Ukรกzaลฅ bloky",
+
+// Context Menu
+EditLink			: "Zmeniลฅ odkaz",
+CellCM				: "Bunka",
+RowCM				: "Riadok",
+ColumnCM			: "Stฤบpec",
+InsertRowAfter		: "Vloลพiลฅ riadok pred",
+InsertRowBefore		: "Vloลพiลฅ riadok za",
+DeleteRows			: "Vymazaลฅ riadok",
+InsertColumnAfter	: "Vloลพiลฅ stฤบpec pred",
+InsertColumnBefore	: "Vloลพiลฅ stฤบpec za",
+DeleteColumns		: "Zmazaลฅ stฤบpec",
+InsertCellAfter		: "Vloลพiลฅ bunku za",
+InsertCellBefore	: "Vloลพiลฅ bunku pred",
+DeleteCells			: "Vymazaลฅ bunky",
+MergeCells			: "Zlรบฤiลฅ bunky",
+MergeRight			: "Zlรบฤiลฅ doprava",
+MergeDown			: "Zlรบฤiลฅ dole",
+HorizontalSplitCell	: "Rozdeliลฅ bunky horizontรกlne",
+VerticalSplitCell	: "Rozdeliลฅ bunky vertikรกlne",
+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รบ sluลพbu blokovania popup okien.",
+DialogBlocked		: "Dialรณgovรฉ okno nebolo moลพnรฉ otvoriลฅ. Uistite sa, ลพe mรกte vypnutรบ sluลพbu blokovania popup okien.",
+VisitLinkBlocked	: "Nebolo moลพnรฉ otvoriลฅ novรฉ okno. Uistite sa, ลพe mรกte vypnutรบ sluลพbu blokovania popup 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+DlgCellRowSpan		: "Zlรบฤenรฉ riadky",
+DlgCellCollSpan		: "Zlรบฤenรฉ stฤบpce",
+DlgCellBackColor	: "Farba pozadia",
+DlgCellBorderColor	: "Farba ohraniฤenia",
+DlgCellBtnSelect	: "Vรฝber...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Nรกjsลฅ a nahradiลฅ",
+
+// 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รฉ nastavenia 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รฉ nastavenia 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		: "Bezpeฤnostnรฉ nastavenia Vรกลกho prehliadaฤa nedovoฤพujรบ editoru pristupovaลฅ priamo k datรกm v schrรกnke. Musรญte ich vloลพiลฅ znovu do tohto okna.",
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "Hlavnรฉ",
+DlgDivAdvancedTab	: "Rozลกรญrenรฉ",
+DlgDivStyle		: "ล tรฝl",
+DlgDivInlineStyle	: "Inline ลกtรฝl"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/vi.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/vi.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/vi.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Mแป Liรชn Kแบฟt",
+Anchor				: "Chรจn/Sแปญa Neo",
+AnchorDelete		: "Gแปก bแป Neo",
+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			: "Khแปi Trรญch dแบซn",
+CreateDiv			: "Tแบกo Div Container",
+EditDiv				: "Chแปnh sแปญa Div Container",
+DeleteDiv			: "Gแปก bแป Div Container",
+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		: "Hiแปn thแป cรกc Khแปi",
+
+// Context Menu
+EditLink			: "Sแปญa Liรชn kแบฟt",
+CellCM				: "ร",
+RowCM				: "Hร ng",
+ColumnCM			: "Cแปt",
+InsertRowAfter		: "Chรจn Hร ng Phรญa sau",
+InsertRowBefore		: "Chรจn Hร ng Phรญa trฦฐแปc",
+DeleteRows			: "Xoรก Hร ng",
+InsertColumnAfter	: "Chรจn Cแปt Phรญa sau",
+InsertColumnBefore	: "Chรจn Cแปt Phรญa trฦฐแปc",
+DeleteColumns		: "Xoรก Cแปt",
+InsertCellAfter		: "Chรจn ร Phรญa sau",
+InsertCellBefore	: "Chรจn ร Phรญa trฦฐแปc",
+DeleteCells			: "Xoรก ร",
+MergeCells			: "Kแบฟt hแปฃp ร",
+MergeRight			: "Kแบฟt hแปฃp Sang phแบฃi",
+MergeDown			: "Kแบฟt hแปฃp Xuแปng dฦฐแปi",
+HorizontalSplitCell	: "Tรกch ngang ร",
+VerticalSplitCell	: "Tรกch dแปc ร",
+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 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.",
+VisitLinkBlocked	: "Khรดng thแป mแป ฤฦฐแปฃc cแปญa sแป trรฌnh duyแปt mแป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แปฏ nguyรชn 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	: "ฤฦฐแปng cฦก sแป",
+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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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	: "ฤฦฐแปng cฦก sแป",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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	: "Tรฌm kiแบฟm vร  Thay Thแบฟ",
+
+// 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 nhแบญp 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",
+
+// Div Dialog
+DlgDivGeneralTab	: "Chung",
+DlgDivAdvancedTab	: "Nรขng cao",
+DlgDivStyle		: "Kiแปu Style",
+DlgDivInlineStyle	: "Kiแปu Style Trแปฑc tiแบฟp"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en-uk.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en-uk.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en-uk.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open 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",
+CreateDiv			: "Create Div Container",
+EditDiv				: "Edit Div Container",
+DeleteDiv			: "Remove Div Container",
+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.",
+VisitLinkBlocked	: "It was not possible to open a new 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",
+DlgCellTypeData		: "Data",
+DlgCellTypeHeader	: "Header",
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",
+DlgDivAdvancedTab	: "Advanced",
+DlgDivStyle		: "Style",
+DlgDivInlineStyle	: "Inline Style"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ms.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ms.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ms.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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
+VisitLinkBlocked	: "It was not possible to open a new 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
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/uk.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/uk.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/uk.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "ะะฝะธัะธัะธ ะฟะพัะธะปะฐะฝะฝั",
+VisitLink			: "ะัะดะบัะธัะธ ะฟะพัะธะปะฐะฝะฝั",
+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			: "ะฆะธัะฐัะฐ",
+CreateDiv			: "ะกัะฒะพัะธัะธ Div ะบะพะฝัะตะนะฝะตั",
+EditDiv				: "ะ ะตะดะฐะณัะฒะฐัะธ Div ะบะพะฝัะตะนะฝะตั",
+DeleteDiv			: "ะะธะดะฐะปะธัะธ Div ะบะพะฝัะตะนะฝะตั",
+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		: "ะะต ะผะพะถะปะธะฒะพ ะฒัะดะบัะธัะธ ะฒัะบะฝะพ ะดัะฐะปะพะณั. ะะตัะตะฒัััะต ัะพ ะฑะปะพะบัะฒะฐะฝะฝั ัะฟะปะธะฒะฐััะธั ะฒัะบะพะฝ ะฒะธะผะบะฝะตะฝั.",
+VisitLinkBlocked	: "It was not possible to open a new 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	: "ะะปัะฒะฐ ะฝะฐ ะฟัะฐะฒะพ (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		: "ะ ะตะทัะผะต",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "ะะปะฐััะธะฒะพััั ะบะพะผััะบะธ",
+DlgCellWidth		: "ะจะธัะธะฝะฐ",
+DlgCellWidthPx		: "ะฟัะบัะตะปัะฒ",
+DlgCellWidthPc		: "ะฒัะดัะพัะบัะฒ",
+DlgCellHeight		: "ะะธัะพัะฐ",
+DlgCellWordWrap		: "ะะณะพััะฐะฝะฝั ัะตะบััะฐ",
+DlgCellWordWrapNotSet	: "<ะะต ะฒัั.>",
+DlgCellWordWrapYes	: "ะขะฐะบ",
+DlgCellWordWrapNo	: "ะั",
+DlgCellHorAlign		: "ะะพัะธะทะพะฝัะฐะปัะฝะต ะฒะธััะฒะฝัะฒะฐะฝะฝั",
+DlgCellHorAlignNotSet	: "<ะะต ะฒัั.>",
+DlgCellHorAlignLeft	: "ะะปัะฒะฐ",
+DlgCellHorAlignCenter	: "ะะพ ัะตะฝััั",
+DlgCellHorAlignRight: "ะะฟัะฐะฒะฐ",
+DlgCellVerAlign		: "ะะตััะธะบะฐะปัะฝะพะต ะฒะธััะฒะฝัะฒะฐะฝะฝั",
+DlgCellVerAlignNotSet	: "<ะะต ะฒัั.>",
+DlgCellVerAlignTop	: "ะะฒะตััั",
+DlgCellVerAlignMiddle	: "ะะพัะตัะตะดะธะฝั",
+DlgCellVerAlignBottom	: "ะะฝะธะทั",
+DlgCellVerAlignBaseline	: "ะะพ ะฑะฐะทะพะฒัะน ะปัะฝัั",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "ะะพะดะฐัะบะพะฒั ัะฝัะพัะผะฐััั ะดะธะฒััััั ะฝะฐ ",
+
+// Div Dialog
+DlgDivGeneralTab	: "ะะฐะณะฐะปัะฝะฐ",
+DlgDivAdvancedTab	: "ะ ะพะทัะธัะตะฝะฐ",
+DlgDivStyle		: "ะกัะธะปั",
+DlgDivInlineStyle	: "Inline ััะธะปั"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/zh-cn.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/zh-cn.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/zh-cn.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "ๅๆถ่ถ้พๆฅ",
+VisitLink			: "ๆๅผ่ถ้พๆฅ",
+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			: "ๅๅผ็จ",
+CreateDiv			: "ๆๅฅ Div ๆ ็ญพ",
+EditDiv				: "็ผ่พ Div ๆ ็ญพ",
+DeleteDiv			: "ๅ ้ค Div ๆ ็ญพ",
+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๏ผใ",
+VisitLinkBlocked	: "ๆ ๆณๆๅผๆฐ็ชๅฃ๏ผ่ฏท็กฎ่ฎคๆฏๅฆๅฏ็จไบ็ฆๆญขๅผนๅบ็ชๅฃๆ็ฝ้กตๅฏน่ฏๆก๏ผ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		: "ๆ่ฆ",
+DlgTableHeaders		: "ๆ ้ขๅๅๆ ผ",
+DlgTableHeadersNone		: "ๆ ",
+DlgTableHeadersColumn	: "็ฌฌไธๅ",
+DlgTableHeadersRow		: "็ฌฌไธ่ก",
+DlgTableHeadersBoth		: "็ฌฌไธๅๅ็ฌฌไธ่ก",
+
+// Table Cell Dialog
+DlgCellTitle		: "ๅๅๆ ผๅฑๆง",
+DlgCellWidth		: "ๅฎฝๅบฆ",
+DlgCellWidthPx		: "ๅ็ด ",
+DlgCellWidthPc		: "็พๅๆฏ",
+DlgCellHeight		: "้ซๅบฆ",
+DlgCellWordWrap		: "่ชๅจๆข่ก",
+DlgCellWordWrapNotSet	: "<ๆฒกๆ่ฎพ็ฝฎ>",
+DlgCellWordWrapYes	: "ๆฏ",
+DlgCellWordWrapNo	: "ๅฆ",
+DlgCellHorAlign		: "ๆฐดๅนณๅฏน้ฝ",
+DlgCellHorAlignNotSet	: "<ๆฒกๆ่ฎพ็ฝฎ>",
+DlgCellHorAlignLeft	: "ๅทฆๅฏน้ฝ",
+DlgCellHorAlignCenter	: "ๅฑไธญ",
+DlgCellHorAlignRight: "ๅณๅฏน้ฝ",
+DlgCellVerAlign		: "ๅ็ดๅฏน้ฝ",
+DlgCellVerAlignNotSet	: "<ๆฒกๆ่ฎพ็ฝฎ>",
+DlgCellVerAlignTop	: "้กถ็ซฏ",
+DlgCellVerAlignMiddle	: "ๅฑไธญ",
+DlgCellVerAlignBottom	: "ๅบ้จ",
+DlgCellVerAlignBaseline	: "ๅบ็บฟ",
+DlgCellType		: "ๅๅๆ ผ็ฑปๅ",
+DlgCellTypeData		: "่ตๆ",
+DlgCellTypeHeader	: "ๆ ้ข",
+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	: "่ฏท้ๆฉ็ผ่พๅจๅๅฎนๆจกๆฟ:",
+DlgTemplatesLoading	: "ๆญฃๅจๅ ่ฝฝๆจกๆฟๅ่กจ๏ผ่ฏท็จ็ญ...",
+DlgTemplatesNoTpl	: "(ๆฒกๆๆจกๆฟ)",
+DlgTemplatesReplace	: "ๆฟๆขๅฝๅๅๅฎน",
+
+// About Dialog
+DlgAboutAboutTab	: "ๅณไบ",
+DlgAboutBrowserInfoTab	: "ๆต่งๅจไฟกๆฏ",
+DlgAboutLicenseTab	: "่ฎธๅฏ่ฏ",
+DlgAboutVersion		: "็ๆฌ",
+DlgAboutInfo		: "่ฆ่ทๅพๆดๅคไฟกๆฏ่ฏท่ฎฟ้ฎ ",
+
+// Div Dialog
+DlgDivGeneralTab	: "ๅธธ่ง",
+DlgDivAdvancedTab	: "้ซ็บง",
+DlgDivStyle		: "ๆ ทๅผ",
+DlgDivInlineStyle	: "CSS ๆ ทๅผ"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ro.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ro.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ro.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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)",
+VisitLink			: "Open Link",	//MISSING
+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",
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//MISSING
+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).",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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)",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/pt-br.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/pt-br.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/pt-br.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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",
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//MISSING
+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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ru.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ru.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ru.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "ะฃะฑัะฐัั ัััะปะบั",
+VisitLink			: "ะะตัะตะนัะธ ะฟะพ ัััะปะบะต",
+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			: "ะฆะธัะฐัะฐ",
+CreateDiv			: "ะกะพะทะดะฐัั Div ะบะพะฝัะตะนะฝะตั",
+EditDiv				: "ะ ะตะดะฐะบัะธัะพะฒะฐัั Div ะบะพะฝัะตะนะฝะตั",
+DeleteDiv			: "ะฃะดะฐะปะธัั Div ะบะพะฝัะตะนะฝะตั",
+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		: "ะะตะฒะพะทะผะพะถะฝะพ ะพัะบัััั ะพะบะฝะพ ะดะธะฐะปะพะณะฐ. ะัะพะฒะตัััะต ััะพ ะฑะปะพะบะธัะพะฒะบะธ ะฒัะฟะปัะฒะฐััะธั ะพะบะพะฝ ะฒัะบะปััะตะฝั.",
+VisitLinkBlocked	: "It was not possible to open a new 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	: "ะกะปะตะฒะฐ ะฝะฐ ะฟัะฐะฒะพ (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		: "ะ ะตะทัะผะต",
+DlgTableHeaders		: "ะะฐะณะพะปะพะฒะบะธ",
+DlgTableHeadersNone		: "ะะตั",
+DlgTableHeadersColumn	: "ะะตัะฒัะน ััะพะปะฑะตั",
+DlgTableHeadersRow		: "ะะตัะฒะฐั ัััะพะบะฐ",
+DlgTableHeadersBoth		: "ะะฑะฐ ะฒะฐัะธะฐะฝัะฐ",
+
+// Table Cell Dialog
+DlgCellTitle		: "ะกะฒะพะนััะฒะฐ ััะตะนะบะธ",
+DlgCellWidth		: "ะจะธัะธะฝะฐ",
+DlgCellWidthPx		: "ะฟะธะบัะตะปะตะน",
+DlgCellWidthPc		: "ะฟัะพัะตะฝัะพะฒ",
+DlgCellHeight		: "ะััะพัะฐ",
+DlgCellWordWrap		: "ะะฐะฒะพัะฐัะธะฒะฐะฝะธะต ัะตะบััะฐ",
+DlgCellWordWrapNotSet	: "<ะะต ััั.>",
+DlgCellWordWrapYes	: "ะะฐ",
+DlgCellWordWrapNo	: "ะะตั",
+DlgCellHorAlign		: "ะะพั. ะฒััะฐะฒะฝะธะฒะฐะฝะธะต",
+DlgCellHorAlignNotSet	: "<ะะต ััั.>",
+DlgCellHorAlignLeft	: "ะกะปะตะฒะฐ",
+DlgCellHorAlignCenter	: "ะะพ ัะตะฝััั",
+DlgCellHorAlignRight: "ะกะฟัะฐะฒะฐ",
+DlgCellVerAlign		: "ะะตัั. ะฒััะฐะฒะฝะธะฒะฐะฝะธะต",
+DlgCellVerAlignNotSet	: "<ะะต ััั.>",
+DlgCellVerAlignTop	: "ะกะฒะตััั",
+DlgCellVerAlignMiddle	: "ะะพัะตัะตะดะธะฝะต",
+DlgCellVerAlignBottom	: "ะกะฝะธะทั",
+DlgCellVerAlignBaseline	: "ะะพ ะฑะฐะทะพะฒะพะน ะปะธะฝะธะธ",
+DlgCellType		: "ะขะธะฟ ััะตะนะบะธ",
+DlgCellTypeData		: "ะะฐะฝะฝัะต",
+DlgCellTypeHeader	: "ะะฐะณะพะปะพะฒะพะบ",
+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		: "ะะปั ะฑะพะปััะตะน ะธะฝัะพัะผะฐัะธะธ, ะฟะพัะตัะธัะต",
+
+// Div Dialog
+DlgDivGeneralTab	: "ะะฝัะพัะผะฐัะธั",
+DlgDivAdvancedTab	: "ะ ะฐััะธัะตะฝะฝัะต ะฝะฐัััะพะนะบะธ",
+DlgDivStyle		: "ะกัะธะปั",
+DlgDivInlineStyle	: "ะัััะพะตะฝะฝัะต ััะธะปะธ"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/af.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/af.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/af.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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 ",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fr-ca.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fr-ca.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fr-ca.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Suivre 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",
+CreateDiv			: "Crรฉer Balise Div",
+EditDiv				: "Modifier Balise Div",
+DeleteDiv			: "Supprimer Balise Div",
+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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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รฉ",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "Gรฉnรฉral",
+DlgDivAdvancedTab	: "Avancรฉ",
+DlgDivStyle		: "Style",
+DlgDivInlineStyle	: "Attribut Style"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/nb.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/nb.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/nb.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "รpne lenke",
+Anchor				: "Sett inn/Rediger anker",
+AnchorDelete		: "Fjern anker",
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//MISSING
+Undo				: "Angre",
+Redo				: "Gjรธr om",
+NumberedListLbl		: "Nummerert liste",
+NumberedList		: "Sett inn/Fjern nummerert 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				: "Sรธk",
+Replace				: "Erstatt",
+SpellCheck			: "Stavekontroll",
+UniversalKeyboard	: "Universelt tastatur",
+PageBreakLbl		: "Sideskift",
+PageBreak			: "Sett inn sideskift",
+
+Form			: "Skjema",
+Checkbox		: "Avmerkingsboks",
+RadioButton		: "Alternativknapp",
+TextField		: "Tekstboks",
+Textarea		: "Tekstomrรฅde",
+HiddenField		: "Skjult felt",
+Button			: "Knapp",
+SelectionField	: "Rullegardinliste",
+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		: "Sett inn rad etter",
+InsertRowBefore		: "Sett inn rad fรธr",
+DeleteRows			: "Slett rader",
+InsertColumnAfter	: "Sett inn kolonne etter",
+InsertColumnBefore	: "Sett inn kolonne fรธr",
+DeleteColumns		: "Slett kolonner",
+InsertCellAfter		: "Sett inn celle etter",
+InsertCellBefore	: "Sett inn celle fรธr",
+DeleteCells			: "Slett celler",
+MergeCells			: "Slรฅ sammen celler",
+MergeRight			: "Slรฅ sammen hรธyre",
+MergeDown			: "Slรฅ sammen ned",
+HorizontalSplitCell	: "Del celle horisontalt",
+VerticalSplitCell	: "Del celle vertikalt",
+TableDelete			: "Slett tabell",
+CellProperties		: "Egenskaper for celle",
+TableProperties		: "Egenskaper for tabell",
+ImageProperties		: "Egenskaper for bilde",
+FlashProperties		: "Egenskaper for Flash-objekt",
+
+AnchorProp			: "Egenskaper for anker",
+ButtonProp			: "Egenskaper for knapp",
+CheckboxProp		: "Egenskaper for avmerkingsboks",
+HiddenFieldProp		: "Egenskaper for skjult felt",
+RadioButtonProp		: "Egenskaper for alternativknapp",
+ImageButtonProp		: "Egenskaper for bildeknapp",
+TextFieldProp		: "Egenskaper for tekstfelt",
+SelectionFieldProp	: "Egenskaper for rullegardinliste",
+TextareaProp		: "Egenskaper for tekstomrรฅde",
+FormProp			: "Egenskaper for skjema",
+
+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. Vil du rense den for unรธdvendig kode fรธr du limer inn?",
+NotCompatiblePaste	: "Denne kommandoen er kun tilgjenglig for Internet Explorer versjon 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 implimentert",
+UnknownToolbarSet	: "Verktรธylinjesett \"%1\" finnes ikke",
+NoActiveX			: "Din nettlesers sikkerhetsinstillinger kan begrense noen av funksjonene i redigeringsverktรธyet. Du mรฅ aktivere \"Kjรธr ActiveX-kontroller og plugin-modeller\". Du kan oppleve feil og advarsler om manglende funksjoner",
+BrowseServerBlocked : "Kunne ikke รฅpne dialogboksen for filarkiv. Sjekk at popup-blokkering er deaktivert.",
+DialogBlocked		: "Kunne ikke รฅpne dialogboksen. Sjekk at popup-blokkering er deaktivert.",
+VisitLinkBlocked	: "Kunne ikke รฅpne et nytt vindu. Sjekk at popup-blokkering er deaktivert.",
+
+// 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รฅkkode",
+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 bilde-urlen",
+DlgImgLinkTab		: "Lenke",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash-egenskaper",
+DlgFlashChkPlay		: "Autospill",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Slรฅ pรฅ Flash-meny",
+DlgFlashScale		: "Skaler",
+DlgFlashScaleAll	: "Vis alt",
+DlgFlashScaleNoBorder	: "Ingen ramme",
+DlgFlashScaleFit	: "Skaler til รฅ passe",
+
+// 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 et 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	: "Foreldrevindu (_parent)",
+DlgLnkTargetSelf	: "Samme vindu (_self)",
+DlgLnkTargetTop		: "Hele vindu (_top)",
+DlgLnkTargetFrameName	: "Mรฅlramme",
+DlgLnkPopWinName	: "Navn pรฅ popup-vindus",
+DlgLnkPopWinFeat	: "Egenskaper for popup-vindu",
+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 et 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	: "Valgt",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Sett inn smil",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Velg spesielt tegn",
+
+// Table Dialog
+DlgTableTitle		: "Egenskaper for tabell",
+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	: "Cellemarg",
+DlgTableCellPad		: "Cellepolstring",
+DlgTableCaption		: "Tittel",
+DlgTableSummary		: "Sammendrag",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+DlgCellRowSpan		: "Radspenn",
+DlgCellCollSpan		: "Kolonnespenn",
+DlgCellBackColor	: "Bakgrunnsfarge",
+DlgCellBorderColor	: "Rammefarge",
+DlgCellBtnSelect	: "Velg...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Sรธk og erstatt",
+
+// Find Dialog
+DlgFindTitle		: "Sรธk",
+DlgFindFindBtn		: "Sรธk",
+DlgFindNotFoundMsg	: "Fant ikke sรธketeksten.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Erstatt",
+DlgReplaceFindLbl		: "Sรธk etter:",
+DlgReplaceReplaceLbl	: "Erstatt med:",
+DlgReplaceCaseChk		: "Skill mellom store og smรฅ bokstaver",
+DlgReplaceReplaceBtn	: "Erstatt",
+DlgReplaceReplAllBtn	: "Erstatt alle",
+DlgReplaceWordChk		: "Bare hele ord",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl+X).",
+PasteErrorCopy	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk 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		: "Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktรธyet direkte tilgang til utklippstavlen. Du mรฅ lime det igjen i dette vinduet.",
+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 er ikke installert. Vil du laste den ned nรฅ?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (verdi)",
+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	: "Egenskaper for uordnet liste",
+NumberedListProp	: "Egenskaper for ordnet liste",
+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	: "Generelt",
+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		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Vesteuropeisk",
+DlgDocCharSetOther	: "Annet tegnsett",
+
+DlgDocDocType		: "Dokumenttype header",
+DlgDocDocTypeOther	: "Annet dokumenttype header",
+DlgDocIncXHTML		: "Inkluder XHTML-deklarasjon",
+DlgDocBgColor		: "Bakgrunnsfarge",
+DlgDocBgImage		: "URL for bakgrunnsbilde",
+DlgDocBgNoScroll	: "Lรฅs 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 mer informasjon, se",
+
+// Div Dialog
+DlgDivGeneralTab	: "Generelt",
+DlgDivAdvancedTab	: "Avansert",
+DlgDivStyle		: "Stil",
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/bn.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/bn.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/bn.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "เฆฒเฆฟเฆเฆ เฆธเฆฐเฆพเฆ",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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		: "เฆกเฆพเงเฆพเฆฒเฆ เฆเฆเฆจเงเฆกเง เฆเงเฆฒเฆพ เฆเงเฆฒ เฆจเฆพเฅค เฆจเฆฟเฆถเงเฆเฆฟเฆค เฆเฆฐเงเฆจ เฆฏเง เฆธเฆฌ เฆชเฆชเฆเฆช เฆฌเงเฆฒเฆเฆพเฆฐ เฆฌเฆจเงเฆง เฆเฆฐเฆพ เฆเฆเงเฅค",
+VisitLinkBlocked	: "It was not possible to open a new 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	: "เฆฌเฆพเฆฎ เฆฅเงเฆเง เฆกเฆพเฆจ (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		: "เฆธเฆพเฆฐเฆพเฆเฆถ",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "เฆธเงเฆฒ เฆชเงเฆฐเงเฆชเฆพเฆฐเงเฆเฆฟ",
+DlgCellWidth		: "เฆชเงเฆฐเฆธเงเฆฅ",
+DlgCellWidthPx		: "เฆชเฆฟเฆเงเฆธเงเฆฒ",
+DlgCellWidthPc		: "เฆถเฆคเฆเฆฐเฆพ",
+DlgCellHeight		: "เฆฆเงเฆฐเงเฆเงเฆฏ",
+DlgCellWordWrap		: "เฆเงเฆพเฆฐเงเฆก เฆฐเงเฆช",
+DlgCellWordWrapNotSet	: "<เฆธเงเฆ เฆจเงเฆ>",
+DlgCellWordWrapYes	: "เฆนเฆพเฆ",
+DlgCellWordWrapNo	: "เฆจเฆพ",
+DlgCellHorAlign		: "เฆนเฆฐเฆพเฆเฆเฆจเงเฆเฆพเฆฒ เฆเฆฒเฆพเฆเฆจเฆฎเงเฆจเงเฆ",
+DlgCellHorAlignNotSet	: "<เฆธเงเฆ เฆจเงเฆ>",
+DlgCellHorAlignLeft	: "เฆฌเฆพเฆฎเง",
+DlgCellHorAlignCenter	: "เฆฎเฆพเฆเฆเฆพเฆจเง",
+DlgCellHorAlignRight: "เฆกเฆพเฆจเง",
+DlgCellVerAlign		: "เฆญเฆพเฆฐเงเฆเฆฟเฆเงเฆฏเฆพเฆฒ เฆเฆฒเฆพเฆเฆจเฆฎเงเฆจเงเฆ",
+DlgCellVerAlignNotSet	: "<เฆธเงเฆ เฆจเงเฆ>",
+DlgCellVerAlignTop	: "เฆเฆชเฆฐ",
+DlgCellVerAlignMiddle	: "เฆฎเฆงเงเฆฏ",
+DlgCellVerAlignBottom	: "เฆจเงเฆเง",
+DlgCellVerAlignBaseline	: "เฆฎเงเฆฒเฆฐเงเฆเฆพ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "เฆเฆฐเฆ เฆคเฆฅเงเฆฏเงเฆฐ เฆเฆจเงเฆฏ เฆฏเฆพเฆจ",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/el.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/el.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/el.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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)",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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		: "ฮ ฮตฯฮฏฮปฮทฯฮท",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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)",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "ฮฮนฮฑ ฯฮตฯฮนฯฯฯฯฮตฯฮตฯ ฯฮปฮทฯฮฟฯฮฟฯฮฏฮตฯ",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open 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",
+CreateDiv			: "Create Div Container",
+EditDiv				: "Edit Div Container",
+DeleteDiv			: "Remove Div Container",
+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.",
+VisitLinkBlocked	: "It was not possible to open a new 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",
+DlgTableHeaders		: "Headers",
+DlgTableHeadersNone		: "None",
+DlgTableHeadersColumn	: "First column",
+DlgTableHeadersRow		: "First Row",
+DlgTableHeadersBoth		: "Both",
+
+// 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",
+DlgCellType		: "Cell Type",
+DlgCellTypeData		: "Data",
+DlgCellTypeHeader	: "Header",
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",
+DlgDivAdvancedTab	: "Advanced",
+DlgDivStyle		: "Style",
+DlgDivInlineStyle	: "Inline Style"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ar.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ar.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ar.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "ุฅุฒุงูุฉ ุฑุงุจุท",
+VisitLink			: "ุงูุชุญ ุงูุฑุงุจุท",
+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			: "ุงูุชุจุงุณ",
+CreateDiv			: "ุฅูุดุงุก ุญุงููุฉ Div",
+EditDiv				: "ุชุนุฏูู ุญุงููุฉ Div",
+DeleteDiv			: "ุฅุฒุงูุฉ ุญุงููุฉ Div",
+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		: "ูุงูููู ูุชุญ ูุงูุฐุฉ ุงูุญูุงุฑ . ูุถูุง ุชุฃูุฏ ูู ุฃู  ูุงูุน ุงูููุงูุฐ ุงูููุจุซุฉ ูุนุทู .",
+VisitLinkBlocked	: "ูุง ูููู ูุชุญ ูุงูุฐุฉ ุฌุฏูุฏุฉ. ุชุฃูุฏ ูู ุฅููุงู ูู ูุงูุนู ูุชุญ ุงูููุงูุฐ ูู ุงูุนูู.",
+
+// 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		: "ุงูุฎูุงุตุฉ",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "ุฎุตุงุฆุต ุงูุฎููุฉ",
+DlgCellWidth		: "ุงูุนุฑุถ",
+DlgCellWidthPx		: "ุจูุณู",
+DlgCellWidthPc		: "ุจุงููุฆุฉ",
+DlgCellHeight		: "ุงูุฅุฑุชูุงุน",
+DlgCellWordWrap		: "ุงูุชูุงู ุงููุต",
+DlgCellWordWrapNotSet	: "<ุจุฏูู ุชุญุฏูุฏ>",
+DlgCellWordWrapYes	: "ูุนู",
+DlgCellWordWrapNo	: "ูุง",
+DlgCellHorAlign		: "ุงููุญุงุฐุงุฉ ุงูุฃูููุฉ",
+DlgCellHorAlignNotSet	: "<ุจุฏูู ุชุญุฏูุฏ>",
+DlgCellHorAlignLeft	: "ูุณุงุฑ",
+DlgCellHorAlignCenter	: "ูุณุท",
+DlgCellHorAlignRight: "ูููู",
+DlgCellVerAlign		: "ุงููุญุงุฐุงุฉ ุงูุนููุฏูุฉ",
+DlgCellVerAlignNotSet	: "<ุจุฏูู ุชุญุฏูุฏ>",
+DlgCellVerAlignTop	: "ุฃุนูู",
+DlgCellVerAlignMiddle	: "ูุณุท",
+DlgCellVerAlignBottom	: "ุฃุณูู",
+DlgCellVerAlignBaseline	: "ุนูู ุงูุณุทุฑ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "ููุฒูุฏ ูู ุงููุนูููุงุช ุชูุถู ุจุฒูุงุฑุฉ",
+
+// Div Dialog
+DlgDivGeneralTab	: "ุนุงู",
+DlgDivAdvancedTab	: "ูุชูุฏู",
+DlgDivStyle		: "ุงููุธูุฑ",
+DlgDivInlineStyle	: "ุงููุธูุฑ ุงููุถูู"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/gl.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/gl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/gl.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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:",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/_translationstatus.txt
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/_translationstatus.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/_translationstatus.txt	(revision 1130)
@@ -0,0 +1,79 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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: 32
+ar.js      Found: 420   Missing: 8
+bg.js      Found: 373   Missing: 55
+bn.js      Found: 380   Missing: 48
+bs.js      Found: 226   Missing: 202
+ca.js      Found: 420   Missing: 8
+cs.js      Found: 420   Missing: 8
+da.js      Found: 419   Missing: 9
+de.js      Found: 420   Missing: 8
+el.js      Found: 396   Missing: 32
+en-au.js   Found: 423   Missing: 5
+en-ca.js   Found: 423   Missing: 5
+en-uk.js   Found: 423   Missing: 5
+eo.js      Found: 346   Missing: 82
+es.js      Found: 428   Missing: 0
+et.js      Found: 411   Missing: 17
+eu.js      Found: 420   Missing: 8
+fa.js      Found: 413   Missing: 15
+fi.js      Found: 411   Missing: 17
+fo.js      Found: 420   Missing: 8
+fr-ca.js   Found: 419   Missing: 9
+fr.js      Found: 428   Missing: 0
+gl.js      Found: 381   Missing: 47
+gu.js      Found: 411   Missing: 17
+he.js      Found: 428   Missing: 0
+hi.js      Found: 420   Missing: 8
+hr.js      Found: 420   Missing: 8
+hu.js      Found: 411   Missing: 17
+is.js      Found: 428   Missing: 0
+it.js      Found: 410   Missing: 18
+ja.js      Found: 420   Missing: 8
+km.js      Found: 370   Missing: 58
+ko.js      Found: 390   Missing: 38
+lt.js      Found: 376   Missing: 52
+lv.js      Found: 381   Missing: 47
+mn.js      Found: 411   Missing: 17
+ms.js      Found: 352   Missing: 76
+nb.js      Found: 414   Missing: 14
+nl.js      Found: 420   Missing: 8
+no.js      Found: 414   Missing: 14
+pl.js      Found: 411   Missing: 17
+pt-br.js   Found: 411   Missing: 17
+pt.js      Found: 381   Missing: 47
+ro.js      Found: 410   Missing: 18
+ru.js      Found: 427   Missing: 1
+sk.js      Found: 420   Missing: 8
+sl.js      Found: 411   Missing: 17
+sr-latn.js Found: 368   Missing: 60
+sr.js      Found: 368   Missing: 60
+sv.js      Found: 409   Missing: 19
+th.js      Found: 393   Missing: 35
+tr.js      Found: 428   Missing: 0
+uk.js      Found: 419   Missing: 9
+vi.js      Found: 419   Missing: 9
+zh-cn.js   Found: 428   Missing: 0
+zh.js      Found: 423   Missing: 5
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fr.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fr.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Suivre 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",
+CreateDiv			: "Crรฉer Balise Div",
+EditDiv				: "Modifier Balise Div",
+DeleteDiv			: "Supprimer Balise Div",
+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.",
+VisitLinkBlocked	: "Impossible d'ouvrir une nouvelle fenรชtre. 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รฉ",
+DlgTableHeaders		: "Entรชtes",
+DlgTableHeadersNone		: "Sans",
+DlgTableHeadersColumn	: "Premiรจre colonne",
+DlgTableHeadersRow		: "Premiรจre Ligne",
+DlgTableHeadersBoth		: "Les 2",
+
+// 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",
+DlgCellType		: "Type de Cellule",
+DlgCellTypeData		: "Donnรฉes",
+DlgCellTypeHeader	: "Entรชte",
+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 ร ",
+
+// Div Dialog
+DlgDivGeneralTab	: "Gรฉnรฉral",
+DlgDivAdvancedTab	: "Avancรฉ",
+DlgDivStyle		: "Style",
+DlgDivInlineStyle	: "Attribut Style"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/et.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/et.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/et.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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",
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//MISSING
+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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/nl.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/nl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/nl.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Link volgen",
+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",
+CreateDiv			: "DIV aanmaken",
+EditDiv				: "DIV wijzigen",
+DeleteDiv			: "DIV verwijderen",
+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 u plakte lijkt gekopieerd te zijn vanuit Word. Wilt u de tekst opschonen voordat deze geplakt wordt?",
+NotCompatiblePaste	: "Deze opdracht is beschikbaar voor Internet Explorer versie 5.5 of hoger. Wilt u 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 uw 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.",
+VisitLinkBlocked	: "Het was niet mogelijk een nieuw venster te openen. Controleer of er geen pop-up-blocker aktief is.",
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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 uw toetsenbord (<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. Wilt u 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 ",
+
+// Div Dialog
+DlgDivGeneralTab	: "Algemeen",
+DlgDivAdvancedTab	: "Geavanceerd",
+DlgDivStyle		: "Style",
+DlgDivInlineStyle	: "Inline Style"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/hr.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/hr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/hr.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Otvori 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",
+CreateDiv			: "Napravi Div kontejner",
+EditDiv				: "Uredi Div kontejner",
+DeleteDiv			: "Ukloni Div kontejner",
+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.",
+VisitLinkBlocked	: "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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "Opฤenito",
+DlgDivAdvancedTab	: "Napredno",
+DlgDivStyle		: "Stil",
+DlgDivInlineStyle	: "Stil u redu"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/mn.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/mn.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/mn.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "ะะธะฝะบ ะฐะฒั ัะฐัั",
+VisitLink			: "Open Link",	//MISSING
+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			: "ะฅะฐะนััะฐะณะปะฐั",
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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		: "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 ะฑะพะปะณะพะฝะพ ัั.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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		: "ะขะฐะนะปะฑะฐั",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "ะฅะพะพัะพะฝ ะทะฐะนะฝ ัะธะฝะถ ัะฐะฝะฐั",
+DlgCellWidth		: "ำจัะณำฉะฝ",
+DlgCellWidthPx		: "ััะณ",
+DlgCellWidthPc		: "ััะฒั",
+DlgCellHeight		: "ำจะฝะดำฉั",
+DlgCellWordWrap		: "าฎะณ ัะฐัะปะฐั",
+DlgCellWordWrapNotSet	: "<ะะฝะพะพัะณาฏะน>",
+DlgCellWordWrapYes	: "ะขะธะนะผ",
+DlgCellWordWrapNo	: "าฎะณาฏะน",
+DlgCellHorAlign		: "ะะพัะพะพ ัะณะฝัั",
+DlgCellHorAlignNotSet	: "<ะะฝะพะพัะณาฏะน>",
+DlgCellHorAlignLeft	: "ะาฏาฏะฝ",
+DlgCellHorAlignCenter	: "ะขำฉะฒ",
+DlgCellHorAlignRight: "ะะฐัััะฝ",
+DlgCellVerAlign		: "ะฅำฉะฝะดะปำฉะฝ ัะณะฝัั",
+DlgCellVerAlignNotSet	: "<ะะฝะพะพัะณาฏะน>",
+DlgCellVerAlignTop	: "ะััะด ัะฐะป",
+DlgCellVerAlignMiddle	: "ะัะฝะด",
+DlgCellVerAlignBottom	: "ะะพะพะด ัะฐะป",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "ะัะดััะปะปััั ัััะปะฐั",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/pl.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/pl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/pl.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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",
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//MISSING
+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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/th.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/th.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/th.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "เธฅเธ เธฅเธดเธเธเน",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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		: "เนเธเธดเธเธซเธเนเธฒเธเนเธฒเธเธเนเธญเธเธญเธฑเธเนเธเธทเนเธญเธเธณเธเธฒเธเธเนเธญเนเธกเนเนเธเน เธเธฃเธธเธเธฒเธเธดเธเนเธเธฃเธทเนเธญเธเธกเธทเธญเธเนเธญเธเธเธฑเธเธเนเธญเธเธญเธฑเธเนเธเนเธเธฃเนเธเธฃเธกเธเนเธญเธเธญเธดเธเนเธเธญเธฃเนเนเธเนเธเธเธญเธเธเนเธฒเธเธเนเธงเธข",
+VisitLinkBlocked	: "It was not possible to open a new 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	: "เธเธฒเธเธเนเธฒเธขเนเธเธเธงเธฒ (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		: "เธชเธฃเธธเธเธเธงเธฒเธก",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "เธเธธเธเธชเธกเธเธฑเธเธดเธเธญเธ เธเนเธญเธ",
+DlgCellWidth		: "เธเธงเนเธฒเธ",
+DlgCellWidthPx		: "เธเธธเธเธชเธต",
+DlgCellWidthPc		: "เนเธเธญเธฃเนเนเธเนเธ",
+DlgCellHeight		: "เธชเธนเธ",
+DlgCellWordWrap		: "เธเธฑเธเธเธฃเธฃเธเธฑเธเธญเธฑเธเนเธเธกเธฑเธเธด",
+DlgCellWordWrapNotSet	: "<เนเธกเนเธฃเธฐเธเธธ>",
+DlgCellWordWrapYes	: "เนเนเธเน",
+DlgCellWordWrapNo	: "เนเธกเน",
+DlgCellHorAlign		: "เธเธฒเธฃเธเธฑเธเธงเธฒเธเนเธเธงเธเธญเธ",
+DlgCellHorAlignNotSet	: "<เนเธกเนเธฃเธฐเธเธธ>",
+DlgCellHorAlignLeft	: "เธเธดเธเธเนเธฒเธข",
+DlgCellHorAlignCenter	: "เธเธถเนเธเธเธฅเธฒเธ",
+DlgCellHorAlignRight: "เธเธดเธเธเธงเธฒ",
+DlgCellVerAlign		: "เธเธฒเธฃเธเธฑเธเธงเธฒเธเนเธเธงเธเธฑเนเธ",
+DlgCellVerAlignNotSet	: "<เนเธกเนเธฃเธฐเธเธธ>",
+DlgCellVerAlignTop	: "เธเธเธชเธธเธ",
+DlgCellVerAlignMiddle	: "เธเธถเนเธเธเธฅเธฒเธ",
+DlgCellVerAlignBottom	: "เธฅเนเธฒเธเธชเธธเธ",
+DlgCellVerAlignBaseline	: "เธญเธดเธเธเธฃเธฃเธเธฑเธ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/it.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/it.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/it.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+Anchor				: "Inserisci/Modifica Ancora",
+AnchorDelete		: "Rimuovi Ancora",
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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		: "Visualizza Blocchi",
+
+// Context Menu
+EditLink			: "Modifica collegamento",
+CellCM				: "Cella",
+RowCM				: "Riga",
+ColumnCM			: "Colonna",
+InsertRowAfter		: "Inserisci Riga Dopo",
+InsertRowBefore		: "Inserisci Riga Prima",
+DeleteRows			: "Elimina righe",
+InsertColumnAfter	: "Inserisci Colonna Dopo",
+InsertColumnBefore	: "Inserisci Colonna Prima",
+DeleteColumns		: "Elimina colonne",
+InsertCellAfter		: "Inserisci Cella Dopo",
+InsertCellBefore	: "Inserisci Cella Prima",
+DeleteCells			: "Elimina celle",
+MergeCells			: "Unisce celle",
+MergeRight			: "Unisci a Destra",
+MergeDown			: "Unisci in Basso",
+HorizontalSplitCell	: "Dividi Cella Orizzontalmente",
+VerticalSplitCell	: "Dividi Cella Verticalmente",
+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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+DlgCellRowSpan		: "Righe occupate",
+DlgCellCollSpan		: "Colonne occupate",
+DlgCellBackColor	: "Colore sfondo",
+DlgCellBorderColor	: "Colore bordo",
+DlgCellBtnSelect	: "Scegli...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Cerca e Sostituisci",
+
+// 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		: "A causa delle impostazioni di sicurezza del browser,l'editor non รจ in grado di accedere direttamente agli appunti. E' pertanto necessario incollarli di nuovo in questa finestra.",
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sl.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sl.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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",
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//MISSING
+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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/lt.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/lt.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/lt.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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ฤ",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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ฤ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sr-latn.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sr-latn.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sr-latn.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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
+VisitLinkBlocked	: "It was not possible to open a new 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
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/lv.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/lv.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/lv.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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ฤ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/zh.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/zh.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/zh.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "็งป้ค่ถ้ฃ็ต",
+VisitLink			: "้ๅ่ถ้ฃ็ต",
+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			: "ๅผ็จๆๅญ",
+CreateDiv			: "ๆฐๅข Div ๆจ็ฑค",
+EditDiv				: "่ฎๆด Div ๆจ็ฑค",
+DeleteDiv			: "็งป้ค Div ๆจ็ฑค",
+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		: "็กๆณ้ๅๅฐ่ฉฑ่ฆ็ช๏ผ่ซ็ขบๅฎๆๆๅฟซ้กฏ่ฆ็ชๅฐ้็จๅผๆฏๅฆ้้",
+VisitLinkBlocked	: "็กๆณ้ๅๆฐ่ฆ็ช๏ผ่ซ็ขบๅฎๆๆๅฟซ้กฏ่ฆ็ชๅฐ้็จๅผๆฏๅฆ้้",
+
+// 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		: "ๆ่ฆ",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "ๅฒๅญๆ ผๅฑฌๆง",
+DlgCellWidth		: "ๅฏฌๅบฆ",
+DlgCellWidthPx		: "ๅ็ด ",
+DlgCellWidthPc		: "็พๅๆฏ",
+DlgCellHeight		: "้ซๅบฆ",
+DlgCellWordWrap		: "่ชๅๆ่ก",
+DlgCellWordWrapNotSet	: "<ๅฐๆช่จญๅฎ>",
+DlgCellWordWrapYes	: "ๆฏ",
+DlgCellWordWrapNo	: "ๅฆ",
+DlgCellHorAlign		: "ๆฐดๅนณๅฐ้ฝ",
+DlgCellHorAlignNotSet	: "<ๅฐๆช่จญๅฎ>",
+DlgCellHorAlignLeft	: "้ ๅทฆๅฐ้ฝ",
+DlgCellHorAlignCenter	: "็ฝฎไธญ",
+DlgCellHorAlignRight: "้ ๅณๅฐ้ฝ",
+DlgCellVerAlign		: "ๅ็ดๅฐ้ฝ",
+DlgCellVerAlignNotSet	: "<ๅฐๆช่จญๅฎ>",
+DlgCellVerAlignTop	: "้ ไธๅฐ้ฝ",
+DlgCellVerAlignMiddle	: "็ฝฎไธญ",
+DlgCellVerAlignBottom	: "้ ไธๅฐ้ฝ",
+DlgCellVerAlignBaseline	: "ๅบๆบ็ท",
+DlgCellType		: "ๅฒๅญๆ ผ้กๅ",
+DlgCellTypeData		: "่ณๆ",
+DlgCellTypeHeader	: "ๆจ้ก",
+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		: "ๆณ็ฒๅพๆดๅค่ณ่จ่ซ่ณ ",
+
+// Div Dialog
+DlgDivGeneralTab	: "ไธ่ฌ",
+DlgDivAdvancedTab	: "้ฒ้",
+DlgDivStyle		: "ๆจฃๅผ",
+DlgDivInlineStyle	: "CSS ๆจฃๅผ"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ca.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ca.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ca.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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 l'enllaรง",
+VisitLink			: "Obre l'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",
+CreateDiv			: "Crea un contenidor Div",
+EditDiv				: "Edita el contenidor Div",
+DeleteDiv			: "Elimina el contenidor Div",
+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. Assegureu-vos que els bloquejos de finestres emergents estan desactivats.",
+VisitLinkBlocked	: "No ha estat possible obrir una nova finestra. Assegureu-vos 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",
+DlgDivAdvancedTab	: "Avanรงat",
+DlgDivStyle		: "Estil",
+DlgDivInlineStyle	: "Estil en lรญnia"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en-ca.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en-ca.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/en-ca.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open 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",
+CreateDiv			: "Create Div Container",
+EditDiv				: "Edit Div Container",
+DeleteDiv			: "Remove Div Container",
+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.",
+VisitLinkBlocked	: "It was not possible to open a new 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",
+DlgCellTypeData		: "Data",
+DlgCellTypeHeader	: "Header",
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",
+DlgDivAdvancedTab	: "Advanced",
+DlgDivStyle		: "Style",
+DlgDivInlineStyle	: "Inline Style"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/pt.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/pt.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/pt.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/da.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/da.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/da.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "รbn hyperlink",
+Anchor				: "Indsรฆt/rediger bogmรฆrke",
+AnchorDelete		: "Fjern bogmรฆrke",
+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			: "Blokcitat",
+CreateDiv			: "Opret div container",
+EditDiv				: "Rediger div container",
+DeleteDiv			: "Fjern div container",
+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		: "Indsรฆt rรฆkke efter",
+InsertRowBefore		: "Indsรฆt rรฆkke fรธr",
+DeleteRows			: "Slet rรฆkke",
+InsertColumnAfter	: "Indsรฆt kolonne efter",
+InsertColumnBefore	: "Indsรฆt kolonne fรธr",
+DeleteColumns		: "Slet kolonne",
+InsertCellAfter		: "Indsรฆt celle efter",
+InsertCellBefore	: "Indsรฆt celle fรธr",
+DeleteCells			: "Slet celle",
+MergeCells			: "Flet celler",
+MergeRight			: "Flet til hรธjre",
+MergeDown			: "Flet nedad",
+HorizontalSplitCell	: "Del celle vandret",
+VerticalSplitCell	: "Del celle lodret",
+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.",
+VisitLinkBlocked	: "Det var ikke muligt at รฅbne et nyt vindue. Tjek, at ingen popup-blokkere er aktive.",
+
+// 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	: "Navnet pรฅ popup'en skal starte med et bogstav og mรฅ ikke indeholde mellemrum",
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+DlgCellRowSpan		: "Hรธjde i antal rรฆkker",
+DlgCellCollSpan		: "Bredde i antal kolonner",
+DlgCellBackColor	: "Baggrundsfarve",
+DlgCellBorderColor	: "Rammefarve",
+DlgCellBtnSelect	: "Vรฆlg...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Sรธg og erstat",
+
+// 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		: "Pรฅ grund af browserens sikkerhedsindstillinger kan editoren ikke tilgรฅ udklipsholderen direkte. Du skal indsรฆtte udklipsholderens indhold i dette vindue igen.",
+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	: "Knap",
+DlgButtonTypeSbm	: "Send",
+DlgButtonTypeRst	: "Nulstil",
+
+// 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",
+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		: "Centraleuropรฆisk",
+DlgDocCharSetCT		: "Traditionel kinesisk (Big5)",
+DlgDocCharSetCR		: "Kyrillisk",
+DlgDocCharSetGR		: "Grรฆsk",
+DlgDocCharSetJP		: "Japansk",
+DlgDocCharSetKR		: "Koreansk",
+DlgDocCharSetTR		: "Tyrkisk",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Vesteuropรฆisk",
+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	: "Erstat det faktiske indhold",
+
+// About Dialog
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "Generelt",
+DlgAboutLicenseTab	: "Licens",
+DlgAboutVersion		: "version",
+DlgAboutInfo		: "For yderlig information gรฅ til",
+
+// Div Dialog
+DlgDivGeneralTab	: "Generelt",
+DlgDivAdvancedTab	: "Avanceret",
+DlgDivStyle		: "Style",
+DlgDivInlineStyle	: "Inline style"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sr.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sr.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "ะฃะบะปะพะฝะธ ะปะธะฝะบ",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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
+VisitLinkBlocked	: "It was not possible to open a new 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
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "ะัะพะฑะธะฝะต ัะตะปะธัะต",
+DlgCellWidth		: "ะจะธัะธะฝะฐ",
+DlgCellWidthPx		: "ะฟะธะบัะตะปะฐ",
+DlgCellWidthPc		: "ะฟัะพัะตะฝะฐัะฐ",
+DlgCellHeight		: "ะะธัะธะฝะฐ",
+DlgCellWordWrap		: "ะะตัะตัะต ัะตัะธ",
+DlgCellWordWrapNotSet	: "<ะฝะธัะต ะฟะพััะฐะฒัะตะฝะพ>",
+DlgCellWordWrapYes	: "ะะฐ",
+DlgCellWordWrapNo	: "ะะต",
+DlgCellHorAlign		: "ะะพะดะพัะฐะฒะฝะพ ัะฐะฒะฝะฐัะต",
+DlgCellHorAlignNotSet	: "<ะฝะธัะต ะฟะพััะฐะฒัะตะฝะพ>",
+DlgCellHorAlignLeft	: "ะะตะฒะพ",
+DlgCellHorAlignCenter	: "ะกัะตะดะธะฝะฐ",
+DlgCellHorAlignRight: "ะะตัะฝะพ",
+DlgCellVerAlign		: "ะะตััะธะบะฐะปะฝะพ ัะฐะฒะฝะฐัะต",
+DlgCellVerAlignNotSet	: "<ะฝะธัะต ะฟะพััะฐะฒัะตะฝะพ>",
+DlgCellVerAlignTop	: "ะะพััะต",
+DlgCellVerAlignMiddle	: "ะกัะตะดะธะฝะฐ",
+DlgCellVerAlignBottom	: "ะะพัะต",
+DlgCellVerAlignBaseline	: "ะะฐะทะฝะพ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "ะะฐ ะฒะธัะต ะธะฝัะพัะผะฐัะธัะฐ ะฟะพัะตัะธัะต",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/tr.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/tr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/tr.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Kรถprรผ Aรง",
+Anchor				: "รapa Ekle/Dรผzenle",
+AnchorDelete		: "รapa Sil",
+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			: "Blok Oluลtur",
+CreateDiv			: "Div Ekle",
+EditDiv				: "Div Dรผzenle",
+DeleteDiv			: "Div Sil",
+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		: "Bloklarฤฑ Gรถster",
+
+// Context Menu
+EditLink			: "Kรถprรผ Dรผzenle",
+CellCM				: "Hรผcre",
+RowCM				: "Satฤฑr",
+ColumnCM			: "Sรผtun",
+InsertRowAfter		: "Satฤฑr Ekle - Sonra",
+InsertRowBefore		: "Satฤฑr Ekle - รnce",
+DeleteRows			: "Satฤฑr Sil",
+InsertColumnAfter	: "Kolon Ekle - Sonra",
+InsertColumnBefore	: "Kolon Ekle - รnce",
+DeleteColumns		: "Sรผtun Sil",
+InsertCellAfter		: "Hรผcre Ekle - Sonra",
+InsertCellBefore	: "Hรผcre Ekle - รnce",
+DeleteCells			: "Hรผcre Sil",
+MergeCells			: "Hรผcreleri Birleลtir",
+MergeRight			: "Birleลtir - Saฤdaki ฤฐle ",
+MergeDown			: "Birleลtir - Aลaฤฤฑdaki ฤฐle ",
+HorizontalSplitCell	: "Hรผcreyi Yatay Bรถl",
+VerticalSplitCell	: "Hรผcreyi Dikey Bรถl",
+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.",
+VisitLinkBlocked	: "Yeni pencere 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",
+DlgTableHeaders		: "Baลlฤฑklar",
+DlgTableHeadersNone		: "Yok",
+DlgTableHeadersColumn	: "ฤฐlk Sรผtun",
+DlgTableHeadersRow		: "ฤฐlk Satฤฑr",
+DlgTableHeadersBoth		: "Her ฤฐkisi",
+
+// 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",
+DlgCellType		: "Hรผcre Tipi",
+DlgCellTypeData		: "Veri",
+DlgCellTypeHeader	: "Baลlฤฑk",
+DlgCellRowSpan		: "Satฤฑr Kapla",
+DlgCellCollSpan		: "Sรผtun Kapla",
+DlgCellBackColor	: "Arka Plan Rengi",
+DlgCellBorderColor	: "Kenar Rengi",
+DlgCellBtnSelect	: "Seรง...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Bul ve Deฤiลtir",
+
+// 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		: "Gezgin yazฤฑlฤฑmฤฑnฤฑzฤฑn gรผvenlik ayarlarฤฑ dรผzenleyicinin direkt olarak panoya eriลimine izin vermiyor. Bu pencere iรงine tekrar yapฤฑลtฤฑrmalฤฑsฤฑnฤฑz..",
+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:",
+
+// Div Dialog
+DlgDivGeneralTab	: "Genel",
+DlgDivAdvancedTab	: "Geliลmiล",
+DlgDivStyle		: "Sitil",
+DlgDivInlineStyle	: "Satฤฑriรงi Sitil"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fa.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fa.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fa.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "ุจุฑุฏุงุดุชู ูพููุฏ",
+VisitLink			: "ุจุงุฒ ฺฉุฑุฏู ูพููุฏ",
+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			: "ุจููฺฉ ููู ููู",
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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		: "ููุงุด ุจููฺฉโูุง",
+
+// 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			: "ุชูุธูุงุช ุงููุช ูุฑูุฑฺฏุฑ ุดูุง ููฺฉู ุงุณุช ุฏุฑ ุจุนุถ ุงุฒ ูฺฺฏูุง ูุฑูุฑฺฏุฑ ูุญุฏูุฏุช ุงุฌุงุฏ ฺฉูุฏ. ุดูุง ุจุงุฏ ฺฏุฒูููด \"Run ActiveX controls and plug-ins\" ุฑุง ูุนุงู ฺฉูุฏ. ููฺฉู ุงุณุช ุดูุง ุจุง ุฎุทุงูุง ุฑูุจุฑู ุจุงุดุฏ ู ูุชูุฌู ฺฉูุจูุฏ ูฺฺฏูุง ุดูุฏ.",
+BrowseServerBlocked : "ุชูุงูุง ุจุงุฒฺฏุดุง ูุฑูุฑฺฏุฑ ููุงุจุน ูุฑุงูู ูุณุช. ุงุทููุงู ุญุงุตู ฺฉูุฏ ฺฉู ุชูุงู ุจุฑูุงููโูุง ูพุดฺฏุฑ ุงุฒ ููุงุด popup ุฑุง ุงุฒ ฺฉุงุฑ ุจุงุฒุฏุงุดุชูโุงุฏ.",
+DialogBlocked		: "ุชูุงูุง ุจุงุฒฺฏุดุง ูพูุฌุฑููด ฺฉูฺฺฉ ูฺฏูุชฺฏู ูุฑุงูู ูุณุช. ุงุทููุงู ุญุงุตู ฺฉูุฏ ฺฉู ุชูุงู ุจุฑูุงููโูุง ูพุดฺฏุฑ ุงุฒ ููุงุด popup ุฑุง ุงุฒ ฺฉุงุฑ ุจุงุฒุฏุงุดุชูโุงุฏ.",
+VisitLinkBlocked	: "ุงูฺฉุงู ุจุงุฒฺฉุฑุฏู ฺฉ ูพูุฌุฑู ุฌุฏุฏ ูุณุช. ุงุทููุงู ุญุงุตู ฺฉูุฏ ฺฉู ุชูุงู ุจุฑูุงููโูุง ูพุดฺฏุฑ ุงุฒ ููุงุด 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		: "ุฎูุงุตู",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "ูฺฺฏูุง ุณููู",
+DlgCellWidth		: "ูพููุง",
+DlgCellWidthPx		: "ูพฺฉุณู",
+DlgCellWidthPc		: "ุฏุฑุตุฏ",
+DlgCellHeight		: "ุฏุฑุงุฒุง",
+DlgCellWordWrap		: "ุดฺฉุณุชู ูุงฺูโูุง",
+DlgCellWordWrapNotSet	: "<ุชุนูโูุดุฏู>",
+DlgCellWordWrapYes	: "ุจูู",
+DlgCellWordWrapNo	: "ุฎุฑ",
+DlgCellHorAlign		: "ฺูุด ูุงูู",
+DlgCellHorAlignNotSet	: "<ุชุนูโูุดุฏู>",
+DlgCellHorAlignLeft	: "ฺูพ",
+DlgCellHorAlignCenter	: "ูุณุท",
+DlgCellHorAlignRight: "ุฑุงุณุช",
+DlgCellVerAlign		: "ฺูุด ูุนููุฏ",
+DlgCellVerAlignNotSet	: "<ุชุนูโูุดุฏู>",
+DlgCellVerAlignTop	: "ุจุงูุง",
+DlgCellVerAlignMiddle	: "ูุงู",
+DlgCellVerAlignBottom	: "ูพุงุฆู",
+DlgCellVerAlignBaseline	: "ุฎุทโูพุงู",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "ุจู ุฎุงุทุฑ ุชูุธูุงุช ุงููุช ูุฑูุฑฺฏุฑ ุดูุงุ ูุฑุงุดฺฏุฑ ููโุชูุงูุฏ ุฏุณุชุฑุณ ูุณุชูู ุจู ุฏุงุฏูโูุง 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		: "ุจุฑุง ุขฺฏุงู ุจุดุชุฑ ุจู ุงู ูุดุงู ุจุฑูุฏ",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/bg.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/bg.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/bg.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "ะะทััะธะน ะฒััะทะบะฐ",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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
+VisitLinkBlocked	: "It was not possible to open a new 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		: "ะ ะตะทัะผะต",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "ะะฐัะฐะผะตััะธ ะฝะฐ ะบะปะตัะบะฐัะฐ",
+DlgCellWidth		: "ะจะธัะธะฝะฐ",
+DlgCellWidthPx		: "ะฟะธะบัะตะปะธ",
+DlgCellWidthPc		: "ะฟัะพัะตะฝัะธ",
+DlgCellHeight		: "ะะธัะพัะธะฝะฐ",
+DlgCellWordWrap		: "ะฟัะตะฝะฐััะฝะต ะฝะฐ ะฝะพะฒ ัะตะด",
+DlgCellWordWrapNotSet	: "<ะะต ะต ะฝะฐัััะพะตะฝะพ>",
+DlgCellWordWrapYes	: "ะะฐ",
+DlgCellWordWrapNo	: "ะฝะต",
+DlgCellHorAlign		: "ะฅะพัะธะทะพะฝัะฐะปะฝะพ ะฟะพะดัะฐะฒะฝัะฒะฐะฝะต",
+DlgCellHorAlignNotSet	: "<ะะต ะต ะฝะฐัััะพะตะฝะพ>",
+DlgCellHorAlignLeft	: "ะัะฒะพ",
+DlgCellHorAlignCenter	: "ะฆะตะฝััั",
+DlgCellHorAlignRight: "ะััะฝะพ",
+DlgCellVerAlign		: "ะะตััะธะบะฐะปะฝะพ ะฟะพะดัะฐะฒะฝัะฒะฐะฝะต",
+DlgCellVerAlignNotSet	: "<ะะต ะต ะฝะฐัััะพะตะฝะพ>",
+DlgCellVerAlignTop	: "ะะพัะต",
+DlgCellVerAlignMiddle	: "ะะพ ััะตะดะฐัะฐ",
+DlgCellVerAlignBottom	: "ะะพะปั",
+DlgCellVerAlignBaseline	: "ะะพ ะฑะฐะทะพะฒะฐัะฐ ะปะธะฝะธั",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "ะะฐ ะฟะพะฒะตัะต ะธะฝัะพัะผะฐัะธั ะฟะพัะตัะตัะต",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/de.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/de.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/de.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Link aufrufen",
+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",
+CreateDiv			: "Erzeuge Div Block",
+EditDiv				: "Bearbeite Div Block",
+DeleteDiv			: "Entferne Div Block",
+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.",
+VisitLinkBlocked	: "Es war leider nicht mรถglich ein neues Fenster zu รถffnen. Bitte versichern Sie sich das der Popup-Blocker ausgeschaltet ist.",
+
+// 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		: "Horizontal-Abstand",
+DlgImgVSpace		: "Vertikal-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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "Allgemein",
+DlgDivAdvancedTab	: "Erweitert",
+DlgDivStyle		: "Style",
+DlgDivInlineStyle	: "Inline Style"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sv.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sv.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/sv.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+Anchor				: "Infoga/Redigera ankarlรคnk",
+AnchorDelete		: "Radera ankarlรคnk",
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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		: "Lรคgg till Rad Efter",
+InsertRowBefore		: "Lรคgg till Rad Fรถre",
+DeleteRows			: "Radera rad",
+InsertColumnAfter	: "Lรคgg till Kolumn Efter",
+InsertColumnBefore	: "Lรคgg till Kolumn Fรถre",
+DeleteColumns		: "Radera kolumn",
+InsertCellAfter		: "Lรคgg till Cell Efter",
+InsertCellBefore	: "Lรคgg till Cell Fรถre",
+DeleteCells			: "Radera celler",
+MergeCells			: "Sammanfoga celler",
+MergeRight			: "Sammanfoga Hรถger",
+MergeDown			: "Sammanfoga Ner",
+HorizontalSplitCell	: "Dela Cell Horisontellt",
+VerticalSplitCell	: "Dela Cell Vertikalt",
+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.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+DlgCellRowSpan		: "Radomfรฅng",
+DlgCellCollSpan		: "Kolumnomfรฅng",
+DlgCellBackColor	: "Bakgrundsfรคrg",
+DlgCellBorderColor	: "Kantfรคrg",
+DlgCellBtnSelect	: "Vรคlj...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Sรถk och ersรคtt",
+
+// 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",
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ja.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ja.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/ja.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "ใชใณใฏๅ้ค",
+VisitLink			: "ใชใณใฏใ้ใ",
+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			: "ใใญใใฏๅผ็จ",
+CreateDiv			: "Div ไฝๆ",
+EditDiv				: "Div ็ทจ้",
+DeleteDiv			: "Div ๅ้ค",
+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		: "ใใคใขใญใฐใฆใฃใณใใฆใ้ใใใจใใงใใพใใใงใใใใใใใขใใใปใใญใใฏๆฉ่ฝใ็กๅนใซใชใฃใฆใใใ็ขบ่ชใใฆใใ ใใใ",
+VisitLinkBlocked	: "ๆฐใใใฆใฃใณใใฆใ้ใใใจใใงใใพใใใงใใใใใใใขใใใปใใญใใฏๆฉ่ฝใ็กๅนใซใชใฃใฆใใใ็ขบ่ชใใฆใใ ใใใ",
+
+// 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		: "ใใผใใซ็ฎ็/ๆง้ ",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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	: "ใใผในใฉใคใณ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "ใใ่ฉณใใๆๅ ฑใฏใใกใใง",
+
+// Div Dialog
+DlgDivGeneralTab	: "ๅจ่ฌ",
+DlgDivAdvancedTab	: "้ซๅบฆใช่จญๅฎ",
+DlgDivStyle		: "ในใฟใคใซ",
+DlgDivInlineStyle	: "ใคใณใฉใคใณในใฟใคใซ"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/he.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/he.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/he.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "ืืกืจืช ืืงืืฉืืจ",
+VisitLink			: "ืคืชื ืงืืฉืืจ",
+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			: "ืืืืง ืฆืืืื",
+CreateDiv			: "ืฆืืจ ืืืื(ืชื)DIV",
+EditDiv				: "ืขืจืื ืืืื (ืชื)DIV",
+DeleteDiv			: "ืืกืจ ืืืื(ืชื) DIV",
+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		: "ืื ืืื ื ืืชื ืืคืชืื ืืืื ืืืืืื. ืื ื ืืืื ืฉืืืกื ืืืื ืืช ืงืืคืฆืื ืื ืคืขืื.",
+VisitLinkBlocked	: "ืื ื ืืชื ืืคืชืื ืืืื ืืืฉ.ื ื ืืืืื ืฉืืืกืื ืืืืื ืืช ืืงืืคืฆืื ืื ืคืขืืืื.",
+
+// 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		: "ืกืืืื",
+DlgTableHeaders		: "ืืืชืจืืช",
+DlgTableHeadersNone		: "ืืื",
+DlgTableHeadersColumn	: "ืขืืืื ืจืืฉืื ื",
+DlgTableHeadersRow		: "ืฉืืจื ืจืืฉืื ื",
+DlgTableHeadersBoth		: "ืฉื ืืื",
+
+// Table Cell Dialog
+DlgCellTitle		: "ืชืืื ืืช ืชื",
+DlgCellWidth		: "ืจืืื",
+DlgCellWidthPx		: "ืคืืงืกืืื",
+DlgCellWidthPc		: "ืืืื",
+DlgCellHeight		: "ืืืื",
+DlgCellWordWrap		: "ืืืืืช ืฉืืจืืช",
+DlgCellWordWrapNotSet	: "<ืื ื ืงืืข>",
+DlgCellWordWrapYes	: "ืื",
+DlgCellWordWrapNo	: "ืื",
+DlgCellHorAlign		: "ืืืฉืืจ ืืืคืงื",
+DlgCellHorAlignNotSet	: "<ืื ื ืงืืข>",
+DlgCellHorAlignLeft	: "ืฉืืื",
+DlgCellHorAlignCenter	: "ืืจืื",
+DlgCellHorAlignRight: "ืืืื",
+DlgCellVerAlign		: "ืืืฉืืจ ืื ืื",
+DlgCellVerAlignNotSet	: "<ืื ื ืงืืข>",
+DlgCellVerAlignTop	: "ืืืขืื",
+DlgCellVerAlignMiddle	: "ืืืืฆืข",
+DlgCellVerAlignBottom	: "ืืชืืชืืช",
+DlgCellVerAlignBaseline	: "ืงื ืชืืชืืช",
+DlgCellType		: "ืกืื ืชื",
+DlgCellTypeData		: "ืกืื",
+DlgCellTypeHeader	: "ืืืชืจืช",
+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		: "ืืืืข ื ืืกืฃ ื ืืชื ืืืฆืื ืืื:",
+
+// Div Dialog
+DlgDivGeneralTab	: "ืืืื",
+DlgDivAdvancedTab	: "ืืชืงืื",
+DlgDivStyle		: "ืกืื ืื",
+DlgDivInlineStyle	: "ืกืื ืื ืืชืื ืืฉืืจื"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fi.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fi.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/fi.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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",
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//MISSING
+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รค.",
+VisitLinkBlocked	: "It was not possible to open a new window. Make sure all popup blockers are disabled.",	//MISSING
+
+// 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",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// 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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/hi.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/hi.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/hi.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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			: "เคฒเคฟเคเค เคนเคเคพเคฏเฅเค",
+VisitLink			: "เคฒเคฟเคเค เคเฅเคฒเฅเค",
+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			: "เคฌเฅเคฒเฅเค-เคเฅเค",
+CreateDiv			: "เคกเคฟเคต (Div) เคเคจเฅเคเฅเคจเคฐ เคฌเคจเคพเคฏเฅเค",
+EditDiv				: "เคกเคฟเคต (Div) เคเคจเฅเคเฅเคจเคฐ เคฌเคฆเคฒเฅเค",
+DeleteDiv			: "เคกเคฟเคต เคเคจเฅเคเฅเคจเคฐ เคนเคเคพเคฏเฅเค",
+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		: "เคกเคพเคฏเคฒเค เคตเคฟเคจเฅเคกเฅ เคจเคนเฅเค เคเฅเคฒเคพ เคเคพ เคธเคเคพเฅค เคเฅเคฐเคฟเคชเคฏเคพ เคธเคญเฅ เคชเฅเคชเฅ-เคเคชเฅ เคฌเฅเคฒเฅเคเคฐเฅเคธเฅ เคเฅ เคจเคฟเคทเฅเคเฅเคฐเคฟเคฏ เคเคฐเฅเคเฅค",
+VisitLinkBlocked	: "เคจเคฏเคพ เคตเคฟเคจเฅเคกเฅ เคจเคนเฅเค เคเฅเคฒเคพ เคเคพ เคธเคเคพเฅค เคเฅเคฐเคฟเคชเคฏเคพ เคธเคญเฅ เคชเฅเคชเฅ-เคเคชเฅ เคฌเฅเคฒเฅเคเคฐเฅเคธเฅ เคเฅ เคจเคฟเคทเฅเคเฅเคฐเคฟเคฏ เคเคฐเฅเคเฅค",
+
+// 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		: "เคธเคพเคฐเคพเคเคถ",
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "เคธเฅเคฒ เคชเฅเคฐเฅเคชเคฐเฅเคเฅเฅ",
+DlgCellWidth		: "เคเฅเฅเคพเค",
+DlgCellWidthPx		: "เคชเคฟเคเฅเคธเฅเคฒ",
+DlgCellWidthPc		: "เคชเฅเคฐเคคเคฟเคถเคค",
+DlgCellHeight		: "เคเคเคเคพเค",
+DlgCellWordWrap		: "เคตเคฐเฅเคก เคฐเฅเคช",
+DlgCellWordWrapNotSet	: "<เคธเฅเค เคจเคนเฅเค>",
+DlgCellWordWrapYes	: "เคนเคพเค",
+DlgCellWordWrapNo	: "เคจเคนเฅเค",
+DlgCellHorAlign		: "เคนเฅเคฐเคฟเฅเฅเคจเฅเคเคฒ เคเคฒเคพเคเคจเฅเคฎเฅเคจเฅเค",
+DlgCellHorAlignNotSet	: "<เคธเฅเค เคจเคนเฅเค>",
+DlgCellHorAlignLeft	: "เคฆเคพเคฏเฅเค",
+DlgCellHorAlignCenter	: "เคฌเฅเค เคฎเฅเค",
+DlgCellHorAlignRight: "เคฌเคพเคฏเฅเค",
+DlgCellVerAlign		: "เคตเคฐเฅเคเคฟเคเคฒ เคเคฒเคพเคเคจเฅเคฎเฅเคจเฅเค",
+DlgCellVerAlignNotSet	: "<เคธเฅเค เคจเคนเฅเค>",
+DlgCellVerAlignTop	: "เคเคชเคฐ",
+DlgCellVerAlignMiddle	: "เคฎเคงเฅเคฏ",
+DlgCellVerAlignBottom	: "เคจเฅเคเฅ",
+DlgCellVerAlignBaseline	: "เคฎเฅเคฒเคฐเฅเคเคพ",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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		: "เคเคงเคฟเค เคเคพเคจเคเคพเคฐเฅ เคเฅ เคฒเคฟเคฏเฅ เคฏเคนเคพเค เคเคพเคฏเฅเค:",
+
+// Div Dialog
+DlgDivGeneralTab	: "เคธเคพเคฎเคพเคจเฅเคฏ",
+DlgDivAdvancedTab	: "เคเคกเฅเคตเคพเคจเฅเคธเฅเคก",
+DlgDivStyle		: "เคธเฅเคเคพเคเคฒ",
+DlgDivInlineStyle	: "เคเคจเคฒเคพเคเคจ เคธเฅเคเคพเคเคฒ"
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/eo.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/eo.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/lang/eo.js	(revision 1130)
@@ -0,0 +1,534 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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",
+VisitLink			: "Open Link",	//MISSING
+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
+CreateDiv			: "Create Div Container",	//MISSING
+EditDiv				: "Edit Div Container",	//MISSING
+DeleteDiv			: "Remove Div Container",	//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
+VisitLinkBlocked	: "It was not possible to open a new 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
+DlgTableHeaders		: "Headers",	//MISSING
+DlgTableHeadersNone		: "None",	//MISSING
+DlgTableHeadersColumn	: "First column",	//MISSING
+DlgTableHeadersRow		: "First Row",	//MISSING
+DlgTableHeadersBoth		: "Both",	//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",
+DlgCellType		: "Cell Type",	//MISSING
+DlgCellTypeData		: "Data",	//MISSING
+DlgCellTypeHeader	: "Header",	//MISSING
+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",
+
+// Div Dialog
+DlgDivGeneralTab	: "General",	//MISSING
+DlgDivAdvancedTab	: "Advanced",	//MISSING
+DlgDivStyle		: "Style",	//MISSING
+DlgDivInlineStyle	: "Inline Style"	//MISSING
+};
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/smiley/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/smiley/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/smiley/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/smiley/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/images/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog_ie6.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog_ie6.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog_ie6.js	(revision 1130)
@@ -0,0 +1,110 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_editor.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_editor.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_editor.css	(revision 1130)
@@ -0,0 +1,476 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog.css	(revision 1130)
@@ -0,0 +1,402 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/images/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog_ie6.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog_ie6.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog_ie6.js	(revision 1130)
@@ -0,0 +1,110 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_editor.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_editor.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_editor.css	(revision 1130)
@@ -0,0 +1,464 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog.css	(revision 1130)
@@ -0,0 +1,402 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog_ie6.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog_ie6.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog_ie6.js	(revision 1130)
@@ -0,0 +1,110 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_editor.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_editor.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_editor.css	(revision 1130)
@@ -0,0 +1,473 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog.css	(revision 1130)
@@ -0,0 +1,402 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/skins/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/behaviors/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/behaviors/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/behaviors/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/behaviors/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/behaviors/disablehandles.htc
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/behaviors/disablehandles.htc	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/behaviors/disablehandles.htc	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/behaviors/showtableborders.htc
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/behaviors/showtableborders.htc	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/behaviors/showtableborders.htc	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/images/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/fck_internal.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/fck_internal.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/fck_internal.css	(revision 1130)
@@ -0,0 +1,199 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/fck_editorarea.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/fck_editorarea.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/fck_editorarea.css	(revision 1130)
@@ -0,0 +1,110 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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;
+}
+*/
+
+/**
+ * Uncomment the following block, or only selected lines if appropriate,
+ * if you have some style items that would break the styles combo box.
+ * You can also write other CSS overrides inside the style block below
+ * as needed and they will be applied to inside the style combo only.
+ */
+
+/*
+.SC_Item *, .SC_ItemSelected *
+{
+	margin: 0px !important;
+	padding: 0px !important;
+	text-indent: 0px !important;
+	clip: auto !important;
+	position: static !important;
+}
+*/
+
+/**
+ * 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/fck_showtableborders_gecko.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/fck_showtableborders_gecko.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/css/fck_showtableborders_gecko.css	(revision 1130)
@@ -0,0 +1,49 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10transitional.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10transitional.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10transitional.js	(revision 1130)
@@ -0,0 +1,140 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10strict.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10strict.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10strict.js	(revision 1130)
@@ -0,0 +1,116 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/fck_dtd_test.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/fck_dtd_test.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/dtd/fck_dtd_test.html	(revision 1130)
@@ -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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckeditor.original.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckeditor.original.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckeditor.original.html	(revision 1130)
@@ -0,0 +1,424 @@
+๏ปฟ<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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">
+
+// #1645: Alert the user if opening FCKeditor in FF3 from local filesystem
+// without security.fileuri.strict_origin_policy disabled.
+if ( document.location.protocol == 'file:' )
+{
+	try
+	{
+		window.parent.document.domain ;
+	}
+	catch ( e )
+	{
+		window.addEventListener( 'load', function()
+			{
+				document.body.innerHTML = '\
+					<div style="border: 1px red solid; font-family: arial; font-size: 12px; color: red; padding:10px;">\
+						<p>\
+							<b>Your browser security settings don\'t allow FCKeditor to be opened from\
+							the local filesystem.<\/b>\
+						<\/p>\
+						<p>\
+							Please open the <b>about:config<\/b> page and disable the\
+							&quot;security.fileuri.strict_origin_policy&quot; option; then load this page again.\
+						<\/p>\
+						<p>\
+							Check our <a href="http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/FAQ#ff3perms">FAQ<\/a>\
+							for more information.\
+						<\/p>\
+					<\/div>' ;
+			}, false ) ;
+	}
+}
+
+// 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_empty.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() ;
+
+// Load the full debug script.
+if ( FCKConfig.Debug )
+	LoadScript( '_source/internals/fckdebug.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+var FCK_InternalCSS			= FCKConfig.BasePath + 'css/fck_internal.css' ;					// @Packager.RemoveLine
+var FCK_ShowTableBordersCSS	= FCKConfig.BasePath + 'css/fck_showtableborders_gecko.css' ;	// @Packager.RemoveLine
+/* @Packager.RemoveLine
+// CSS minified by http://iceyboard.no-ip.org/projects/css_compressor (see _dev/css_compression.txt).
+var FCK_InternalCSS			= FCKTools.FixCssUrls( FCKConfig.BasePath + '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__UnknownObject{border:#a9a9a9 1px solid;background-position:center center;background-image:url(images/fck_plugin.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.BasePath + '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 ) ;
+
+		if ( !FCKConfig.PreventSubmitHandler )
+			_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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckdialog.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckdialog.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckdialog.html	(revision 1130)
@@ -0,0 +1,819 @@
+<!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-2009 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">
+// <![CDATA[
+
+// 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 = 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 ) ;
+		}
+	}
+
+	/**
+	 * IE6 has a similar bug where it sometimes thinks $('contents') has an
+	 * offsetHeight of 0 (#2114).
+	 */
+	if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
+	{
+		var originalRefreshContainerSize = retval.RefreshContainerSize ;
+		retval.RefreshContainerSize = function()
+		{
+			FCKTools.SetTimeout( originalRefreshContainerSize, 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' ) ;
+
+			if (throbberParent.childNodes.length == 0)
+			{
+				// 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 = ''  ;
+
+			// Hide tabs and buttons:
+			$( 'Tabs' ).style.visibility = 'hidden' ;
+			$( 'PopupButtons' ).style.visibility = 'hidden' ;
+
+			// Setup the animation interval.
+			timer = setInterval( updateThrobber, 100 ) ;
+		},
+
+		Hide : function()
+		{
+			if ( timer )
+			{
+				clearInterval( timer ) ;
+				timer = null ;
+			}
+
+			$( 'throbberBlock' ).style.visibility = 'hidden' ;
+
+			// Show tabs and buttons:
+			$( 'Tabs' ).style.visibility = '' ;
+			$( 'PopupButtons' ).style.visibility = '' ;
+		}
+	} ;
+}() ;
+
+// 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()
+	{
+		// Move the focus to the Cancel button so even if the dialog contains a
+		// contentEditable element the selection is properly restored in the editor #2496
+		window.focus() ;
+		$( 'btnCancel' ).focus() ;
+
+		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()
+	{
+		$( 'contents' ).dir = langDir;
+
+		// 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">
+// <![CDATA[
+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">
+// <![CDATA[
+			// 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckdebug.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckdebug.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckdebug.html	(revision 1130)
@@ -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-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckeditor.html
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckeditor.html	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/editor/fckeditor.html	(revision 1130)
@@ -0,0 +1,317 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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">
+
+// #1645: Alert the user if opening FCKeditor in FF3 from local filesystem
+// without security.fileuri.strict_origin_policy disabled.
+if ( document.location.protocol == 'file:' )
+{
+	try
+	{
+		window.parent.document.domain ;
+	}
+	catch ( e )
+	{
+		window.addEventListener( 'load', function()
+			{
+				document.body.innerHTML = '\
+					<div style="border: 1px red solid; font-family: arial; font-size: 12px; color: red; padding:10px;">\
+						<p>\
+							<b>Your browser security settings don\'t allow FCKeditor to be opened from\
+							the local filesystem.<\/b>\
+						<\/p>\
+						<p>\
+							Please open the <b>about:config<\/b> page and disable the\
+							&quot;security.fileuri.strict_origin_policy&quot; option; then load this page again.\
+						<\/p>\
+						<p>\
+							Check our <a href="http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/FAQ#ff3perms">FAQ<\/a>\
+							for more information.\
+						<\/p>\
+					<\/div>' ;
+			}, false ) ;
+	}
+}
+
+// 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() ;
+
+// Load the full debug script.
+if ( FCKConfig.Debug )
+	LoadScript( '_source/internals/fckdebug.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// CSS minified by http://iceyboard.no-ip.org/projects/css_compressor (see _dev/css_compression.txt).
+var FCK_InternalCSS			= FCKTools.FixCssUrls( FCKConfig.BasePath + '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__UnknownObject{border:#a9a9a9 1px solid;background-position:center center;background-image:url(images/fck_plugin.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.BasePath + '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 ) ;
+
+		if ( !FCKConfig.PreventSubmitHandler )
+			_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.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor.js	(revision 1130)
@@ -0,0 +1,330 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.4.1' ;
+FCKeditor.prototype.VersionBuild	= '23187' ;
+
+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 ;
+
+		if ( this.TabIndex )
+			sHtml += '" tabindex="' + this.TabIndex ;
+
+		sHtml += '">' +
+			this._HTMLEncode( this.Value ) +
+			'<\/textarea>' ;
+	}
+
+	return sHtml ;
+}
+
+FCKeditor.prototype.ReplaceTextarea = function()
+{
+	if ( document.getElementById( this.InstanceName + '___Frame' ) )
+		return ;
+	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' ;
+
+		if ( oTextarea.tabIndex )
+			this.TabIndex = oTextarea.tabIndex ;
+
+		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 ;
+
+	var html = '<iframe id="' + this.InstanceName +
+		'___Frame" src="' + sLink +
+		'" width="' + this.Width +
+		'" height="' + this.Height ;
+
+	if ( this.TabIndex )
+		html += '" tabindex="' + this.TabIndex ;
+
+	html += '" frameborder="0" scrolling="no"></iframe>' ;
+
+	return html ;
+}
+
+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.8.0/trunk/wb/modules/fckeditor/fckeditor/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/modules/fckeditor/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.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor.php	(revision 1130)
@@ -0,0 +1,31 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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).
+ */
+
+if ( !function_exists('version_compare') || version_compare( phpversion(), '5', '<' ) )
+	include_once( 'fckeditor_php4.php' ) ;
+else
+	include_once( 'fckeditor_php5.php' ) ;
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckpackager.xml
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckpackager.xml	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckpackager.xml	(revision 1130)
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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-2009 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_empty.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_empty.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.8.0/trunk/wb/modules/fckeditor/fckeditor/license.txt
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/license.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/license.txt	(revision 1130)
@@ -0,0 +1,1246 @@
+FCKeditor - The text editor for Internet - http://www.fckeditor.net
+Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/fcktemplates.xml
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fcktemplates.xml	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fcktemplates.xml	(revision 1130)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/fckconfig.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckconfig.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckconfig.js	(revision 1130)
@@ -0,0 +1,320 @@
+๏ปฟ/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options
+ */
+
+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.EMailProtection = 'none' ; // none | encode | function
+FCKConfig.EMailProtectionFunction = 'mt(NAME,DOMAIN,SUBJECT,BODY)' ;
+
+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.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','CreateDiv'],
+	['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' ],
+	[ CTRL + 45 /*INS*/, true ],
+	[ 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' ],
+	[ SHIFT + 32 /*SPACE*/, 'Nbsp' ]
+] ;
+
+FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form','DivContainer'] ;
+FCKConfig.BrowserContextMenuOnCtrl = false ;
+FCKConfig.BrowserContextMenu = 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			= 'WSC' ;	// 'WSC' | 'SpellerPages' | 'ieSpell'
+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' ;
+
+// 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 ;
+
+FCKConfig.MsWebBrowserControlCompat = false ;
+
+FCKConfig.PreventSubmitHandler = false ;
Index: tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckstyles.xml
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckstyles.xml	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckstyles.xml	(revision 1130)
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor_php4.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor_php4.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor_php4.php	(revision 1130)
@@ -0,0 +1,262 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.
+ */
+
+/**
+ * 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 ;
+}
+
+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.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor_php5.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor_php5.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/fckeditor/fckeditor_php5.php	(revision 1130)
@@ -0,0 +1,257 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 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.
+ */
+
+/**
+ * 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 ;
+}
+
+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.8.0/trunk/wb/modules/fckeditor/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/info.php	(revision 1130)
@@ -0,0 +1,131 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.89 (ruebenwurzel.. Matthias Gallas; Jul 6, 2009)
+		+	update to FCKEditor release v2.6.4.1
+		+	added WB Droplet Plugin
+		+	added Advisory Relation to Links (thanks to Luisehahne)
+
+	v2.88 (ruebenwurzel.. Matthias Gallas; Feb 1, 2009)
+		+	update to FCKEditor release v2.64
+	
+	v2.87 (ruebenwurzel.. Matthias Gallas; Aug 19, 2008)
+		+	update to FCKEditor release v2.63
+	
+	v2.86 (doc.. Christian Sommer; Jul 2, 2008)
+		+	update to FCKEditor release v2.62
+
+	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.89';
+$module_platform		= '2.7';
+$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.4</a>.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fckconfig.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fckconfig.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fckconfig.js	(revision 1130)
@@ -0,0 +1,190 @@
+/*
+ #########################################################################################
+ # 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' ) ;
+   FCKConfig.Plugins.Add( 'WBDroplets', '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'],
+	['WBDroplets','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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/wb_config/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/wb_config/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/wb_config/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fckeditorarea.css
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fckeditorarea.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fckeditorarea.css	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fcktemplates.xml
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fcktemplates.xml	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fcktemplates.xml	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fckstyles.xml
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fckstyles.xml	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/wb_config/wb_fckstyles.xml	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/class.cssparser.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/class.cssparser.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/class.cssparser.php	(revision 1130)
@@ -0,0 +1,304 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/uninstall.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/css_to_xml.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/css_to_xml.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/css_to_xml.php	(revision 1130)
@@ -0,0 +1,40 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/fckeditor/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/fckeditor/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/fckeditor/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/languages/DA.php	(revision 1130)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DANISH LANGUAGE FILE FOR THE ADDON: WRAPPER
+ -----------------------------------------------------------------------------------------
+*/
+
+// Dansk modulbeskrivelse
+$module_description = 'Med dette modul kan du indpakke indhold fra fremmede websider p&Atilde;&yen; dit websted ved hj&Atilde;&brvbar;lp af Inline Frames (iframe)';
+
+// Headings and text outputs
+$MOD_WRAPPER['NOTICE'] = 'Din browser underst&Atilde;ธtter ikke inline frames.<br />Klik p&Atilde;&yen; linket nedenfor for at bes&Atilde;ธge det websted, som det var hensigten at vise her...<br />';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/wrapper/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.8.0/trunk/wb/modules/wrapper/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/languages/NO.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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&oslash;tter ikke &quot;inline frames&quot;.<br />Klikk p&amp;aring; lenken under for &amp;aring; g&amp;aring; til nettsiden som var men &amp;aring; skulle vises i dette vinduet...<br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/languages/FR.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE ADDON: WRAPPER
+ -----------------------------------------------------------------------------------------
+*/
+//Module Description
+$module_description = 'Ce module permet l&apos;int&eacute;gration de contenus externes sur votre page &agrave; l&apos;aide de cadres enlign&eacute; (iframe)';
+
+// Ueberschriften und Textausgaben
+$MOD_WRAPPER['NOTICE'] = 'Votre navigateur ne supporte pas les cadres enlign&eacute;<br />Cliquez sur le lien ci-dessous pour vous rendre au site qui &eacute;tais sens&eacute; ๊tre affich&eacute; ici...<br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/wrapper/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.8.0/trunk/wb/modules/wrapper/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/languages/NL.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/languages/EN.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/languages/RU.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/languages/DE.php	(revision 1130)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/modify.htt
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/modify.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/modify.htt	(revision 1130)
@@ -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.8.0/trunk/wb/modules/wrapper/modify.htt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/wrapper/modify.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/modify.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/modify.php	(revision 1130)
@@ -0,0 +1,56 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.htt');
+$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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/view.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/view.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/view.php	(revision 1130)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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']; ?>" 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/info.php	(revision 1130)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/save.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/save.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/save.php	(revision 1130)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/delete.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/delete.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/delete.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/install.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/install.php	(revision 1130)
@@ -0,0 +1,41 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wrapper/add.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wrapper/add.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wrapper/add.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/languages/DA.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DANISH LANGUAGE FILE FOR THE ADDON: MENU_LINK
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MENU_LINK['TEXT'] = 'Klik HER for at f&Atilde;&yen; til hovedsiden';
+$MOD_MENU_LINK['EXTERNAL_LINK'] = 'Eksternt link';
+$MOD_MENU_LINK['R_TYPE'] = 'Redirect-type';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/menu_link/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.8.0/trunk/wb/modules/menu_link/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/languages/NO.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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';
+$MOD_MENU_LINK['R_TYPE'] = 'Omdirigerings Type';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/languages/FR.php	(revision 1130)
@@ -0,0 +1,33 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE ADDON: MENU_LINK
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MENU_LINK['TEXT']				= 'Cliquez ICI pour retourn&eacute; &agrave; la page principale';
+$MOD_MENU_LINK['EXTERNAL_LINK'] = 'Lien externe';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/menu_link/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.8.0/trunk/wb/modules/menu_link/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/languages/NL.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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';
+$MOD_MENU_LINK['R_TYPE'] = 'Redirect-Type';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/languages/EN.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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';
+$MOD_MENU_LINK['R_TYPE'] = 'Redirect-Type';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/languages/RU.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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;';
+$MOD_MENU_LINK['R_TYPE'] = 'Redirect-Type';
+
+?>

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/languages/DE.php	(revision 1130)
@@ -0,0 +1,37 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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';
+$MOD_MENU_LINK['R_TYPE'] = 'Redirect-Typ';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/info.php	(revision 1130)
@@ -0,0 +1,52 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8 - June 2009
+- Improved the pagelist (thorn)
+- Added different redirect types 301 or 302 (thorn)
+- Set platform version 2.8
+
+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.8';
+$module_platform = '2.8.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.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/modify.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/modify.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/modify.php	(revision 1130)
@@ -0,0 +1,236 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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'];
+$r_type = $sql_row['redirect_type'];
+$extern = $sql_row['extern'];
+$anchor = $sql_row['anchor'];
+$sel = ' selected';
+
+// Get list of all visible pages and build a page-tree
+
+// this function will fetch the page_tree, recursive
+if(!function_exists('menulink_make_tree')) {
+function menulink_make_tree($parent, $link_pid, $tree) {
+	global $database, $admin, $menulink_titles;
+	$table_p = TABLE_PREFIX."pages";
+	// get list of page-trails, recursive
+	if($query_page = $database->query("SELECT * FROM `$table_p` WHERE `parent`=$parent ORDER BY `position`")) {
+		while($page = $query_page->fetchRow()) {
+			if($admin->page_is_visible($page) ) {
+				$pids = explode(',', $page['page_trail']);
+				$entry = '';
+				foreach($pids as $pid)
+					$entry .= $menulink_titles[$pid].' / ';
+				$tree[$page['page_id']] = rtrim($entry, '/ ');
+				$tree = menulink_make_tree($page['page_id'], $link_pid, $tree);
+			}
+		}
+	}
+	return($tree);
+}
+}
+
+// get list of all page_ids and page_titles
+global $menulink_titles;
+$menulink_titles = array();
+$table_p = TABLE_PREFIX."pages";
+if($query_page = $database->query("SELECT `page_id`,`page_title` FROM `$table_p`")) {
+	while($page = $query_page->fetchRow())
+		$menulink_titles[$page['page_id']] = $page['page_title'];
+}
+// now get the tree
+$links = array();
+$links = menulink_make_tree(0, $page_id, $links);
+
+// 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
+			if(defined('SEC_ANCHOR') && SEC_ANCHOR!='') {
+				$targets[$pid][] = SEC_ANCHOR.$section['section_id'];
+			} else {
+				$targets[$pid] = array();
+			}
+			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('/<(?:a[^>]+name|[^>]+id)\s*=\s*"([^"]+)"/i',$page['content'], $match)) {
+						foreach($match[1] AS $t) {
+							$targets[$pid][$t] = $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) {
+				if ($pid == $page_id)  // Display current page with selection disabled
+					echo "<option value=\"$pid\" disabled=\"disabled\">$link *</option>";
+				else
+					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="selected"'; ?>><?php echo $TEXT['NEW_WINDOW'] ?></option>
+			<option value="_self"<?php if($target=='_self') echo ' selected="selected"'; ?>><?php echo $TEXT['SAME_WINDOW'] ?></option>
+			<option value="_top"<?php if($target=='_top') echo ' selected="selected"'; ?>><?php echo $TEXT['TOP_FRAME'] ?></option>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>
+		<?php echo $MOD_MENU_LINK['R_TYPE'].':' ?>
+	</td>
+	<td>
+		<select name="r_type" style="width:250px;" />
+			<option value="301"<?php if($r_type=='301') echo ' selected="selected"'; ?>>301</option>
+			<option value="302"<?php if($r_type=='302') echo ' selected="selected"'; ?>>302</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.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/uninstall.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/view.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/view.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/view.php	(revision 1130)
@@ -0,0 +1,43 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/save.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/save.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/save.php	(revision 1130)
@@ -0,0 +1,59 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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']);
+	$r_type = $admin->add_slashes($_POST['r_type']);
+	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', `redirect_type` = '$r_type' 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.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/delete.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/delete.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/delete.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/install.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/install.php	(revision 1130)
@@ -0,0 +1,46 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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',
+		`redirect_type` INT NOT NULL DEFAULT '302',
+		`anchor` VARCHAR(255) NOT NULL DEFAULT '0' ,
+		`extern` VARCHAR(255) NOT NULL DEFAULT '' ,
+		PRIMARY KEY (`section_id`)
+	)
+");
+
+?>

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/menu_link/add.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/menu_link/add.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/menu_link/add.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/languages/DA.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DANISH LANGUAGE FILE FOR THE MODULE: WYSIWYG
+ -----------------------------------------------------------------------------------------
+*/
+
+// Dansk modulbeskrivelse
+$module_description = 'Dette modul g&oslash;r det muligt at redigere sideindhold ved hj&aelig;lp af en grafisk editor.';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/wysiwyg/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.8.0/trunk/wb/modules/wysiwyg/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/languages/NO.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 MODULE: WYSIWYG
+ -----------------------------------------------------------------------------------------
+*/
+
+// Norwegian Moduledescription
+$module_description = 'Denne modulen lar deg redigere innholdet p&aring; websidene dine med et grafisk redigerings verkt&oslash;y';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/wysiwyg/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.8.0/trunk/wb/modules/wysiwyg/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/languages/FR.php	(revision 1130)
@@ -0,0 +1,31 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE ADDON: WYSIWYG
+ -----------------------------------------------------------------------------------------
+*/
+//Module Description
+$module_description = 'Ce module permet de modifier le contenu de la page &agrave; l&apos;aide d&apos;un &eacute;diteur graphique';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/wysiwyg/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.8.0/trunk/wb/modules/wysiwyg/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/languages/NL.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/languages/RU.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/languages/DE.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/modify.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/modify.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/modify.php	(revision 1130)
@@ -0,0 +1,78 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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">
+		<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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/view.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/view.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/view.php	(revision 1130)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/info.php	(revision 1130)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/save.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/save.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/save.php	(revision 1130)
@@ -0,0 +1,55 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/delete.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/delete.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/delete.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/search.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/search.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/search.php	(revision 1130)
@@ -0,0 +1,63 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/install.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/install.php	(revision 1130)
@@ -0,0 +1,65 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/wysiwyg/add.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/wysiwyg/add.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/wysiwyg/add.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/languages/DA.php	(revision 1130)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DANISH LANGUAGE FILE FOR THE CAPTCHA-CONTROL ADMIN TOOL
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_CAPTCHA_CONTROL['HEADING'] = 'Captcha og ASP styring';
+$MOD_CAPTCHA_CONTROL['HOWTO'] = 'Her kan du styre anvendelsen af  of "CAPTCHA" og "Avanceres spambeskyttelse" (ASB). For at f&Atilde;&yen; ASB til at fungere sammen med et givet modul, skal det p&Atilde;&yen;g&Atilde;&brvbar;ldende modul  tilrettes til at anvende ASB';
+
+// Text and captions of form elements
+$MOD_CAPTCHA_CONTROL['CAPTCHA_CONF'] = 'CAPTCHA konfigurering';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TYPE'] = 'Type af CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_EXP'] = 'CAPTCHA indstillinger for moduler findes i modulindstillingerne for de respektive moduler';
+$MOD_CAPTCHA_CONTROL['USE_SIGNUP_CAPTCHA'] = 'Brug af CAPTCHA ved tilmelding';
+$MOD_CAPTCHA_CONTROL['ENABLED'] = 'Sl&Atilde;&yen; til';
+$MOD_CAPTCHA_CONTROL['DISABLED'] = 'Sl&Atilde;&yen; fra';
+$MOD_CAPTCHA_CONTROL['ASP_CONF'] = 'Indstillnger for avanceret spam beskyttelse';
+$MOD_CAPTCHA_CONTROL['ASP_TEXT'] = 'Aktiver ASB (hvis muligt)';
+$MOD_CAPTCHA_CONTROL['ASP_EXP'] = 'ASB fors&Atilde;ธger at afg&Atilde;ธre om en formular er udfyldt af en menneske eller spam-robot';
+$MOD_CAPTCHA_CONTROL['CALC_TEXT'] = 'Beregning som tekst';
+$MOD_CAPTCHA_CONTROL['CALC_IMAGE'] = 'Beregning som billede';
+$MOD_CAPTCHA_CONTROL['CALC_TTF_IMAGE'] = 'Beregning som billede med forskellige fonte og baggrunde';
+$MOD_CAPTCHA_CONTROL['TTF_IMAGE'] = 'Billede med forskellige fonte og baggrunde';
+$MOD_CAPTCHA_CONTROL['OLD_IMAGE'] = 'Traditionel m&Atilde;&yen;de (anbefales ikke)';
+$MOD_CAPTCHA_CONTROL['TEXT'] = 'Tekst-CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_ENTER_TEXT'] = 'Sp&Atilde;ธrgsm&Atilde;&yen;l og svar';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TEXT_DESC'] = 'Slet alt her for at lave dine egne valg."n".eller dine &Atilde;&brvbar;ndringer bliver ikke gemt!."n".### eksempel ###."n".Her kan du indtaste sp&Atilde;ธrgsm&Atilde;&yen;l og svar."n".Brug:."n".?Hvad er  <b>Anne</b> Linnets <b>fornavn</b>?."n".!Anne."n".?Sp&Atilde;ธrgsm&Atilde;&yen;l 2."n".!Svar 2."n".."n".hvis sproget er uden betydning.."n". ... ."n".Eller, hvis sproget har betydning, brug:."n".?EN:Whats <b>Anne</b> Linnets <b>first name</b>?."n".!Anne."n".?EN:Question 2."n".!Answer 2."n".?DE:Wie ist der <b>Vorname</b> von <b>Anne</b> Linnet?."n".!Anne."n". ... ."n".### eksempel ###."n".';
+
+$MOD_CAPTCHA['VERIFICATION'] = 'Verificering';
+$MOD_CAPTCHA['ADDITION'] = 'adder';
+$MOD_CAPTCHA['SUBTRAKTION'] = 'tr&Atilde;&brvbar;k fra';
+$MOD_CAPTCHA['MULTIPLIKATION'] = 'gang';
+$MOD_CAPTCHA['VERIFICATION_INFO_RES'] = 'Inds&Atilde;&brvbar;t resultat';
+$MOD_CAPTCHA['VERIFICATION_INFO_TEXT'] = 'Inds&Atilde;&brvbar;t tekst';
+$MOD_CAPTCHA['VERIFICATION_INFO_QUEST'] = 'Besvar sp&Atilde;ธrgsm&Atilde;&yen;l';
+$MOD_CAPTCHA['INCORRECT_VERIFICATION'] = 'Verificering mislykkedes';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/captcha_control/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.8.0/trunk/wb/modules/captcha_control/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/languages/NO.php	(revision 1130)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 spesifik modul, m&aring; denne tilpasses for bruk sammen med ASP. ASP vil ellers ikke fungere med moduler hvor denne endringen ikke 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 modulene.';
+$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 bakgrunner'; 
+$MOD_CAPTCHA_CONTROL['TTF_IMAGE']         = 'Bilde med varierende fonter og bakgrunner';
+$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 innlegg ellers 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']               = 'pluss';
+$MOD_CAPTCHA['SUBTRAKTION']            = 'minus';
+$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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/languages/FR.php	(revision 1130)
@@ -0,0 +1,63 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE CAPTCHA-CONTROL ADMIN TOOL
+ -----------------------------------------------------------------------------------------
+*/
+//Module Description
+$module_description = 'Outil d&apos;administration de la v&eacute;rification par Captcha et du ASP';
+
+// Headings and text outputs
+$MOD_CAPTCHA_CONTROL['HEADING']           = 'Contr&ocirc;le du Captcha et de l&apos;ASP';
+$MOD_CAPTCHA_CONTROL['HOWTO']             = 'Ici vous pouvez modifier le comportement du "CAPTCHA" et de l&apos;ASP (Advanced Spam Protection). Pour qu&apos;un module puisse utiliser l&apos;ASP, il doit &ecirc;tre sp&eacute;cifiquement adapt&eacute;.';
+
+// Text and captions of form elements
+$MOD_CAPTCHA_CONTROL['CAPTCHA_CONF']      = 'Configuration du CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TYPE']      = 'Type de CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_EXP']       = 'les r&eacute;glagles des CAPTCHA pour les modules sont d&eacute;finis dans leurs pr&eacute;f&eacute;rences respectives';
+$MOD_CAPTCHA_CONTROL['USE_SIGNUP_CAPTCHA']= 'CAPTCHA avant validation';
+$MOD_CAPTCHA_CONTROL['ENABLED']           = 'Activ&eacute;';
+$MOD_CAPTCHA_CONTROL['DISABLED']          = 'D&eacute;sactiv&eacute;';
+$MOD_CAPTCHA_CONTROL['ASP_CONF']          = 'Configuration de l&apos;ASP (Advanced Spam Protection)';
+$MOD_CAPTCHA_CONTROL['ASP_TEXT']          = 'Activer ASP (si disponible)';
+$MOD_CAPTCHA_CONTROL['ASP_EXP']           = 'ASP tente de d&eacute;terminer si un formulaire &agrave; &eacute;t&eacute; post&eacute; par un humain ou un spam-bot.';
+$MOD_CAPTCHA_CONTROL['CALC_TEXT']         = 'Calcul sous forme de texte';
+$MOD_CAPTCHA_CONTROL['CALC_IMAGE']        = 'Calcul sous forme d&apos;image';
+$MOD_CAPTCHA_CONTROL['CALC_TTF_IMAGE']    = 'Calcul sous forme d&apos;image avec polices et fonds al&eacute;atoires'; 
+$MOD_CAPTCHA_CONTROL['TTF_IMAGE']         = 'Image avec polices et fonds al&eacute;atoires';
+$MOD_CAPTCHA_CONTROL['OLD_IMAGE']         = 'Ancienne m&eacute;thode (non recommand&eacute;)';
+$MOD_CAPTCHA_CONTROL['TEXT']              = 'CAPTCHA texte';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_ENTER_TEXT']= 'Questions et R&eacute;ponses';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TEXT_DESC'] = 'Effacez ceci et remplacez le par votre propre texte'."\n".'sinon vos changements ne seront pas enregistr&eacute;s'."\n".'### exemple ###'."\n".'Saisissez ici vos questions et r&eacute;ponses.'."\n".'Utilisation:'."\n".'?Quel est le <b>pr&eacute;nom</b> de <b>Claudia</b> Schiffer ?'."\n".'!Claudia'."\n".'?Question 2'."\n".'!R&eacute;ponse 2'."\n".''."\n".'si le langage n&apos;a pas d&apos;importance.'."\n".' ... '."\n".'Ou, si vous utilisez la localisation:'."\n".'?FR:Quel est le <b>pr&eacute;nom</b> de <b>Claudia</b> Schiffer ?'."\n".'!Claudia'."\n".' ... '."\n".'?EN:What&apos;s <b>Claudia</b> Schiffer&apos;s <b>first name</b>?'."\n".'!Claudia'."\n".'?EN:Question 2'."\n".'!Answer 2'."\n".'### exemple ###'."\n".'';
+
+$MOD_CAPTCHA['VERIFICATION']           = 'V&eacute;rification';
+$MOD_CAPTCHA['ADDITION']               = 'ajout&eacute; &agrave; (+)';
+$MOD_CAPTCHA['SUBTRAKTION']            = 'moins (-)';
+$MOD_CAPTCHA['MULTIPLIKATION']         = 'multipli&eacute; par (x)';
+$MOD_CAPTCHA['VERIFICATION_INFO_RES']  = 'Indiquez le r&eacute;sultat';
+$MOD_CAPTCHA['VERIFICATION_INFO_TEXT'] = 'Remplissez le texte';
+$MOD_CAPTCHA['VERIFICATION_INFO_QUEST'] = 'R&eacute;pondez &agrave; la question';
+$MOD_CAPTCHA['INCORRECT_VERIFICATION'] = 'Erreur de v&eacute;rification';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/captcha_control/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.8.0/trunk/wb/modules/captcha_control/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/languages/NL.php	(revision 1130)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/languages/EN.php	(revision 1130)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/languages/RU.php	(revision 1130)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/languages/DE.php	(revision 1130)
@@ -0,0 +1,63 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/install.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/install.php	(revision 1130)
@@ -0,0 +1,51 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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
+	)"
+);
+
+// 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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/uninstall.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/info.php	(revision 1130)
@@ -0,0 +1,40 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/tool.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/tool.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/tool.php	(revision 1130)
@@ -0,0 +1,191 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/captcha_control/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/captcha_control/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/captcha_control/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/backup/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/languages/DA.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DANISH LANGUAGE FILE FOR THE ADDON: BACKUP
+ -----------------------------------------------------------------------------------------
+*/
+
+// text outputs
+$MOD_BACKUP['BACKUP_ALL_TABLES'] = 'Tag backup af alle tabeller i databasen';
+$MOD_BACKUP['BACKUP_WB_SPECIFIC'] = 'Tag kun backup af WB-tabeller i databasen';
+$TEXT['BACKUP_DATABASE'] = 'Tag backup af databasen';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/backup/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.8.0/trunk/wb/modules/backup/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/languages/FR.php	(revision 1130)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE ADDON: BACKUP
+ -----------------------------------------------------------------------------------------
+*/
+//Module Description
+$module_description = 'Ce module permets de sauvegarder votre base de donn&eacute;es';
+
+// text outputs
+$MOD_BACKUP['BACKUP_ALL_TABLES'] 	= 	'Sauvegarder toutes les tables de la base de donn&eacute;es';
+$MOD_BACKUP['BACKUP_WB_SPECIFIC'] 	= 	'Sauvegarder seulement les tables sp&eacute;cifiques &agrave; WB';
+$TEXT['BACKUP_DATABASE']				=	'Sauvegarder la base de donn&eacute;es';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/backup/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.8.0/trunk/wb/modules/backup/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/languages/NL.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/backup/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/languages/NO.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/backup/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/languages/EN.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/backup/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/languages/RU.php	(revision 1130)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/backup/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/backup/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/languages/DE.php	(revision 1130)
@@ -0,0 +1,37 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/backup/backup-sql.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/backup-sql.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/backup-sql.php	(revision 1130)
@@ -0,0 +1,94 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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', time()+TIMEZONE).'.sql';
+
+// Check if user clicked on the backup button
+if(!isset($_POST['backup'])){ 
+	header('Location: ../');
+	exit(0);
+} 
+	 
+// Include config
+require_once('../../config.php');
+
+// Begin output var
+$output = "".
+"#\n".
+"# Website Baker ".WB_VERSION." Database Backup\n".
+"# ".WB_URL."\n".
+"# ".gmdate(DATE_FORMAT, time()+TIMEZONE).", ".gmdate(TIME_FORMAT, time()+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.8.0/trunk/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.8.0/trunk/wb/modules/backup/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/info.php	(revision 1130)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/backup/tool.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/tool.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/tool.php	(revision 1130)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/backup/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/backup/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/backup/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/languages/DA.php	(revision 1130)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DANISH LANGUAGE FILE FOR THE ADDON: OUTPUT_FILTER
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MAIL_FILTER['HEADING'] = 'Indstillinger: Output-filter';
+$MOD_MAIL_FILTER['HOWTO'] = 'Du kan konfigurere output-filteret med indstillingerne nedenfor.<p style="line-height:1.5em;"><strong>Tip: </strong>Mailadresser kan krypteres vedhj&Atilde;&brvbar;lp af en  Javascript-funktion. For at g&Atilde;ธre brug af denne indstilling, skal du tilf&Atilde;ธje PHP-koden <code style="background:#FFA;color:#900;"><?php register_frontend_modfiles(js);?></code> til <head> sektionnen af  index.php i din template (layout-skabelon). Uden denne &Atilde;&brvbar;ndring vil kun @-tegnet i email-adressen blive erstattet.</p>';
+$MOD_MAIL_FILTER['WARNING'] = '<p style="color: red; line-height:1.5em;"><strong>Advarsel: </strong>Denne funktion fundes nu som en droplet. Den n&Atilde;&brvbar;ste hovedversion af Website Baker vil ikke indeholde dette filter. Brug i stedet <a href="?tool=droplets">Droplet</a> [[EmailFilter]]</p>';
+
+// Text and captions of form elements
+$MOD_MAIL_FILTER['BASIC_CONF'] = 'Email grundindstillinger';
+$MOD_MAIL_FILTER['EMAIL_FILTER'] = 'Filtrer emailadresser i tekst';
+$MOD_MAIL_FILTER['MAILTO_FILTER'] = 'Filtrer emailadresser i mailto-links';
+$MOD_MAIL_FILTER['ENABLED'] = 'Aktiveret';
+$MOD_MAIL_FILTER['DISABLED'] = 'Deaktiveret';
+
+$MOD_MAIL_FILTER['REPLACEMENT_CONF'] = 'Email erstatninger';
+$MOD_MAIL_FILTER['AT_REPLACEMENT'] = 'Erstat "@" med';
+$MOD_MAIL_FILTER['DOT_REPLACEMENT'] = 'Erstat "." med';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/output_filter/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.8.0/trunk/wb/modules/output_filter/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/languages/NO.php	(revision 1130)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 gj&oslash;re innstillinger 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&oslash;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; design malen din. Uten denne modifikasjonen, vil kun @ karakterer i mailto linker bli erstattet.</p>';
+$MOD_MAIL_FILTER['WARNING']						= '<p style="color: red; line-height:1.5em;"><strong>Warning: </strong>This function is now available as a Droplet. The next major release of website baker will not include this filter anymore. Please concider using the <a href="?tool=droplets">Droplet</a> [[EmailFilter]]</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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/languages/RU.php	(revision 1130)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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>';
+$MOD_MAIL_FILTER['WARNING']						= '<p style="color: red; line-height:1.5em;"><strong>Warning: </strong>This function is now available as a Droplet. The next major release of website baker will not include this filter anymore. Please concider using the <a href="?tool=droplets">Droplet</a> [[EmailFilter]]</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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/languages/FR.php	(revision 1130)
@@ -0,0 +1,47 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE ADDON: OUTPUT_FILTER
+ -----------------------------------------------------------------------------------------
+*/
+//Module Description
+$module_description = 'Ce module g&egrave;re le filtrage des donn&eacute;es avant affichage &agrave; l&apos;utilisateur. Permets de filtrer les liens mailto et les adresses emails.';
+
+// Headings and text outputs
+$MOD_MAIL_FILTER['HEADING']				= 'Options: Output Filter';
+$MOD_MAIL_FILTER['HOWTO']						= 'Vous pouvez configurer le filtrage des donn&eacute;es avant affichage gr&acirc;ce aux options ci-dessous.<p style="line-height:1.5em;"><strong>Conseil: </strong>Les liens Mailto peuvent &ecirc;tre crypt&eacute;s &agrave; l&apos;aide d&apos;une fonction Javascript. Pour utiliser cette fonctionnalit&eacute;, vous devez ajouter le code PHP <code style="background:#FFA;color:#900;">&lt;?php register_frontend_modfiles(&apos;js&apos;);?&gt;</code> dans la partie &lt;head&gt; de index.php de votre fichier mod&egrave;le. Sans cette modification, seulement le caract&egrave;re @ sera remplac&eacute; dans le champ mailto.</p>';
+$MOD_MAIL_FILTER['WARNING']						= '<p style="color: red; line-height:1.5em;"><strong>Warning: </strong>This function is now available as a Droplet. The next major release of website baker will not include this filter anymore. Please concider using the <a href="?tool=droplets">Droplet</a> [[EmailFilter]]</p>';
+
+// Text and captions of form elements
+$MOD_MAIL_FILTER['BASIC_CONF']			= 'Configuration de base des Emails';
+$MOD_MAIL_FILTER['EMAIL_FILTER']		= 'Filtrer le texte des Emails';
+$MOD_MAIL_FILTER['MAILTO_FILTER']		= 'Filtrer les liens mailto des Emails';
+$MOD_MAIL_FILTER['ENABLED']					= 'Activ&eacute;';
+$MOD_MAIL_FILTER['DISABLED']				= 'D&eacute;sactiv&eacute;';
+
+$MOD_MAIL_FILTER['REPLACEMENT_CONF']= 'Remplacements';
+$MOD_MAIL_FILTER['AT_REPLACEMENT']	= 'Remplacer "@" par';
+$MOD_MAIL_FILTER['DOT_REPLACEMENT']	= 'Remplacer "." par';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/output_filter/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.8.0/trunk/wb/modules/output_filter/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/languages/DE.php	(revision 1130)
@@ -0,0 +1,48 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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>';
+$MOD_MAIL_FILTER['WARNING']				= '<p style="color: red; line-height:1.5em;"><strong>Achtung: </strong>Diese Funktion ist auch als Droplet verf&uuml;gbar. Ab der n&auml;chsten WB Version wird der Output-Filter deswegen nicht mehr enthalten sein. Es wird empfohlen deine Seiten auf das <a href="?tool=droplets">Droplet</a> [[EmailFilter]] umzustellen.</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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/languages/NL.php	(revision 1130)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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']				= 'Beheersinstellingen: Output Filter';
+$MOD_MAIL_FILTER['HOWTO']				= 'Hier kan je de uitvoer filteren met onderstaande opties.<p style="line-height:1.5em;"><strong>Tip: </strong>Mailto links kunnen gecodeerd worden door een Javascript functie. Om van deze optie gebruik te kunnen maken moet je de PHP code <code style="background:#FFA;color:#900;">&lt;?php register_frontend_modfiles(\'js\');?&gt;</code> in de &lt;head&gt; sectie van het index.php bestand van je template plaatsen. Zonder deze aanpassing zal enkel het @ teken in het mailto deel vervangen worden.</p>';
+$MOD_MAIL_FILTER['WARNING']				= '<p style="color: red; line-height:1.5em;"><strong>Waarschuwing: </strong>Deze functionaliteit is vanaf nu ook beschikbaar als Droplet. De volgende versie van Website Baker (2.9) zal dit filter dan ook niet meer ondersteunen. Gebruik voortaan de <a href="?tool=droplets">Droplet</a> [[EmailFilter]]</p>';
+
+// Text and captions of form elements
+$MOD_MAIL_FILTER['BASIC_CONF']			= 'E-mail Configuratie';
+$MOD_MAIL_FILTER['EMAIL_FILTER']		= 'Filter E-mail adressen in tekst';
+$MOD_MAIL_FILTER['MAILTO_FILTER']		= 'Filter E-mail adressen in mailto links';
+$MOD_MAIL_FILTER['ENABLED']				= 'Aan';
+$MOD_MAIL_FILTER['DISABLED']			= 'Uit';
+
+$MOD_MAIL_FILTER['REPLACEMENT_CONF']	= 'Vervang E-mail tekens';
+$MOD_MAIL_FILTER['AT_REPLACEMENT']		= 'Vervang "@" door';
+$MOD_MAIL_FILTER['DOT_REPLACEMENT']		= 'Vervang "." door';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/languages/EN.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/languages/EN.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/languages/EN.php	(revision 1130)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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>';
+$MOD_MAIL_FILTER['WARNING']						= '<p style="color: red; line-height:1.5em;"><strong>Warning: </strong>This function is now available as a Droplet. The next major release of website baker will not include this filter anymore. Please concider using the <a href="?tool=droplets">Droplet</a> [[EmailFilter]]</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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/filter-routines.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/filter-routines.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/filter-routines.php	(revision 1130)
@@ -0,0 +1,212 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 && $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>';
+			$search_droplet = '<script type="text/javascript" src="' .WB_URL .'/modules/droplets/js/mdcr.js"></script>';
+			if(strpos($content, $search) !== false || strpos($content, $search_droplet) !== 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 .= '|(value\s*=\s*"|\')??\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|8)
+		if(count($match) == 8) {
+			/**
+				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];
+
+			// do not filter mail addresses included in input tags (<input ... value = "test@mail)
+			if (strpos($match[6], 'value') !== false) 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 **/
+				
+				// extract possible class and id attribute from ahref link
+				preg_match('/class\s*?=\s*?("|\')(.*?)\1/ix', $match[0], $class_attr);
+				$class_attr = empty($class_attr) ? '' : 'class="' . $class_attr[2] . '" ';
+				preg_match('/id\s*?=\s*?("|\')(.*?)\1/ix', $match[0], $id_attr);
+				$id_attr = empty($id_attr) ? '' : 'id="' . $id_attr[2] . '" ';
+				
+				// 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 {$class_attr}{$id_attr}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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/tool.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/tool.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/tool.php	(revision 1130)
@@ -0,0 +1,113 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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)
+$MOD_MAIL_FILTER['WARNING']	= '<p style="color: red; line-height:1.5em;"><strong>Warning: </strong>This function is now available as a Droplet. The next major release of website baker will not include this filter anymore. Please concider using the <a href="?tool=droplets">Droplet</a> [[EmailFilter]]</p>';
+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>';
+	echo $MOD_MAIL_FILTER['WARNING'];
+?>
+<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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/uninstall.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/uninstall.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/uninstall.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/info.php	(revision 1130)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/install.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/install.php	(revision 1130)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/js/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/js/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/js/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/js/mdcr.js
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/js/mdcr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/js/mdcr.js	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/modules/output_filter/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/output_filter/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/output_filter/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/code/languages/DA.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/languages/DA.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/languages/DA.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+ DANISH LANNGUAGE FILE FOR MODULE: CODE
+ -----------------------------------------------------------------------------------------
+*/
+
+// Dansk modulbeskrivelse
+$module_description = 'Dette modul g&oslash;r det muligt at udf&oslash;re PHP kommandoer (adgangen b&oslash;r begr&aelig;nses til p&aring;lidelige personer!)';
+
+?>

Property changes on: tags/2.8.0/trunk/wb/modules/code/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.8.0/trunk/wb/modules/code/languages/NO.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/languages/NO.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/languages/NO.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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: CODE 
+ -----------------------------------------------------------------------------------------
+*/
+
+//Module Description
+$module_description = 'Denne modulen gir deg mulighet for &aring; kj&oslash;re PHP kommandoer og rutiner(OBS!! Begrens tilgangen til denne modulen. Tilgang m&aring; kun gis til personer du har full tiltro til og som du vet har kunnsakp til &aring; benytte den!!)';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/code/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.8.0/trunk/wb/modules/code/languages/FR.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/languages/FR.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/languages/FR.php	(revision 1130)
@@ -0,0 +1,31 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  FRENCH LANGUAGE FILE FOR THE ADDON: CODE
+ -----------------------------------------------------------------------------------------
+*/
+//Module Description
+$module_description = 'Ce module permet d&apos;ex&eacute;cuter des commandes PHP (merci de limiter l&apos;acc&egrave;s &agrave; des personnes dignes de confiance!)';
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/code/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.8.0/trunk/wb/modules/code/languages/NL.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/languages/NL.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/languages/NL.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/code/languages/RU.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/languages/RU.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/languages/RU.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/code/languages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/languages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/languages/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/code/languages/DE.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/languages/DE.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/languages/DE.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/code/htt/modify.htt
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/htt/modify.htt	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/htt/modify.htt	(revision 1130)
@@ -0,0 +1,24 @@
+{REGISTER_EDIT_AREA}
+
+<!-- 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{SECTION}" 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>
+<p>&nbsp;</p>
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/modules/code/htt/modify.htt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/modules/code/info.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/info.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/info.php	(revision 1130)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8';
+$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.8.0/trunk/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.8.0/trunk/wb/modules/code/modify.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/modify.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/modify.php	(revision 1130)
@@ -0,0 +1,56 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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', 'htt/modify.htt');
+$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,
+		'REGISTER_EDIT_AREA'	=> function_exists('registerEditArea') ? registerEditArea('content'.$section_id, 'php', false) : '',
+		'WB_URL'				=> WB_URL,
+		'CONTENT'				=> $content,
+		'TEXT_SAVE'				=> $TEXT['SAVE'],
+		'TEXT_CANCEL'			=> $TEXT['CANCEL'],
+		'SECTION'				=> $section_id
+	)
+);
+
+// Parse template object
+$template->set_unknowns('keep');
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page', false);
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/code/view.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/view.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/view.php	(revision 1130)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/code/save.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/save.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/save.php	(revision 1130)
@@ -0,0 +1,50 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/code/delete.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/delete.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/delete.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/code/install.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/install.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/install.php	(revision 1130)
@@ -0,0 +1,64 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/code/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/code/add.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/code/add.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/code/add.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/modules/admin.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/admin.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/admin.php	(revision 1130)
@@ -0,0 +1,169 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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(THEME_PATH.'/templates');
+$template->set_file('page', 'pages_modify.htt');
+$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 = '".time()."', modified_by = '".$admin->get_user_id()."' WHERE page_id = '$page_id'");
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/modules/edit_module_files.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/edit_module_files.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/edit_module_files.php	(revision 1130)
@@ -0,0 +1,157 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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;
+}
+
+// register the textarea to use edit_area
+echo (function_exists('registerEditArea')) ? registerEditArea('code_area', 'css', false) : '';
+
+// 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_data']) && strlen($_POST['css_data']) > 0) {
+		$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);
+		// 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="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="code_area" name="css_data" cols="115" rows="25" wrap="VIRTUAL" style="margin:2px;"><?php
+			echo htmlspecialchars($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'];?>" 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.8.0/trunk/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.8.0/trunk/wb/modules/index.php
===================================================================
--- tags/2.8.0/trunk/wb/modules/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/modules/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/framework/functions.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/functions.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/functions.php	(revision 1130)
@@ -0,0 +1,904 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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);
+}
+
+// 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; &#039; &nbsp;
+// In case of error the returned string is unchanged, and a message is emitted.
+function entities_to_umlauts($string, $charset_out=DEFAULT_CHARSET) {
+	require_once(WB_PATH.'/framework/functions-utf8.php');
+	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) {
+	require_once(WB_PATH.'/framework/functions-utf8.php');
+	return umlauts_to_entities2($string, $charset_in);
+}
+
+// Function to convert a page title to a page filename
+function page_filename($string) {
+	require_once(WB_PATH.'/framework/functions-utf8.php');
+	$string = entities_to_7bit($string);
+	// Now remove all bad characters
+	$bad = array(
+	'\'', /* /  */ '"', /* " */	'<', /* < */	'>', /* > */
+	'{', /* { */	'}', /* } */	'[', /* [ */	']', /* ] */	'`', /* ` */
+	'!', /* ! */	'@', /* @ */	'#', /* # */	'$', /* $ */	'%', /* % */
+	'^', /* ^ */	'&', /* & */	'*', /* * */	'(', /* ( */	')', /* ) */
+	'=', /* = */	'+', /* + */	'|', /* | */	'/', /* / */	'\\', /* \ */
+	';', /* ; */	':', /* : */	',', /* , */	'?' /* ? */
+	);
+	$string = str_replace($bad, '', $string);
+	// replace multiple dots in filename to single dot and (multiple) dots at the end of the filename to nothing
+	$string = preg_replace(array('/\.+/', '/\.+$/'), array('.', ''), $string);
+	// Now replace spaces with page spcacer
+	$string = trim($string);
+	$string = preg_replace('/(\s)+/', PAGE_SPACER, $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) {
+	require_once(WB_PATH.'/framework/functions-utf8.php');
+	$string = entities_to_7bit($string);
+	// Now remove all bad characters
+	$bad = array(
+	'\'', // '
+	'"', // "
+	'`', // `
+	'!', // !
+	'@', // @
+	'#', // #
+	'$', // $
+	'%', // %
+	'^', // ^
+	'&', // &
+	'*', // *
+	'=', // =
+	'+', // +
+	'|', // |
+	'/', // /
+	'\\', // \
+	';', // ;
+	':', // :
+	',', // ,
+	'?' // ?
+	);
+	$string = str_replace($bad, '', $string);
+	// replace multiple dots in filename to single dot and (multiple) dots at the end of the filename to nothing
+	$string = preg_replace(array('/\.+/', '/\.+$/'), array('.', ''), $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($filename) {
+
+    $mime_types = array(
+            'txt'	=> 'text/plain',
+            'htm'	=> 'text/html',
+            'html'	=> 'text/html',
+            'php'	=> 'text/html',
+            'css'	=> 'text/css',
+            'js'	=> 'application/javascript',
+            'json'	=> 'application/json',
+            'xml'	=> 'application/xml',
+            'swf'	=> 'application/x-shockwave-flash',
+            'flv'	=> 'video/x-flv',
+
+            // images
+            'png'	=> 'image/png',
+            'jpe'	=> 'image/jpeg',
+            'jpeg'	=> 'image/jpeg',
+            'jpg'	=> 'image/jpeg',
+            'gif'	=> 'image/gif',
+            'bmp'	=> 'image/bmp',
+            'ico'	=> 'image/vnd.microsoft.icon',
+            'tiff'	=> 'image/tiff',
+            'tif'	=> 'image/tiff',
+            'svg'	=> 'image/svg+xml',
+            'svgz'	=> 'image/svg+xml',
+
+            // archives
+            'zip'	=> 'application/zip',
+            'rar'	=> 'application/x-rar-compressed',
+            'exe'	=> 'application/x-msdownload',
+            'msi'	=> 'application/x-msdownload',
+            'cab'	=> 'application/vnd.ms-cab-compressed',
+
+            // audio/video
+            'mp3'	=> 'audio/mpeg',
+            'mp4'	=> 'audio/mpeg',
+            'qt'	=> 'video/quicktime',
+            'mov'	=> 'video/quicktime',
+
+            // adobe
+            'pdf'	=> 'application/pdf',
+            'psd'	=> 'image/vnd.adobe.photoshop',
+            'ai'	=> 'application/postscript',
+            'eps'	=> 'application/postscript',
+            'ps'	=> 'application/postscript',
+
+            // ms office
+            'doc'	=> 'application/msword',
+            'rtf'	=> 'application/rtf',
+            'xls'	=> 'application/vnd.ms-excel',
+            'ppt'	=> 'application/vnd.ms-powerpoint',
+
+            // open office
+            'odt'	=> 'application/vnd.oasis.opendocument.text',
+            'ods'	=> 'application/vnd.oasis.opendocument.spreadsheet',
+        );
+
+        $temp = explode('.',$filename);
+        $ext = strtolower(array_pop($temp));
+
+        if (array_key_exists($ext, $mime_types)) {
+            return $mime_types[$ext];
+        }
+        elseif (function_exists('finfo_open')) {
+            $finfo = finfo_open(FILEINFO_MIME);
+            $mimetype = finfo_file($finfo, $filename);
+            finfo_close($finfo);
+            return $mimetype;
+        }
+        else {
+            return 'application/octet-stream';
+        }
+    }
+}
+
+// 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; }
+			if(!isset($template_function)) { $template_function = 'template'; }
+			// 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,function,version,platform,author,license) ".
+				"VALUES ('$template_directory','$template_name','".addslashes($template_description)."','template',".
+				"'$template_function','$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) && preg_match('#^([A-Z]{2}.php)#', basename($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.8.0/trunk/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.8.0/trunk/wb/framework/frontend.functions.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/frontend.functions.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/frontend.functions.php	(revision 1130)
@@ -0,0 +1,491 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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;
+
+$include_head_link_css = '';
+$include_body_links = '';
+$include_head_links = '';
+
+$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');
+			/* check if frontend.css file needs to be included into the <head></head> of index.php
+			*/
+			if( file_exists(WB_PATH .'/modules/'.$module_dir.'/frontend.css')) {
+				$include_head_link_css .= '<link href="'.WB_URL.'/modules/'.$module_dir.'/frontend.css"';
+				$include_head_link_css .= ' rel="stylesheet" type="text/css" media="screen" />'."\n";
+				$include_head_file = 'frontend.css';
+			}
+			// check if frontend.js file needs to be included into the <body></body> of index.php
+			if(file_exists(WB_PATH .'/modules/'.$module_dir.'/frontend.js')) {
+				$include_head_links .= '<script src="'.WB_URL.'/modules/'.$module_dir.'/frontend.js" type="text/javascript"></script>'."\n";
+				$include_head_file = 'frontend.js';
+			}
+			// check if frontend_body.js file needs to be included into the <body></body> of index.php
+			if(file_exists(WB_PATH .'/modules/'.$module_dir.'/frontend_body.js')) {
+				$include_body_links .= '<script src="'.WB_URL.'/modules/'.$module_dir.'/frontend_body.js" type="text/javascript"></script>'."\n";
+				$include_body_file = 'frontend_body.js';
+			}
+		}
+	}
+}
+
+// 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_umlaut = FALSE;
+	static $string_ul_regex = FALSE;
+	if($string_ul_umlaut===FALSE || $string_ul_regex===FALSE)
+		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 = str_replace($string_ul_umlaut, $string_ul_regex, $search_string);
+	// 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
+	// we have to cut <pre> and <code> as well.
+	// for HTML-Tags use <(?:[^<]|<.*>)*> which will match strings like <input ... value="<b>value</b>" >
+	$matches = preg_split("~(<style.*</style>|<script.*</script>|<pre.*</pre>|<code.*</code>|<!--.*-->|<(?:[^<]|<.*>)*>|\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 = str_replace(array('&lt;', '&gt;', '&amp;', '&quot;', '&#039;', '&nbsp;'), array('<', '>', '&', '"', '\'', "\xC2\xA0"), $match);
+				$match = preg_replace('~('.$string.')~ui', '_span class=_highlight__$1_/span_',$match);
+				$match = str_replace(array('&', '<', '>', '"', '\'', "\xC2\xA0"), array('&amp;', '&lt;', '&gt;', '&quot;', '&#039;', '&nbsp;'), $match);
+				$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.
+				if(defined('SEC_ANCHOR') && SEC_ANCHOR!='') {
+					echo '<a class="section_anchor" id="'.SEC_ANCHOR.$section_id.'" name="'.SEC_ANCHOR.$section_id.'"></a>';
+				}
+
+				// fetch content -- this is where to place possible output-filters (before highlighting)
+				ob_start(); // fetch original content
+				require(WB_PATH.'/modules/'.$module.'/view.php');
+				$content = ob_get_contents();
+				ob_end_clean();
+
+				// highlights searchresults
+				if(isset($_GET['searchresult']) && is_numeric($_GET['searchresult']) && !isset($_GET['nohighlight']) && isset($_GET['sstring']) && !empty($_GET['sstring'])) {
+					$arr_string = explode(" ", $_GET['sstring']);
+					if($_GET['searchresult']==2) { // exact match
+						$arr_string[0] = str_replace("_", " ", $arr_string[0]);
+					}
+					echo search_highlight($content, $arr_string);
+				} else {
+					echo $content;
+				}
+			}
+		} 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(gmdate($date_format),$processtime);
+		echo str_replace($vars, $values, WEBSITE_FOOTER);
+	}
+}
+
+// Function to add optional module Javascript into the <body> section of the frontend
+if(!function_exists('register_frontend_modfiles_body')) {
+	function register_frontend_modfiles_body($file_id="js") {
+		// 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, $include_body_links;
+		// define default baselink and filename for optional module javascript files
+		$body_links = "";
+		$base_link = '<script src="'.WB_URL.'/modules/{MODULE_DIRECTORY}/frontend_body.js" type="text/javascript"></script>';
+		$base_file = "frontend_body.js";
+
+		if(!empty($include_body_links)) {
+			if(strpos($body_links, $include_body_links) === false) {
+				$body_links .= $include_body_links;
+			}
+			$include_body_links = '';
+		}
+
+		// 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_body.js file
+			if(file_exists(WB_PATH ."/modules/" .$row['module'] ."/$base_file")) {
+					// create link with frontend_body.js 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(!defined('MOD_FRONTEND_BODY_JAVASCRIPT_REGISTERED')) define('MOD_FRONTEND_BODY_JAVASCRIPT_REGISTERED', true);
+
+				// ensure that frontend_body.js is only added once per module type
+				if(strpos($body_links, $tmp_link) === false) {
+					$body_links .= $tmp_link ."\n";
+				}
+			};
+		}
+
+		/* include the Javascript email protection function
+		if( $file_id != 'css' && file_exists(WB_PATH .'/modules/droplets/js/mdcr.js')) {
+			$body_links .= '<script type="text/javascript" src="'.WB_URL.'/modules/droplets/js/mdcr.js"></script>'."\n";
+		} elseif( $file_id != 'css' && file_exists(WB_PATH .'/modules/output_filter/js/mdcr.js')) {
+			$body_links .= '<script type="text/javascript" src="'.WB_URL.'/modules/output_filter/js/mdcr.js"></script>'."\n";
+		} */
+		echo $body_links;
+	}
+}
+
+
+// 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, $include_head_link_css, $include_head_links;
+		// 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 src="'.WB_URL.'/modules/{MODULE_DIRECTORY}/frontend.js" type="text/javascript"></script>';
+			$base_file = "frontend.js";
+		}
+
+		if(!empty($include_head_link_css)) {
+			if(strpos($head_links, $include_head_link_css) === false) {
+				$head_links .= $include_head_link_css;
+			}
+			$include_head_link_css = '';
+		} else {
+			if(!empty($include_head_links)) {
+				if(strpos($head_links, $include_head_links) === false) {
+					$head_links .= $include_head_links;
+				}
+				$include_head_links = '';
+			}
+		}
+
+		// 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/droplets/js/mdcr.js')) {
+			$head_links .= '<script type="text/javascript" src="'.WB_URL.'/modules/droplets/js/mdcr.js"></script>'."\n";
+		} elseif( $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";
+		}
+		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.8.0/trunk/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.8.0/trunk/wb/framework/module.functions.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/module.functions.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/module.functions.php	(revision 1130)
@@ -0,0 +1,258 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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;
+	}
+}
+// function to check if the optional module Javascript files are loaded into the <body> section
+if (!function_exists('requires_module_body_js')) {
+	function requires_module_body_js($mymod_dir, $js_file) {
+		if(!in_array(strtolower($js_file), array('frontend_body.js', 'backend_body.js'))) {
+			echo '<strong>Note: </strong>Javascript file "' .htmlentities($js_file) .'"
+			specified in module "' .htmlentities($mymod_dir) .'" not valid.';
+			return false;
+		}
+
+		if($js_file == 'frontend_body.js') {
+			// check if frontend_body.js is included to the <body> section
+			if(!defined('MOD_FRONTEND_BODY_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_body.js of the module.<br />
+				Add the code below before to the &lt;/body&gt; section in the index.php of your template
+				to ensure that module frontend_body.js files are automatically loaded if required.</p>
+				<code style="color: #800000;">&lt;?php<br />if(function_exists(\'register_frontend_modfiles_body\')) { <br />
+				&nbsp;&nbsp;register_frontend_modfiles_body(\'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_body_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_body.js is included to the <body> section
+			global $admin;
+				if(!method_exists($admin, 'register_backend_modfiles_body') && file_exists(WB_PATH .'/modules/' .$mymod_dir .'/backend_body.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_body.js of the module.<br />
+				You need WB 2.6.7 or higher to ensure that module backend_body.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.8.0/trunk/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.8.0/trunk/wb/framework/class.wb.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/class.wb.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/class.wb.php	(revision 1130)
@@ -0,0 +1,353 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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, $database;
+		
+		// fetch redirect timer for sucess messages from settings table
+		$table = TABLE_PREFIX . 'settings';
+		$results = @$database->get_one("SELECT `value` FROM `$table` WHERE `name` = 'redirect_timer'");
+		$redirect_timer = ($results) ? $results : '1500';
+
+		// add template variables
+		$success_template = new Template(THEME_PATH.'/templates');
+		$success_template->set_file('page', 'success.htt');
+		$success_template->set_block('page', 'main_block', 'main');
+		$success_template->set_var('MESSAGE', $message);
+		$success_template->set_var('REDIRECT', $redirect);
+		$success_template->set_var('REDIRECT_TIMER', $redirect_timer);
+		$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(THEME_PATH.'/templates');
+		$success_template->set_file('page', 'error.htt');
+		$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 ) {
+			if ( method_exists($this, "print_footer") ) {
+				$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_alt = $message;
+		$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_alt);				// 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.8.0/trunk/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.8.0/trunk/wb/framework/addon.precheck.inc.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/addon.precheck.inc.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/addon.precheck.inc.php	(revision 1130)
@@ -0,0 +1,343 @@
+<?php
+/**
+ * $Id$
+ * Website Baker Add-On precheck functions
+ *
+ * This file contains the functions of the pretest performed upfront
+ * of the Add-On installation process. The functions allows developers
+ * to specify requirements for their Add-On.
+ *
+ * LICENSE: GNU Lesser General Public License 3.0
+ * 
+ * @author		Christian Sommer
+ * @copyright	(c) 2009
+ * @license		http://www.gnu.org/copyleft/lesser.html
+ * @version		0.2.3
+ * @platform	Website Baker 2.7
+ *
+ * Website Baker Project <http://www.websitebaker.org/>
+ * Copyright (C) 2004-2009, Ryan Djurovich
+ *
+ * Website Baker is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Website Baker is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public 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 getVersion($version, $strip_suffix = true)
+{
+	/**
+	 * This funtion creates a version string following the major.minor.revision convention
+	 * The minor and revision part of the version may not exceed 999 (three digits)
+	 * An optional suffix part can be added after revision (requires $strip_suffix = false)
+	 *
+	 * EXAMPLES: input --> output
+	 *	5 --> 5.000000; 5.0 --> 5.000000; 5.0.0 --> 5.000000
+	 * 	5.2 --> 5.002000; 5.20 --> 5.002000; 5.2.0 --> 5.002000
+	 * 	5.21 --> 5.002001; 5.2.1 --> 5.002001;
+	 * 	5.27.1 --> 5.027001; 5.2.71 --> 5.002071;
+	 * 	5.27.1 rc1 --> 5.027001_RC1 ($strip_suffix:= false)
+	 */
+	// replace comma by decimal point
+	$version = str_replace(',', '.', $version);
+
+	// convert version into major.minor.revision numbering system
+	list($major, $minor, $revision) = explode('.', $version, 3);
+
+	// convert versioning style 5.21 into 5.2.1
+	if ($revision == '' && strlen(intval($minor)) == 2) {
+		$revision = substr($minor, -1);
+		$minor = substr($minor, 0, 1);
+	}
+	
+	// extract possible non numerical suffix from revision part (e.g. Alpha, Beta, RC1)
+	$suffix = strtoupper(trim(substr($revision, strlen(intval($revision)))));
+
+	// return standard version number (minor and revision numbers may not exceed 999)
+	return (int) $major . '.' . sprintf('%03d', (int) $minor) . sprintf('%03d', (int) $revision) . 
+		(($strip_suffix == false && $suffix != '') ? '_' . $suffix : '');
+}
+
+/**
+ *	As "version_compare" it self seems only got trouble 
+ *	within words like "Alpha", "Beta" a.s.o. this function
+ *	only modify the version-string in the way that these words are replaced by values/numbers.
+ *
+ *	E.g:	"1.2.3 Beta2" => "1.2.322"
+ *			"0.1.1 ALPHA" => "0.1.11"
+ *
+ *	Notice:	Please keep in mind, that this will not correct the way "version_control" 
+ *			handel "1 < 1.0 < 1.0.0 < 1.0.0.0" and will not correct missformed version-strings
+ *			below 2.7, e.g. "1.002 released candidate 2.3"
+ *			
+ *	@since	2.8.0 RC2
+ *
+ *	@param	string	A versionstring
+ *	@return	string	The modificated versionstring
+ *
+ */
+function getVersion2 ($version="") {
+	
+	$states = array (
+		'1' => "alpha",
+		'2' => "beta",
+		'4' => "rc",
+		'8' => "final"	
+	);
+
+	$version = strtolower($version);
+	
+	foreach($states as $value=>$keys) $version = str_replace($keys, $value, $version);
+
+	$version = str_replace(" ", "", $version);
+
+	return $version;
+}
+
+function versionCompare($version1, $version2, $operator = '>=')
+{
+	/**
+	 * This funtion performs a comparison of two provided version strings
+	 * The versions are first converted into a string following the major.minor.revision 
+	 * convention and performs a version_compare afterwards.
+	 */
+	// return version_compare(getVersion($version1), getVersion($version2), $operator);
+	return version_compare(getVersion2($version1), getVersion2($version2), $operator);
+}
+
+function sortPreCheckArray($precheck_array)
+{
+	/**
+	 * This funtion sorts the precheck array to a common format
+	 */
+	// define desired precheck order
+	$key_order = array('WB_VERSION', 'WB_ADDONS', 'PHP_VERSION', 'PHP_EXTENSIONS', 'PHP_SETTINGS', 'CUSTOM_CHECKS');
+
+	$temp_array = array();
+	foreach($key_order as $key) {
+		if (!isset($precheck_array[$key])) continue;
+		$temp_array[$key] = $precheck_array[$key];
+	}
+	return $temp_array;
+}
+
+function preCheckAddon($temp_addon_file)
+{
+	/**
+	 * This funtion performs pretest upfront of the Add-On installation process.
+	 * The requirements can be specified via the array $PRECHECK which needs to
+	 * be defined in the optional Add-on file precheck.php.
+	 */
+	global $database, $admin, $TEXT, $HEADING, $MESSAGE;
+	
+	// path to the temporary Add-on folder
+	$temp_path = WB_PATH . '/temp/unzip';
+	
+	// check if file precheck.php exists for the Add-On uploaded via WB installation routine
+	if (!file_exists($temp_path . '/precheck.php')) return;
+	
+	// unset any previous declared PRECHECK array
+	unset($PRECHECK);
+
+	// include Add-On precheck.php file
+	include($temp_path . '/precheck.php');
+	
+	// check if there are any Add-On requirements to check for
+	if (!(isset($PRECHECK) && count($PRECHECK) > 0)) return;
+	
+	// sort precheck array
+	$PRECHECK = sortPreCheckArray($PRECHECK);
+	
+	$failed_checks = 0;
+	$msg = array();
+	// check if specified addon requirements are fullfilled
+	foreach ($PRECHECK as $key => $value) {
+		switch ($key) {
+			case 'WB_VERSION':
+				if (isset($value['VERSION'])) {
+					// obtain operator for string comparison if exist
+					$operator = (isset($value['OPERATOR']) &&  trim($value['OPERATOR']) != '') ? $value['OPERATOR'] : '>=';
+				
+					// compare versions and extract actual status
+					$status = versionCompare(WB_VERSION, $value['VERSION'], $operator);
+					$msg[] = array(
+						'check'		=> 'WB-' . $TEXT['VERSION'] .': ',
+						'required'	=> htmlentities($operator) . $value['VERSION'],
+						'actual'	=> WB_VERSION,
+						'status'	=> $status
+					);
+
+					// increase counter if required
+					if (!$status) $failed_checks++;
+				}
+				break;
+
+			case 'WB_ADDONS':
+				if (is_array($PRECHECK['WB_ADDONS'])) {
+					foreach($PRECHECK['WB_ADDONS'] as $addon => $values) {
+						if (is_array($values)) {
+							// extract module version and operator
+							$version = (isset($values['VERSION']) &&  trim($values['VERSION']) != '') ? $values['VERSION'] : '';
+							$operator = (isset($values['OPERATOR']) &&  trim($values['OPERATOR']) != '') ? $values['OPERATOR'] : '>=';
+						} else {
+							// no version and operator specified (only check if addon exists)
+							$addon = strip_tags($values);
+							$version = ''; $operator = '';
+						}
+					
+						// check if addon is listed in WB database
+						$table = TABLE_PREFIX . 'addons';
+						$sql = "SELECT * FROM `$table` WHERE `directory` = '" . addslashes($addon) . "'";
+						$results = $database->query($sql);
+					
+						$status = false; $addon_status = $TEXT['NOT_INSTALLED'];
+						if ($results && $row = $results->fetchRow()) {
+							$status = true; 
+							$addon_status = $TEXT['INSTALLED'];
+						
+							// compare version if required
+							if ($version != '') {
+								$status = versionCompare($row['version'], $version, $operator);
+								$addon_status = $row['version'];
+							}
+						}
+					
+						// provide addon status
+						$msg[] = array(
+							'check'		=> '&nbsp; ' . $TEXT['ADDON'] . ': ' . htmlentities($addon),
+							'required'	=> ($version != '') ? $operator . '&nbsp;' . $version : $TEXT['INSTALLED'],
+							'actual'	=> $addon_status,
+							'status'	=> $status
+						);
+						
+						// increase counter if required
+						if (!$status) $failed_checks++;
+					}
+				}
+				break;
+
+			case 'PHP_VERSION':
+				if (isset($value['VERSION'])) {
+					// obtain operator for string comparison if exist
+					$operator = (isset($value['OPERATOR']) &&  trim($value['OPERATOR']) != '') ? $value['OPERATOR'] : '>=';
+				
+					// compare versions and extract actual status
+					$status = versionCompare(PHP_VERSION, $value['VERSION'], $operator);
+					$msg[] = array(
+						'check'		=> 'PHP-' . $TEXT['VERSION'] .': ',
+						'required'	=> htmlentities($operator) . '&nbsp;' . $value['VERSION'],
+						'actual'	=> PHP_VERSION,
+						'status'	=> $status
+					);
+
+					// increase counter if required
+					if (!$status) $failed_checks++;
+
+				}
+				break;
+
+			case 'PHP_EXTENSIONS':
+				if (is_array($PRECHECK['PHP_EXTENSIONS'])) {
+					foreach($PRECHECK['PHP_EXTENSIONS'] as $extension) {
+						$status = extension_loaded(strtolower($extension));
+						$msg[] = array(
+							'check'		=> '&nbsp; ' . $TEXT['EXTENSION'] . ': ' . htmlentities($extension),
+							'required'	=> $TEXT['INSTALLED'],
+							'actual'	=> ($status) ? $TEXT['INSTALLED'] : $TEXT['NOT_INSTALLED'],
+							'status'	=> $status
+						);
+
+						// increase counter if required
+						if (!$status) $failed_checks++;
+					}
+				}
+				break;
+
+			case 'PHP_SETTINGS':
+				if (is_array($PRECHECK['PHP_SETTINGS'])) {
+					foreach($PRECHECK['PHP_SETTINGS'] as $setting => $value) {
+						$actual_setting = ($temp = ini_get($setting)) ? $temp : 0;
+						$status = ($actual_setting == $value);
+					
+						$msg[] = array(
+							'check'		=> '&nbsp; '. ($setting),
+							'required'	=> $value,
+							'actual'	=> $actual_setting,
+							'status'	=> $status
+						);
+
+						// increase counter if required
+						if (!$status) $failed_checks++;
+					}
+				}
+				break;
+
+			case 'CUSTOM_CHECKS':
+				if (is_array($PRECHECK['CUSTOM_CHECKS'])) {
+					foreach($PRECHECK['CUSTOM_CHECKS'] as $key => $values) {
+						$msg[] = array(
+							'check'		=> $key,
+							'required'	=> $values['REQUIRED'],
+							'actual'	=> $values['ACTUAL'],
+							'status'	=> $values['STATUS']
+						);
+					}
+
+					// increase counter if required
+					if (!$status) $failed_checks++;
+				}
+				break;
+		}
+	}
+
+	// leave if all requirements are fullfilled
+	if ($failed_checks == 0) return;
+	
+	// output summary table with requirements not fullfilled
+	echo <<< EOT
+	<h2>{$HEADING['ADDON_PRECHECK_FAILED']}</h2>
+	<p>{$MESSAGE['ADDON']['PRECHECK_FAILED']}</p> 
+
+	<table width="700px" cellpadding="4" border="0" style="margin: 0.5em; border-collapse: collapse; border: 1px solid silver;">
+	<tr>
+		<th>{$TEXT['REQUIREMENT']}:</th>
+		<th>{$TEXT['REQUIRED']}:</th>
+		<th>{$TEXT['CURRENT']}:</th>
+	</tr>
+EOT;
+
+	foreach($msg as $check) {
+		echo '<tr>';
+		$style = $check['status'] ? 'color: #46882B;' : 'color: #C00;';
+		foreach($check as $key => $value) {
+			if ($key == 'status') continue;
+			
+			echo '<td style="' . $style . '">' . $value . '</td>';
+		}
+		echo '</tr>';
+	}
+	echo '</table>';
+
+	// delete the temp unzip directory
+	rm_full_dir($temp_path);	
+
+	// delete the temporary zip file of the Add-on
+	if(file_exists($temp_addon_file)) { unlink($temp_addon_file); }	
+	
+	// output status message and die
+	$admin->print_error('');
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/framework/addon.precheck.inc.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/framework/class.admin.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/class.admin.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/class.admin.php	(revision 1130)
@@ -0,0 +1,450 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+
+// Include EditArea wrapper functions
+require_once(WB_PATH . '/include/editarea/wb_wrapper_edit_area.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'] : '';
+			if(isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != '') { // check if there is an query-string
+				header('Location: '.$_SERVER['PHP_SELF'] .'?lang='.$user_language .$page_id_url .$section_id_url.'&'.$_SERVER['QUERY_STRING']);
+			} else {
+				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(THEME_PATH.'/templates');
+		$header_template->set_file('page', 'header.htt');
+		$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'],
+													'CURRENT_USER' => $MESSAGE['START']['CURRENT_USER'],
+													'DISPLAY_NAME' => $this->get_display_name(),
+													'CHARSET' => $charset,
+													'LANGUAGE' => strtolower(LANGUAGE),
+													'VERSION' => VERSION,
+													'WB_URL' => WB_URL,
+													'ADMIN_URL' => ADMIN_URL,
+													'THEME_URL' => THEME_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] == '') ? '_self' : $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', $menu_item[3] . ' current');
+				} else {
+					$header_template->set_var('CLASS', $menu_item[3]);
+				}
+				$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(THEME_PATH.'/templates');
+		$footer_template->set_file('page', 'footer.htt');
+		$footer_template->set_block('page', 'footer_block', 'header');
+		$footer_template->set_var(array(
+						'BACKEND_BODY_MODULE_JS' => $this->register_backend_modfiles_body('js'),
+						'WB_URL' => WB_URL,
+						'WB_PATH' => WB_PATH,
+						'ADMIN_URL' => ADMIN_URL,
+						'THEME_URL' => THEME_URL,
+			 ) );
+		$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 (isset($$type) && is_array($$type) && 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 <body> section of the backend
+	function register_backend_modfiles_body($file_id="js")
+		{
+		// sanity check of parameter passed to the function
+		$file_id = strtolower($file_id);
+		if($file_id !== "javascript" && $file_id !== "js")
+		{
+			return;
+		}
+		global $database;
+        $body_links = "";
+		// define default baselink and filename for optional module javascript and stylesheet files
+		if($file_id == "js") {
+			$base_link = '<script type="text/javascript" src="'.WB_URL.'/modules/{MODULE_DIRECTORY}/backend_body.js"></script>';
+			$base_file = "backend_body.js";
+		}
+		// check if backend_body.js files needs to be included to the <body></body> 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_body.js file to include
+				$tool = $result->fetchRow();
+				if(file_exists(WB_PATH ."/modules/" .$tool['directory'] ."/$base_file"))
+				{
+					// return link to the backend_body.js file
+					return str_replace("{MODULE_DIRECTORY}", $tool['directory'], $base_link);
+				}
+			}
+		} elseif(isset($_GET['page_id']) or isset($_POST['page_id']))
+		{
+			// check if displayed page in the backend contains a page module
+			if (isset($_GET['page_id']))
+			{
+				$page_id = (int) addslashes($_GET['page_id']);
+			} else {
+				$page_id = (int) addslashes($_POST['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");
+			while($row = $query_modules->fetchRow()) {
+				// check if page module directory contains a backend_body.js file
+				if(file_exists(WB_PATH ."/modules/" .$row['module'] ."/$base_file")) {
+					// create link with backend_body.js source for the current module
+					$tmp_link = str_replace("{MODULE_DIRECTORY}", $row['module'], $base_link);
+					// ensure that backend_body.js is only added once per module type
+					if(strpos($body_links, $tmp_link) === false) {
+						$body_links .= $tmp_link ."\n";
+					}
+				}
+			}
+			// write out links with all external module javascript/CSS files, remove last line feed
+			return rtrim($body_links);
+		}
+	}
+
+
+	// 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']) or isset($_POST['page_id'])) {
+			// check if displayed page in the backend contains a page module
+			if (isset($_GET['page_id'])) {
+				$page_id = (int) addslashes($_GET['page_id']);
+			} else {
+				$page_id = (int) addslashes($_POST['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");
+
+    		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);
+		}
+	}
+}
+
+?>

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/framework/class.login.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/class.login.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/class.login.php	(revision 1130)
@@ -0,0 +1,431 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 = time();
+			$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();
+			$sql = "SELECT `user_id` FROM `" . $this->USERS_TABLE . "` WHERE `remember_key` = '";
+			$sql .= $this->get_safe_remember_key() . "' LIMIT 1";
+			$check_query = $database->query($sql);
+
+			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,
+											'THEME_URL' => THEME_URL,
+											'LANGUAGE' => strtolower(LANGUAGE),
+											'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');
+		}
+	}
+
+	// sanities the REMEMBER_KEY cookie to avoid SQL injection
+	function get_safe_remember_key() {
+		if (!((strlen($_COOKIE['REMEMBER_KEY']) == 23) && (substr($_COOKIE['REMEMBER_KEY'], 11, 1) == '_'))) return '';
+		// create a clean cookie (XXXXXXXXXXX_YYYYYYYYYYY) where X:= numeric, Y:= hash
+		$clean_cookie = sprintf('%011d', (int) substr($_COOKIE['REMEMBER_KEY'], 0, 11)) . substr($_COOKIE['REMEMBER_KEY'], 11);
+		return ($clean_cookie == $_COOKIE['REMEMBER_KEY']) ? $this->add_slashes($clean_cookie) : '';
+	}
+	
+	// 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.8.0/trunk/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.8.0/trunk/wb/framework/class.database.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/class.database.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/class.database.php	(revision 1130)
@@ -0,0 +1,163 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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  $typ = MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH
+	function fetchRow($typ = MYSQL_BOTH) {
+		return mysql_fetch_array($this->result, $typ);
+	}
+
+	// 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.8.0/trunk/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.8.0/trunk/wb/framework/initialize.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/initialize.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/initialize.php	(revision 1130)
@@ -0,0 +1,130 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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));
+	
+	if (!defined("WB_INSTALL_PROCESS")) {
+		// 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);
+	}
+	
+	// Set Theme dir
+	define('THEME_URL', WB_URL.'/templates/'.DEFAULT_THEME);
+	define('THEME_PATH', WB_PATH.'/templates/'.DEFAULT_THEME);
+	
+}
+
+?>

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/framework/functions-utf8.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/functions-utf8.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/functions-utf8.php	(revision 1130)
@@ -0,0 +1,443 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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;','&#039;','&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('&#039;', '&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
+	$str = str_replace(array('&gt;', '&lt;', '&apos;', '\'', '&quot;', '&amp;'), '', $str);
+	$str = str_replace('&amp;', '', $str);
+	
+	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; &#039; &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.8.0/trunk/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.8.0/trunk/wb/framework/class.order.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/class.order.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/class.order.php	(revision 1130)
@@ -0,0 +1,156 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/framework/charsets_table.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/charsets_table.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/charsets_table.php	(revision 1130)
@@ -0,0 +1,1023 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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; &#039; &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; &#039; &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\x90\xd7\x95"=>"ao", "\xd7\x91\xd7\x95"=>"bo",
+   "\xd7\x92\xd7\x95"=>"go", "\xd7\x93\xd7\x95"=>"do",
+   "\xd7\x94\xd7\x95"=>"ho", "\xd7\x95\xd7\x95"=>"v",
+   "\xd7\x96\xd7\x95"=>"zo", "\xd7\x97\xd7\x95"=>"cho",
+   "\xd7\x98\xd7\x95"=>"to", "\xd7\x95\xd7\x99\xd7\x99"=>"vyi",
+   "\xd7\x99\xd7\x95"=>"io", "\xd7\x9a\xd7\x95"=>"kho",
+   "\xd7\x9b\xd7\x95"=>"ko", "\xd7\x9c\xd7\x95"=>"lo",
+   "\xd7\x9e\xd7\x95"=>"mo", "\xd7\xa0\xd7\x95"=>"no",
+   "\xd7\xa1\xd7\x95"=>"so", "\xd7\xa2\xd7\x95"=>"ao",
+   "\xd7\xa4\xd7\x95"=>"po", "\xd7\xa6\xd7\x95"=>"tzo",
+   "\xd7\xa7\xd7\x95"=>"qo", "\xd7\xa8\xd7\x95"=>"ro",
+   "\xd7\xa9\xd7\x95"=>"sho", "\xd7\xaa\xd7\x95"=>"to",
+   "\xd7\x99\xd7\x99"=>"yi", "\xd7\x99\xd7\x95" =>"yo",
+   "\xd7\x90"=>"a", "\xd7\x91"=>"b", "\xd7\x92"=>"g", "\xd7\x93"=>"d",
+   "\xd7\x94"=>"h", "\xd7\x95"=>"v", "\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"
+);
+
+?>

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/framework/class.frontend.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/class.frontend.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/class.frontend.php	(revision 1130)
@@ -0,0 +1,416 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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`, `link`
+			FROM `$table_p` AS `p` INNER JOIN `$table_s` USING(`page_id`)
+			WHERE `parent` = '0' AND `visibility` = 'public'
+			AND (($now>=`publ_start` OR `publ_start`=0) AND ($now<=`publ_end` OR `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.8.0/trunk/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.8.0/trunk/wb/framework/class.wbmailer.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/class.wbmailer.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/class.wbmailer.php	(revision 1130)
@@ -0,0 +1,114 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/framework/index.php
===================================================================
--- tags/2.8.0/trunk/wb/framework/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/framework/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/upgrade-script.php
===================================================================
--- tags/2.8.0/trunk/wb/upgrade-script.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/upgrade-script.php	(revision 1130)
@@ -0,0 +1,432 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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_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.'>';
+}
+
+
+?>
+<!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</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(templates/wb_theme/images/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="templates/wb_theme/images/logo.png" alt="Website Baker Logo" />
+
+<h1>Website Baker Upgrade</h1>
+<p>This script upgrades an existing Website Baker <strong>Version 2.7</strong> installation to the <strong>Version 2.8</strong>. The upgrade script alters the existing WB database to reflect the changes introduced with WB 2.8.</p>
+
+<?php
+/**
+ * Check if disclaimer was accepted
+ */
+if (!(isset($_POST['backup_confirmed']) && $_POST['backup_confirmed'] == 'confirmed')) { ?>
+<h2>Step 1: Backup your files</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
+	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');
+	echo '<br /><br />';
+	exit;
+}
+
+echo '<h2>Step 2: Updating database entries</h2>';
+
+require_once('config.php');
+require_once(WB_PATH.'/framework/functions.php');
+
+$OK   = '<span class="ok">OK</span>';
+$FAIL = '<span class="error">FAILED</span>';
+
+// function to add a var/value-pair into settings-table
+function db_add_key_value($key, $value) {
+	global $database; global $OK; global $FAIL;
+	$table = TABLE_PREFIX.'settings';
+	$query = $database->query("SELECT value FROM $table WHERE name = '$key' LIMIT 1");
+	if($query->numRows() > 0) {
+		echo "$key: already exists. $OK.<br />";
+		return true;
+	} else {
+		$database->query("INSERT INTO $table (name,value) 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 to add a new field into a table
+function db_add_field($field, $table, $desc) {
+	global $database; global $OK; global $FAIL;
+	$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' already exists. $OK.<br />";
+	}
+}
+
+
+/**********************************************************
+ *  - Adding field sec_anchor to settings table
+ */
+echo "<br />Adding sec_anchor to settings table<br />";
+$cfg = array(
+	'sec_anchor' => 'wb_'
+);
+foreach($cfg as $key=>$value) {
+	db_add_key_value($key, $value);
+}
+
+
+/**********************************************************
+ *  - Adding field default_theme to settings table
+ */
+echo "<br />Adding default_theme to settings table<br />";
+$cfg = array(
+	'default_theme' => 'wb_theme'
+);
+foreach($cfg as $key=>$value) {
+	db_add_key_value($key, $value);
+}
+
+
+/**********************************************************
+ *  - Adding redirect timer to settings table
+ */
+echo "<br />Adding redirect timer to settings table<br />";
+$cfg = array(
+	'redirect_timer' => '1500'
+);
+foreach($cfg as $key=>$value) {
+	db_add_key_value($key, $value);
+}
+
+
+/**********************************************************
+ *  - Adding mediasettings to settings table
+ */
+echo "<br />Adding mediasettings to settings table<br />";
+$cfg = array(
+	'mediasettings' => ''
+);
+foreach($cfg as $key=>$value) {
+	db_add_key_value($key, $value);
+}
+
+
+/**********************************************************
+ *  - Add field "redirect_type" to table "mod_menu_link"
+ */
+echo "<br />Adding field redirect_type to mod_menu_link table<br />";
+db_add_field('redirect_type', 'mod_menu_link', "INT NOT NULL DEFAULT '302' AFTER `target_page_id`");
+
+
+/**********************************************************
+ *  - Update search no results database filed to create
+ *  valid XHTML if search is empty
+ */
+echo "<br />Updating database field `no_results` of search table: ";
+$search_no_results = addslashes('<tr><td><p>[TEXT_NO_RESULTS]</p></td></tr>');
+$sql = "UPDATE `" . TABLE_PREFIX . "search` SET `value` = '$search_no_results' WHERE `name`= 'no_results'";
+$database->query($sql);
+echo ($database->query($sql)) ? " $OK<br />" : " $FAIL<br />";
+
+
+/**********************************************************
+ *  - Update settings of News Modul
+ */
+
+// These are the default setting
+$header = '<table cellpadding=\"0\" cellspacing=\"0\" class=\"loop-header\">'."\n";
+$post_loop = '<tr class=\"post_top\">
+<td class=\"post_title\"><a href=\"[LINK]\">[TITLE]</a></td>
+<td class=\"post_date\">[PUBLISHED_TIME], [PUBLISHED_DATE]</td>
+</tr>
+<tr>
+<td class=\"post_short\" colspan=\"2\">
+[SHORT]
+<span style=\"visibility:[SHOW_READ_MORE];\"><a href=\"[LINK]\">[TEXT_READ_MORE]</a></span>
+</td>
+</tr>';
+$footer = '</table>
+<table cellpadding="0" cellspacing="0" class="page-header" style="display: [DISPLAY_PREVIOUS_NEXT_LINKS]">
+<tr>
+<td class="page-left">[PREVIOUS_PAGE_LINK]</td>
+<td class="page-center">[OF]</td>
+<td class="page-right">[NEXT_PAGE_LINK]</td>
+</tr>
+</table>';
+$post_header = addslashes('<table cellpadding="0" cellspacing="0" class="post-header">
+<tr>
+<td><h1>[TITLE]</h1></td>
+<td rowspan="3" style="display: [DISPLAY_IMAGE]">[GROUP_IMAGE]</td>
+</tr>
+<tr>
+<td class="public-info"><b>[TEXT_POSTED_BY] [DISPLAY_NAME] ([USERNAME]) [TEXT_ON] [PUBLISHED_DATE]</b></td>
+</tr>
+<tr style="display: [DISPLAY_GROUP]">
+<td class="group-page"><a href="[BACK]">[PAGE_TITLE]</a> &gt;&gt; <a href="[BACK]?g=[GROUP_ID]">[GROUP_TITLE]</a></td>
+</tr>
+</table>');
+$post_footer = '<p>[TEXT_LAST_CHANGED]: [MODI_DATE] [TEXT_AT] [MODI_TIME]</p>
+<a href=\"[BACK]\">[TEXT_BACK]</a>';
+$comments_header = addslashes('<br /><br />
+<h2>[TEXT_COMMENTS]</h2>
+<table cellpadding="2" cellspacing="0" class="comment-header">');
+$comments_loop = addslashes('<tr>
+<td class="comment_title">[TITLE]</td>
+<td class="comment_info">[TEXT_BY] [DISPLAY_NAME] [TEXT_ON] [DATE] [TEXT_AT] [TIME]</td>
+</tr>
+<tr>
+<td colspan="2" class="comment_text">[COMMENT]</td>
+</tr>');
+$comments_footer = '</table>
+<br /><a href=\"[ADD_COMMENT_URL]\">[TEXT_ADD_COMMENT]</a>';
+$comments_page = '<h1>[TEXT_COMMENT]</h1>
+<h2>[POST_TITLE]</h2>
+<br />';
+
+
+// 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 "<br /><u>Add default settings to database for news section_id= ".$result['section_id']."</u><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';
+	}
+	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';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_news_settings` SET `footer` = '$footer' WHERE `section_id` = $section_id")) {
+		echo 'Database data footer added successfully';
+	}
+	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';
+	}
+	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';
+	}
+	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';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_news_settings` SET `comments_loop` = '$comments_loop' WHERE `section_id` = $section_id")) {
+		echo 'Database data comments_loop added successfully';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_news_settings` SET `comments_footer` = '$comments_footer' WHERE `section_id` = $section_id")) {
+		echo 'Database data comments_footer added successfully';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_news_settings` SET `comments_page` = '$comments_page' WHERE `section_id` = $section_id")) {
+		echo 'Database data comments_page added successfully';
+	}
+	echo mysql_error().'<br />';
+
+}
+
+/**********************************************************
+ *  - Set Version to WB 2.8
+ */
+echo "<br />Update database version number to 2.8 : ";
+$version = '2.8';
+echo ($database->query("UPDATE `".TABLE_PREFIX."settings` SET `value` = '$version' WHERE `name` = 'wb_version'")) ? " $OK<br />" : " $FAIL<br />";
+
+
+/**********************************************************
+ *  - install droplets
+ */
+echo "<br />Install droplets<br />";
+
+$result = mysql_list_tables( DB_NAME );
+$all_tables = array();
+for($i=0; $i < mysql_num_rows($result); $i++) $all_tables[] = mysql_table_name($result, $i);
+
+ $file_name = (!in_array ( TABLE_PREFIX."mod_droplets", $all_tables)) ? "install.php" : "upgrade.php";
+ require_once (WB_PATH."/modules/droplets/".$file_name);
+
+/**********************************************************
+ *  - 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
+ */
+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.', '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.8.0/trunk/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.8.0/trunk/wb/include/jscalendar/calendar-system.css
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/calendar-system.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/calendar-system.css	(revision 1130)
@@ -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: #DDDDDD url(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.8.0/trunk/wb/include/jscalendar/calendar-system.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/wb-setup.php
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/wb-setup.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/wb-setup.php	(revision 1130)
@@ -0,0 +1,87 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 = gmdate('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.8.0/trunk/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.8.0/trunk/wb/include/jscalendar/lang/calendar-de.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-de.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-de.js	(revision 1130)
@@ -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",
+ "Mai",
+ "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.8.0/trunk/wb/include/jscalendar/lang/calendar-de.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/jscalendar/lang/calendar-pl.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-pl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-pl.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-pl.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-fi.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-fi.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-fi.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-fi.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-el.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-el.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-el.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-el.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-br.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-br.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-br.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-br.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-cs.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-cs.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-cs.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-cs.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-fr.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-fr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-fr.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-fr.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-es.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-es.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-es.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-es.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-du.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-du.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-du.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-du.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/include/jscalendar/lang/calendar-si.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-si.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-si.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-si.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-hu.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-hu.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-hu.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-hu.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-no.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-no.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-no.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-no.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-it.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-it.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-it.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-it.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-sk.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-sk.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-sk.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-sk.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-lt.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-lt.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-lt.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-lt.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-ro.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-ro.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-ro.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-ro.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-lv.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-lv.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-lv.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-lv.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-ca.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-ca.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-ca.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-ca.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-da.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-da.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-da.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-da.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-tr.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-tr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-tr.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-tr.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-ru.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-ru.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-ru.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-ru.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-af.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-af.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-af.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-af.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-bg.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-bg.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-bg.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-bg.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-sv.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-sv.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-sv.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-sv.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-he.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-he.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-he.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-he.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-al.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-al.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-al.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-al.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-en.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-en.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-en.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-en.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-nl.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-nl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-nl.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-nl.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-pt.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-pt.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/lang/calendar-pt.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/lang/calendar-pt.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/jscalendar-functions.php
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/jscalendar-functions.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/jscalendar-functions.php	(revision 1130)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/jscalendar/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/jscalendar/README
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/README	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/README	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/include/jscalendar/img.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/include/jscalendar/calendar-setup.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/calendar-setup.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/calendar-setup.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/calendar-setup.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/menuarrow.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/include/jscalendar/calendar.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jscalendar/calendar.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jscalendar/calendar.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/jscalendar/calendar.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jscalendar/menuarrow2.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/include/phplib/template.inc
===================================================================
--- tags/2.8.0/trunk/wb/include/phplib/template.inc	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phplib/template.inc	(revision 1130)
@@ -0,0 +1,1026 @@
+<?php
+
+// $Id$
+
+/*
+ * Session Management for PHP3
+ *
+ * (C) Copyright 1999-2000 NetUSE GmbH
+ *                    Kristian Koehntopp
+ *
+ * $Id$
+ *
+ */
+
+/*
+ * 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.8.0/trunk/wb/include/phplib/template.inc
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phplib/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phplib/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phplib/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/jquery/plugins/images/clear.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/clear.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/prevlabel.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/prevlabel.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/loading.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/loading.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/nextlabel.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/nextlabel.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_flat_75_ffffff_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_flat_75_ffffff_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_glass_65_ffffff_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_glass_65_ffffff_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/x-click-but04.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/x-click-but04.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-icons_cd0a0a_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-icons_cd0a0a_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_flat_0_aaaaaa_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_flat_0_aaaaaa_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/images/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id: index.php 985 2009-05-27 04:46:39Z Ruebenwurzel $
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/include/jquery/plugins/images/ui-icons_222222_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-icons_222222_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-icons_2e83ff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-icons_2e83ff_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_glass_95_fef1ec_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_glass_95_fef1ec_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-icons_888888_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-icons_888888_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_glass_55_fbf9ee_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_glass_55_fbf9ee_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_glass_75_dadada_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_glass_75_dadada_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_glass_75_e6e6e6_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_glass_75_e6e6e6_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/closelabel.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/closelabel.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/close.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/close.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_highlight-soft_75_cccccc_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-bg_highlight-soft_75_cccccc_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-icons_454545_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/jquery/plugins/images/ui-icons_454545_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/unitpngfix.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/unitpngfix.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/unitpngfix.js	(revision 1130)
@@ -0,0 +1,4 @@
+var clear="images/clear.gif" //path to clear.gif
+
+pngfix=function(){var els=document.getElementsByTagName('*');var ip=/\.png/i;var i=els.length;while(i-- >0){var el=els[i];var es=el.style;if(el.src&&el.src.match(ip)&&!es.filter){es.height=el.height;es.width=el.width;es.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+el.src+"',sizingMethod='crop')";el.src=clear;}else{var elb=el.currentStyle.backgroundImage;if(elb.match(ip)){var path=elb.split('"');var rep=(el.currentStyle.backgroundRepeat=='no-repeat')?'crop':'scale';es.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+path[1]+"',sizingMethod='"+rep+"')";es.height=el.clientHeight+'px';es.backgroundImage='none';var elkids=el.getElementsByTagName('*');if (elkids){var j=elkids.length;if(el.currentStyle.position!="absolute")es.position='static';while (j-- >0)if(!elkids[j].style.position)elkids[j].style.position="relative";}}}}}
+window.attachEvent('onload',pngfix);
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-corner.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-corner.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-corner.js	(revision 1130)
@@ -0,0 +1,178 @@
+/*!
+ * jQuery corner plugin: simple corner rounding
+ * Examples and documentation at: http://jquery.malsup.com/corner/
+ * version 1.96 (11-MAY-2009)
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */
+
+/**
+ *  corner() takes a single string argument:  $('#myDiv').corner("effect corners width")
+ *
+ *  effect:  name of the effect to apply, such as round, bevel, notch, bite, etc (default is round). 
+ *  corners: one or more of: top, bottom, tr, tl, br, or bl. 
+ *           by default, all four corners are adorned. 
+ *  width:   width of the effect; in the case of rounded corners this is the radius. 
+ *           specify this value using the px suffix such as 10px (and yes, it must be pixels).
+ *
+ * @name corner
+ * @type jQuery
+ * @param String options Options which control the corner style
+ * @cat Plugins/Corner
+ * @return jQuery
+ * @author Dave Methvin (http://methvin.com/jquery/jq-corner.html)
+ * @author Mike Alsup   (http://jquery.malsup.com/corner/)
+ */
+;(function($) { 
+
+var expr = (function() {
+    var div = document.createElement('div');
+    try { div.style.setExpression('width','0+0'); }
+    catch(e) { return false; }
+    return true;
+})();
+    
+function sz(el, p) { 
+    return parseInt($.css(el,p))||0; 
+};
+function hex2(s) {
+    var s = parseInt(s).toString(16);
+    return ( s.length < 2 ) ? '0'+s : s;
+};
+function gpc(node) {
+    for ( ; node && node.nodeName.toLowerCase() != 'html'; node = node.parentNode ) {
+        var v = $.css(node,'backgroundColor');
+        if ( v.indexOf('rgb') >= 0 ) { 
+            if ($.browser.safari && v == 'rgba(0, 0, 0, 0)')
+                continue;
+            var rgb = v.match(/\d+/g); 
+            return '#'+ hex2(rgb[0]) + hex2(rgb[1]) + hex2(rgb[2]);
+        }
+        if ( v && v != 'transparent' )
+            return v;
+    }
+    return '#ffffff';
+};
+
+function getWidth(fx, i, width) {
+    switch(fx) {
+    case 'round':  return Math.round(width*(1-Math.cos(Math.asin(i/width))));
+    case 'cool':   return Math.round(width*(1+Math.cos(Math.asin(i/width))));
+    case 'sharp':  return Math.round(width*(1-Math.cos(Math.acos(i/width))));
+    case 'bite':   return Math.round(width*(Math.cos(Math.asin((width-i-1)/width))));
+    case 'slide':  return Math.round(width*(Math.atan2(i,width/i)));
+    case 'jut':    return Math.round(width*(Math.atan2(width,(width-i-1))));
+    case 'curl':   return Math.round(width*(Math.atan(i)));
+    case 'tear':   return Math.round(width*(Math.cos(i)));
+    case 'wicked': return Math.round(width*(Math.tan(i)));
+    case 'long':   return Math.round(width*(Math.sqrt(i)));
+    case 'sculpt': return Math.round(width*(Math.log((width-i-1),width)));
+    case 'dog':    return (i&1) ? (i+1) : width;
+    case 'dog2':   return (i&2) ? (i+1) : width;
+    case 'dog3':   return (i&3) ? (i+1) : width;
+    case 'fray':   return (i%2)*width;
+    case 'notch':  return width; 
+    case 'bevel':  return i+1;
+    }
+};
+
+$.fn.corner = function(o) {
+    // in 1.3+ we can fix mistakes with the ready state
+	if (this.length == 0) {
+        if (!$.isReady && this.selector) {
+            var s = this.selector, c = this.context;
+            $(function() {
+                $(s,c).corner(o);
+            });
+        }
+        return this;
+	}
+
+    o = (o||"").toLowerCase();
+    var keep = /keep/.test(o);                       // keep borders?
+    var cc = ((o.match(/cc:(#[0-9a-f]+)/)||[])[1]);  // corner color
+    var sc = ((o.match(/sc:(#[0-9a-f]+)/)||[])[1]);  // strip color
+    var width = parseInt((o.match(/(\d+)px/)||[])[1]) || 10; // corner width
+    var re = /round|bevel|notch|bite|cool|sharp|slide|jut|curl|tear|fray|wicked|sculpt|long|dog3|dog2|dog/;
+    var fx = ((o.match(re)||['round'])[0]);
+    var edges = { T:0, B:1 };
+    var opts = {
+        TL:  /top|tl/.test(o),       TR:  /top|tr/.test(o),
+        BL:  /bottom|bl/.test(o),    BR:  /bottom|br/.test(o)
+    };
+    if ( !opts.TL && !opts.TR && !opts.BL && !opts.BR )
+        opts = { TL:1, TR:1, BL:1, BR:1 };
+    var strip = document.createElement('div');
+    strip.style.overflow = 'hidden';
+    strip.style.height = '1px';
+    strip.style.backgroundColor = sc || 'transparent';
+    strip.style.borderStyle = 'solid';
+    return this.each(function(index){
+        var pad = {
+            T: parseInt($.css(this,'paddingTop'))||0,     R: parseInt($.css(this,'paddingRight'))||0,
+            B: parseInt($.css(this,'paddingBottom'))||0,  L: parseInt($.css(this,'paddingLeft'))||0
+        };
+
+        if (typeof this.style.zoom != undefined) this.style.zoom = 1; // force 'hasLayout' in IE
+        if (!keep) this.style.border = 'none';
+        strip.style.borderColor = cc || gpc(this.parentNode);
+        var cssHeight = $.curCSS(this, 'height');
+
+        for (var j in edges) {
+            var bot = edges[j];
+            // only add stips if needed
+            if ((bot && (opts.BL || opts.BR)) || (!bot && (opts.TL || opts.TR))) {
+                strip.style.borderStyle = 'none '+(opts[j+'R']?'solid':'none')+' none '+(opts[j+'L']?'solid':'none');
+                var d = document.createElement('div');
+                $(d).addClass('jquery-corner');
+                var ds = d.style;
+
+                bot ? this.appendChild(d) : this.insertBefore(d, this.firstChild);
+
+                if (bot && cssHeight != 'auto') {
+                    if ($.css(this,'position') == 'static')
+                        this.style.position = 'relative';
+                    ds.position = 'absolute';
+                    ds.bottom = ds.left = ds.padding = ds.margin = '0';
+                    if (expr)
+                        ds.setExpression('width', 'this.parentNode.offsetWidth');
+                    else
+                        ds.width = '100%';
+                }
+                else if (!bot && $.browser.msie) {
+                    if ($.css(this,'position') == 'static')
+                        this.style.position = 'relative';
+                    ds.position = 'absolute';
+                    ds.top = ds.left = ds.right = ds.padding = ds.margin = '0';
+                    
+                    // fix ie6 problem when blocked element has a border width
+                    if (expr) {
+                        var bw = sz(this,'borderLeftWidth') + sz(this,'borderRightWidth');
+                        ds.setExpression('width', 'this.parentNode.offsetWidth - '+bw+'+ "px"');
+                    }
+                    else
+                        ds.width = '100%';
+                }
+                else {
+                    ds.margin = !bot ? '-'+pad.T+'px -'+pad.R+'px '+(pad.T-width)+'px -'+pad.L+'px' : 
+                                        (pad.B-width)+'px -'+pad.R+'px -'+pad.B+'px -'+pad.L+'px';                
+                }
+
+                for (var i=0; i < width; i++) {
+                    var w = Math.max(0,getWidth(fx,i, width));
+                    var e = strip.cloneNode(false);
+                    e.style.borderWidth = '0 '+(opts[j+'R']?w:0)+'px 0 '+(opts[j+'L']?w:0)+'px';
+                    bot ? d.appendChild(e) : d.insertBefore(e, d.firstChild);
+                }
+            }
+        }
+    });
+};
+
+$.fn.uncorner = function() { 
+	$('div.jquery-corner', this).remove();
+	return this;
+};
+    
+})(jQuery);
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-fixedheader.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-fixedheader.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-fixedheader.js	(revision 1130)
@@ -0,0 +1,141 @@
+/**
+ * Stupid Fixed Header 1.0.1 - jQuery plugins to create a fixed headers
+ * 
+ * Require: jQuery 1.2.6
+ * Author: Jacky See
+ * Blog: http://jacky.seezone.net
+ * email:  jackysee at gmail dot com
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+*/
+
+(function($){
+	
+	/* created fixed headers , require jquery dimenions plugins*/
+	$.fn.fixedHeader = function(o){
+		var s = {adjustWidth: $.fixedHeader.calcWidth};
+		if(o) $.extend(s,o);
+		
+		return this.each(function(){
+			var table = $(this); //table
+			var tId = this.id;
+			
+			var scrollBarWidth = $.fixedHeader.getScrollBarWidth();
+			var IE6 = $.browser.msie && $.browser.version == '6.0';
+			
+			//wrap a body container
+			var bodyContainer = table.wrap('<div></div>').parent()
+				.attr('id', tId + "_body_container")
+				.css({
+					width: s.width,
+					height: s.height,
+					overflow: 'auto'
+				});
+			
+			//Wrap with an overall container
+			var tableContainer = bodyContainer.wrap('<div></div>').parent()
+				.attr('id', tId + '_table_container')
+				.css('position','relative');
+
+			//clone the header
+			var headerContainer = $(document.createElement('div'))
+				.attr('id', tId + '_header_container')
+				.css({
+					width:  bodyContainer.innerWidth() - scrollBarWidth,
+					height: table.find('thead').outerHeight(), 
+					overflow: 'hidden',
+					top: 0, left:0
+				})
+				.prependTo(tableContainer);
+			
+			var headerTable = table.clone(true)
+				.find('tbody').remove().end()
+				.attr('id',tId + "_header")
+				.addClass(s.tableClass || table[0].className)
+				.css({
+					//width: $.browser.msie? table.outerWidth():table.width(), 
+					'table-layout':'fixed',
+					position:'absolute',
+					top:0, left:0
+				})
+				.append(table.find('thead').clone(true))
+				.appendTo(headerContainer);
+			
+			//sync header width
+			var headThs = headerTable.find('th');
+			table.find('th').each(function(i){
+				headThs.eq(i).css('width', s.adjustWidth(this));
+			})
+			
+			//sync scroll
+			var selects = IE6? table.find("select"): null;
+			bodyContainer.scroll(function(){
+				if(IE6 && selects.size()>0){
+					selects.each(function(i){
+						this.style.visibility =
+							($(this).offset().top - bodyContainer.offset().top) <= table.find("thead").outerHeight() + 10
+							? 'hidden':'visible';
+					});
+				}
+				headerTable.css({
+					left: '-' + $(this).scrollLeft() + 'px'
+				});
+			})
+			
+			//Move it down
+			headerContainer.css({
+				'position': 'absolute',
+				'top': 0
+			});
+		});
+	}
+	
+	$.fixedHeader = {
+		calcWidth: function(th){
+			var w = $(th).width();
+			var paddingLeft = $.fixedHeader.getComputedStyleInPx(th,'paddingLeft');
+			var paddingRight = $.fixedHeader.getComputedStyleInPx(th,'paddingRight');
+			var borderWidth = $.fixedHeader.getComputedStyleInPx(th,'borderRightWidth');			
+			if($.browser.msie) w = w+borderWidth;
+			if($.browser.opera) w = w+borderWidth;
+			if($.browser.safari) w = w+paddingLeft+paddingRight+borderWidth*2;
+			if($.browser.mozilla && parseFloat($.browser.version) <= 1.8) w=w+borderWidth; //FF2 still got a border-left missing problem, this is the best I can do.
+			return w;
+		},
+		getComputedStyleInPx: function(elem,style){
+			var computedStyle = (typeof elem.currentStyle != 'undefined')
+				?elem.currentStyle
+				:document.defaultView.getComputedStyle(elem, null);
+			var val = computedStyle[style];
+			val = val? parseInt(val.replace("px","")):0;
+			return (!val || val == 'NaN')?0:val;
+		},
+		getScrollBarWidth: function() { //calculate or get from global the scroll bar width
+			if(!$.fixedHeader.scrollBarWidth){ 
+				var inner = $(document.createElement('p')).css({width:'100%',height:'100%'});
+				var outer = $(document.createElement('div'))
+					.css({
+						position:'absolute',
+						top: '0px',
+						left: '0px',
+						visibility: 'hidden',
+						width: '200px',
+						height: '150px',
+						overflow: 'hidden'
+					})
+					.append(inner)
+					.appendTo(document.body);
+				
+				var w1 = inner[0].offsetWidth;
+				outer[0].style.overflow = 'scroll';
+				var w2 = inner[0].offsetWidth;
+				if (w1 == w2) w2 = outer[0].clientWidth;
+				document.body.removeChild (outer[0]);
+				$.fixedHeader.scrollBarWidth = (w1 - w2);
+			}
+			return $.fixedHeader.scrollBarWidth;
+		}
+	}
+	
+})(jQuery);
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-fancybox.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-fancybox.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-fancybox.js	(revision 1130)
@@ -0,0 +1,384 @@
+/*
+ * FancyBox - simple jQuery plugin for fancy image zooming
+ * Examples and documentation at: http://fancy.klade.lv/
+ * Version: 1.0.0 (29/04/2008)
+ * Copyright (c) 2008 Janis Skarnelis
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
+ * Requires: jQuery v1.2.1 or later
+*/
+(function($) {
+	var opts = {}, 
+		imgPreloader = new Image, imgTypes = ['png', 'jpg', 'jpeg', 'gif'], 
+		loadingTimer, loadingFrame = 1;
+
+   $.fn.fancybox = function(settings) {
+		opts.settings = $.extend({}, $.fn.fancybox.defaults, settings);
+
+		$.fn.fancybox.init();
+
+		return this.each(function() {
+			var $this = $(this);
+			var o = $.metadata ? $.extend({}, opts.settings, $this.metadata()) : opts.settings;
+
+			$this.unbind('click').click(function() {
+				$.fn.fancybox.start(this, o); return false;
+			});
+		});
+	};
+
+	$.fn.fancybox.start = function(el, o) {
+		if (opts.animating) return false;
+
+		if (o.overlayShow) {
+			$("#fancy_wrap").prepend('<div id="fancy_overlay"></div>');
+			$("#fancy_overlay").css({'width': $(window).width(), 'height': $(document).height(), 'opacity': o.overlayOpacity});
+
+			if ($.browser.msie) {
+				$("#fancy_wrap").prepend('<iframe id="fancy_bigIframe" scrolling="no" frameborder="0"></iframe>');
+				$("#fancy_bigIframe").css({'width': $(window).width(), 'height': $(document).height(), 'opacity': 0});
+			}
+
+			$("#fancy_overlay").click($.fn.fancybox.close);
+		}
+
+		opts.itemArray	= [];
+		opts.itemNum	= 0;
+
+		if (jQuery.isFunction(o.itemLoadCallback)) {
+		   o.itemLoadCallback.apply(this, [opts]);
+
+			var c	= $(el).children("img:first").length ? $(el).children("img:first") : $(el);
+			var tmp	= {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)}
+
+		   for (var i = 0; i < opts.itemArray.length; i++) {
+				opts.itemArray[i].o = $.extend({}, o, opts.itemArray[i].o);
+				
+				if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) {
+					opts.itemArray[i].orig = tmp;
+				}
+		   }
+
+		} else {
+			if (!el.rel || el.rel == '') {
+				var item = {url: el.href, title: el.title, o: o};
+
+				if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) {
+					var c = $(el).children("img:first").length ? $(el).children("img:first") : $(el);
+					item.orig = {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)}
+				}
+
+				opts.itemArray.push(item);
+
+			} else {
+				var arr	= $("a[@rel=" + el.rel + "]").get();
+
+				for (var i = 0; i < arr.length; i++) {
+					var tmp		= $.metadata ? $.extend({}, o, $(arr[i]).metadata()) : o;
+   					var item	= {url: arr[i].href, title: arr[i].title, o: tmp};
+
+   					if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) {
+						var c = $(arr[i]).children("img:first").length ? $(arr[i]).children("img:first") : $(el);
+
+						item.orig = {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)}
+					}
+
+					if (arr[i].href == el.href) opts.itemNum = i;
+
+					opts.itemArray.push(item);
+				}
+			}
+		}
+
+		$.fn.fancybox.changeItem(opts.itemNum);
+	};
+
+	$.fn.fancybox.changeItem = function(n) {
+		$.fn.fancybox.showLoading();
+
+		opts.itemNum = n;
+
+		$("#fancy_nav").empty();
+		$("#fancy_outer").stop();
+		$("#fancy_title").hide();
+		$(document).unbind("keydown");
+
+		imgRegExp = imgTypes.join('|');
+    	imgRegExp = new RegExp('\.' + imgRegExp + '$', 'i');
+
+		var url = opts.itemArray[n].url;
+
+		if (url.match(/#/)) {
+			var target = window.location.href.split('#')[0]; target = url.replace(target,'');
+
+	        $.fn.fancybox.showItem('<div id="fancy_div">' + $(target).html() + '</div>');
+
+	        $("#fancy_loading").hide();
+
+		} else if (url.match(imgRegExp)) {
+			$(imgPreloader).unbind('load').bind('load', function() {
+				$("#fancy_loading").hide();
+
+				opts.itemArray[n].o.frameWidth	= imgPreloader.width;
+				opts.itemArray[n].o.frameHeight	= imgPreloader.height;
+
+				$.fn.fancybox.showItem('<img id="fancy_img" src="' + imgPreloader.src + '" />');
+
+			}).attr('src', url + '?rand=' + Math.floor(Math.random() * 999999999) );
+
+		} else {
+			$.fn.fancybox.showItem('<iframe id="fancy_frame" onload="$.fn.fancybox.showIframe()" name="fancy_iframe' + Math.round(Math.random()*1000) + '" frameborder="0" hspace="0" src="' + url + '"></iframe>');
+		}
+	};
+
+	$.fn.fancybox.showIframe = function() {
+		$("#fancy_loading").hide();
+		$("#fancy_frame").show();
+	};
+
+	$.fn.fancybox.showItem = function(val) {
+		$.fn.fancybox.preloadNeighborImages();
+
+		var viewportPos	= $.fn.fancybox.getViewport();
+		var itemSize	= $.fn.fancybox.getMaxSize(viewportPos[0] - 50, viewportPos[1] - 100, opts.itemArray[opts.itemNum].o.frameWidth, opts.itemArray[opts.itemNum].o.frameHeight);
+
+		var itemLeft	= viewportPos[2] + Math.round((viewportPos[0] - itemSize[0]) / 2) - 20;
+		var itemTop		= viewportPos[3] + Math.round((viewportPos[1] - itemSize[1]) / 2) - 40;
+
+		var itemOpts = {
+			'left':		itemLeft, 
+			'top':		itemTop, 
+			'width':	itemSize[0] + 'px', 
+			'height':	itemSize[1] + 'px'	
+		}
+
+		if (opts.active) {
+			$('#fancy_content').fadeOut("normal", function() {
+				$("#fancy_content").empty();
+				
+				$("#fancy_outer").animate(itemOpts, "normal", function() {
+					$("#fancy_content").append($(val)).fadeIn("normal");
+					$.fn.fancybox.updateDetails();
+				});
+			});
+
+		} else {
+			opts.active = true;
+
+			$("#fancy_content").empty();
+
+			if ($("#fancy_content").is(":animated")) {
+				console.info('animated!');
+			}
+
+			if (opts.itemArray[opts.itemNum].o.zoomSpeedIn > 0) {
+				opts.animating		= true;
+				itemOpts.opacity	= "show";
+
+				$("#fancy_outer").css({
+					'top':		opts.itemArray[opts.itemNum].orig.pos.top - 18,
+					'left':		opts.itemArray[opts.itemNum].orig.pos.left - 18,
+					'height':	opts.itemArray[opts.itemNum].orig.height,
+					'width':	opts.itemArray[opts.itemNum].orig.width
+				});
+
+				$("#fancy_content").append($(val)).show();
+
+				$("#fancy_outer").animate(itemOpts, opts.itemArray[opts.itemNum].o.zoomSpeedIn, function() {
+					opts.animating = false;
+					$.fn.fancybox.updateDetails();
+				});
+
+			} else {
+				$("#fancy_content").append($(val)).show();
+				$("#fancy_outer").css(itemOpts).show();
+				$.fn.fancybox.updateDetails();
+			}
+		 }
+	};
+
+	$.fn.fancybox.updateDetails = function() {
+		$("#fancy_bg,#fancy_close").show();
+
+		if (opts.itemArray[opts.itemNum].title !== undefined && opts.itemArray[opts.itemNum].title !== '') {
+			$('#fancy_title div').html(opts.itemArray[opts.itemNum].title);
+			$('#fancy_title').show();
+		}
+
+		if (opts.itemArray[opts.itemNum].o.hideOnContentClick) {
+			$("#fancy_content").click($.fn.fancybox.close);
+		} else {
+			$("#fancy_content").unbind('click');
+		}
+
+		if (opts.itemNum != 0) {
+			$("#fancy_nav").append('<a id="fancy_left" href="javascript:;"></a>');
+
+			$('#fancy_left').click(function() {
+				$.fn.fancybox.changeItem(opts.itemNum - 1); return false;
+			});
+		}
+
+		if (opts.itemNum != (opts.itemArray.length - 1)) {
+			$("#fancy_nav").append('<a id="fancy_right" href="javascript:;"></a>');
+			
+			$('#fancy_right').click(function(){
+				$.fn.fancybox.changeItem(opts.itemNum + 1); return false;
+			});
+		}
+
+		$(document).keydown(function(event) {
+			if (event.keyCode == 27) {
+            	$.fn.fancybox.close();
+
+			} else if(event.keyCode == 37 && opts.itemNum != 0) {
+            	$.fn.fancybox.changeItem(opts.itemNum - 1);
+
+			} else if(event.keyCode == 39 && opts.itemNum != (opts.itemArray.length - 1)) {
+            	$.fn.fancybox.changeItem(opts.itemNum + 1);
+			}
+		});
+	};
+
+	$.fn.fancybox.preloadNeighborImages = function() {
+		if ((opts.itemArray.length - 1) > opts.itemNum) {
+			preloadNextImage = new Image();
+			preloadNextImage.src = opts.itemArray[opts.itemNum + 1].url;
+		}
+
+		if (opts.itemNum > 0) {
+			preloadPrevImage = new Image();
+			preloadPrevImage.src = opts.itemArray[opts.itemNum - 1].url;
+		}
+	};
+
+	$.fn.fancybox.close = function() {
+		if (opts.animating) return false;
+
+		$(imgPreloader).unbind('load');
+		$(document).unbind("keydown");
+
+		$("#fancy_loading,#fancy_title,#fancy_close,#fancy_bg").hide();
+
+		$("#fancy_nav").empty();
+
+		opts.active	= false;
+
+		if (opts.itemArray[opts.itemNum].o.zoomSpeedOut > 0) {
+			var itemOpts = {
+				'top':		opts.itemArray[opts.itemNum].orig.pos.top - 18,
+				'left':		opts.itemArray[opts.itemNum].orig.pos.left - 18,
+				'height':	opts.itemArray[opts.itemNum].orig.height,
+				'width':	opts.itemArray[opts.itemNum].orig.width,
+				'opacity':	'hide'
+			};
+
+			opts.animating = true;
+
+			$("#fancy_outer").animate(itemOpts, opts.itemArray[opts.itemNum].o.zoomSpeedOut, function() {
+				$("#fancy_content").hide().empty();
+				$("#fancy_overlay,#fancy_bigIframe").remove();
+				opts.animating = false;
+			});
+
+		} else {
+			$("#fancy_outer").hide();
+			$("#fancy_content").hide().empty();
+			$("#fancy_overlay,#fancy_bigIframe").fadeOut("fast").remove();
+		}
+	};
+
+	$.fn.fancybox.showLoading = function() {
+		clearInterval(loadingTimer);
+
+		var pos = $.fn.fancybox.getViewport();
+
+		$("#fancy_loading").css({'left': ((pos[0] - 40) / 2 + pos[2]), 'top': ((pos[1] - 40) / 2 + pos[3])}).show();
+		$("#fancy_loading").bind('click', $.fn.fancybox.close);
+		
+		loadingTimer = setInterval($.fn.fancybox.animateLoading, 66);
+	};
+
+	$.fn.fancybox.animateLoading = function(el, o) {
+		if (!$("#fancy_loading").is(':visible')){
+			clearInterval(loadingTimer);
+			return;
+		}
+
+		$("#fancy_loading > div").css('top', (loadingFrame * -40) + 'px');
+
+		loadingFrame = (loadingFrame + 1) % 12;
+	};
+
+	$.fn.fancybox.init = function() {
+		if (!$('#fancy_wrap').length) {
+			$('<div id="fancy_wrap"><div id="fancy_loading"><div></div></div><div id="fancy_outer"><div id="fancy_inner"><div id="fancy_nav"></div><div id="fancy_close"></div><div id="fancy_content"></div><div id="fancy_title"></div></div></div></div>').appendTo("body");
+			$('<div id="fancy_bg"><div class="fancy_bg fancy_bg_n"></div><div class="fancy_bg fancy_bg_ne"></div><div class="fancy_bg fancy_bg_e"></div><div class="fancy_bg fancy_bg_se"></div><div class="fancy_bg fancy_bg_s"></div><div class="fancy_bg fancy_bg_sw"></div><div class="fancy_bg fancy_bg_w"></div><div class="fancy_bg fancy_bg_nw"></div></div>').prependTo("#fancy_inner");
+			
+			$('<table cellspacing="0" cellpadding="0" border="0"><tr><td id="fancy_title_left"></td><td id="fancy_title_main"><div></div></td><td id="fancy_title_right"></td></tr></table>').appendTo('#fancy_title');
+		}
+
+		if ($.browser.msie) {
+			$("#fancy_inner").prepend('<iframe id="fancy_freeIframe" scrolling="no" frameborder="0"></iframe>');
+		}
+
+		if (jQuery.fn.pngFix) $(document).pngFix();
+
+    	$("#fancy_close").click($.fn.fancybox.close);
+	};
+
+	$.fn.fancybox.getPosition = function(el) {
+		var pos = el.offset();
+
+		pos.top	+= $.fn.fancybox.num(el, 'paddingTop');
+		pos.top	+= $.fn.fancybox.num(el, 'borderTopWidth');
+
+ 		pos.left += $.fn.fancybox.num(el, 'paddingLeft');
+		pos.left += $.fn.fancybox.num(el, 'borderLeftWidth');
+
+		return pos;
+	};
+
+	$.fn.fancybox.num = function (el, prop) {
+		return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;
+	};
+
+	$.fn.fancybox.getPageScroll = function() {
+		var xScroll, yScroll;
+
+		if (self.pageYOffset) {
+			yScroll = self.pageYOffset;
+			xScroll = self.pageXOffset;
+		} else if (document.documentElement && document.documentElement.scrollTop) {
+			yScroll = document.documentElement.scrollTop;
+			xScroll = document.documentElement.scrollLeft;
+		} else if (document.body) {
+			yScroll = document.body.scrollTop;
+			xScroll = document.body.scrollLeft;	
+		}
+
+		return [xScroll, yScroll]; 
+	};
+
+	$.fn.fancybox.getViewport = function() {
+		var scroll = $.fn.fancybox.getPageScroll();
+
+		return [$(window).width(), $(window).height(), scroll[0], scroll[1]];
+	};
+
+	$.fn.fancybox.getMaxSize = function(maxWidth, maxHeight, imageWidth, imageHeight) {
+		var r = Math.min(Math.min(maxWidth, imageWidth) / imageWidth, Math.min(maxHeight, imageHeight) / imageHeight);
+
+		return [Math.round(r * imageWidth), Math.round(r * imageHeight)];
+	};
+
+	$.fn.fancybox.defaults = {
+		hideOnContentClick:	false,
+		zoomSpeedIn:		500,
+		zoomSpeedOut:		500,
+		frameWidth:			600,
+		frameHeight:		400,
+		overlayShow:		false,
+		overlayOpacity:		0.4,
+		itemLoadCallback:	null
+	};
+})(jQuery);
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-ui.css
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-ui.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-ui.css	(revision 1130)
@@ -0,0 +1,404 @@
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+*/
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+*/
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
+.ui-widget-content a { color: #222222; }
+.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
+.ui-widget-header a { color: #222222; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; outline: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; outline: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; outline: none; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; outline: none; }
+.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; outline: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; outline: none; text-decoration: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
+.ui-state-error a, .ui-widget-content .ui-state-error a { color: #cd0a0a; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; }
+.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
+.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
+.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
+.ui-corner-right {  -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
+.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
+.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; }/* Accordion
+----------------------------------*/
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; }
+.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker
+----------------------------------*/
+.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/* Dialog
+----------------------------------*/
+.ui-dialog { position: relative; padding: .2em; width: 300px; }
+.ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/* Progressbar
+----------------------------------*/
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable
+----------------------------------*/
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider
+----------------------------------*/
+.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs
+----------------------------------*/
+.ui-tabs { padding: .2em; zoom: 1; }
+.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
+.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-pngFix.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-pngFix.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-pngFix.js	(revision 1130)
@@ -0,0 +1,11 @@
+/**
+ * --------------------------------------------------------------------
+ * jQuery-Plugin "pngFix"
+ * Version: 1.1, 11.09.2007
+ * by Andreas Eberhard, andreas.eberhard@gmail.com
+ *                      http://jquery.andreaseberhard.de/
+ *
+ * Copyright (c) 2007 Andreas Eberhard
+ * Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
+ */
+eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(s($){3.1s.1k=s(j){j=3.1a({12:\'1m.1j\'},j);8 k=(n.P=="r 10 Z"&&U(n.v)==4&&n.v.E("14 5.5")!=-1);8 l=(n.P=="r 10 Z"&&U(n.v)==4&&n.v.E("14 6.0")!=-1);o(3.17.16&&(k||l)){3(2).L("1r[@m$=.M]").z(s(){3(2).7(\'q\',3(2).q());3(2).7(\'p\',3(2).p());8 a=\'\';8 b=\'\';8 c=(3(2).7(\'K\'))?\'K="\'+3(2).7(\'K\')+\'" \':\'\';8 d=(3(2).7(\'A\'))?\'A="\'+3(2).7(\'A\')+\'" \':\'\';8 e=(3(2).7(\'C\'))?\'C="\'+3(2).7(\'C\')+\'" \':\'\';8 f=(3(2).7(\'B\'))?\'B="\'+3(2).7(\'B\')+\'" \':\'\';8 g=(3(2).7(\'R\'))?\'1d:\'+3(2).7(\'R\')+\';\':\'\';8 h=(3(2).1c().7(\'1b\'))?\'19:18;\':\'\';o(2.9.y){a+=\'y:\'+2.9.y+\';\';2.9.y=\'\'}o(2.9.t){a+=\'t:\'+2.9.t+\';\';2.9.t=\'\'}o(2.9.w){a+=\'w:\'+2.9.w+\';\';2.9.w=\'\'}8 i=(2.9.15);b+=\'<x \'+c+d+e+f;b+=\'9="13:11;1q-1p:1o-1n;O:W-V;N:1l;\'+g+h;b+=\'q:\'+3(2).q()+\'u;\'+\'p:\'+3(2).p()+\'u;\';b+=\'J:I:H.r.G\'+\'(m=\\\'\'+3(2).7(\'m\')+\'\\\', D=\\\'F\\\');\';b+=i+\'"></x>\';o(a!=\'\'){b=\'<x 9="13:11;O:W-V;\'+a+h+\'q:\'+3(2).q()+\'u;\'+\'p:\'+3(2).p()+\'u;\'+\'">\'+b+\'</x>\'}3(2).1i();3(2).1h(b)});3(2).L("*").z(s(){8 a=3(2).T(\'N-S\');o(a.E(".M")!=-1){8 b=a.X(\'1g("\')[1].X(\'")\')[0];3(2).T(\'N-S\',\'1f\');3(2).Q(0).Y.J="I:H.r.G(m=\'"+b+"\',D=\'F\')"}});3(2).L("1e[@m$=.M]").z(s(){8 a=3(2).7(\'m\');3(2).Q(0).Y.J=\'I:H.r.G\'+\'(m=\\\'\'+a+\'\\\', D=\\\'F\\\');\';3(2).7(\'m\',j.12)})}1t 3}})(3);',62,92,'||this|jQuery||||attr|var|style|||||||||||||src|navigator|if|height|width|Microsoft|function|padding|px|appVersion|margin|span|border|each|class|alt|title|sizingMethod|indexOf|scale|AlphaImageLoader|DXImageTransform|progid|filter|id|find|png|background|display|appName|get|align|image|css|parseInt|block|inline|split|runtimeStyle|Explorer|Internet|relative|blankgif|position|MSIE|cssText|msie|browser|hand|cursor|extend|href|parent|float|input|none|url|after|hide|gif|pngFix|transparent|blank|line|pre|space|white|img|fn|return'.split('|'),0,{}))
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-slimbox2.css
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-slimbox2.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-slimbox2.css	(revision 1130)
@@ -0,0 +1,83 @@
+/* SLIMBOX */
+
+#lbOverlay {
+	position: fixed;
+	z-index: 9999;
+	left: 0;
+	top: 0;
+	width: 100%;
+	height: 100%;
+	background-color: #000;
+	cursor: pointer;
+}
+
+#lbCenter, #lbBottomContainer {
+	position: absolute;
+	z-index: 9999;
+	overflow: hidden;
+	background-color: #fff;
+}
+
+.lbLoading {
+	background: #fff url(images/loading.gif) no-repeat center;
+}
+
+#lbImage {
+	position: absolute;
+	left: 0;
+	top: 0;
+	border: 10px solid #fff;
+	background-repeat: no-repeat;
+}
+
+#lbPrevLink, #lbNextLink {
+	display: block;
+	position: absolute;
+	top: 0;
+	width: 50%;
+	outline: none;
+}
+
+#lbPrevLink {
+	left: 0;
+}
+
+#lbPrevLink:hover {
+	background: transparent url(images/prevlabel.gif) no-repeat 0 15%;
+}
+
+#lbNextLink {
+	right: 0;
+}
+
+#lbNextLink:hover {
+	background: transparent url(images/nextlabel.gif) no-repeat 100% 15%;
+}
+
+#lbBottom {
+	font-family: Verdana, Arial, Geneva, Helvetica, sans-serif;
+	font-size: 10px;
+	color: #666;
+	line-height: 1.4em;
+	text-align: left;
+	border: 10px solid #fff;
+	border-top-style: none;
+}
+
+#lbCloseLink {
+	display: block;
+	float: right;
+	width: 66px;
+	height: 22px;
+	background: transparent url(images/closelabel.gif) no-repeat center;
+	margin: 5px 0;
+	outline: none;
+}
+
+#lbCaption, #lbNumber {
+	margin-right: 71px;
+}
+
+#lbCaption {
+	font-weight: bold;
+}
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/jquery.dropshadow.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/jquery.dropshadow.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/jquery.dropshadow.js	(revision 1130)
@@ -0,0 +1,304 @@
+/*
+	VERSION: Drop Shadow jQuery Plugin 1.6  12-13-2007
+
+	REQUIRES: jquery.js (1.2.6 or later)
+
+	SYNTAX: $(selector).dropShadow(options);  // Creates new drop shadows
+					$(selector).redrawShadow();       // Redraws shadows on elements
+					$(selector).removeShadow();       // Removes shadows from elements
+					$(selector).shadowId();           // Returns an existing shadow's ID
+
+	OPTIONS:
+
+		left    : integer (default = 4)
+		top     : integer (default = 4)
+		blur    : integer (default = 2)
+		opacity : decimal (default = 0.5)
+		color   : string (default = "black")
+		swap    : boolean (default = false)
+
+	The left and top parameters specify the distance and direction, in	pixels, to
+	offset the shadow. Zero values position the shadow directly behind the element.
+	Positive values shift the shadow to the right and down, while negative values 
+	shift the shadow to the left and up.
+	
+	The blur parameter specifies the spread, or dispersion, of the shadow. Zero 
+	produces a sharp shadow, one or two produces a normal shadow, and	three or four
+	produces a softer shadow. Higher values increase the processing load.
+	
+	The opacity parameter	should be a decimal value, usually less than one. You can
+	use a value	higher than one in special situations, e.g. with extreme blurring. 
+	
+	Color is specified in the usual manner, with a color name or hex value. The
+	color parameter	does not apply with transparent images.
+	
+	The swap parameter reverses the stacking order of the original and the shadow.
+	This can be used for special effects, like an embossed or engraved look.
+
+	EXPLANATION:
+	
+	This jQuery plug-in adds soft drop shadows behind page elements. It is only
+	intended for adding a few drop shadows to mostly stationary objects, like a
+	page heading, a photo, or content containers.
+
+	The shadows it creates are not bound to the original elements, so they won't
+	move or change size automatically if the original elements change. A window
+	resize event listener is assigned, which should re-align the shadows in many
+	cases, but if the elements otherwise move or resize you will have to handle
+	those events manually. Shadows can be redrawn with the redrawShadow() method
+	or removed with the removeShadow() method. The redrawShadow() method uses the
+	same options used to create the original shadow. If you want to change the
+	options, you should remove the shadow first and then create a new shadow.
+	
+	The dropShadow method returns a jQuery collection of the new shadow(s). If
+	further manipulation is required, you can store it in a variable like this:
+
+		var myShadow = $("#myElement").dropShadow();
+
+	You can also read the ID of the shadow from the original element at a later
+	time. To get a shadow's ID, either read the shadowId attribute of the
+	original element or call the shadowId() method. For example:
+
+		var myShadowId = $("#myElement").attr("shadowId");  or
+		var myShadowId = $("#myElement").shadowId();
+
+	If the original element does not already have an ID assigned, a random ID will
+	be generated for the shadow. However, if the original does have an ID, the 
+	shadow's ID will be the original ID and "_dropShadow". For example, if the
+	element's ID is "myElement", the shadow's ID would be "myElement_dropShadow".
+
+	If you have a long piece of text and the user resizes the	window so that the
+	text wraps or unwraps, the shape of the text changes and the words are no
+	longer in the same positions. In that case, you can either preset the height
+	and width, so that it becomes a fixed box, or you can shadow each word
+	separately, like this:
+
+		<h1><span>Your</span> <span>Page</span> <span>Title</span></h1>
+
+		$("h1 span").dropShadow();
+
+	The dropShadow method attempts to determine whether the selected elements have
+	transparent backgrounds. If you want to shadow the content inside an element,
+	like text or a transparent image, it must not have a background-color or
+	background-image style. If the element has a solid background it will create a
+	rectangular	shadow around the outside box.
+
+	The shadow elements are positioned absolutely one layer below the original 
+	element, which is positioned relatively (unless it's already absolute).
+
+	*** All shadows have the "dropShadow" class, for selecting with CSS or jQuery.
+
+	ISSUES:
+	
+		1)	Limited styling of shadowed elements by ID. Because IDs must be unique,
+				and the shadows have their own ID, styles applied by ID won't transfer
+				to the shadows. Instead, style elements by class or use inline styles.
+		2)	Sometimes shadows don't align properly. Elements may need to be wrapped
+				in container elements, margins or floats changed, etc. or you may just 
+				have to tweak the left and top offsets to get them to align. For example,
+				with draggable objects, you have to wrap them inside two divs. Make the 
+				outer div draggable and set the inner div's position to relative. Then 
+				you can create a shadow on the element inside the inner div.
+		3)	If the user changes font sizes it will throw the shadows off. Browsers 
+				do not expose an event for font size changes. The only known way to 
+				detect a user font size change is to embed an invisible text element and
+				then continuously poll for changes in size.
+		4)	Safari support is shaky, and may require even more tweaks/wrappers, etc.
+		
+		The bottom line is that this is a gimick effect, not PFM, and if you push it
+		too hard or expect it to work in every possible situation on every browser,
+		you will be disappointed. Use it sparingly, and don't use it for anything 
+		critical. Otherwise, have fun with it!
+				
+	AUTHOR: Larry Stevens (McLars@eyebulb.com) This work is in the public domain,
+					and it is not supported in any way. Use it at your own risk.
+*/
+
+
+(function($){
+
+	var dropShadowZindex = 1;  //z-index counter
+
+	$.fn.dropShadow = function(options)
+	{
+		// Default options
+		var opt = $.extend({
+			left: 4,
+			top: 4,
+			blur: 2,
+			opacity: .5,
+			color: "black",
+			swap: false
+			}, options);
+		var jShadows = $([]);  //empty jQuery collection
+		
+		// Loop through original elements
+		this.not(".dropShadow").each(function()
+		{
+			var jthis = $(this);
+			var shadows = [];
+			var blur = (opt.blur <= 0) ? 0 : opt.blur;
+			var opacity = (blur == 0) ? opt.opacity : opt.opacity / (blur * 8);
+			var zOriginal = (opt.swap) ? dropShadowZindex : dropShadowZindex + 1;
+			var zShadow = (opt.swap) ? dropShadowZindex + 1 : dropShadowZindex;
+			
+			// Create ID for shadow
+			var shadowId;
+			if (this.id) {
+				shadowId = this.id + "_dropShadow";
+			}
+			else {
+				shadowId = "ds" + (1 + Math.floor(9999 * Math.random()));
+			}
+
+			// Modify original element
+			$.data(this, "shadowId", shadowId); //store id in expando
+			$.data(this, "shadowOptions", options); //store options in expando
+			jthis
+				.attr("shadowId", shadowId)
+				.css("zIndex", zOriginal);
+			if (jthis.css("position") != "absolute") {
+				jthis.css({
+					position: "relative",
+					zoom: 1 //for IE layout
+				});
+			}
+
+			// Create first shadow layer
+			bgColor = jthis.css("backgroundColor");
+			if (bgColor == "rgba(0, 0, 0, 0)") bgColor = "transparent";  //Safari
+			if (bgColor != "transparent" || jthis.css("backgroundImage") != "none" 
+					|| this.nodeName == "SELECT" 
+					|| this.nodeName == "INPUT"
+					|| this.nodeName == "TEXTAREA") {		
+				shadows[0] = $("<div></div>")
+					.css("background", opt.color);								
+			}
+			else {
+				shadows[0] = jthis
+					.clone()
+					.removeAttr("id")
+					.removeAttr("name")
+					.removeAttr("shadowId")
+					.css("color", opt.color);
+			}
+			shadows[0]
+				.addClass("dropShadow")
+				.css({
+					height: jthis.outerHeight(),
+					left: blur,
+					opacity: opacity,
+					position: "absolute",
+					top: blur,
+					width: jthis.outerWidth(),
+					zIndex: zShadow
+				});
+				
+			// Create other shadow layers
+			var layers = (8 * blur) + 1;
+			for (i = 1; i < layers; i++) {
+				shadows[i] = shadows[0].clone();
+			}
+
+			// Position layers
+			var i = 1;			
+			var j = blur;
+			while (j > 0) {
+				shadows[i].css({left: j * 2, top: 0});           //top
+				shadows[i + 1].css({left: j * 4, top: j * 2});   //right
+				shadows[i + 2].css({left: j * 2, top: j * 4});   //bottom
+				shadows[i + 3].css({left: 0, top: j * 2});       //left
+				shadows[i + 4].css({left: j * 3, top: j});       //top-right
+				shadows[i + 5].css({left: j * 3, top: j * 3});   //bottom-right
+				shadows[i + 6].css({left: j, top: j * 3});       //bottom-left
+				shadows[i + 7].css({left: j, top: j});           //top-left
+				i += 8;
+				j--;
+			}
+
+			// Create container
+			var divShadow = $("<div></div>")
+				.attr("id", shadowId) 
+				.addClass("dropShadow")
+				.css({
+					left: jthis.position().left + opt.left - blur,
+					marginTop: jthis.css("marginTop"),
+					marginRight: jthis.css("marginRight"),
+					marginBottom: jthis.css("marginBottom"),
+					marginLeft: jthis.css("marginLeft"),
+					position: "absolute",
+					top: jthis.position().top + opt.top - blur,
+					zIndex: zShadow
+				});
+
+			// Add layers to container	
+			for (i = 0; i < layers; i++) {
+				divShadow.append(shadows[i]);
+			}
+			
+			// Add container to DOM
+			jthis.after(divShadow);
+
+			// Add shadow to return set
+			jShadows = jShadows.add(divShadow);
+
+			// Re-align shadow on window resize
+			$(window).resize(function()
+			{
+				try {
+					divShadow.css({
+						left: jthis.position().left + opt.left - blur,
+						top: jthis.position().top + opt.top - blur
+					});
+				}
+				catch(e){}
+			});
+			
+			// Increment z-index counter
+			dropShadowZindex += 2;
+
+		});  //end each
+		
+		return this.pushStack(jShadows);
+	};
+
+
+	$.fn.redrawShadow = function()
+	{
+		// Remove existing shadows
+		this.removeShadow();
+		
+		// Draw new shadows
+		return this.each(function()
+		{
+			var shadowOptions = $.data(this, "shadowOptions");
+			$(this).dropShadow(shadowOptions);
+		});
+	};
+
+
+	$.fn.removeShadow = function()
+	{
+		return this.each(function()
+		{
+			var shadowId = $(this).shadowId();
+			$("div#" + shadowId).remove();
+		});
+	};
+
+
+	$.fn.shadowId = function()
+	{
+		return $.data(this[0], "shadowId");
+	};
+
+
+	$(function()  
+	{
+		// Suppress printing of shadows
+		var noPrint = "<style type='text/css' media='print'>";
+		noPrint += ".dropShadow{visibility:hidden;}</style>";
+		$("head").append(noPrint);
+	});
+
+})(jQuery);
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-metadata.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-metadata.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-metadata.js	(revision 1130)
@@ -0,0 +1,13 @@
+/*
+ * Metadata - jQuery plugin for parsing metadata from elements
+ *
+ * Copyright (c) 2006 John Resig, Yehuda Katz, J๏ฟฝรถrn Zaefferer, Paul McLanahan
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ *
+ * Revision: $Id: jquery.metadata.js 3620 2007-10-10 20:55:38Z pmclanahan $
+ *
+ */
+(function($){$.extend({metadata:{defaults:{type:'class',name:'metadata',cre:/({.*})/,single:'metadata'},setType:function(type,name){this.defaults.type=type;this.defaults.name=name;},get:function(elem,opts){var settings=$.extend({},this.defaults,opts);if(!settings.single.length)settings.single='metadata';var data=$.data(elem,settings.single);if(data)return data;data="{}";if(settings.type=="class"){var m=settings.cre.exec(elem.className);if(m)data=m[1];}else if(settings.type=="elem"){if(!elem.getElementsByTagName)return;var e=elem.getElementsByTagName(settings.name);if(e.length)data=$.trim(e[0].innerHTML);}else if(elem.getAttribute!=undefined){var attr=elem.getAttribute(settings.name);if(attr)data=attr;}if(data.indexOf('{')<0)data="{"+data+"}";data=eval("("+data+")");$.data(elem,settings.single,data);return data;}}});$.fn.metadata=function(opts){return $.metadata.get(this[0],opts);};})(jQuery);
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-slimbox2-min.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-slimbox2-min.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-slimbox2-min.js	(revision 1130)
@@ -0,0 +1,15 @@
+/*
+	Slimbox v2.02 - The ultimate lightweight Lightbox clone for jQuery
+	(c) 2007-2009 Christophe Beyls <http://www.digitalia.be>
+	MIT-style license.
+*/
+(function(w){var E=w(window),u,g,F=-1,o,x,D,v,y,L,s,n=!window.XMLHttpRequest,e=window.opera&&(document.compatMode=="CSS1Compat")&&(w.browser.version>=9.3),m=document.documentElement,l={},t=new Image(),J=new Image(),H,a,h,q,I,d,G,c,A,K;w(function(){w("body").append(w([H=w('<div id="lbOverlay" />')[0],a=w('<div id="lbCenter" />')[0],G=w('<div id="lbBottomContainer" />')[0]]).css("display","none"));h=w('<div id="lbImage" />').appendTo(a).append(q=w('<div style="position: relative;" />').append([I=w('<a id="lbPrevLink" href="#" />').click(B)[0],d=w('<a id="lbNextLink" href="#" />').click(f)[0]])[0])[0];c=w('<div id="lbBottom" />').appendTo(G).append([w('<a id="lbCloseLink" href="#" />').add(H).click(C)[0],A=w('<div id="lbCaption" />')[0],K=w('<div id="lbNumber" />')[0],w('<div style="clear: both;" />')[0]])[0]});w.slimbox=function(O,N,M){u=w.extend({loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:400,resizeEasing:"swing",initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:"Image {x} of {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78]},M);if(typeof O=="string"){O=[[O,N]];N=0}y=E.scrollTop()+((e?m.clientHeight:E.height())/2);L=u.initialWidth;s=u.initialHeight;w(a).css({top:Math.max(0,y-(s/2)),width:L,height:s,marginLeft:-L/2}).show();v=n||(H.currentStyle&&(H.currentStyle.position!="fixed"));if(v){H.style.position="absolute"}w(H).css("opacity",u.overlayOpacity).fadeIn(u.overlayFadeDuration);z();k(1);g=O;u.loop=u.loop&&(g.length>1);return b(N)};w.fn.slimbox=function(M,P,O){P=P||function(Q){return[Q.href,Q.title]};O=O||function(){return true};var N=this;return N.unbind("click").click(function(){var S=this,U=0,T,Q=0,R;T=w.grep(N,function(W,V){return O.call(S,W,V)});for(R=T.length;Q<R;++Q){if(T[Q]==S){U=Q}T[Q]=P(T[Q],Q)}return w.slimbox(T,U,M)})};function z(){var N=E.scrollLeft(),M=e?m.clientWidth:E.width();w([a,G]).css("left",N+(M/2));if(v){w(H).css({left:N,top:E.scrollTop(),width:M,height:E.height()})}}function k(M){w("object").add(n?"select":"embed").each(function(O,P){if(M){w.data(P,"slimbox",P.style.visibility)}P.style.visibility=M?"hidden":w.data(P,"slimbox")});var N=M?"bind":"unbind";E[N]("scroll resize",z);w(document)[N]("keydown",p)}function p(O){var N=O.keyCode,M=w.inArray;return(M(N,u.closeKeys)>=0)?C():(M(N,u.nextKeys)>=0)?f():(M(N,u.previousKeys)>=0)?B():false}function B(){return b(x)}function f(){return b(D)}function b(M){if(M>=0){F=M;o=g[F][0];x=(F||(u.loop?g.length:0))-1;D=((F+1)%g.length)||(u.loop?0:-1);r();a.className="lbLoading";l=new Image();l.onload=j;l.src=o}return false}function j(){a.className="";w(h).css({backgroundImage:"url("+o+")",visibility:"hidden",display:""});w(q).width(l.width);w([q,I,d]).height(l.height);w(A).html(g[F][1]||"");w(K).html((((g.length>1)&&u.counterText)||"").replace(/{x}/,F+1).replace(/{y}/,g.length));if(x>=0){t.src=g[x][0]}if(D>=0){J.src=g[D][0]}L=h.offsetWidth;s=h.offsetHeight;var M=Math.max(0,y-(s/2));if(a.offsetHeight!=s){w(a).animate({height:s,top:M},u.resizeDuration,u.resizeEasing)}if(a.offsetWidth!=L){w(a).animate({width:L,marginLeft:-L/2},u.resizeDuration,u.resizeEasing)}w(a).queue(function(){w(G).css({width:L,top:M+s,marginLeft:-L/2,visibility:"hidden",display:""});w(h).css({display:"none",visibility:"",opacity:""}).fadeIn(u.imageFadeDuration,i)})}function i(){if(x>=0){w(I).show()}if(D>=0){w(d).show()}w(c).css("marginTop",-c.offsetHeight).animate({marginTop:0},u.captionAnimationDuration);G.style.visibility=""}function r(){l.onload=null;l.src=t.src=J.src=o;w([a,h,c]).stop(true);w([I,d,h,G]).hide()}function C(){if(F>=0){r();F=x=D=-1;w(a).hide();w(H).stop().fadeOut(u.overlayFadeDuration,k)}return false}})(jQuery);
+
+// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
+$(function($) {
+        $("a[rel^='lightbox']").slimbox({/* Put custom options here */}, function(el) {
+                return [el.href, el.title + '<br /><a href="' + el.href + '">Download this image</a>'];
+        }, function(el) {
+                return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
+        });
+});
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-elastic.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-elastic.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/jquery-elastic.js	(revision 1130)
@@ -0,0 +1 @@
+(function($){$.fn.extend({elastic:function(){var g=new Array("paddingTop","paddingRight","paddingBottom","paddingLeft","fontSize","lineHeight","fontFamily","width");return this.each(function(){if(this.type=="textarea"){var b=$(this);var c=parseInt(b.css("lineHeight"))*2||parseInt(b.css("fontSize"))*2;var d=parseInt(b.css("height"))||c;var e=0;var f=null;function update(){if(!f){f=$("<div />").css({"visibility":"hidden","position":"absolute","overflow-x":"hidden"}).appendTo("body");$.each(g,function(){f.css(this,b.css(this))})}var a=b.val().replace(/<|>/g," ").replace(/\n/g,"<br />");if(f.text()!=a){f.html(a);e=(f.height()+c>d)?f.height()+c:d;if(e!=b.height()){b.animate({"height":e},500)}}}b.css({overflow:"hidden",display:"block"}).bind("focus",function(){self.periodicalUpdater=window.setInterval(function(){update()},400)}).bind("blur",function(){clearInterval(self.periodicalUpdater)});update()}})}})})(jQuery);
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/jquery/plugins/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/plugins/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/plugins/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id: index.php 985 2009-05-27 04:46:39Z Ruebenwurzel $
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/include/jquery/version.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/version.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/version.txt	(revision 1130)
@@ -0,0 +1,2 @@
+jQuery 1.3.2
+jQuery UI 1.7.2
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/jquery/version.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/jquery-ui-min.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/jquery-ui-min.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/jquery-ui-min.js	(revision 1130)
@@ -0,0 +1,298 @@
+/*
+ * jQuery UI 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI
+ */
+jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/*
+ * jQuery UI Draggable 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Draggables
+ *
+ * Depends:
+ *	ui.core.js
+ */
+(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(b,c,d){d=d||this._uiHash();a.ui.plugin.call(this,b,[c,d]);if(b=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return a.widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(b){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,offset:this.positionAbs}}}));a.extend(a.ui.draggable,{version:"1.7.2",eventPrefix:"drag",defaults:{addClasses:true,appendTo:"parent",axis:false,cancel:":input,option",connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false}});a.ui.plugin.add("draggable","connectToSortable",{start:function(c,e){var d=a(this).data("draggable"),f=d.options,b=a.extend({},e,{item:d.element});d.sortables=[];a(f.connectToSortable).each(function(){var g=a.data(this,"sortable");if(g&&!g.options.disabled){d.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",c,b)}})},stop:function(c,e){var d=a(this).data("draggable"),b=a.extend({},e,{item:d.element});a.each(d.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;d.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(c);this.instance.options.helper=this.instance.options._helper;if(d.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",c,b)}})},drag:function(c,f){var e=a(this).data("draggable"),b=this;var d=function(i){var n=this.offset.click.top,m=this.offset.click.left;var g=this.positionAbs.top,k=this.positionAbs.left;var j=i.height,l=i.width;var p=i.top,h=i.left;return a.ui.isOver(g+n,k+m,p,h,j,l)};a.each(e.sortables,function(g){this.instance.positionAbs=e.positionAbs;this.instance.helperProportions=e.helperProportions;this.instance.offset.click=e.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(b).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return f.helper[0]};c.target=this.instance.currentItem[0];this.instance._mouseCapture(c,true);this.instance._mouseStart(c,true,true);this.instance.offset.click.top=e.offset.click.top;this.instance.offset.click.left=e.offset.click.left;this.instance.offset.parent.left-=e.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=e.offset.parent.top-this.instance.offset.parent.top;e._trigger("toSortable",c);e.dropped=this.instance.element;e.currentItem=e.element;this.instance.fromOutside=e}if(this.instance.currentItem){this.instance._mouseDrag(c)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",c,this.instance._uiHash(this.instance));this.instance._mouseStop(c,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}e._trigger("fromSortable",c);e.dropped=false}}})}});a.ui.plugin.add("draggable","cursor",{start:function(c,d){var b=a("body"),e=a(this).data("draggable").options;if(b.css("cursor")){e._cursor=b.css("cursor")}b.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._cursor){a("body").css("cursor",d._cursor)}}});a.ui.plugin.add("draggable","iframeFix",{start:function(b,c){var d=a(this).data("draggable").options;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop+f.scrollSpeed}else{if(d.pageY-c.overflowOffset.top<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop-f.scrollSpeed}}}if(!f.axis||f.axis!="y"){if((c.overflowOffset.left+c.scrollParent[0].offsetWidth)-d.pageX<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft+f.scrollSpeed}else{if(d.pageX-c.overflowOffset.left<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft-f.scrollSpeed}}}}else{if(!f.axis||f.axis!="x"){if(d.pageY-a(document).scrollTop()<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-f.scrollSpeed)}else{if(a(window).height()-(d.pageY-a(document).scrollTop())<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+f.scrollSpeed)}}}if(!f.axis||f.axis!="y"){if(d.pageX-a(document).scrollLeft()<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-f.scrollSpeed)}else{if(a(window).width()-(d.pageX-a(document).scrollLeft())<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+f.scrollSpeed)}}}}if(b!==false&&a.ui.ddmanager&&!f.dropBehaviour){a.ui.ddmanager.prepareOffsets(c,d)}}});a.ui.plugin.add("draggable","snap",{start:function(c,d){var b=a(this).data("draggable"),e=b.options;b.snapElements=[];a(e.snap.constructor!=String?(e.snap.items||":data(draggable)"):e.snap).each(function(){var g=a(this);var f=g.offset();if(this!=b.element[0]){b.snapElements.push({item:this,width:g.outerWidth(),height:g.outerHeight(),top:f.top,left:f.left})}})},drag:function(u,p){var g=a(this).data("draggable"),q=g.options;var y=q.snapTolerance;var x=p.offset.left,w=x+g.helperProportions.width,f=p.offset.top,e=f+g.helperProportions.height;for(var v=g.snapElements.length-1;v>=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y<x&&x<n+y&&m-y<f&&f<A+y)||(s-y<x&&x<n+y&&m-y<e&&e<A+y)||(s-y<w&&w<n+y&&m-y<f&&f<A+y)||(s-y<w&&w<n+y&&m-y<e&&e<A+y))){if(g.snapElements[v].snapping){(g.options.snap.release&&g.options.snap.release.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=false;continue}if(q.snapMode!="inner"){var c=Math.abs(m-e)<=y;var z=Math.abs(A-f)<=y;var j=Math.abs(s-w)<=y;var k=Math.abs(n-x)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m-g.helperProportions.height,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s-g.helperProportions.width}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n}).left-g.margins.left}}var h=(c||z||j||k);if(q.snapMode!="outer"){var c=Math.abs(m-f)<=y;var z=Math.abs(A-e)<=y;var j=Math.abs(s-x)<=y;var k=Math.abs(n-w)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A-g.helperProportions.height,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n-g.helperProportions.width}).left-g.margins.left}}if(!g.snapElements[v].snapping&&(c||z||j||k||h)){(g.options.snap.snap&&g.options.snap.snap.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=(c||z||j||k||h)}}});a.ui.plugin.add("draggable","stack",{start:function(b,c){var e=a(this).data("draggable").options;var d=a.makeArray(a(e.stack.group)).sort(function(g,f){return(parseInt(a(g).css("zIndex"),10)||e.stack.min)-(parseInt(a(f).css("zIndex"),10)||e.stack.min)});a(d).each(function(f){this.style.zIndex=e.stack.min+f});this[0].style.zIndex=e.stack.min+d.length}});a.ui.plugin.add("draggable","zIndex",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("zIndex")){e._zIndex=b.css("zIndex")}b.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._zIndex){a(c.helper).css("zIndex",d._zIndex)}}})})(jQuery);;/*
+ * jQuery UI Droppable 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Droppables
+ *
+ * Depends:
+ *	ui.core.js
+ *	ui.draggable.js
+ */
+(function(a){a.widget("ui.droppable",{_init:function(){var c=this.options,b=c.accept;this.isover=0;this.isout=1;this.options.accept=this.options.accept&&a.isFunction(this.options.accept)?this.options.accept:function(e){return e.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};a.ui.ddmanager.droppables[this.options.scope]=a.ui.ddmanager.droppables[this.options.scope]||[];a.ui.ddmanager.droppables[this.options.scope].push(this);(this.options.addClasses&&this.element.addClass("ui-droppable"))},destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];for(var c=0;c<b.length;c++){if(b[c]==this){b.splice(c,1)}}this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable")},_setData:function(b,c){if(b=="accept"){this.options.accept=c&&a.isFunction(c)?c:function(e){return e.is(c)}}else{a.widget.prototype._setData.apply(this,arguments)}},_activate:function(c){var b=a.ui.ddmanager.current;if(this.options.activeClass){this.element.addClass(this.options.activeClass)}(b&&this._trigger("activate",c,this.ui(b)))},_deactivate:function(c){var b=a.ui.ddmanager.current;if(this.options.activeClass){this.element.removeClass(this.options.activeClass)}(b&&this._trigger("deactivate",c,this.ui(b)))},_over:function(c){var b=a.ui.ddmanager.current;if(!b||(b.currentItem||b.element)[0]==this.element[0]){return}if(this.options.accept.call(this.element[0],(b.currentItem||b.element))){if(this.options.hoverClass){this.element.addClass(this.options.hoverClass)}this._trigger("over",c,this.ui(b))}},_out:function(c){var b=a.ui.ddmanager.current;if(!b||(b.currentItem||b.element)[0]==this.element[0]){return}if(this.options.accept.call(this.element[0],(b.currentItem||b.element))){if(this.options.hoverClass){this.element.removeClass(this.options.hoverClass)}this._trigger("out",c,this.ui(b))}},_drop:function(c,d){var b=d||a.ui.ddmanager.current;if(!b||(b.currentItem||b.element)[0]==this.element[0]){return false}var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var f=a.data(this,"droppable");if(f.options.greedy&&a.ui.intersect(b,a.extend(f,{offset:f.element.offset()}),f.options.tolerance)){e=true;return false}});if(e){return false}if(this.options.accept.call(this.element[0],(b.currentItem||b.element))){if(this.options.activeClass){this.element.removeClass(this.options.activeClass)}if(this.options.hoverClass){this.element.removeClass(this.options.hoverClass)}this._trigger("drop",c,this.ui(b));return this.element}return false},ui:function(b){return{draggable:(b.currentItem||b.element),helper:b.helper,position:b.position,absolutePosition:b.positionAbs,offset:b.positionAbs}}});a.extend(a.ui.droppable,{version:"1.7.2",eventPrefix:"drop",defaults:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"}});a.ui.intersect=function(q,j,o){if(!j.offset){return false}var e=(q.positionAbs||q.position.absolute).left,d=e+q.helperProportions.width,n=(q.positionAbs||q.position.absolute).top,m=n+q.helperProportions.height;var g=j.offset.left,c=g+j.proportions.width,p=j.offset.top,k=p+j.proportions.height;switch(o){case"fit":return(g<e&&d<c&&p<n&&m<k);break;case"intersect":return(g<e+(q.helperProportions.width/2)&&d-(q.helperProportions.width/2)<c&&p<n+(q.helperProportions.height/2)&&m-(q.helperProportions.height/2)<k);break;case"pointer":var h=((q.positionAbs||q.position.absolute).left+(q.clickOffset||q.offset.click).left),i=((q.positionAbs||q.position.absolute).top+(q.clickOffset||q.offset.click).top),f=a.ui.isOver(i,h,p,g,j.proportions.height,j.proportions.width);return f;break;case"touch":return((n>=p&&n<=k)||(m>=p&&m<=k)||(n<p&&m>k))&&((e>=g&&e<=c)||(d>=g&&d<=c)||(e<g&&d>c));break;default:return false;break}};a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,g){var b=a.ui.ddmanager.droppables[e.options.scope];var f=g?g.type:null;var h=(e.currentItem||e.element).find(":data(droppable)").andSelf();droppablesLoop:for(var d=0;d<b.length;d++){if(b[d].options.disabled||(e&&!b[d].options.accept.call(b[d].element[0],(e.currentItem||e.element)))){continue}for(var c=0;c<h.length;c++){if(h[c]==b[d].element[0]){b[d].proportions.height=0;continue droppablesLoop}}b[d].visible=b[d].element.css("display")!="none";if(!b[d].visible){continue}b[d].offset=b[d].element.offset();b[d].proportions={width:b[d].element[0].offsetWidth,height:b[d].element[0].offsetHeight};if(f=="mousedown"){b[d]._activate.call(b[d],g)}}},drop:function(b,c){var d=false;a.each(a.ui.ddmanager.droppables[b.options.scope],function(){if(!this.options){return}if(!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance)){d=this._drop.call(this,c)}if(!this.options.disabled&&this.visible&&this.options.accept.call(this.element[0],(b.currentItem||b.element))){this.isout=1;this.isover=0;this._deactivate.call(this,c)}});return d},drag:function(b,c){if(b.options.refreshPositions){a.ui.ddmanager.prepareOffsets(b,c)}a.each(a.ui.ddmanager.droppables[b.options.scope],function(){if(this.options.disabled||this.greedyChild||!this.visible){return}var e=a.ui.intersect(b,this,this.options.tolerance);var g=!e&&this.isover==1?"isout":(e&&this.isover==0?"isover":null);if(!g){return}var f;if(this.options.greedy){var d=this.element.parents(":data(droppable):eq(0)");if(d.length){f=a.data(d[0],"droppable");f.greedyChild=(g=="isover"?1:0)}}if(f&&g=="isover"){f.isover=0;f.isout=1;f._out.call(f,c)}this[g]=1;this[g=="isout"?"isover":"isout"]=0;this[g=="isover"?"_over":"_out"].call(this,c);if(f&&g=="isout"){f.isout=0;f.isover=1;f._over.call(f,c)}})}}})(jQuery);;/*
+ * jQuery UI Resizable 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ *	ui.core.js
+ */
+(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f<k.length;f++){var h=c.trim(k[f]),d="ui-resizable-"+h;var g=c('<div class="ui-resizable-handle '+d+'"></div>');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidth<k.width),l=a(k.height)&&h.maxHeight&&(h.maxHeight<k.height),g=a(k.width)&&h.minWidth&&(h.minWidth>k.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e<this._proportionallyResizeElements.length;e++){var g=this._proportionallyResizeElements[e];if(!this.borderDif){var d=[g.css("borderTopWidth"),g.css("borderRightWidth"),g.css("borderBottomWidth"),g.css("borderLeftWidth")],h=[g.css("paddingTop"),g.css("paddingRight"),g.css("paddingBottom"),g.css("paddingLeft")];this.borderDif=c.map(d,function(k,m){var l=parseInt(k,10)||0,n=parseInt(h[m],10)||0;return l+n})}if(c.browser.msie&&!(!(c(f).is(":hidden")||c(f).parents(":hidden").length))){continue}g.css({height:(f.height()-this.borderDif[0]-this.borderDif[2])||0,width:(f.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var e=this.element,h=this.options;this.elementOffset=e.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);;/*
+ * jQuery UI Selectable 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Selectables
+ *
+ * Depends:
+ *	ui.core.js
+ */
+(function(a){a.widget("ui.selectable",a.extend({},a.ui.mouse,{_init:function(){var b=this;this.element.addClass("ui-selectable");this.dragged=false;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]);c.each(function(){var d=a(this);var e=d.offset();a.data(this,"selectable-item",{element:this,$element:d,left:e.left,top:e.top,right:e.left+d.outerWidth(),bottom:e.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=c.addClass("ui-selectee");this._mouseInit();this.helper=a(document.createElement("div")).css({border:"1px dotted black"}).addClass("ui-selectable-helper")},destroy:function(){this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy()},_mouseStart:function(d){var b=this;this.opos=[d.pageX,d.pageY];if(this.options.disabled){return}var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",d);a(c.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:d.clientX,top:d.clientY,width:0,height:0});if(c.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!d.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=true;b._trigger("unselecting",d,{unselecting:e.element})}});a(d.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){e.$element.removeClass("ui-unselecting").addClass("ui-selecting");e.unselecting=false;e.selecting=true;e.selected=true;b._trigger("selecting",d,{selecting:e.element});return false}})},_mouseDrag:function(i){var c=this;this.dragged=true;if(this.options.disabled){return}var e=this.options;var d=this.opos[0],h=this.opos[1],b=i.pageX,g=i.pageY;if(d>b){var f=b;b=d;d=f}if(h>g){var f=g;g=h;h=f}this.helper.css({left:d,top:h,width:b-d,height:g-h});this.selectees.each(function(){var j=a.data(this,"selectable-item");if(!j||j.element==c.element[0]){return}var k=false;if(e.tolerance=="touch"){k=(!(j.left>b||j.right<d||j.top>g||j.bottom<h))}else{if(e.tolerance=="fit"){k=(j.left>d&&j.right<b&&j.top>h&&j.bottom<g)}}if(k){if(j.selected){j.$element.removeClass("ui-selected");j.selected=false}if(j.unselecting){j.$element.removeClass("ui-unselecting");j.unselecting=false}if(!j.selecting){j.$element.addClass("ui-selecting");j.selecting=true;c._trigger("selecting",i,{selecting:j.element})}}else{if(j.selecting){if(i.metaKey&&j.startselected){j.$element.removeClass("ui-selecting");j.selecting=false;j.$element.addClass("ui-selected");j.selected=true}else{j.$element.removeClass("ui-selecting");j.selecting=false;if(j.startselected){j.$element.addClass("ui-unselecting");j.unselecting=true}c._trigger("unselecting",i,{unselecting:j.element})}}if(j.selected){if(!i.metaKey&&!j.startselected){j.$element.removeClass("ui-selected");j.selected=false;j.$element.addClass("ui-unselecting");j.unselecting=true;c._trigger("unselecting",i,{unselecting:j.element})}}}});return false},_mouseStop:function(d){var b=this;this.dragged=false;var c=this.options;a(".ui-unselecting",this.element[0]).each(function(){var e=a.data(this,"selectable-item");e.$element.removeClass("ui-unselecting");e.unselecting=false;e.startselected=false;b._trigger("unselected",d,{unselected:e.element})});a(".ui-selecting",this.element[0]).each(function(){var e=a.data(this,"selectable-item");e.$element.removeClass("ui-selecting").addClass("ui-selected");e.selecting=false;e.selected=true;e.startselected=true;b._trigger("selected",d,{selected:e.element})});this._trigger("stop",d);this.helper.remove();return false}}));a.extend(a.ui.selectable,{version:"1.7.2",defaults:{appendTo:"body",autoRefresh:true,cancel:":input,option",delay:0,distance:0,filter:"*",tolerance:"touch"}})})(jQuery);;/*
+ * jQuery UI Sortable 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Sortables
+ *
+ * Depends:
+ *	ui.core.js
+ */
+(function(a){a.widget("ui.sortable",a.extend({},a.ui.mouse,{_init:function(){var b=this.options;this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?(/left|right/).test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--){this.items[b].item.removeData("sortable-item")}},_mouseCapture:function(e,f){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(e);var d=null,c=this,b=a(e.target).parents().each(function(){if(a.data(this,"sortable-item")==c){d=a(this);return false}});if(a.data(e.target,"sortable-item")==c){d=a(e.target)}if(!d){return false}if(this.options.handle&&!f){var g=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==e.target){g=true}});if(!g){return false}}this.currentItem=d;this._removeCurrentsFromItems();return true},_mouseStart:function(e,f,b){var g=this.options,c=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(e);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(e);this.originalPageX=e.pageX;this.originalPageY=e.pageY;if(g.cursorAt){this._adjustOffsetFromHelper(g.cursorAt)}this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(g.containment){this._setContainment()}if(g.cursor){if(a("body").css("cursor")){this._storedCursor=a("body").css("cursor")}a("body").css("cursor",g.cursor)}if(g.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",g.opacity)}if(g.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",g.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",e,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!b){for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._trigger("activate",e,c._uiHash(this))}}if(a.ui.ddmanager){a.ui.ddmanager.current=this}if(a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,e)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(e);return true},_mouseDrag:function(f){this.position=this._generatePosition(f);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var g=this.options,b=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-f.pageY<g.scrollSensitivity){this.scrollParent[0].scrollTop=b=this.scrollParent[0].scrollTop+g.scrollSpeed}else{if(f.pageY-this.overflowOffset.top<g.scrollSensitivity){this.scrollParent[0].scrollTop=b=this.scrollParent[0].scrollTop-g.scrollSpeed}}if((this.overflowOffset.left+this.scrollParent[0].offsetWidth)-f.pageX<g.scrollSensitivity){this.scrollParent[0].scrollLeft=b=this.scrollParent[0].scrollLeft+g.scrollSpeed}else{if(f.pageX-this.overflowOffset.left<g.scrollSensitivity){this.scrollParent[0].scrollLeft=b=this.scrollParent[0].scrollLeft-g.scrollSpeed}}}else{if(f.pageY-a(document).scrollTop()<g.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-g.scrollSpeed)}else{if(a(window).height()-(f.pageY-a(document).scrollTop())<g.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+g.scrollSpeed)}}if(f.pageX-a(document).scrollLeft()<g.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-g.scrollSpeed)}else{if(a(window).width()-(f.pageX-a(document).scrollLeft())<g.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+g.scrollSpeed)}}}if(b!==false&&a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,f)}}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}for(var d=this.items.length-1;d>=0;d--){var e=this.items[d],c=e.item[0],h=this._intersectsWithPointer(e);if(!h){continue}if(c!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=c&&!a.ui.contains(this.placeholder[0],c)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],c):true)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(e)){this._rearrange(f,e)}else{break}this._trigger("change",f,this._uiHash());break}}this._contactContainers(f);if(a.ui.ddmanager){a.ui.ddmanager.drag(this,f)}this._trigger("sort",f,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,d){if(!c){return}if(a.ui.ddmanager&&!this.options.dropBehaviour){a.ui.ddmanager.drop(this,c)}if(this.options.revert){var b=this;var e=b.placeholder.offset();b.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-b.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-b.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){b._clear(c)})}else{this._clear(c,d)}return false},cancel:function(){var b=this;if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,b._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,b._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){a(this.domPosition.prev).after(this.currentItem)}else{a(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};a(b).each(function(){var e=(a(d.item||this).attr(d.attribute||"id")||"").match(d.expression||(/(.+)[-=_](.+)/));if(e){c.push((d.key||e[1]+"[]")+"="+(d.key&&d.expression?e[1]:e[2]))}});return c.join("&")},toArray:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};b.each(function(){c.push(a(d.item||this).attr(d.attribute||"id")||"")});return c},_intersectsWith:function(m){var e=this.positionAbs.left,d=e+this.helperProportions.width,k=this.positionAbs.top,j=k+this.helperProportions.height;var f=m.left,c=f+m.width,n=m.top,i=n+m.height;var o=this.offset.click.top,h=this.offset.click.left;var g=(k+o)>n&&(k+o)<i&&(e+h)>f&&(e+h)<c;if(this.options.tolerance=="pointer"||this.options.forcePointerForContainers||(this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>m[this.floating?"width":"height"])){return g}else{return(f<e+(this.helperProportions.width/2)&&d-(this.helperProportions.width/2)<c&&n<k+(this.helperProportions.height/2)&&j-(this.helperProportions.height/2)<i)}},_intersectsWithPointer:function(d){var e=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,d.top,d.height),c=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,d.left,d.width),g=e&&c,b=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();if(!g){return false}return this.floating?(((f&&f=="right")||b=="down")?2:1):(b&&(b=="down"?2:1))},_intersectsWithSides:function(e){var c=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+(e.height/2),e.height),d=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+(e.width/2),e.width),b=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();if(this.floating&&f){return((f=="right"&&d)||(f=="left"&&!d))}else{return b&&((b=="down"&&c)||(b=="up"&&!c))}},_getDragVerticalDirection:function(){var b=this.positionAbs.top-this.lastPositionAbs.top;return b!=0&&(b>0?"down":"up")},_getDragHorizontalDirection:function(){var b=this.positionAbs.left-this.lastPositionAbs.left;return b!=0&&(b>0?"right":"left")},refresh:function(b){this._refreshItems(b);this.refreshPositions()},_connectWith:function(){var b=this.options;return b.connectWith.constructor==String?[b.connectWith]:b.connectWith},_getItemsAsjQuery:function(b){var l=this;var g=[];var e=[];var h=this._connectWith();if(h&&b){for(var d=h.length-1;d>=0;d--){var k=a(h[d]);for(var c=k.length-1;c>=0;c--){var f=a.data(k[c],"sortable");if(f&&f!=this&&!f.options.disabled){e.push([a.isFunction(f.options.items)?f.options.items.call(f.element):a(f.options.items,f.element).not(".ui-sortable-helper"),f])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var d=e.length-1;d>=0;d--){e[d][0].each(function(){g.push(this)})}return a(g)},_removeCurrentsFromItems:function(){var d=this.currentItem.find(":data(sortable-item)");for(var c=0;c<this.items.length;c++){for(var b=0;b<d.length;b++){if(d[b]==this.items[c].item[0]){this.items.splice(c,1)}}}},_refreshItems:function(b){this.items=[];this.containers=[this];var h=this.items;var p=this;var f=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]];var l=this._connectWith();if(l){for(var e=l.length-1;e>=0;e--){var m=a(l[e]);for(var d=m.length-1;d>=0;d--){var g=a.data(m[d],"sortable");if(g&&g!=this&&!g.options.disabled){f.push([a.isFunction(g.options.items)?g.options.items.call(g.element[0],b,{item:this.currentItem}):a(g.options.items,g.element),g]);this.containers.push(g)}}}}for(var e=f.length-1;e>=0;e--){var k=f[e][1];var c=f[e][0];for(var d=0,n=c.length;d<n;d++){var o=a(c[d]);o.data("sortable-item",k);h.push({item:o,instance:k,width:0,height:0,left:0,top:0})}}},refreshPositions:function(b){if(this.offsetParent&&this.helper){this.offset.parent=this._getParentOffset()}for(var d=this.items.length-1;d>=0;d--){var e=this.items[d];if(e.instance!=this.currentContainer&&this.currentContainer&&e.item[0]!=this.currentItem[0]){continue}var c=this.options.toleranceElement?a(this.options.toleranceElement,e.item):e.item;if(!b){e.width=c.outerWidth();e.height=c.outerHeight()}var f=c.offset();e.left=f.left;e.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var d=this.containers.length-1;d>=0;d--){var f=this.containers[d].element.offset();this.containers[d].containerCache.left=f.left;this.containers[d].containerCache.top=f.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}}},_createPlaceholder:function(d){var b=d||this,e=b.options;if(!e.placeholder||e.placeholder.constructor==String){var c=e.placeholder;e.placeholder={element:function(){var f=a(document.createElement(b.currentItem[0].nodeName)).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!c){f.style.visibility="hidden"}return f},update:function(f,g){if(c&&!e.forcePlaceholderSize){return}if(!g.height()){g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10))}if(!g.width()){g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=a(e.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);e.placeholder.update(b,b.placeholder)},_contactContainers:function(d){for(var c=this.containers.length-1;c>=0;c--){if(this._intersectsWith(this.containers[c].containerCache)){if(!this.containers[c].containerCache.over){if(this.currentContainer!=this.containers[c]){var h=10000;var g=null;var e=this.positionAbs[this.containers[c].floating?"left":"top"];for(var b=this.items.length-1;b>=0;b--){if(!a.ui.contains(this.containers[c].element[0],this.items[b].item[0])){continue}var f=this.items[b][this.containers[c].floating?"left":"top"];if(Math.abs(f-e)<h){h=Math.abs(f-e);g=this.items[b]}}if(!g&&!this.options.dropOnEmpty){continue}this.currentContainer=this.containers[c];g?this._rearrange(d,g,null,true):this._rearrange(d,null,this.containers[c].element,true);this._trigger("change",d,this._uiHash());this.containers[c]._trigger("change",d,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder)}this.containers[c]._trigger("over",d,this._uiHash(this));this.containers[c].containerCache.over=1}}else{if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",d,this._uiHash(this));this.containers[c].containerCache.over=0}}}},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c,this.currentItem])):(d.helper=="clone"?this.currentItem.clone():this.currentItem);if(!b.parents("body").length){a(d.appendTo!="parent"?d.appendTo:this.currentItem[0].parentNode)[0].appendChild(b[0])}if(b[0]==this.currentItem[0]){this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}}if(b[0].style.width==""||d.forceHelperSize){b.width(this.currentItem.width())}if(b[0].style.height==""||d.forceHelperSize){b.height(this.currentItem.height())}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.currentItem.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.currentItem.css("marginLeft"),10)||0),top:(parseInt(this.currentItem.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)){var c=a(e.containment)[0];var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_rearrange:function(g,f,c,e){c?c[0].appendChild(this.placeholder[0]):f.item[0].parentNode.insertBefore(this.placeholder[0],(this.direction=="down"?f.item[0]:f.item[0].nextSibling));this.counter=this.counter?++this.counter:1;var d=this,b=this.counter;window.setTimeout(function(){if(b==d.counter){d.refreshPositions(!e)}},0)},_clear:function(d,e){this.reverting=false;var f=[],b=this;if(!this._noFinalSort&&this.currentItem[0].parentNode){this.placeholder.before(this.currentItem)}this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var c in this._storedCSS){if(this._storedCSS[c]=="auto"||this._storedCSS[c]=="static"){this._storedCSS[c]=""}}this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}if(this.fromOutside&&!e){f.push(function(g){this._trigger("receive",g,this._uiHash(this.fromOutside))})}if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!e){f.push(function(g){this._trigger("update",g,this._uiHash())})}if(!a.ui.contains(this.element[0],this.currentItem[0])){if(!e){f.push(function(g){this._trigger("remove",g,this._uiHash())})}for(var c=this.containers.length-1;c>=0;c--){if(a.ui.contains(this.containers[c].element[0],this.currentItem[0])&&!e){f.push((function(g){return function(h){g._trigger("receive",h,this._uiHash(this))}}).call(this,this.containers[c]));f.push((function(g){return function(h){g._trigger("update",h,this._uiHash(this))}}).call(this,this.containers[c]))}}}for(var c=this.containers.length-1;c>=0;c--){if(!e){f.push((function(g){return function(h){g._trigger("deactivate",h,this._uiHash(this))}}).call(this,this.containers[c]))}if(this.containers[c].containerCache.over){f.push((function(g){return function(h){g._trigger("out",h,this._uiHash(this))}}).call(this,this.containers[c]));this.containers[c].containerCache.over=0}}if(this._storedCursor){a("body").css("cursor",this._storedCursor)}if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity)}if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex)}this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(var c=0;c<f.length;c++){f[c].call(this,d)}this._trigger("stop",d,this._uiHash())}return false}if(!e){this._trigger("beforeStop",d,this._uiHash())}this.placeholder[0].parentNode.removeChild(this.placeholder[0]);if(this.helper[0]!=this.currentItem[0]){this.helper.remove()}this.helper=null;if(!e){for(var c=0;c<f.length;c++){f[c].call(this,d)}this._trigger("stop",d,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){if(a.widget.prototype._trigger.apply(this,arguments)===false){this.cancel()}},_uiHash:function(c){var b=c||this;return{helper:b.helper,placeholder:b.placeholder||a([]),position:b.position,absolutePosition:b.positionAbs,offset:b.positionAbs,item:b.currentItem,sender:c?c.element:null}}}));a.extend(a.ui.sortable,{getter:"serialize toArray",version:"1.7.2",eventPrefix:"sort",defaults:{appendTo:"parent",axis:false,cancel:":input,option",connectWith:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1000}})})(jQuery);;/*
+ * jQuery UI Accordion 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Accordion
+ *
+ * Depends:
+ *	ui.core.js
+ */
+(function(a){a.widget("ui.accordion",{_init:function(){var d=this.options,b=this;this.running=0;if(d.collapsible==a.ui.accordion.defaults.collapsible&&d.alwaysOpen!=a.ui.accordion.defaults.alwaysOpen){d.collapsible=!d.alwaysOpen}if(d.navigation){var c=this.element.find("a").filter(d.navigationFilter);if(c.length){if(c.filter(d.header).length){this.active=c}else{this.active=c.parent().parent().prev();c.addClass("ui-accordion-content-active")}}}this.element.addClass("ui-accordion ui-widget ui-helper-reset");if(this.element[0].nodeName=="UL"){this.element.children("li").addClass("ui-accordion-li-fix")}this.headers=this.element.find(d.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){a(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");this.active=this._findActive(this.active||d.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");a("<span/>").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);if(a.browser.msie){this.element.find("a").css("zoom","1")}this.resize();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown",function(e){return b._keydown(e)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex","0")}else{this.active.attr("aria-expanded","true").attr("tabIndex","0")}if(!a.browser.safari){this.headers.find("a").attr("tabIndex","-1")}if(d.event){this.headers.bind((d.event)+".accordion",function(e){return b._clickHandler.call(b,e,this)})}},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");this.headers.find("a").removeAttr("tabindex");this.headers.children(".ui-icon").remove();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(c.autoHeight||c.fillHeight){b.css("height","")}},_setData:function(b,c){if(b=="alwaysOpen"){b="collapsible";c=!c}a.widget.prototype._setData.apply(this,arguments)},_keydown:function(e){var g=this.options,f=a.ui.keyCode;if(g.disabled||e.altKey||e.ctrlKey){return}var d=this.headers.length;var b=this.headers.index(e.target);var c=false;switch(e.keyCode){case f.RIGHT:case f.DOWN:c=this.headers[(b+1)%d];break;case f.LEFT:case f.UP:c=this.headers[(b-1+d)%d];break;case f.SPACE:case f.ENTER:return this._clickHandler({target:e.target},e.target)}if(c){a(e.target).attr("tabIndex","-1");a(c).attr("tabIndex","0");c.focus();return false}return true},resize:function(){var e=this.options,d;if(e.fillSpace){if(a.browser.msie){var b=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}d=this.element.parent().height();if(a.browser.msie){this.element.parent().css("overflow",b)}this.headers.each(function(){d-=a(this).outerHeight()});var c=0;this.headers.next().each(function(){c=Math.max(c,a(this).innerHeight()-a(this).height())}).height(Math.max(0,d-c)).css("overflow","auto")}else{if(e.autoHeight){d=0;this.headers.next().each(function(){d=Math.max(d,a(this).outerHeight())}).height(d)}}},activate:function(b){var c=this._findActive(b)[0];this._clickHandler({target:c},c)},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===false?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,f){var d=this.options;if(d.disabled){return false}if(!b.target&&d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var h=this.active.next(),e={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:h},c=(this.active=a([]));this._toggle(c,h,e);return false}var g=a(b.currentTarget||f);var i=g[0]==this.active[0];if(this.running||(!d.collapsible&&i)){return false}this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");if(!i){g.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);g.next().addClass("ui-accordion-content-active")}var c=g.next(),h=this.active.next(),e={options:d,newHeader:i&&d.collapsible?a([]):g,oldHeader:this.active,newContent:i&&d.collapsible?a([]):c.find("> *"),oldContent:h.find("> *")},j=this.headers.index(this.active[0])>this.headers.index(g[0]);this.active=i?a([]):g;this._toggle(c,h,e,i,j);return false},_toggle:function(b,i,g,j,k){var d=this.options,m=this;this.toShow=b;this.toHide=i;this.data=g;var c=function(){if(!m){return}return m._completed.apply(m,arguments)};this._trigger("changestart",null,this.data);this.running=i.size()===0?b.size():i.size();if(d.animated){var f={};if(d.collapsible&&j){f={toShow:a([]),toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}else{f={toShow:b,toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}if(!d.proxied){d.proxied=d.animated}if(!d.proxiedDuration){d.proxiedDuration=d.duration}d.animated=a.isFunction(d.proxied)?d.proxied(f):d.proxied;d.duration=a.isFunction(d.proxiedDuration)?d.proxiedDuration(f):d.proxiedDuration;var l=a.ui.accordion.animations,e=d.duration,h=d.animated;if(!l[h]){l[h]=function(n){this.slide(n,{easing:h,duration:e||700})}}l[h](f)}else{if(d.collapsible&&j){b.toggle()}else{i.hide();b.show()}c(true)}i.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();b.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(b){var c=this.options;this.running=b?0:--this.running;if(this.running){return}if(c.clearStyle){this.toShow.add(this.toHide).css({height:"",overflow:""})}this._trigger("change",null,this.data)}});a.extend(a.ui.accordion,{version:"1.7.2",defaults:{active:null,alwaysOpen:true,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},animations:{slide:function(j,h){j=a.extend({easing:"swing",duration:300},j,h);if(!j.toHide.size()){j.toShow.animate({height:"show"},j);return}if(!j.toShow.size()){j.toHide.animate({height:"hide"},j);return}var c=j.toShow.css("overflow"),g,d={},f={},e=["height","paddingTop","paddingBottom"],b;var i=j.toShow;b=i[0].style.width;i.width(parseInt(i.parent().width(),10)-parseInt(i.css("paddingLeft"),10)-parseInt(i.css("paddingRight"),10)-(parseInt(i.css("borderLeftWidth"),10)||0)-(parseInt(i.css("borderRightWidth"),10)||0));a.each(e,function(k,m){f[m]="hide";var l=(""+a.css(j.toShow[0],m)).match(/^([\d+-.]+)(.*)$/);d[m]={value:l[1],unit:l[2]||"px"}});j.toShow.css({height:0,overflow:"hidden"}).show();j.toHide.filter(":hidden").each(j.complete).end().filter(":visible").animate(f,{step:function(k,l){if(l.prop=="height"){g=(l.now-l.start)/(l.end-l.start)}j.toShow[0].style[l.prop]=(g*d[l.prop].value)+d[l.prop].unit},duration:j.duration,easing:j.easing,complete:function(){if(!j.autoHeight){j.toShow.css("height","")}j.toShow.css("width",b);j.toShow.css({overflow:c});j.complete()}})},bounceslide:function(b){this.slide(b,{easing:b.down?"easeOutBounce":"swing",duration:b.down?1000:200})},easeslide:function(b){this.slide(b,{easing:"easeinout",duration:700})}}})})(jQuery);;/*
+ * jQuery UI Dialog 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Dialog
+ *
+ * Depends:
+ *	ui.core.js
+ *	ui.draggable.js
+ *	ui.resizable.js
+ */
+(function(c){var b={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"},a="ui-dialog ui-widget ui-widget-content ui-corner-all ";c.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");var l=this,m=this.options,j=m.title||this.originalTitle||"&nbsp;",e=c.ui.dialog.getTitleId(this.element),k=(this.uiDialog=c("<div/>")).appendTo(document.body).hide().addClass(a+m.dialogClass).css({position:"absolute",overflow:"hidden",zIndex:m.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(n){(m.closeOnEscape&&n.keyCode&&n.keyCode==c.ui.keyCode.ESCAPE&&l.close(n))}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(n){l.moveToTop(false,n)}),g=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(k),f=(this.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(k),i=c('<a href="#"/>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){i.addClass("ui-state-hover")},function(){i.removeClass("ui-state-hover")}).focus(function(){i.addClass("ui-state-focus")}).blur(function(){i.removeClass("ui-state-focus")}).mousedown(function(n){n.stopPropagation()}).click(function(n){l.close(n);return false}).appendTo(f),h=(this.uiDialogTitlebarCloseText=c("<span/>")).addClass("ui-icon ui-icon-closethick").text(m.closeText).appendTo(i),d=c("<span/>").addClass("ui-dialog-title").attr("id",e).html(j).prependTo(f);f.find("*").add(f).disableSelection();(m.draggable&&c.fn.draggable&&this._makeDraggable());(m.resizable&&c.fn.resizable&&this._makeResizable());this._createButtons(m.buttons);this._isOpen=false;(m.bgiframe&&c.fn.bgiframe&&k.bgiframe());(m.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(f){var d=this;if(false===d._trigger("beforeclose",f)){return}(d.overlay&&d.overlay.destroy());d.uiDialog.unbind("keypress.ui-dialog");(d.options.hide?d.uiDialog.hide(d.options.hide,function(){d._trigger("close",f)}):d.uiDialog.hide()&&d._trigger("close",f));c.ui.dialog.overlay.resize();d._isOpen=false;if(d.options.modal){var e=0;c(".ui-dialog").each(function(){if(this!=d.uiDialog[0]){e=Math.max(e,c(this).css("z-index"))}});c.ui.dialog.maxZ=e}},isOpen:function(){return this._isOpen},moveToTop:function(f,e){if((this.options.modal&&!f)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",e)}if(this.options.zIndex>c.ui.dialog.maxZ){c.ui.dialog.maxZ=this.options.zIndex}(this.overlay&&this.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=++c.ui.dialog.maxZ));var d={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++c.ui.dialog.maxZ);this.element.attr(d);this._trigger("focus",e)},open:function(){if(this._isOpen){return}var e=this.options,d=this.uiDialog;this.overlay=e.modal?new c.ui.dialog.overlay(this):null;(d.next().length&&d.appendTo("body"));this._size();this._position(e.position);d.show(e.show);this.moveToTop(true);(e.modal&&d.bind("keypress.ui-dialog",function(h){if(h.keyCode!=c.ui.keyCode.TAB){return}var g=c(":tabbable",this),i=g.filter(":first")[0],f=g.filter(":last")[0];if(h.target==f&&!h.shiftKey){setTimeout(function(){i.focus()},1)}else{if(h.target==i&&h.shiftKey){setTimeout(function(){f.focus()},1)}}}));c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();this._trigger("open");this._isOpen=true},_createButtons:function(g){var f=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiDialog.find(".ui-dialog-buttonpane").remove();(typeof g=="object"&&g!==null&&c.each(g,function(){return !(d=true)}));if(d){c.each(g,function(h,i){c('<button type="button"></button>').addClass("ui-state-default ui-corner-all").text(h).click(function(){i.apply(f.element[0],arguments)}).hover(function(){c(this).addClass("ui-state-hover")},function(){c(this).removeClass("ui-state-hover")}).focus(function(){c(this).addClass("ui-state-focus")}).blur(function(){c(this).removeClass("ui-state-focus")}).appendTo(e)});e.appendTo(this.uiDialog)}},_makeDraggable:function(){var d=this,f=this.options,e;this.uiDialog.draggable({cancel:".ui-dialog-content",handle:".ui-dialog-titlebar",containment:"document",start:function(){e=f.height;c(this).height(c(this).height()).addClass("ui-dialog-dragging");(f.dragStart&&f.dragStart.apply(d.element[0],arguments))},drag:function(){(f.drag&&f.drag.apply(d.element[0],arguments))},stop:function(){c(this).removeClass("ui-dialog-dragging").height(e);(f.dragStop&&f.dragStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}})},_makeResizable:function(g){g=(g===undefined?this.options.resizable:g);var d=this,f=this.options,e=typeof g=="string"?g:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",alsoResize:this.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:f.minHeight,start:function(){c(this).addClass("ui-dialog-resizing");(f.resizeStart&&f.resizeStart.apply(d.element[0],arguments))},resize:function(){(f.resize&&f.resize.apply(d.element[0],arguments))},handles:e,stop:function(){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();(f.resizeStop&&f.resizeStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}}).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_position:function(i){var e=c(window),f=c(document),g=f.scrollTop(),d=f.scrollLeft(),h=g;if(c.inArray(i,["center","top","right","bottom","left"])>=0){i=[i=="right"||i=="left"?i:"center",i=="top"||i=="bottom"?i:"middle"]}if(i.constructor!=Array){i=["center","middle"]}if(i[0].constructor==Number){d+=i[0]}else{switch(i[0]){case"left":d+=0;break;case"right":d+=e.width()-this.uiDialog.outerWidth();break;default:case"center":d+=(e.width()-this.uiDialog.outerWidth())/2}}if(i[1].constructor==Number){g+=i[1]}else{switch(i[1]){case"top":g+=0;break;case"bottom":g+=e.height()-this.uiDialog.outerHeight();break;default:case"middle":g+=(e.height()-this.uiDialog.outerHeight())/2}}g=Math.max(g,h);this.uiDialog.css({top:g,left:d})},_setData:function(e,f){(b[e]&&this.uiDialog.data(b[e],f));switch(e){case"buttons":this._createButtons(f);break;case"closeText":this.uiDialogTitlebarCloseText.text(f);break;case"dialogClass":this.uiDialog.removeClass(this.options.dialogClass).addClass(a+f);break;case"draggable":(f?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(f);break;case"position":this._position(f);break;case"resizable":var d=this.uiDialog,g=this.uiDialog.is(":data(resizable)");(g&&!f&&d.resizable("destroy"));(g&&typeof f=="string"&&d.resizable("option","handles",f));(g||this._makeResizable(f));break;case"title":c(".ui-dialog-title",this.uiDialogTitlebar).html(f||"&nbsp;");break;case"width":this.uiDialog.width(f);break}c.widget.prototype._setData.apply(this,arguments)},_size:function(){var e=this.options;this.element.css({height:0,minHeight:0,width:"auto"});var d=this.uiDialog.css({height:"auto",width:e.width}).height();this.element.css({minHeight:Math.max(e.minHeight-d,0),height:e.height=="auto"?"auto":Math.max(e.height-d,0)})}});c.extend(c.ui.dialog,{version:"1.7.2",defaults:{autoOpen:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},getter:"isOpen",uuid:0,maxZ:0,getTitleId:function(d){return"ui-dialog-title-"+(d.attr("id")||++this.uuid)},overlay:function(d){this.$el=c.ui.dialog.overlay.create(d)}});c.extend(c.ui.dialog.overlay,{instances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(d){return d+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===0){setTimeout(function(){if(c.ui.dialog.overlay.instances.length){c(document).bind(c.ui.dialog.overlay.events,function(f){var g=c(f.target).parents(".ui-dialog").css("zIndex")||0;return(g>c.ui.dialog.overlay.maxZ)})}},1);c(document).bind("keydown.dialog-overlay",function(f){(e.options.closeOnEscape&&f.keyCode&&f.keyCode==c.ui.keyCode.ESCAPE&&e.close(f))});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var d=c("<div></div>").appendTo(document.body).addClass("ui-widget-overlay").css({width:this.width(),height:this.height()});(e.options.bgiframe&&c.fn.bgiframe&&d.bgiframe());this.instances.push(d);return d},destroy:function(d){this.instances.splice(c.inArray(this.instances,d),1);if(this.instances.length===0){c([document,window]).unbind(".dialog-overlay")}d.remove();var e=0;c.each(this.instances,function(){e=Math.max(e,this.css("z-index"))});this.maxZ=e},height:function(){if(c.browser.msie&&c.browser.version<7){var e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var d=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(e<d){return c(window).height()+"px"}else{return e+"px"}}else{return c(document).height()+"px"}},width:function(){if(c.browser.msie&&c.browser.version<7){var d=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);var e=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(d<e){return c(window).width()+"px"}else{return d+"px"}}else{return c(document).width()+"px"}},resize:function(){var d=c([]);c.each(c.ui.dialog.overlay.instances,function(){d=d.add(this)});d.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);;/*
+ * jQuery UI Slider 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Slider
+ *
+ * Depends:
+ *	ui.core.js
+ */
+(function(a){a.widget("ui.slider",a.extend({},a.ui.mouse,{_init:function(){var b=this,c=this.options;this._keySliding=false;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");this.range=a([]);if(c.range){if(c.range===true){this.range=a("<div></div>");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length<c.values.length){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){if(!c.disabled){a(this).addClass("ui-state-hover")}},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(!c.disabled){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}else{a(this).blur()}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((this.options.values.length==2&&this.options.range===true)&&((e==0&&d>b)||(e==1&&d<b))){d=b}if(d!=this.values(e)){var c=this.values();c[e]=d;var h=this._trigger("slide",f,{handle:this.handles[e],value:d,values:c});var b=this.values(e?0:1);if(h!==false){this.values(e,d,(f.type=="mousedown"&&this.options.animate),true)}}}else{if(d!=this.value()){var h=this._trigger("slide",f,{handle:this.handles[e],value:d});if(h!==false){this._setData("value",d,(f.type=="mousedown"&&this.options.animate))}}}},_stop:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("stop",d,b)},_change:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("change",d,b)},value:function(b){if(arguments.length){this._setData("value",b);this._change(null,0)}return this._value()},values:function(b,e,c,d){if(arguments.length>1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled")}else{this.handles.removeAttr("disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(c<this._valueMin()){c=this._valueMin()}if(c>this._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.2",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);;/*
+ * jQuery UI Tabs 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Tabs
+ *
+ * Depends:
+ *	ui.core.js
+ */
+(function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(b,c){if(b=="selected"){if(this.options.collapsible&&c==this.options.selected){return}this.select(c)}else{this.options[b]=c;if(b=="deselectable"){this.options.collapsible=c}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(c,b){return{tab:c,panel:b,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(n){this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var p=this,d=this.options;var c=/^#.+/;this.anchors.each(function(r,o){var q=a(o).attr("href");var s=q.split("#")[0],u;if(s&&(s===location.toString().split("#")[0]||(u=a("base")[0])&&s===u.href)){q=o.hash;o.href=q}if(c.test(q)){p.panels=p.panels.add(p._sanitizeSelector(q))}else{if(q!="#"){a.data(o,"href.tabs",q);a.data(o,"load.tabs",q.replace(/#.*$/,""));var w=p._tabId(o);o.href="#"+w;var v=a("#"+w);if(!v.length){v=a(d.panelTemplate).attr("id",w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r-1]||p.list);v.data("destroy.tabs",true)}p.panels=p.panels.add(v)}else{d.disabled.push(r)}}});if(n){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(d.selected===undefined){if(location.hash){this.anchors.each(function(q,o){if(o.hash==location.hash){d.selected=q;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(p._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else{if(d.selected===null){d.selected=-1}}d.selected=((d.selected>=0&&this.anchors[d.selected])||d.selected<0)?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(q,o){return p.lis.index(q)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");p.element.queue("tabs",function(){p._trigger("show",null,p._ui(p.anchors[d.selected],p.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){p.lis.add(p.anchors).unbind(".tabs");p.lis=p.anchors=p.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var g=0,m;(m=this.lis[g]);g++){a(m)[a.inArray(g,d.disabled)!=-1&&!a(m).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var f=function(o,i){if(i.is(":not(.ui-state-disabled)")){i.addClass("ui-state-"+o)}};var j=function(o,i){i.removeClass("ui-state-"+o)};this.lis.bind("mouseover.tabs",function(){f("hover",a(this))});this.lis.bind("mouseout.tabs",function(){j("hover",a(this))});this.anchors.bind("focus.tabs",function(){f("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var b,h;if(d.fx){if(a.isArray(d.fx)){b=d.fx[0];h=d.fx[1]}else{b=h=d.fx}}function e(i,o){i.css({display:""});if(a.browser.msie&&o.opacity){i[0].style.removeAttribute("filter")}}var k=h?function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.hide().removeClass("ui-tabs-hide").animate(h,h.duration||"normal",function(){e(o,h);p._trigger("show",null,p._ui(i,o[0]))})}:function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");p._trigger("show",null,p._ui(i,o[0]))};var l=b?function(o,i){i.animate(b,b.duration||"normal",function(){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");e(i,b);p.element.dequeue("tabs")})}:function(o,i,q){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");p.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var o=this,r=a(this).closest("li"),i=p.panels.filter(":not(.ui-tabs-hide)"),q=a(p._sanitizeSelector(this.hash));if((r.hasClass("ui-tabs-selected")&&!d.collapsible)||r.hasClass("ui-state-disabled")||r.hasClass("ui-state-processing")||p._trigger("select",null,p._ui(this,q[0]))===false){this.blur();return false}d.selected=p.anchors.index(this);p.abort();if(d.collapsible){if(r.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){l(o,i)}).dequeue("tabs");this.blur();return false}else{if(!i.length){if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this));this.blur();return false}}}if(d.cookie){p._cookie(d.selected,d.cookie)}if(q.length){if(i.length){p.element.queue("tabs",function(){l(o,i)})}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(b.cookie){this._cookie(null,b.cookie)}},add:function(e,d,c){if(c===undefined){c=this.anchors.length}var b=this,g=this.options,i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d)),h=!e.indexOf("#")?e.replace("#",""):this._tabId(a("a",i)[0]);i.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).data("destroy.tabs",true)}f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(c>=this.lis.length){i.appendTo(this.list);f.appendTo(this.list[0].parentNode)}else{i.insertBefore(this.lis[c]);f.insertBefore(this.panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this._tabify();if(this.anchors.length==1){i.addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[c],this.panels[c]))},remove:function(b){var d=this.options,e=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(e.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1<this.anchors.length?1:-1))}d.disabled=a.map(a.grep(d.disabled,function(g,f){return g!=b}),function(g,f){return g>=b?--g:g});this._tabify();this._trigger("remove",null,this._ui(e.find("a")[0],c[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(e,d){return e!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.lis.eq(c).addClass("ui-state-disabled");d.disabled.push(c);d.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}},select:function(b){if(typeof b=="string"){b=this.anchors.index(this.anchors.filter("[href$="+b+"]"))}else{if(b===null){b=-1}}if(b==-1&&this.options.collapsible){b=this.options.selected}this.anchors.eq(b).trigger(this.options.event+".tabs")},load:function(e){var c=this,g=this.options,b=this.anchors.eq(e)[0],d=a.data(b,"load.tabs");this.abort();if(!d||this.element.queue("tabs").length!==0&&a.data(b,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(e).addClass("ui-state-processing");if(g.spinner){var f=a("span",b);f.data("label.tabs",f.html()).html(g.spinner)}this.xhr=a.ajax(a.extend({},g.ajaxOptions,{url:d,success:function(i,h){a(c._sanitizeSelector(b.hash)).html(i);c._cleanup();if(g.cache){a.data(b,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[e],c.panels[e]));try{g.ajaxOptions.success(i,h)}catch(j){}c.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(c,b){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.2",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"<div></div>",spinner:"<em>Loading&#8230;</em>",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(d,f){var b=this,g=this.options;var c=b._rotate||(b._rotate=function(h){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var i=g.selected;b.select(++i<b.anchors.length?i:0)},d);if(h){h.stopPropagation()}});var e=b._unrotate||(b._unrotate=!f?function(h){if(h.clientX){b.rotate(null)}}:function(h){t=g.selected;c()});if(d){this.element.bind("tabsshow",c);this.anchors.bind(g.event+".tabs",e);c()}else{clearTimeout(b.rotation);this.element.unbind("tabsshow",c);this.anchors.unbind(g.event+".tabs",e);delete this._rotate;delete this._unrotate}}})})(jQuery);;/*
+ * jQuery UI Datepicker 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Datepicker
+ *
+ * Depends:
+ *	ui.core.js
+ */
+(function($){$.extend($.ui,{datepicker:{version:"1.7.2"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"mm/dd/yy",firstDay:0,isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,showMonthAfterYear:false,yearRange:"-10:+10",showOtherMonths:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false};$.extend(this._defaults,this.regional[""]);this.dpDiv=$('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){inst.append=$('<span class="'+this._appendClass+'">'+appendText+"</span>");input[isRTL?"before":"after"](inst.append)}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]==target){return true}}return false},_getInst:function(target){try{return $.data(target,PROP_NAME)}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var inst=this._getInst(target);if(arguments.length==2&&typeof name=="string"){return(name=="defaults"?$.extend({},$.datepicker._defaults):(inst?(name=="all"?$.extend({},inst.settings):this._get(inst,name)):null))}var settings=name||{};if(typeof name=="string"){settings={};settings[name]=value}if(inst){if(this._curInst==inst){this._hideDatepicker(null)}var date=this._getDateDatepicker(target);extendRemove(inst.settings,settings);this._setDateDatepicker(target,date);this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date,endDate){var inst=this._getInst(target);if(inst){this._setDate(inst,date,endDate);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst)}return(inst?this._getDate(inst):null)},_doKeyDown:function(event){var inst=$.datepicker._getInst(event.target);var handled=true;var isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker(null,"");break;case 13:var sel=$("td."+$.datepicker._dayOverClass+", td."+$.datepicker._currentClass,inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}else{$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"))}return false;break;case 27:$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"));break;case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");break;case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?+1:-1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?-1:+1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else{if(event.keyCode==36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDate<firstMon){checkDate.setDate(checkDate.getDate()-3);return $.datepicker.iso8601Week(checkDate)}else{if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){return 1}}}return Math.floor(((checkDate-firstMon)/86400000)/7)+1},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=(typeof value=="object"?value.toString():value+"");if(value==""){return null}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var year=-1;var month=-1;var day=-1;var doy=-1;var literal=false;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var getNumber=function(match){lookAhead(match);var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));var size=origSize;var num=0;while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j<names.length;j++){size=Math.max(size,names[j].length)}var name="";var iInit=iValue;while(size>0&&iValue<value.length){name+=value.charAt(iValue++);for(var i=0;i<names.length;i++){if(name==names[i]){return i+1}}size--}throw"Unknown name at position "+iInit};var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};var iValue=0;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":var date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(year==-1){year=new Date().getFullYear()}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)}}if(doy>-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num};var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])};var output="";var literal=false;if(date){for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":var doy=date.getDate();for(var m=date.getMonth()-1;m>=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst){var dateFormat=this._get(inst,"dateFormat");var dates=inst.input?inst.input.val():null;inst.endDay=inst.endMonth=inst.endYear=null;var date=defaultDate=this._getDefaultDate(inst);var settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate}catch(event){this.log(event);date=defaultDate}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates?date.getDate():0);inst.currentMonth=(dates?date.getMonth():0);inst.currentYear=(dates?date.getFullYear():0);this._adjustInstDate(inst)},_getDefaultDate:function(inst){var date=this._determineDate(this._get(inst,"defaultDate"),new Date());var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', -"+stepMonths+", 'M');\" title=\""+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>"));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', +"+stepMonths+", 'M');\" title=\""+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>"));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery.datepicker._hideDatepicker();">'+this._get(inst,"closeText")+"</button>":"");var buttonPanel=(showButtonPanel)?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery.datepicker._gotoToday(\'#'+inst.id+"');\">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row<numMonths[0];row++){var group="";for(var col=0;col<numMonths[1];col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));var cornerClass=" ui-corner-all";var calender="";if(isMultiMonth){calender+='<div class="ui-datepicker-group ui-datepicker-group-';switch(col){case 0:calender+="first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+="last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+="middle";cornerClass="";break}calender+='">'}calender+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+cornerClass+'">'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="<th"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+dayNames[day]+'">'+dayNamesMin[day]+"</span></th>"}calender+=thead+"</tr></thead><tbody>";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow<numRows;dRow++){calender+="<tr>";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);tbody+='<td class="'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():"&#xa0;"):(unselectable?'<span class="ui-state-default">'+printDate.getDate()+"</span>":'<a class="ui-state-default'+(printDate.getTime()==today.getTime()?" ui-state-highlight":"")+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+"</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="</tbody></table>"+(isMultiMonth?"</div>"+((numMonths[0]>0&&col==numMonths[1]-1)?'<div class="ui-datepicker-row-break"></div>':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='<div class="ui-datepicker-title">';var monthHtml="";if(secondary||!changeMonth){monthHtml+='<span class="ui-datepicker-month">'+monthNames[drawMonth]+"</span> "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='<select class="ui-datepicker-month" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(var month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNamesShort[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?"&#xa0;":"")}if(secondary||!changeYear){html+='<span class="ui-datepicker-year">'+drawYear+"</span>"}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='<select class="ui-datepicker-year" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"}html+="</select>"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?"&#xa0;":"")+monthHtml}html+="</div>";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);var minDate=newMinDate||this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.2";window.DP_jQuery=$})(jQuery);;/*
+ * jQuery UI Progressbar 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Progressbar
+ *
+ * Depends:
+ *   ui.core.js
+ */
+(function(a){a.widget("ui.progressbar",{_init:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=a('<div class="ui-progressbar-value ui-widget-header ui-corner-left"></div>').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){if(b===undefined){return this._value()}this._setData("value",b);return this},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.7.2",defaults:{value:0}})})(jQuery);;/*
+ * jQuery UI Effects 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/
+ */
+jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f<h.length;f++){if(h[f]!==null){g.data("ec.storage."+h[f],g[0].style[h[f]])}}},restore:function(g,h){for(var f=0;f<h.length;f++){if(h[f]!==null){g.css(h[f],g.data("ec.storage."+h[f]))}}},setMode:function(f,g){if(g=="toggle"){g=f.is(":hidden")?"show":"hide"}return g},getBaseline:function(g,h){var i,f;switch(g[0]){case"top":i=0;break;case"middle":i=0.5;break;case"bottom":i=1;break;default:i=g[0]/h.height}switch(g[1]){case"left":f=0;break;case"center":f=0.5;break;case"right":f=1;break;default:f=g[1]/h.width}return{x:f,y:i}},createWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent()}var g={width:f.outerWidth(true),height:f.outerHeight(true),"float":f.css("float")};f.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}return -(h*Math.pow(2,10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k))+f},easeOutElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}return h*Math.pow(2,-10*i)*Math.sin((i*l-j)*(2*Math.PI)/k)+m+f},easeInOutElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l/2)==2){return f+m}if(!k){k=l*(0.3*1.5)}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}if(i<1){return -0.5*(h*Math.pow(2,10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k))+f}return h*Math.pow(2,-10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k)*0.5+m+f},easeInBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}return k*(h/=j)*h*((i+1)*h-i)+f},easeOutBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}return k*((h=h/j-1)*h*((i+1)*h+i)+1)+f},easeInOutBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}if((h/=j/2)<1){return k/2*(h*h*(((i*=(1.525))+1)*h-i))+f}return k/2*((h-=2)*h*(((i*=(1.525))+1)*h+i)+2)+f},easeInBounce:function(g,h,f,j,i){return j-d.easing.easeOutBounce(g,i-h,0,j,i)+f},easeOutBounce:function(g,h,f,j,i){if((h/=i)<(1/2.75)){return j*(7.5625*h*h)+f}else{if(h<(2/2.75)){return j*(7.5625*(h-=(1.5/2.75))*h+0.75)+f}else{if(h<(2.5/2.75)){return j*(7.5625*(h-=(2.25/2.75))*h+0.9375)+f}else{return j*(7.5625*(h-=(2.625/2.75))*h+0.984375)+f}}}},easeInOutBounce:function(g,h,f,j,i){if(h<i/2){return d.easing.easeInBounce(g,h*2,0,j,i)*0.5+f}return d.easing.easeOutBounce(g,h*2-i,0,j,i)*0.5+j*0.5+f}})})(jQuery);;/*
+ * jQuery UI Effects Blind 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Blind
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.blind=function(b){return this.queue(function(){var d=a(this),c=["position","top","left"];var h=a.effects.setMode(d,b.options.mode||"hide");var g=b.options.direction||"vertical";a.effects.save(d,c);d.show();var j=a.effects.createWrapper(d).css({overflow:"hidden"});var e=(g=="vertical")?"height":"width";var i=(g=="vertical")?j.height():j.width();if(h=="show"){j.css(e,0)}var f={};f[e]=h=="show"?i:0;j.animate(f,b.duration,b.options.easing,function(){if(h=="hide"){d.hide()}a.effects.restore(d,c);a.effects.removeWrapper(d);if(b.callback){b.callback.apply(d[0],arguments)}d.dequeue()})})}})(jQuery);;/*
+ * jQuery UI Effects Bounce 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Bounce
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.bounce=function(b){return this.queue(function(){var e=a(this),l=["position","top","left"];var k=a.effects.setMode(e,b.options.mode||"effect");var n=b.options.direction||"up";var c=b.options.distance||20;var d=b.options.times||5;var g=b.duration||250;if(/show|hide/.test(k)){l.push("opacity")}a.effects.save(e,l);e.show();a.effects.createWrapper(e);var f=(n=="up"||n=="down")?"top":"left";var p=(n=="up"||n=="left")?"pos":"neg";var c=b.options.distance||(f=="top"?e.outerHeight({margin:true})/3:e.outerWidth({margin:true})/3);if(k=="show"){e.css("opacity",0).css(f,p=="pos"?-c:c)}if(k=="hide"){c=c/(d*2)}if(k!="hide"){d--}if(k=="show"){var h={opacity:1};h[f]=(p=="pos"?"+=":"-=")+c;e.animate(h,g/2,b.options.easing);c=c/2;d--}for(var j=0;j<d;j++){var o={},m={};o[f]=(p=="pos"?"-=":"+=")+c;m[f]=(p=="pos"?"+=":"-=")+c;e.animate(o,g/2,b.options.easing).animate(m,g/2,b.options.easing);c=(k=="hide")?c*2:c/2}if(k=="hide"){var h={opacity:0};h[f]=(p=="pos"?"-=":"+=")+c;e.animate(h,g/2,b.options.easing,function(){e.hide();a.effects.restore(e,l);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}})}else{var o={},m={};o[f]=(p=="pos"?"-=":"+=")+c;m[f]=(p=="pos"?"+=":"-=")+c;e.animate(o,g/2,b.options.easing).animate(m,g/2,b.options.easing,function(){a.effects.restore(e,l);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}})}e.queue("fx",function(){e.dequeue()});e.dequeue()})}})(jQuery);;/*
+ * jQuery UI Effects Clip 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Clip
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.clip=function(b){return this.queue(function(){var f=a(this),j=["position","top","left","height","width"];var i=a.effects.setMode(f,b.options.mode||"hide");var k=b.options.direction||"vertical";a.effects.save(f,j);f.show();var c=a.effects.createWrapper(f).css({overflow:"hidden"});var e=f[0].tagName=="IMG"?c:f;var g={size:(k=="vertical")?"height":"width",position:(k=="vertical")?"top":"left"};var d=(k=="vertical")?e.height():e.width();if(i=="show"){e.css(g.size,0);e.css(g.position,d/2)}var h={};h[g.size]=i=="show"?d:0;h[g.position]=i=="show"?0:d/2;e.animate(h,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(i=="hide"){f.hide()}a.effects.restore(f,j);a.effects.removeWrapper(f);if(b.callback){b.callback.apply(f[0],arguments)}f.dequeue()}})})}})(jQuery);;/*
+ * jQuery UI Effects Drop 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Drop
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.drop=function(b){return this.queue(function(){var e=a(this),d=["position","top","left","opacity"];var i=a.effects.setMode(e,b.options.mode||"hide");var h=b.options.direction||"left";a.effects.save(e,d);e.show();a.effects.createWrapper(e);var f=(h=="up"||h=="down")?"top":"left";var c=(h=="up"||h=="left")?"pos":"neg";var j=b.options.distance||(f=="top"?e.outerHeight({margin:true})/2:e.outerWidth({margin:true})/2);if(i=="show"){e.css("opacity",0).css(f,c=="pos"?-j:j)}var g={opacity:i=="show"?1:0};g[f]=(i=="show"?(c=="pos"?"+=":"-="):(c=="pos"?"-=":"+="))+j;e.animate(g,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(i=="hide"){e.hide()}a.effects.restore(e,d);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/*
+ * jQuery UI Effects Explode 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Explode
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.explode=function(b){return this.queue(function(){var k=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3;var e=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3;b.options.mode=b.options.mode=="toggle"?(a(this).is(":visible")?"hide":"show"):b.options.mode;var h=a(this).show().css("visibility","hidden");var l=h.offset();l.top-=parseInt(h.css("marginTop"),10)||0;l.left-=parseInt(h.css("marginLeft"),10)||0;var g=h.outerWidth(true);var c=h.outerHeight(true);for(var f=0;f<k;f++){for(var d=0;d<e;d++){h.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-d*(g/e),top:-f*(c/k)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/e,height:c/k,left:l.left+d*(g/e)+(b.options.mode=="show"?(d-Math.floor(e/2))*(g/e):0),top:l.top+f*(c/k)+(b.options.mode=="show"?(f-Math.floor(k/2))*(c/k):0),opacity:b.options.mode=="show"?0:1}).animate({left:l.left+d*(g/e)+(b.options.mode=="show"?0:(d-Math.floor(e/2))*(g/e)),top:l.top+f*(c/k)+(b.options.mode=="show"?0:(f-Math.floor(k/2))*(c/k)),opacity:b.options.mode=="show"?1:0},b.duration||500)}}setTimeout(function(){b.options.mode=="show"?h.css({visibility:"visible"}):h.css({visibility:"visible"}).hide();if(b.callback){b.callback.apply(h[0])}h.dequeue();a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/*
+ * jQuery UI Effects Fold 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Fold
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.fold=function(b){return this.queue(function(){var e=a(this),k=["position","top","left"];var h=a.effects.setMode(e,b.options.mode||"hide");var o=b.options.size||15;var n=!(!b.options.horizFirst);var g=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(e,k);e.show();var d=a.effects.createWrapper(e).css({overflow:"hidden"});var i=((h=="show")!=n);var f=i?["width","height"]:["height","width"];var c=i?[d.width(),d.height()]:[d.height(),d.width()];var j=/([0-9]+)%/.exec(o);if(j){o=parseInt(j[1],10)/100*c[h=="hide"?0:1]}if(h=="show"){d.css(n?{height:0,width:o}:{height:o,width:0})}var m={},l={};m[f[0]]=h=="show"?c[0]:o;l[f[1]]=h=="show"?c[1]:0;d.animate(m,g,b.options.easing).animate(l,g,b.options.easing,function(){if(h=="hide"){e.hide()}a.effects.restore(e,k);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(e[0],arguments)}e.dequeue()})})}})(jQuery);;/*
+ * jQuery UI Effects Highlight 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Highlight
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/*
+ * jQuery UI Effects Pulsate 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Pulsate
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.pulsate=function(b){return this.queue(function(){var d=a(this);var g=a.effects.setMode(d,b.options.mode||"show");var f=b.options.times||5;var e=b.duration?b.duration/2:a.fx.speeds._default/2;if(g=="hide"){f--}if(d.is(":hidden")){d.css("opacity",0);d.show();d.animate({opacity:1},e,b.options.easing);f=f-2}for(var c=0;c<f;c++){d.animate({opacity:0},e,b.options.easing).animate({opacity:1},e,b.options.easing)}if(g=="hide"){d.animate({opacity:0},e,b.options.easing,function(){d.hide();if(b.callback){b.callback.apply(this,arguments)}})}else{d.animate({opacity:0},e,b.options.easing).animate({opacity:1},e,b.options.easing,function(){if(b.callback){b.callback.apply(this,arguments)}})}d.queue("fx",function(){d.dequeue()});d.dequeue()})}})(jQuery);;/*
+ * jQuery UI Effects Scale 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Scale
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.puff=function(b){return this.queue(function(){var f=a(this);var c=a.extend(true,{},b.options);var h=a.effects.setMode(f,b.options.mode||"hide");var g=parseInt(b.options.percent,10)||150;c.fade=true;var e={height:f.height(),width:f.width()};var d=g/100;f.from=(h=="hide")?e:{height:e.height*d,width:e.width*d};c.from=f.from;c.percent=(h=="hide")?g:100;c.mode=h;f.effect("scale",c,b.duration,b.callback);f.dequeue()})};a.effects.scale=function(b){return this.queue(function(){var g=a(this);var d=a.extend(true,{},b.options);var j=a.effects.setMode(g,b.options.mode||"effect");var h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:(j=="hide"?0:100));var i=b.options.direction||"both";var c=b.options.origin;if(j!="effect"){d.origin=c||["middle","center"];d.restore=true}var f={height:g.height(),width:g.width()};g.from=b.options.from||(j=="show"?{height:0,width:0}:f);var e={y:i!="horizontal"?(h/100):1,x:i!="vertical"?(h/100):1};g.to={height:f.height*e.y,width:f.width*e.x};if(b.options.fade){if(j=="show"){g.from.opacity=0;g.to.opacity=1}if(j=="hide"){g.from.opacity=1;g.to.opacity=0}}d.from=g.from;d.to=g.to;d.mode=j;g.effect("size",d,b.duration,b.callback);g.dequeue()})};a.effects.size=function(b){return this.queue(function(){var c=a(this),n=["position","top","left","width","height","overflow","opacity"];var m=["position","top","left","overflow","opacity"];var j=["width","height","overflow"];var p=["fontSize"];var k=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];var f=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"];var g=a.effects.setMode(c,b.options.mode||"effect");var i=b.options.restore||false;var e=b.options.scale||"both";var o=b.options.origin;var d={height:c.height(),width:c.width()};c.from=b.options.from||d;c.to=b.options.to||d;if(o){var h=a.effects.getBaseline(o,d);c.from.top=(d.height-c.from.height)*h.y;c.from.left=(d.width-c.from.width)*h.x;c.to.top=(d.height-c.to.height)*h.y;c.to.left=(d.width-c.to.width)*h.x}var l={from:{y:c.from.height/d.height,x:c.from.width/d.width},to:{y:c.to.height/d.height,x:c.to.width/d.width}};if(e=="box"||e=="both"){if(l.from.y!=l.to.y){n=n.concat(k);c.from=a.effects.setTransition(c,k,l.from.y,c.from);c.to=a.effects.setTransition(c,k,l.to.y,c.to)}if(l.from.x!=l.to.x){n=n.concat(f);c.from=a.effects.setTransition(c,f,l.from.x,c.from);c.to=a.effects.setTransition(c,f,l.to.x,c.to)}}if(e=="content"||e=="both"){if(l.from.y!=l.to.y){n=n.concat(p);c.from=a.effects.setTransition(c,p,l.from.y,c.from);c.to=a.effects.setTransition(c,p,l.to.y,c.to)}}a.effects.save(c,i?n:m);c.show();a.effects.createWrapper(c);c.css("overflow","hidden").css(c.from);if(e=="content"||e=="both"){k=k.concat(["marginTop","marginBottom"]).concat(p);f=f.concat(["marginLeft","marginRight"]);j=n.concat(k).concat(f);c.find("*[width]").each(function(){child=a(this);if(i){a.effects.save(child,j)}var q={height:child.height(),width:child.width()};child.from={height:q.height*l.from.y,width:q.width*l.from.x};child.to={height:q.height*l.to.y,width:q.width*l.to.x};if(l.from.y!=l.to.y){child.from=a.effects.setTransition(child,k,l.from.y,child.from);child.to=a.effects.setTransition(child,k,l.to.y,child.to)}if(l.from.x!=l.to.x){child.from=a.effects.setTransition(child,f,l.from.x,child.from);child.to=a.effects.setTransition(child,f,l.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){if(i){a.effects.restore(child,j)}})})}c.animate(c.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(g=="hide"){c.hide()}a.effects.restore(c,i?n:m);a.effects.removeWrapper(c);if(b.callback){b.callback.apply(this,arguments)}c.dequeue()}})})}})(jQuery);;/*
+ * jQuery UI Effects Shake 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Shake
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.shake=function(b){return this.queue(function(){var e=a(this),l=["position","top","left"];var k=a.effects.setMode(e,b.options.mode||"effect");var n=b.options.direction||"left";var c=b.options.distance||20;var d=b.options.times||3;var g=b.duration||b.options.duration||140;a.effects.save(e,l);e.show();a.effects.createWrapper(e);var f=(n=="up"||n=="down")?"top":"left";var p=(n=="up"||n=="left")?"pos":"neg";var h={},o={},m={};h[f]=(p=="pos"?"-=":"+=")+c;o[f]=(p=="pos"?"+=":"-=")+c*2;m[f]=(p=="pos"?"-=":"+=")+c*2;e.animate(h,g,b.options.easing);for(var j=1;j<d;j++){e.animate(o,g,b.options.easing).animate(m,g,b.options.easing)}e.animate(o,g,b.options.easing).animate(h,g/2,b.options.easing,function(){a.effects.restore(e,l);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}});e.queue("fx",function(){e.dequeue()});e.dequeue()})}})(jQuery);;/*
+ * jQuery UI Effects Slide 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Slide
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.slide=function(b){return this.queue(function(){var e=a(this),d=["position","top","left"];var i=a.effects.setMode(e,b.options.mode||"show");var h=b.options.direction||"left";a.effects.save(e,d);e.show();a.effects.createWrapper(e).css({overflow:"hidden"});var f=(h=="up"||h=="down")?"top":"left";var c=(h=="up"||h=="left")?"pos":"neg";var j=b.options.distance||(f=="top"?e.outerHeight({margin:true}):e.outerWidth({margin:true}));if(i=="show"){e.css(f,c=="pos"?-j:j)}var g={};g[f]=(i=="show"?(c=="pos"?"+=":"-="):(c=="pos"?"-=":"+="))+j;e.animate(g,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(i=="hide"){e.hide()}a.effects.restore(e,d);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/*
+ * jQuery UI Effects Transfer 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Transfer
+ *
+ * Depends:
+ *	effects.core.js
+ */
+(function(a){a.effects.transfer=function(b){return this.queue(function(){var f=a(this),h=a(b.options.to),e=h.offset(),g={top:e.top,left:e.left,height:h.innerHeight(),width:h.innerWidth()},d=f.offset(),c=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);;
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/jquery/jquery-ui-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/jquery-insert.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/jquery-insert.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/jquery-insert.js	(revision 1130)
@@ -0,0 +1,74 @@
+/* Insert Script Plugin
+ *
+ *
+ * Copyright (c) 2008 Kevin Martin (http://synarchydesign.com/insert)
+ * Licensed under the GPL license:
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ */
+jQuery.insert = function(file)
+{
+	var data	= [];
+	var data2	= [];
+
+	if (typeof file == 'object')
+	{
+		data = file;
+		file = data.src !== undefined ? data.src : false;
+		file = file === false && data.href !== undefined ? data.href : file;
+		file = file === false ? file2 : false;
+	}
+
+	if (typeof file == 'string' && file.length)
+	{
+		var index	= file.lastIndexOf('.');
+		var index2	= file.replace('\\', '/').lastIndexOf('/') + 1;
+		var ext		= file.substring(index + 1, file.length);
+	}
+
+	switch(ext)
+	{
+		case 'js':
+			data2 = {
+				elm:	'script',
+				type:	'text/javascript',
+				src:	file
+			};
+		break;
+
+		case 'css':
+			data2 = {
+				elm:	'link',
+				rel:	'stylesheet',
+				type:	'text/css',
+				href:	file
+			};
+		break;
+
+		default:
+			data2 = {elm: 'link'};
+		break;
+	}
+
+	data2.id = 'script-' + (typeof file == 'string' && file.length ?
+		file.substring(index2, index) : Math.round(Math.rand() * 100));
+
+	for (var i in data)
+	{
+		data2[i] = data[i];
+	}
+
+	data	= data2;
+	var tag	= document.createElement(data.elm);
+
+	delete data.elm;
+
+	for (i in data)
+	{
+		tag.setAttribute(i, data[i]);
+	}
+
+	jQuery('head').append(tag);
+
+	return jQuery('#' + data.id);
+};
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/jquery/jquery-min.js
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/jquery-min.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/jquery-min.js	(revision 1130)
@@ -0,0 +1,19 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ *  Copyright 2009, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/jquery/jquery-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/wb/include/jquery/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.8.0/trunk/wb/include/jquery/GPL-LICENSE.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/GPL-LICENSE.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/GPL-LICENSE.txt	(revision 1130)
@@ -0,0 +1,278 @@
+        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.

Property changes on: tags/2.8.0/trunk/wb/include/jquery/GPL-LICENSE.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/AUTHORS.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/AUTHORS.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/AUTHORS.txt	(revision 1130)
@@ -0,0 +1,30 @@
+๏ปฟjQuery UI Authors (http://ui.jquery.com/about)
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+and logs, available at http://jquery-ui.googlecode.com/svn/
+
+Brandon Aaron
+Paul Bakaus (paulbakaus.com)
+David Bolter
+Rich Caloggero
+Chi Cheng (cloudream@gmail.com)
+Colin Clark (http://colin.atrc.utoronto.ca/)
+Michelle D'Souza
+Aaron Eisenberger (aaronchi@gmail.com)
+Ariel Flesler
+Bohdan Ganicky
+Scott Gonzรกlez
+Marc Grabanski (m@marcgrabanski.com)
+Klaus Hartl (stilbuero.de)
+Scott Jehl
+Cody Lindley
+Eduardo Lundgren (eduardolundgren@gmail.com)
+Todd Parker
+John Resig
+Patty Toland
+Ca-Phun Ung (yelotofu.com)
+Keith Wood (kbwood@virginbroadband.com.au)
+Maggie Costello Wachs
+Richard D. Worth (rdworth.org)
+Jรถrn Zaefferer (bassistance.de)

Property changes on: tags/2.8.0/trunk/wb/include/jquery/AUTHORS.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/jquery/MIT-LICENSE.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/jquery/MIT-LICENSE.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/jquery/MIT-LICENSE.txt	(revision 1130)
@@ -0,0 +1,25 @@
+Copyright (c) 2009 Paul Bakaus, http://jqueryui.com/
+
+This software consists of voluntary contributions made by many
+individuals (AUTHORS.txt, http://jqueryui.com/about) For exact
+contribution history, see the revision history and logs, available
+at http://jquery-ui.googlecode.com/svn/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Property changes on: tags/2.8.0/trunk/wb/include/jquery/MIT-LICENSE.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ch.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ch.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ch.php	(revision 1130)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Chinese Version
+ * By LiuXin: www.80x86.cn/blog/
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG['provide_address'] = 'ๆจๅฟ้กปๆไพ่ณๅฐไธไธช ๆถไฟกไบบ็emailๅฐๅใ';
+$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'] = 'ๆช็ฅ็ผ็ ๏ผ';
+$PHPMAILER_LANG['signing'] = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
+?>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ja.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ja.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ja.php	(revision 1130)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Japanese Version
+ * By Mitsuhiro Yoshida - http://mitstek.com/
+ */
+
+$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'] = 'ไธๆใชใจใณใณใผใใฃใณใฐ: ';
+$PHPMAILER_LANG['signing'] = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ja.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-dk.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-dk.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-dk.php	(revision 1130)
@@ -0,0 +1,23 @@
+<?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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-dk.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fi.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fi.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fi.php	(revision 1130)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.
+ * Finnish Version
+ * By Jyry Kuukanen
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG['provide_address']      = 'Aseta vรคhintรครคn yksi vastaanottajan sรคhk&ouml;postiosoite.';
+$PHPMAILER_LANG['mailer_not_supported'] = 'postivรคlitintyyppiรค ei tueta.';
+$PHPMAILER_LANG['execute']              = 'Suoritus epรคonnistui: ';
+$PHPMAILER_LANG['instantiate']          = 'mail-funktion luonti epรคonnistui.';
+$PHPMAILER_LANG['authenticate']         = 'SMTP-virhe: kรคyttรคjรคtunnistus epรคonnistui.';
+$PHPMAILER_LANG['from_failed']          = 'Seuraava lรคhettรคjรค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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fi.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-zh_cn.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-zh_cn.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-zh_cn.php	(revision 1130)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Simplified Chinese Version
+ * @author liqwei <liqwei@liqwei.com>
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'ๅฟ้กปๆไพ่ณๅฐไธไธชๆถไปถไบบๅฐๅใ';
+$PHPMAILER_LANG["mailer_not_supported"] = 'ๅไฟกๅฎขๆท็ซฏไธ่ขซๆฏๆใ';
+$PHPMAILER_LANG["execute"] = 'ๆ ๆณๆง่ก๏ผ';
+$PHPMAILER_LANG["instantiate"] = 'ๆช็ฅๅฝๆฐ่ฐ็จใ';
+$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"] = 'ๆช็ฅ็ผ็ : ';
+$PHPMAILER_LANG["signing"] = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
+?>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ar.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ar.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ar.php	(revision 1130)
@@ -0,0 +1,26 @@
+<?php
+/**
+ * PHPMailer language file.
+ * Arabic Version, UTF-8
+ * by : bahjat al mostafa <bahjat983@hotmail.com>
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG['provide_address'] = 'You must provide at least one ' .
+                                     'recipient email address.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer ุบูุฑ ูุฏุนูู.';
+$PHPMAILER_LANG['execute'] = 'ูู ุฃุณุชุทุน ุชูููุฐ : ';
+$PHPMAILER_LANG['instantiate'] = 'ูู ูุณุชุทุน ุชูููุฑ ุฎุฏูุฉ ุงูุจุฑูุฏ.';
+$PHPMAILER_LANG['authenticate'] = 'SMTP Error: ูู ูุณุชุทุน ุชุฃููุฏ ุงููููุฉ.';
+$PHPMAILER_LANG['from_failed'] = 'ุงูุจุฑูุฏ ุงูุชุงูู ูู ูุณุชุทุน ุงุฑุณุงู ุงูุจุฑูุฏ ูู : ';
+$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: ุงูุฃุฎุทุงุก ุงูุชุงููุฉ ' .
+                                       'ูุดู ูู ุงูุงุฑุณุงู ููู ูู : ';
+$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: ูู ูุชู ูุจูู ุงููุนูููุงุช .';
+$PHPMAILER_LANG['connect_host'] = 'SMTP Error: ูู ูุณุชุทุน ุงูุงุชุตุงู ุจูุฎุฏู SMTP.';
+$PHPMAILER_LANG['file_access'] = 'ูู ูุณุชุทุน ุงููุตูู ููููู: ';
+$PHPMAILER_LANG['file_open'] = 'File Error: ูู ูุณุชุทุน ูุชุญ ุงูููู: ';
+$PHPMAILER_LANG['encoding'] = 'ุชุฑููุฒ ุบูุฑ ูุนุฑูู: ';
+$PHPMAILER_LANG['signing'] = 'ุฎุทุฃ ูู ุงูุชูููุน: ';
+$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
+?>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-en.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-en.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-en.php	(revision 1130)
@@ -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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-en.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-br.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-br.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-br.php	(revision 1130)
@@ -0,0 +1,23 @@
+<?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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-br.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fo.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fo.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fo.php	(revision 1130)
@@ -0,0 +1,25 @@
+<?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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fo.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-se.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-se.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-se.php	(revision 1130)
@@ -0,0 +1,23 @@
+<?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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-se.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-es.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-es.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-es.php	(revision 1130)
@@ -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: ';
+$PHPMAILER_LANG['signing']              = 'Error al firmar: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-es.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fr.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fr.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fr.php	(revision 1130)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.
+ * French Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG['provide_address']      = 'Vous devez fournir au moins une adresse de destinataire.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supportรฉ.';
+$PHPMAILER_LANG['execute']              = 'Impossible de lancer l\'exรฉcution : ';
+$PHPMAILER_LANG['instantiate']          = 'Impossible d\'instancier la fonction mail.';
+$PHPMAILER_LANG['authenticate']         = 'Erreur SMTP : Echec de l\'authentification.';
+$PHPMAILER_LANG['from_failed']          = 'L\'adresse d\'expรฉditeur suivante a รฉchouรฉe : ';
+$PHPMAILER_LANG['recipients_failed']    = 'Erreur SMTP : Les destinataires suivants sont en erreur : ';
+$PHPMAILER_LANG['data_not_accepted']    = 'Erreur SMTP : Donnรฉes incorrects.';
+$PHPMAILER_LANG['connect_host']         = 'Erreur SMTP : Impossible de se connecter au serveur SMTP.';
+$PHPMAILER_LANG['file_access']          = 'Impossible d\'accรฉder au fichier : ';
+$PHPMAILER_LANG['file_open']            = 'Erreur Fichier : ouverture impossible : ';
+$PHPMAILER_LANG['encoding']             = 'Encodage inconnu : ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-fr.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-et.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-et.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-et.php	(revision 1130)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.
+ * Estonian Version
+ * By Indrek Pรคri
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG['provide_address']      = 'Te peate mรครคrama vรคhemalt รผhe saaja e-posti aadressi.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.';
+$PHPMAILER_LANG['execute']              = 'Tegevus ebaรตnnestus: ';
+$PHPMAILER_LANG['instantiate']          = 'mail funktiooni kรคivitamine ebaรตnnestus.';
+$PHPMAILER_LANG['authenticate']         = 'SMTP Viga: Autoriseerimise viga.';
+$PHPMAILER_LANG['from_failed']          = 'Jรคrgnev saatja e-posti aadress on vigane: ';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP Viga: Jรคrgnevate saajate e-posti aadressid on vigased: ';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Viga: Vigased andmed.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP Viga: Ei รตnnestunud luua รผhendust SMTP serveriga.';
+$PHPMAILER_LANG['file_access']          = 'Pole piisavalt รตiguseid jรคrgneva faili avamiseks: ';
+$PHPMAILER_LANG['file_open']            = 'Faili Viga: Faili avamine ebaรตnnestus: ';
+$PHPMAILER_LANG['encoding']             = 'Tundmatu Unknown kodeering: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-et.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-nl.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-nl.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-nl.php	(revision 1130)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.
+ * Dutch Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG['provide_address']      = 'Er moet tenmiste รฉรฉ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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-nl.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-pl.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-pl.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-pl.php	(revision 1130)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Polish Version
+ */
+
+$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: ';
+$PHPMAILER_LANG['signing'] = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-pl.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-it.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-it.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-it.php	(revision 1130)
@@ -0,0 +1,26 @@
+<?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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-it.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-hu.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-hu.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-hu.php	(revision 1130)
@@ -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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-hu.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-cz.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-cz.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-cz.php	(revision 1130)
@@ -0,0 +1,23 @@
+<?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รญ: ';
+$PHPMAILER_LANG["signing"]              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-cz.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-no.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-no.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-no.php	(revision 1130)
@@ -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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-no.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ro.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ro.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ro.php	(revision 1130)
@@ -0,0 +1,24 @@
+<?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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ro.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-zh.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-zh.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-zh.php	(revision 1130)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Traditional Chinese Version
+ * @author liqwei <liqwei@liqwei.com>
+ */
+
+$PHPMAILER_LANG = array();
+$PHPMAILER_LANG['provide_address'] = 'ๅฟ้ ๆไพ่ณๅฐไธๅๆถไปถไบบๅฐๅใ';
+$PHPMAILER_LANG['mailer_not_supported'] = '็ผไฟกๅฎขๆถ็ซฏไธ่ขซๆฏๆใ';
+$PHPMAILER_LANG['execute'] = '็กๆณๅท่ก๏ผ';
+$PHPMAILER_LANG['instantiate'] = 'ๆช็ฅๅฝๆธ่ชฟ็จใ';
+$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'] = 'ๆช็ฅ็ทจ็ขผ: ';
+$PHPMAILER_LANG['signing'] = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
+?>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ca.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ca.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ca.php	(revision 1130)
@@ -0,0 +1,24 @@
+<?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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ca.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-tr.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-tr.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-tr.php	(revision 1130)
@@ -0,0 +1,24 @@
+<?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: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-tr.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ru.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ru.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ru.php	(revision 1130)
@@ -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']             = 'ะะตะธะทะฒะตััะฝัะน ะฒะธะด ะบะพะดะธัะพะฒะบะธ: ';
+$PHPMAILER_LANG['signing']              = 'Signing Error: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-ru.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-de.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-de.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-de.php	(revision 1130)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.
+ * German Version
+ * Thanks to Yann-Patrick Schlame for the latest update!
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG['provide_address']      = 'Bitte geben Sie mindestens eine Empfรคnger Emailadresse an.';
+$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstรผtzt.';
+$PHPMAILER_LANG['execute']              = 'Konnte folgenden Befehl nicht ausfรผ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รค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 รถffnen: ';
+$PHPMAILER_LANG['encoding']             = 'Unbekanntes Encoding-Format: ';
+$PHPMAILER_LANG['signing']              = 'Fehler beim Signieren: ';
+$PHPMAILER_LANG['smtp_error']           = 'SMTP server error: ';
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/language/phpmailer.lang-de.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/language/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/language/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/language/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/phpmailer/ChangeLog.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/ChangeLog.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/ChangeLog.txt	(revision 1130)
@@ -0,0 +1,302 @@
+ChangeLog
+
+Version 2.0.4 (April 02 2009)
+* fixed == in class.smtp.php
+- NOTE: this is it folks, our last PHPMailer to support PHP4
+
+Version 2.0.3 (November 08 2008)
+* fixed line 1041 in class.smtp.php (endless loop from missing = sign)
+* fixed duplicate images in email body
+* removed English language from language files and made it a default within
+  class.phpmailer.php - if no language is found, it will default to use
+  the english language translation
+* corrected $basedir to $directory
+* changed default of $LE to "\r\n" to comply with RFC 2822. Can be set by the user
+  if default is not acceptable
+* removed trim() from return results in EncodeQP
+* changed $this->AltBody = $textMsg; to $this->AltBody = html_entity_decode($textMsg);
+* We have removed the /phpdoc from the downloads. All documentation is now on
+  the http://phpmailer.codeworxtech.com website.
+
+Version 2.0.2 (June 04 2008)
+
+** NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS.
+   IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE
+   APPRECIATED.
+
+* added S/MIME functionality (ability to digitally sign emails)
+  BIG THANKS TO "sergiocambra" for posting this patch back in November 2007.
+  The "Signed Emails" functionality adds the Sign method to pass the private key
+  filename and the password to read it, and then email will be sent with
+  content-type multipart/signed and with the digital signature attached.
+* added ability to define path (mainly for embedded images)
+  function MsgHTML($message,$basedir='') ... where:
+  $basedir is the fully qualified path
+* fixed MsgHTML() function:
+  - Embedded Images where images are specified by <protocol>:// will not be altered or embedded
+* fixed the return value of SMTP exit code ( pclose )
+* addressed issue of multibyte characters in subject line and truncating
+* added ability to have user specified Message ID
+  (default is still that PHPMailer create a unique Message ID)
+* corrected unidentified message type to 'application/octet-stream'
+* fixed chunk_split() multibyte issue (thanks to Colin Brown, et al).
+* added check for added attachments
+* enhanced conversion of HTML to text in MsgHTML (thanks to "brunny")
+
+Version 2.0.1 (Sun, Dec 02 2007)
+* corrected incorrect version numbers in all three classes
+
+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.8.0/trunk/wb/include/phpmailer/ChangeLog.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/class.phpmailer.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/class.phpmailer.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/class.phpmailer.php	(revision 1130)
@@ -0,0 +1,1909 @@
+<?php
+/*~ class.phpmailer.php
+.---------------------------------------------------------------------------.
+|  Software: PHPMailer - PHP email class                                    |
+|   Version: 2.0.4                                                          |
+|   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 - 2009 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.4";
+
+  /**
+   * 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          = '';
+
+  /**
+   * Sets the message ID to be used in the Message-Id header.
+   * If empty, a unique id will be generated.
+   * @var string
+   */
+  var $MessageID         = '';
+
+  /////////////////////////////////////////////////
+  // 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";
+  var $sign_cert_file  = "";
+  var $sign_key_file   = "";
+  var $sign_key_pass   = "";
+
+  /////////////////////////////////////////////////
+  // 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);
+    if (version_compare(phpversion(), '4.2.3') == -1) {
+      $result = $result >> 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);
+
+    $params = sprintf("-oi -f %s", $this->Sender);
+    if ($this->Sender != '' && strlen(ini_get('safe_mode')) < 1) {
+      $old_from = ini_get('sendmail_from');
+      ini_set('sendmail_from', $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 {
+      $PHPMAILER_LANG = array();
+      $PHPMAILER_LANG["provide_address"]      = 'You must provide at least one ' .
+      $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 ' .
+      $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: ';
+      $PHPMAILER_LANG["signing"]              = 'Signing Error: ';
+    }
+    $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;
+    // If utf-8 encoding is used, we will need to make sure we don't
+    // split multibyte characters when we wrap
+    $is_utf8 = (strtolower($this->CharSet) == "utf-8");
+
+    $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 ($is_utf8) {
+                $len = $this->UTF8CharBoundary($word, $len);
+              } elseif (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 ($is_utf8) {
+              $len = $this->UTF8CharBoundary($word, $len);
+            } elseif (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;
+  }
+
+  /**
+   * Finds last character boundary prior to maxLength in a utf-8
+   * quoted (printable) encoded string.
+   * Original written by Colin Brown.
+   * @access private
+   * @param string $encodedText utf-8 QP text
+   * @param int    $maxLength   find last character boundary prior to this length
+   * @return int
+   */
+  function UTF8CharBoundary($encodedText, $maxLength) {
+    $foundSplitPos = false;
+    $lookBack = 3;
+    while (!$foundSplitPos) {
+      $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack);
+      $encodedCharPos = strpos($lastChunk, "=");
+      if ($encodedCharPos !== false) {
+        // Found start of encoded character byte within $lookBack block.
+        // Check the encoded byte value (the 2 chars after the '=')
+        $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2);
+        $dec = hexdec($hex);
+        if ($dec < 128) { // Single byte character.
+          // If the encoded char was found at pos 0, it will fit
+          // otherwise reduce maxLength to start of the encoded char
+          $maxLength = ($encodedCharPos == 0) ? $maxLength :
+          $maxLength - ($lookBack - $encodedCharPos);
+          $foundSplitPos = true;
+        } elseif ($dec >= 192) { // First byte of a multi byte character
+          // Reduce maxLength to split at start of character
+          $maxLength = $maxLength - ($lookBack - $encodedCharPos);
+          $foundSplitPos = true;
+        } elseif ($dec < 192) { // Middle byte of a multi byte character, look further back
+          $lookBack += 3;
+        }
+      } else {
+        // No encoded character found
+        $foundSplitPos = true;
+      }
+    }
+    return $maxLength;
+  }
+
+  /**
+   * 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:;');
+      }
+    }
+
+    $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)));
+    }
+
+    if($this->MessageID != '') {
+      $result .= $this->HeaderLine('Message-ID',$this->MessageID);
+    } else {
+      $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])));
+    }
+    if (!$this->sign_key_file) {
+      $result .= $this->HeaderLine('MIME-Version', '1.0');
+      $result .= $this->GetMailMIME();
+    }
+
+    return $result;
+  }
+
+  /**
+   * Returns the message MIME.
+   * @access private
+   * @return string
+   */
+  function GetMailMIME() {
+    $result = '';
+    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 = '';
+    if ($this->sign_key_file) {
+      $result .= $this->GetMailMIME();
+    }
+
+    $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 = '';
+    } else if ($this->sign_key_file) {
+      $file = tempnam("", "mail");
+      $fp = fopen($file, "w");
+      fwrite($fp, $result);
+      fclose($fp);
+      $signed = tempnam("", "signed");
+
+      if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), null)) {
+        $fp = fopen($signed, "r");
+        $result = fread($fp, filesize($this->sign_key_file));
+        $result = '';
+        while(!feof($fp)){
+          $result = $result . fread($fp, 1024);
+        }
+        fclose($fp);
+      } else {
+        $this->SetError($this->Lang("signing").openssl_error_string());
+        $result = '';
+      }
+
+      unlink($file);
+      unlink($signed);
+    }
+
+    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, $this->EncodeHeader($this->SecureHeader($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, $this->EncodeHeader($this->SecureHeader($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';
+      if (function_exists('mb_strlen') && $this->HasMultiBytes($str)) {
+     // Use a custom function which correctly encodes and wraps long
+     // multibyte strings without breaking lines within a character
+        $encoded = $this->Base64EncodeWrapMB($str);
+      } else {
+        $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;
+  }
+
+  /**
+   * Checks if a string contains multibyte characters.
+   * @access private
+   * @param string $str multi-byte text to wrap encode
+   * @return bool
+   */
+  function HasMultiBytes($str) {
+    if (function_exists('mb_strlen')) {
+      return (strlen($str) > mb_strlen($str, $this->CharSet));
+    } else { // Assume no multibytes (we can't handle without mbstring functions anyway)
+      return False;
+    }
+  }
+
+  /**
+   * Correctly encodes and wraps long multibyte strings for mail headers
+   * without breaking lines within a character.
+   * Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php
+   * @access private
+   * @param string $str multi-byte text to wrap encode
+   * @return string
+   */
+  function Base64EncodeWrapMB($str) {
+    $start = "=?".$this->CharSet."?B?";
+    $end = "?=";
+    $encoded = "";
+
+    $mb_length = mb_strlen($str, $this->CharSet);
+    // Each line must have length <= 75, including $start and $end
+    $length = 75 - strlen($start) - strlen($end);
+    // Average multi-byte ratio
+    $ratio = $mb_length / strlen($str);
+    // Base64 has a 4:3 ratio
+    $offset = $avgLength = floor($length * $ratio * .75);
+
+    for ($i = 0; $i < $mb_length; $i += $offset) {
+      $lookBack = 0;
+
+      do {
+        $offset = $avgLength - $lookBack;
+        $chunk = mb_substr($str, $i, $offset, $this->CharSet);
+        $chunk = base64_encode($chunk);
+        $lookBack++;
+      }
+      while (strlen($chunk) > $length);
+
+      $encoded .= $chunk . $this->LE;
+    }
+
+    // Chomp the last linefeed
+    $encoded = substr($encoded, 0, -strlen($this->LE));
+    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 $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,$basedir='') {
+    preg_match_all("/(src|background)=\"(.*)\"/Ui", $message, $images);
+    if(isset($images[2])) {
+      foreach($images[2] as $i => $url) {
+        // do not change urls for absolute images (thanks to corvuscorax)
+        if (!preg_match('/^[A-z][A-z]*:\/\//',$url)) {
+          $filename = basename($url);
+          $directory = dirname($url);
+          ($directory == '.')?$directory='':'';
+          $cid = 'cid:' . md5($filename);
+          $fileParts = split("\.", $filename);
+          $ext = $fileParts[1];
+          $mimeType = $this->_mime_types($ext);
+          if ( strlen($basedir) > 1 && substr($basedir,-1) != '/') { $basedir .= '/'; }
+          if ( strlen($directory) > 1 && substr($directory,-1) != '/') { $directory .= '/'; }
+          if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64',$mimeType) ) {
+            $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message);
+          }
+        }
+      }
+    }
+    $this->IsHTML(true);
+    $this->Body = $message;
+    $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s','',$message)));
+    if ( !empty($textMsg) && empty($this->AltBody) ) {
+      $this->AltBody = html_entity_decode($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(
+      'ai'    =>  'application/postscript',
+      'aif'   =>  'audio/x-aiff',
+      'aifc'  =>  'audio/x-aiff',
+      'aiff'  =>  'audio/x-aiff',
+      'avi'   =>  'video/x-msvideo',
+      'bin'   =>  'application/macbinary',
+      'bmp'   =>  'image/bmp',
+      'class' =>  'application/octet-stream',
+      'cpt'   =>  'application/mac-compactpro',
+      'css'   =>  'text/css',
+      'dcr'   =>  'application/x-director',
+      'dir'   =>  'application/x-director',
+      'dll'   =>  'application/octet-stream',
+      'dms'   =>  'application/octet-stream',
+      'doc'   =>  'application/msword',
+      'dvi'   =>  'application/x-dvi',
+      'dxr'   =>  'application/x-director',
+      'eml'   =>  'message/rfc822',
+      'eps'   =>  'application/postscript',
+      'exe'   =>  'application/octet-stream',
+      'gif'   =>  'image/gif',
+      'gtar'  =>  'application/x-gtar',
+      'htm'   =>  'text/html',
+      'html'  =>  'text/html',
+      'jpe'   =>  'image/jpeg',
+      'jpeg'  =>  'image/jpeg',
+      'jpg'   =>  'image/jpeg',
+      'hqx'   =>  'application/mac-binhex40',
+      'js'    =>  'application/x-javascript',
+      'lha'   =>  'application/octet-stream',
+      'log'   =>  'text/plain',
+      'lzh'   =>  'application/octet-stream',
+      'mid'   =>  'audio/midi',
+      'midi'  =>  'audio/midi',
+      'mif'   =>  'application/vnd.mif',
+      'mov'   =>  'video/quicktime',
+      'movie' =>  'video/x-sgi-movie',
+      'mp2'   =>  'audio/mpeg',
+      'mp3'   =>  'audio/mpeg',
+      'mpe'   =>  'video/mpeg',
+      'mpeg'  =>  'video/mpeg',
+      'mpg'   =>  'video/mpeg',
+      'mpga'  =>  'audio/mpeg',
+      'oda'   =>  'application/oda',
+      'pdf'   =>  'application/pdf',
+      'php'   =>  'application/x-httpd-php',
+      'php3'  =>  'application/x-httpd-php',
+      'php4'  =>  'application/x-httpd-php',
+      'phps'  =>  'application/x-httpd-php-source',
+      'phtml' =>  'application/x-httpd-php',
+      'png'   =>  'image/png',
+      'ppt'   =>  'application/vnd.ms-powerpoint',
+      'ps'    =>  'application/postscript',
+      'psd'   =>  'application/octet-stream',
+      'qt'    =>  'video/quicktime',
+      'ra'    =>  'audio/x-realaudio',
+      'ram'   =>  'audio/x-pn-realaudio',
+      'rm'    =>  'audio/x-pn-realaudio',
+      'rpm'   =>  'audio/x-pn-realaudio-plugin',
+      'rtf'   =>  'text/rtf',
+      'rtx'   =>  'text/richtext',
+      'rv'    =>  'video/vnd.rn-realvideo',
+      'sea'   =>  'application/octet-stream',
+      'shtml' =>  'text/html',
+      'sit'   =>  'application/x-stuffit',
+      'so'    =>  'application/octet-stream',
+      'smi'   =>  'application/smil',
+      'smil'  =>  'application/smil',
+      'swf'   =>  'application/x-shockwave-flash',
+      'tar'   =>  'application/x-tar',
+      'text'  =>  'text/plain',
+      'txt'   =>  'text/plain',
+      'tgz'   =>  'application/x-tar',
+      'tif'   =>  'image/tiff',
+      'tiff'  =>  'image/tiff',
+      'wav'   =>  'audio/x-wav',
+      'wbxml' =>  'application/vnd.wap.wbxml',
+      'wmlc'  =>  'application/vnd.wap.wmlc',
+      'word'  =>  'application/msword',
+      'xht'   =>  'application/xhtml+xml',
+      'xhtml' =>  'application/xhtml+xml',
+      'xl'    =>  'application/excel',
+      'xls'   =>  'application/vnd.ms-excel',
+      'xml'   =>  'text/xml',
+      'xsl'   =>  'text/xml',
+      'zip'   =>  'application/zip'
+    );
+    return ( ! isset($mimes[strtolower($ext)])) ? 'application/octet-stream' : $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;
+  }
+
+  /**
+   * Set the private key file and password to sign the message.
+   *
+   * @access public
+   * @param string $key_filename Parameter File Name
+   * @param string $key_pass Password for private key
+   */
+  function Sign($cert_filename, $key_filename, $key_pass) {
+    $this->sign_cert_file = $cert_filename;
+    $this->sign_key_file = $key_filename;
+    $this->sign_key_pass = $key_pass;
+  }
+
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/wb/include/phpmailer/class.phpmailer.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/class.pop3.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/class.pop3.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/class.pop3.php	(revision 1130)
@@ -0,0 +1,436 @@
+<?php
+/*~ class.pop3.php
+.---------------------------------------------------------------------------.
+|  Software: PHPMailer - PHP email class                                    |
+|   Version: 2.0.4                                                          |
+|   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)        |
+'---------------------------------------------------------------------------'
+
+/**
+ * POP Before SMTP Authentication Class
+ *
+ * Author: Richard Davey (rich@corephp.co.uk)
+ * License: LGPL, see PHPMailer License
+ *
+ * Specifically for PHPMailer to allow POP before SMTP authentication.
+ * Does not yet work with APOP - if you have an APOP account, contact me
+ * and we can test changes to this script.
+ *
+ * This class is based on the structure of the SMTP class by Chris Ryan
+ *
+ * This class is rfc 1939 compliant and implements all the commands
+ * required for POP3 connection, authentication and disconnection.
+ *
+ * @package PHPMailer
+ * @author Richard Davey
+ */
+
+class POP3
+{
+  /**
+   * Default POP3 port
+   * @var int
+   */
+  var $POP3_PORT = 110;
+
+  /**
+   * Default Timeout
+   * @var int
+   */
+  var $POP3_TIMEOUT = 30;
+
+  /**
+   * POP3 Carriage Return + Line Feed
+   * @var string
+   */
+  var $CRLF = "\r\n";
+
+  /**
+   * Displaying Debug warnings? (0 = now, 1+ = yes)
+   * @var int
+   */
+  var $do_debug = 2;
+
+  /**
+   * POP3 Mail Server
+   * @var string
+   */
+  var $host;
+
+  /**
+   * POP3 Port
+   * @var int
+   */
+  var $port;
+
+  /**
+   * POP3 Timeout Value
+   * @var int
+   */
+  var $tval;
+
+  /**
+   * POP3 Username
+   * @var string
+   */
+  var $username;
+
+  /**
+   * POP3 Password
+   * @var string
+   */
+  var $password;
+
+  /**#@+
+   * @access private
+   */
+  var $pop_conn;
+  var $connected;
+  var $error;     //  Error log array
+  /**#@-*/
+
+  /**
+   * Constructor, sets the initial values
+   *
+   * @return POP3
+   */
+  function POP3 ()
+    {
+      $this->pop_conn = 0;
+      $this->connected = false;
+      $this->error = null;
+    }
+
+  /**
+   * Combination of public events - connect, login, disconnect
+   *
+   * @param string $host
+   * @param integer $port
+   * @param integer $tval
+   * @param string $username
+   * @param string $password
+   */
+  function Authorise ($host, $port = false, $tval = false, $username, $password, $debug_level = 0)
+  {
+    $this->host = $host;
+
+    //  If no port value is passed, retrieve it
+    if ($port == false)
+    {
+      $this->port = $this->POP3_PORT;
+    }
+    else
+    {
+      $this->port = $port;
+    }
+
+    //  If no port value is passed, retrieve it
+    if ($tval == false)
+    {
+      $this->tval = $this->POP3_TIMEOUT;
+    }
+    else
+    {
+      $this->tval = $tval;
+    }
+
+    $this->do_debug = $debug_level;
+    $this->username = $username;
+    $this->password = $password;
+
+    //  Refresh the error log
+      $this->error = null;
+
+      //  Connect
+    $result = $this->Connect($this->host, $this->port, $this->tval);
+
+    if ($result)
+    {
+      $login_result = $this->Login($this->username, $this->password);
+
+      if ($login_result)
+      {
+        $this->Disconnect();
+
+        return true;
+      }
+
+    }
+
+    //  We need to disconnect regardless if the login succeeded
+    $this->Disconnect();
+
+    return false;
+  }
+
+  /**
+   * Connect to the POP3 server
+   *
+   * @param string $host
+   * @param integer $port
+   * @param integer $tval
+   * @return boolean
+   */
+  function Connect ($host, $port = false, $tval = 30)
+    {
+    //  Are we already connected?
+    if ($this->connected)
+    {
+      return true;
+    }
+
+    /*
+      On Windows this will raise a PHP Warning error if the hostname doesn't exist.
+      Rather than supress it with @fsockopen, let's capture it cleanly instead
+    */
+
+    set_error_handler(array(&$this, 'catchWarning'));
+
+    //  Connect to the POP3 server
+    $this->pop_conn = fsockopen($host,    //  POP3 Host
+                  $port,    //  Port #
+                  $errno,   //  Error Number
+                  $errstr,  //  Error Message
+                  $tval);   //  Timeout (seconds)
+
+    //  Restore the error handler
+    restore_error_handler();
+
+    //  Does the Error Log now contain anything?
+    if ($this->error && $this->do_debug >= 1)
+    {
+        $this->displayErrors();
+    }
+
+    //  Did we connect?
+      if ($this->pop_conn == false)
+      {
+        //  It would appear not...
+        $this->error = array(
+          'error' => "Failed to connect to server $host on port $port",
+          'errno' => $errno,
+          'errstr' => $errstr
+        );
+
+        if ($this->do_debug >= 1)
+        {
+          $this->displayErrors();
+        }
+
+        return false;
+      }
+
+      //  Increase the stream time-out
+
+      //  Check for PHP 4.3.0 or later
+      if (version_compare(phpversion(), '4.3.0', 'ge'))
+      {
+        stream_set_timeout($this->pop_conn, $tval, 0);
+      }
+      else
+      {
+        //  Does not work on Windows
+        if (substr(PHP_OS, 0, 3) !== 'WIN')
+        {
+          socket_set_timeout($this->pop_conn, $tval, 0);
+        }
+      }
+
+    //  Get the POP3 server response
+      $pop3_response = $this->getResponse();
+
+      //  Check for the +OK
+      if ($this->checkResponse($pop3_response))
+      {
+      //  The connection is established and the POP3 server is talking
+      $this->connected = true;
+        return true;
+      }
+
+    }
+
+    /**
+     * Login to the POP3 server (does not support APOP yet)
+     *
+     * @param string $username
+     * @param string $password
+     * @return boolean
+     */
+    function Login ($username = '', $password = '')
+    {
+      if ($this->connected == false)
+      {
+        $this->error = 'Not connected to POP3 server';
+
+        if ($this->do_debug >= 1)
+        {
+          $this->displayErrors();
+        }
+      }
+
+      if (empty($username))
+      {
+        $username = $this->username;
+      }
+
+      if (empty($password))
+      {
+        $password = $this->password;
+      }
+
+    $pop_username = "USER $username" . $this->CRLF;
+    $pop_password = "PASS $password" . $this->CRLF;
+
+      //  Send the Username
+      $this->sendString($pop_username);
+      $pop3_response = $this->getResponse();
+
+      if ($this->checkResponse($pop3_response))
+      {
+        //  Send the Password
+        $this->sendString($pop_password);
+        $pop3_response = $this->getResponse();
+
+        if ($this->checkResponse($pop3_response))
+        {
+          return true;
+        }
+        else
+        {
+          return false;
+        }
+      }
+      else
+      {
+        return false;
+      }
+    }
+
+    /**
+     * Disconnect from the POP3 server
+     */
+    function Disconnect ()
+    {
+      $this->sendString('QUIT');
+
+      fclose($this->pop_conn);
+    }
+
+    /*
+      ---------------
+      Private Methods
+      ---------------
+    */
+
+    /**
+     * Get the socket response back.
+     * $size is the maximum number of bytes to retrieve
+     *
+     * @param integer $size
+     * @return string
+     */
+    function getResponse ($size = 128)
+    {
+      $pop3_response = fgets($this->pop_conn, $size);
+
+      return $pop3_response;
+    }
+
+    /**
+     * Send a string down the open socket connection to the POP3 server
+     *
+     * @param string $string
+     * @return integer
+     */
+    function sendString ($string)
+    {
+      $bytes_sent = fwrite($this->pop_conn, $string, strlen($string));
+
+      return $bytes_sent;
+
+    }
+
+    /**
+     * Checks the POP3 server response for +OK or -ERR
+     *
+     * @param string $string
+     * @return boolean
+     */
+    function checkResponse ($string)
+    {
+      if (substr($string, 0, 3) !== '+OK')
+      {
+        $this->error = array(
+          'error' => "Server reported an error: $string",
+          'errno' => 0,
+          'errstr' => ''
+        );
+
+        if ($this->do_debug >= 1)
+        {
+          $this->displayErrors();
+        }
+
+        return false;
+      }
+      else
+      {
+        return true;
+      }
+
+    }
+
+    /**
+     * If debug is enabled, display the error message array
+     *
+     */
+    function displayErrors ()
+    {
+      echo '<pre>';
+
+      foreach ($this->error as $single_error)
+    {
+        print_r($single_error);
+    }
+
+      echo '</pre>';
+    }
+
+  /**
+   * Takes over from PHP for the socket warning handler
+   *
+   * @param integer $errno
+   * @param string $errstr
+   * @param string $errfile
+   * @param integer $errline
+   */
+  function catchWarning ($errno, $errstr, $errfile, $errline)
+  {
+    $this->error[] = array(
+      'error' => "Connecting to the POP3 server raised a PHP warning: ",
+      'errno' => $errno,
+      'errstr' => $errstr
+    );
+  }
+
+  //  End of class
+}
+?>
Index: tags/2.8.0/trunk/wb/include/phpmailer/README
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/README	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/README	(revision 1130)
@@ -0,0 +1,174 @@
+/*******************************************************************
+* The http://phpmailer.codeworxtech.com/ website now carries a few *
+* advertisements through the Google Adsense network. Please visit  *
+* the advertiser sites and help us offset some of our costs.       *
+* Thanks ....                                                      *
+********************************************************************/
+
+PHPMailer
+Full Featured Email Transfer Class for PHP
+==========================================
+
+Version 2.0.4 (April 02, 2009)
+
+This is the last version to support PHP4. We've made the move to PHP5 and
+all of our efforts now are into PHPMailer for PHP5/6.
+
+Version 2.0.3 (November 08, 2008)
+
+PHP4 continues to be a major platform for developers. We are responding
+to the emails received to continue development for PHP4 with this 
+release.
+
+We have removed the /phpdoc from the downloads. All documentation is now on
+the http://phpmailer.codeworxtech.com website.
+
+For all other changes and notes, please see the changelog.
+
+Donations are accepted at PayPal with our id "paypal@worxteam.com".
+
+Version 2.2 (July 15 2008)
+
+- see the changelog.
+
+Version 2.0.2 (June 04 2008)
+
+With this release, we are announcing that the development of PHPMailer for PHP5
+will be our focus from this date on. We have implemented all the enhancements
+and fixes from the sourceforge.net Tracker.
+
+** NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS.
+   IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE
+   APPRECIATED.
+
+We have now added S/MIME functionality (ability to digitally sign emails).
+BIG THANKS TO "sergiocambra" for posting this patch back in November 2007.
+The "Signed Emails" functionality adds the Sign method to pass the private key
+filename and the password to read it, and then email will be sent with
+content-type multipart/signed and with the digital signature attached.
+
+We have also included more example files to show the use of "sendmail", "mail()",
+"smtp", and "gmail".
+
+We are also looking for more programmers to join the volunteer development team.
+If you have an interest in this, please let us know.
+
+Enjoy!
+
+** 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/projects/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.8.0/trunk/wb/include/phpmailer/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/class.smtp.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/class.smtp.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/class.smtp.php	(revision 1130)
@@ -0,0 +1,1062 @@
+<?php
+/*~ class.smtp.php
+.---------------------------------------------------------------------------.
+|  Software: PHPMailer - PHP email class                                    |
+|   Version: 2.0.4                                                          |
+|   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.8.0/trunk/wb/include/phpmailer/class.smtp.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/phpmailer/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/phpmailer/LICENSE
===================================================================
--- tags/2.8.0/trunk/wb/include/phpmailer/LICENSE	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/phpmailer/LICENSE	(revision 1130)
@@ -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.8.0/trunk/wb/include/phpmailer/LICENSE
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/edit_area.css
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/edit_area.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/edit_area.css	(revision 1130)
@@ -0,0 +1,530 @@
+body, html{
+	margin: 0; 
+	padding: 0;
+	height: 100%;
+	border: none;
+	overflow: hidden;
+	background-color: #FFF;
+}
+
+body, html, table, form, textarea{
+	font: 12px monospace, sans-serif;
+}
+
+#editor{
+	border: solid #888 1px;
+	overflow: hidden;
+}
+
+#result{
+	z-index: 4; 
+	overflow-x: auto;
+	overflow-y: scroll;
+	border-top: solid #888 1px;
+	border-bottom: solid #888 1px;
+	position: relative;
+	clear: both;
+}
+
+#result.empty{
+	overflow: hidden;
+}
+
+#container{
+	overflow: hidden;
+	border: solid blue 0;
+	position: relative; 
+	z-index: 10;
+	padding: 0 5px 0 45px;
+	/*padding-right: 5px;*/ 
+}
+
+#textarea{
+	position: relative; 
+	top: 0; 
+	left: 0;
+	margin: 0;
+	padding: 0;
+	width: 100%;
+	height: 100%; 
+	overflow: hidden;  
+	z-index: 7; 
+	border-width: 0;
+	background-color: transparent;
+	resize: none;
+}
+
+#textarea, #textarea:hover{
+	outline: none;	/* safari outline fix */
+}
+
+#content_highlight{
+	white-space: pre;
+	margin: 0;
+	padding: 0;
+	position : absolute; 
+	z-index: 4; 
+	overflow: visible;
+}
+
+
+#selection_field, #selection_field_text{
+	margin: 0; 
+	background-color: #E1F2F9; 
+/*	height: 1px; */  
+	position: absolute;
+	z-index: 5;
+	top: -100px;
+	padding: 0;
+	white-space: pre;
+	overflow: hidden;
+}
+
+#selection_field.show_colors {
+	z-index: 3;
+	background-color:#EDF9FC;
+	
+}
+
+#selection_field strong{
+	font-weight:normal;
+}
+
+#selection_field.show_colors *, #selection_field_text * {
+	visibility: hidden;
+}
+
+#selection_field_text{
+	background-color:transparent;
+}
+
+#selection_field_text strong{
+	font-weight:normal;
+	background-color:#3399FE;
+	color: #FFF;
+	visibility:visible;
+}
+
+#container.word_wrap #content_highlight,
+#container.word_wrap #selection_field,
+#container.word_wrap #selection_field_text,
+#container.word_wrap #test_font_size{
+	white-space: pre-wrap;       /* css-3 */
+	white-space: -moz-pre-wrap !important;  /* Mozilla, since 1999 */
+	white-space: -pre-wrap;      /* Opera 4-6 */
+	white-space: -o-pre-wrap;    /* Opera 7 */
+	word-wrap: break-word;       /* Internet Explorer 5.5+ */
+	width: 99%;
+}
+
+#line_number{
+	position: absolute;
+	overflow: hidden;
+	border-right: solid black 1px;
+	z-index:8;
+	width: 38px;
+	padding: 0 5px 0 0;
+	margin: 0 0 0 -45px;
+	text-align: right;
+	color: #AAAAAA;
+}
+
+#test_font_size{
+	padding: 0; 
+	margin: 0; 
+	visibility: hidden;
+	position: absolute;
+	white-space: pre;
+}
+
+pre{
+	margin: 0;
+	padding: 0;
+}
+
+.hidden{
+	opacity: 0.2; 
+	filter:alpha(opacity=20);
+}
+
+#result .edit_area_cursor{
+	position: absolute; 
+	z-index:6; 
+	background-color: #FF6633;
+	top: -100px;
+	margin: 0;
+}
+
+#result .edit_area_selection_field .overline{
+	background-color: #996600;
+}
+
+
+/* area popup */
+.editarea_popup{
+	border: solid 1px #888888;
+	background-color: #ECE9D8; 
+	width: 250px; 
+	padding: 4px; 
+	position: absolute;
+	visibility: hidden; 
+	z-index: 15;
+	top: -500px;
+}
+
+.editarea_popup, .editarea_popup table{
+	font-family: sans-serif;
+	font-size: 10pt;
+}
+
+.editarea_popup img{
+	border: 0;
+}
+
+.editarea_popup .close_popup{
+	float: right; 
+	line-height: 16px; 
+	border: 0; 
+	padding: 0;
+}
+
+.editarea_popup h1,.editarea_popup h2,.editarea_popup h3,.editarea_popup h4,.editarea_popup h5,.editarea_popup h6{
+	margin: 0;
+	padding: 0;
+}
+
+.editarea_popup .copyright{
+	text-align: right;
+}	
+
+/* Area_search */
+div#area_search_replace{
+	/*width: 250px;*/
+}
+
+div#area_search_replace img{
+	border: 0;
+}
+
+div#area_search_replace div.button{
+	text-align: center;
+	line-height: 1.7em;
+}
+
+div#area_search_replace .button a{
+	cursor: pointer;
+	border: solid 1px #888888;
+	background-color: #DEDEDE;
+	text-decoration: none;
+	padding: 0 2px;
+	color: #000000;	
+	white-space: nowrap;
+}
+
+div#area_search_replace a:hover{	
+	/*border: solid 1px #888888;*/
+	background-color: #EDEDED;
+}
+
+div#area_search_replace  #move_area_search_replace{
+	cursor: move; 
+	border: solid 1px #888;
+}
+
+div#area_search_replace  #close_area_search_replace{
+	text-align: right; 
+	vertical-align: top; 
+	white-space: nowrap;
+}
+
+div#area_search_replace  #area_search_msg{
+	height: 18px; 
+	overflow: hidden; 
+	border-top: solid 1px #888; 
+	margin-top: 3px;
+}
+
+/* area help */
+#edit_area_help{
+	width: 350px;
+}
+
+#edit_area_help div.close_popup{
+	float: right;
+}
+
+/* area_toolbar */
+.area_toolbar{
+	/*font: 11px sans-serif;*/
+	width: 100%; 
+	/*height: 21px; */
+	margin: 0; 
+	padding: 0;
+	background-color: #ECE9D8;
+	text-align: center;
+}
+
+.area_toolbar, .area_toolbar table{
+	font: 11px sans-serif;
+}
+
+.area_toolbar img{
+	border: 0;
+	vertical-align: middle;
+}
+
+.area_toolbar input{
+	margin: 0;
+	padding: 0;
+}
+
+.area_toolbar select{
+    font-family: 'MS Sans Serif',sans-serif,Verdana,Arial;
+    font-size: 7pt;
+    font-weight: normal;
+    margin: 2px 0 0 0 ;
+    padding: 0;
+    vertical-align: top;
+    background-color: #F0F0EE;
+}
+
+table.statusbar{
+	width: 100%;
+}
+
+.area_toolbar td.infos{
+	text-align: center;
+	width: 130px;
+	border-right: solid 1px #888;
+	border-width: 0 1px 0 0;
+	padding: 0;
+}
+
+.area_toolbar td.total{
+	text-align: right;
+	width: 50px;
+	padding: 0;
+}
+
+.area_toolbar td.resize{
+	text-align: right;
+}
+/*
+.area_toolbar span{
+	line-height: 1px;
+	padding: 0;
+	margin: 0;
+}*/
+
+.area_toolbar span#resize_area{
+	cursor: nw-resize;
+	visibility: hidden;
+}
+
+/* toolbar buttons */
+.editAreaButtonNormal, .editAreaButtonOver, .editAreaButtonDown, .editAreaSeparator, .editAreaSeparatorLine, .editAreaButtonDisabled, .editAreaButtonSelected {
+	border: 0; margin: 0; padding: 0; background: transparent;
+	margin-top: 0;
+	margin-left: 1px;
+	padding: 0;
+}
+
+.editAreaButtonNormal {
+	border: 1px solid #ECE9D8 !important;
+	cursor: pointer;
+}
+
+.editAreaButtonOver {
+	border: 1px solid #0A246A !important;
+	cursor: pointer;
+	background-color: #B6BDD2;
+}
+
+.editAreaButtonDown {
+	cursor: pointer;
+	border: 1px solid #0A246A !important;
+	background-color: #8592B5;
+}
+
+.editAreaButtonSelected {
+	border: 1px solid #C0C0BB !important;
+	cursor: pointer;
+	background-color: #F4F2E8;
+}
+
+.editAreaButtonDisabled {
+	filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);
+	-moz-opacity:0.3;
+	opacity: 0.3;
+	border: 1px solid #F0F0EE !important;
+	cursor: pointer;
+}
+
+.editAreaSeparatorLine {
+	margin: 1px 2px;
+	background-color: #C0C0BB;
+	width: 2px;
+	height: 18px;
+}
+
+/* waiting screen */
+#processing{
+	display: none; 
+	background-color:#ECE9D8; 
+	border: solid #888 1px;
+	position: absolute; 
+	top: 0; 
+	left: 0;
+	width: 100%; 
+	height: 100%; 
+	z-index: 100; 
+	text-align: center;
+}
+
+#processing_text{
+	position:absolute;
+	left: 50%;
+	top: 50%;
+	width: 200px;
+	height: 20px; 
+	margin-left: -100px;
+	margin-top: -10px;
+	text-align: center;
+}
+/* end */
+
+
+/**** tab browsing area ****/
+#tab_browsing_area{
+	display: none;
+	background-color: #CCC9A8;
+	border-top: 1px solid #888;
+	text-align: left;
+	margin: 0;
+}
+
+#tab_browsing_list {
+	padding: 0; 
+	margin: 0; 
+	list-style-type: none;
+	white-space: nowrap;
+}
+#tab_browsing_list li {
+	float: left;
+	margin: -1px;
+}
+#tab_browsing_list a {
+	position: relative;
+	display: block; 
+	text-decoration: none; 
+	float: left; 
+	cursor: pointer;
+	line-height:14px;
+}
+
+#tab_browsing_list a span {
+	display: block; 
+	color: #000; 
+	background: #ECE9D8; 
+	border:	1px solid #888; 
+	border-width: 1px 1px 0; 
+	text-align: center; 
+	padding: 2px 2px 1px 4px; 
+	position: relative;	/*IE 6 hack */
+}
+
+#tab_browsing_list a b {
+	display: block; 
+	border-bottom: 2px solid #617994;
+}
+
+#tab_browsing_list a .edited {
+	display: none;
+}
+
+#tab_browsing_list a.edited .edited {
+	display: inline;
+}
+
+#tab_browsing_list a img{
+	margin-left: 7px;
+}
+
+#tab_browsing_list a.edited img{
+	margin-left: 3px;
+}
+
+#tab_browsing_list a:hover span {
+	background: #F4F2E8;
+	border-color: #0A246A;
+}
+
+#tab_browsing_list .selected a span{
+	background: #046380;
+	color: #FFF;
+}
+
+
+#no_file_selected{
+	height: 100%;
+	width: 150%; /* Opera need more than 100% */
+	background: #CCC;
+	display: none;
+	z-index: 20;
+	position: absolute;
+}
+
+
+/*** Non-editable mode ***/
+.non_editable #editor
+{
+	border-width: 0 1px;
+}
+
+.non_editable .area_toolbar
+{
+	display: none;
+}
+
+/*** Auto completion ***/
+#auto_completion_area
+{
+	background:	#FFF;
+	border:		solid 1px #888;
+	position:	absolute;
+	z-index:	15;
+	width:	280px;
+	height:	180px;
+	overflow: auto;
+	display:none;
+}
+
+#auto_completion_area a, #auto_completion_area a:visited
+{
+	display:	block;
+	padding:	0 2px 1px;
+	color:		#000;
+	text-decoration:none;
+}
+
+#auto_completion_area a:hover, #auto_completion_area a:focus, #auto_completion_area a.focus
+{
+	background:	#D6E1FE;
+	text-decoration:none;
+}
+
+#auto_completion_area ul
+{
+	margin:	0;
+	padding: 0;
+	list-style: none inside;
+}
+#auto_completion_area li
+{
+	padding:	0;
+}
+#auto_completion_area .prefix
+{
+	font-style: italic;
+	padding: 0 3px;
+}
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/editarea/langs/cs.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/cs.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/cs.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["cs"]={
+new_document: "Novรฝ dokument",
+search_button: "Najdi a nahraฤ",
+search_command: "Hledej dalลกรญ / otevลi vyhledรกvacรญ pole",
+search: "Hledej",
+replace: "Nahraฤ",
+replace_command: "Nahraฤ / otevลi vyhledรกvacรญ pole",
+find_next: "Najdi dalลกรญ",
+replace_all: "Nahraฤ vลกe",
+reg_exp: "platnรฉ vรฝrazy",
+match_case: "vyhodnocenรฉ vรฝrazy",
+not_found: "nenalezenรฉ.",
+occurrence_replaced: "vรฝskyty nahrazenรฉ.",
+search_field_empty: "Pole vyhledรกvรกnรญ je prรกzdnรฉ",
+restart_search_at_begin: "Dosaลพen konec souboru, zaฤรญnรกm od zaฤรกtku.",
+move_popup: "Pลesuล vyhledรกvacรญ okno",
+font_size: "--Velikost textu--",
+go_to_line: "Pลejdi na ลรกdek",
+go_to_line_prompt: "Pลejdi na ลรกdek:",
+undo: "krok zpฤt",
+redo: "znovu",
+change_smooth_selection: "Povolit nebo zakรกzat nฤkterรฉ ze zobrazenรฝch funkcรญ (รบฤelnฤjลกรญ zobrazenรญ poลพaduje vฤtลกรญ zatรญลพenรญ procesoru)",
+highlight: "Zvรฝrazลovรกnรญ syntaxe zap./vyp.",
+reset_highlight: "Obnovit zvรฝraznฤnรญ (v pลรญpadฤ nesrovnalostรญ)",
+word_wrap: "toggle word wrapping mode",
+help: "O programu",
+save: "Uloลพit",
+load: "Otevลรญt",
+line_abbr: "ล.",
+char_abbr: "S.",
+position: "Pozice",
+total: "Celkem",
+close_popup: "Zavลรญt okno",
+shortcuts: "Zkratky",
+add_tab: "Pลidat tabulovรกnรญ textu",
+remove_tab: "Odtsranit tabulovรกnรญ textu",
+about_notice: "Upozornฤnรญ! Funkce zvรฝrazลovรกnรญ textu je k dispozici pouze pro malรฝ text",
+toggle: "Pลepnout editor",
+accesskey: "Pลรญstupovรก klรกvesa",
+tab: "Zรกloลพka",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Zpracovรกvรกm ...",
+fullscreen: "Celรก obrazovka",
+syntax_selection: "--vyber zvรฝrazลovaฤ--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/es.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/es.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/es.js	(revision 1130)
@@ -0,0 +1,64 @@
+editAreaLoader.lang["es"]={
+new_document: "nuevo documento vacรญo",
+search_button: "buscar y reemplazar",
+search_command: "buscar siguiente / abrir รกrea de bรบsqueda",
+search: "buscar",
+replace: "reemplazar",
+replace_command: "reemplazar / abrir รกrea de bรบsqueda",
+find_next: "encontrar siguiente",
+replace_all: "reemplazar todos",
+reg_exp: "expresiones regulares",
+match_case: "coincidir capitalizaciรณn",
+not_found: "no encontrado.",
+occurrence_replaced: "ocurrencias reemplazadas.",
+search_field_empty: "Campo de bรบsqueda vacรญo",
+restart_search_at_begin: "Se ha llegado al final del รกrea. Se va a seguir desde el principio.",
+move_popup: "mover la ventana de bรบsqueda",
+font_size: "--Tamaรฑo de la fuente--",
+go_to_line: "ir a la lรญnea",
+go_to_line_prompt: "ir a la lรญnea nรบmero:",
+undo: "deshacer",
+redo: "rehacer",
+change_smooth_selection: "activar/desactivar algunas caracterรญsticas de visualizaciรณn (visualizaciรณn mรกs inteligente pero mรกs carga de CPU)",
+highlight: "intercambiar resaltado de sintaxis",
+reset_highlight: "reinicializar resaltado (si no esta sincronizado con el texto)",
+word_wrap: "toggle word wrapping mode",
+help: "acerca",
+save: "guardar",
+load: "cargar",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Posiciรณn",
+total: "Total",
+close_popup: "recuadro de cierre",
+shortcuts: "Atajos",
+add_tab: "aรฑadir tabulado al texto",
+remove_tab: "borrar tabulado del texto",
+about_notice: "Aviso: el resaltado de sintaxis sรณlo funciona para texto pequeรฑo",
+toggle: "Cambiar editor",
+accesskey: "Tecla de acceso",
+tab: "Tab",
+shift: "Mayรบsc",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Procesando...",
+fullscreen: "pantalla completa",
+syntax_selection: "--Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/fr.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/fr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/fr.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["fr"]={
+new_document: "nouveau document (efface le contenu)",
+search_button: "rechercher / remplacer",
+search_command: "rechercher suivant / ouvrir la fen&ecirc;tre de recherche",
+search: "rechercher",
+replace: "remplacer",
+replace_command: "remplacer / ouvrir la fen&ecirc;tre de recherche",
+find_next: "rechercher",
+replace_all: "tout remplacer",
+reg_exp: "expr. r&eacute;guli&egrave;re",
+match_case: "respecter la casse",
+not_found: "pas trouv&eacute;.",
+occurrence_replaced: "remplacements &eacute;ffectu&eacute;s.",
+search_field_empty: "Le champ de recherche est vide.",
+restart_search_at_begin: "Fin du texte atteint, poursuite au d&eacute;but.",
+move_popup: "d&eacute;placer la fen&ecirc;tre de recherche",
+font_size: "--Taille police--",
+go_to_line: "aller &agrave; la ligne",
+go_to_line_prompt: "aller a la ligne numero:",
+undo: "annuler",
+redo: "refaire",
+change_smooth_selection: "activer/d&eacute;sactiver des fonctions d'affichage (meilleur affichage mais plus de charge processeur)",
+highlight: "activer/d&eacute;sactiver la coloration syntaxique",
+reset_highlight: "r&eacute;initialiser la coloration syntaxique (si d&eacute;syncronis&eacute;e du texte)",
+word_wrap: "activer/d&eacute;sactiver les retours &agrave; la ligne automatiques",
+help: "&agrave; propos",
+save: "sauvegarder",
+load: "charger",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Position",
+total: "Total",
+close_popup: "fermer le popup",
+shortcuts: "Racourcis clavier",
+add_tab: "ajouter une tabulation dans le texte",
+remove_tab: "retirer une tabulation dans le texte",
+about_notice: "Note: la coloration syntaxique n'est pr&eacute;vue que pour de courts textes.",
+toggle: "basculer l'&eacute;diteur",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Maj",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "chargement...",
+fullscreen: "plein &eacute;cran",
+syntax_selection: "--Syntaxe--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Fermer le fichier"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/mk.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/mk.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/mk.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["mk"]={
+new_document: "ะะพะฒ ะดะพะบัะผะตะฝั",
+search_button: "ะะฐัะดะธ ะธ ะทะฐะผะตะฝะธ",
+search_command: "ะะฐัะฐั ัะปะตะดะฝะพ / ะัะฒะพัะธ ะฝะพะฒ ะฟัะพะทะพัะตั ะทะฐ ะฟัะตะฑะฐััะฒะฐัะต",
+search: "ะะฐัะฐั",
+replace: "ะะฐะผะตะฝะธ",
+replace_command: "ะะฐะผะตะฝะธ / ะัะฒะพัะธ ะฟัะพะทะพัะตั ะทะฐ ะฟัะตะฑะฐััะฒะฐัะต",
+find_next: "ะฝะฐัะดะธ ัะปะตะดะฝะพ",
+replace_all: "ะะฐะผะตะฝะธ ะณะธ ัะธัะต",
+reg_exp: "ะ ะตะณัะปะฐัะฝะธ ะธะทัะฐะทะธ",
+match_case: "ะะธัะฝะฐ ะต ะณะพะปะตะผะธะฝะฐัะฐ ะฝะฐ ะฑัะบะฒะธัะต",
+not_found: "ะฝะต ะต ะฟัะพะฝะฐัะดะตะฝะพ.",
+occurrence_replaced: "ะทะฐะผะตะฝะธ.",
+search_field_empty: "ะะพะปะตัะพ ะทะฐ ะฟัะตะฑะฐััะฒะฐัะต ะต ะฟัะฐะทะฝะพ",
+restart_search_at_begin: "ะัะฐั ะฝะฐ ะพะฑะปะฐััะฐ. ะกัะฐัััะฒะฐั ะพะด ะฟะพัะตัะพะบ.",
+move_popup: "ะะพะผะตััะธ ะณะพ ะฟัะพะทะพัะตัะพั",
+font_size: "--ะะพะปะตะผะธะฝะฐ ะฝะฐ ัะตะบััะพั--",
+go_to_line: "ะะดะธ ะฝะฐ ะปะธะฝะธัะฐ",
+go_to_line_prompt: "ะะดะธ ะฝะฐ ะปะธะฝะธัะฐ ัะพ ะฑัะพั:",
+undo: "ะัะฐัะธ",
+redo: "ะะพะฒัะพัะธ",
+change_smooth_selection: "ะะบะปััะธ/ะธัะบะปััะธ ะฝะตะบะพะธ ะบะฐัะฐะบัะตัะธััะธะบะธ ะทะฐ ะฟัะธะบะฐะท (ะฟะพะฟะฐะผะตัะตะฝ ะฟัะธะบะฐะท, ะฝะพ ะฟะพะณะพะปะตะผะพ ะพะฟัะตัะตััะฒะฐัะต ะทะฐ ะฟัะพัะตัะพัะพั)",
+highlight: "ะะบะปััะธ/ะธัะบะปััะธ ะพัะฒะตัะปัะฒะฐัะต ะฝะฐ ัะธะฝัะฐะบัะฐ",
+reset_highlight: "ะ ะตัะตัะธัะฐั ะณะพ ะพัะฒะตัะปัะฒะฐัะตัะพ ะฝะฐ ัะธะฝัะฐะบัะฐ (ะดะพะบะพะปะบั ะต ะดะตัะธะฝััะพะฝะธะทะธัะฐะฝo ัะพ ัะตะบััะพั)",
+word_wrap: "toggle word wrapping mode",
+help: "ะะฐ",
+save: "ะะฐััะฒะฐั",
+load: "ะัะธัะฐั",
+line_abbr: "ะะฝ",
+char_abbr: "ะะฝ",
+position: "ะะพะทะธัะธัะฐ",
+total: "ะะบัะฟะฝะพ",
+close_popup: "ะะฐัะฒะพัะธ ะณะพ ะฟัะพะทะพัะตัะพั",
+shortcuts: "ะัะฐัะตะฝะบะธ",
+add_tab: "ะะพะดะฐั ัะฐะฑัะปะฐัะธัะฐ ะฝะฐ ัะตะบััะพั",
+remove_tab: "ะััััะฐะฝะธ ัะฐ ัะฐะฑัะปะฐัะธัะฐัะฐ",
+about_notice: "ะะฐะฟะพะผะตะฝะฐ: ะัะฒะตัะปัะฒะฐัะตัะพ ะฝะฐ ัะธะฝัะฐะฝัะฐ ะต ัะฐะผะพ ะทะฐ ะบัะฐัะพะบ ัะตะบัั",
+toggle: "ะกะผะตะฝะธ ะฝะฐัะธะฝ ะฝะฐ ััะตะดัะฒะฐัะต",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "ะะฑัะฐะฑะพััะฒะฐะผ...",
+fullscreen: "ะฆะตะป ะฟัะพะทะพัะตั",
+syntax_selection: "--ะกะธะฝัะฐะบัะฐ--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "ะะทะฑะตัะธ ะดะฐัะพัะตะบะฐ"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/hr.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/hr.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/hr.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["hr"]={
+new_document: "Novi dokument",
+search_button: "Traลพi i izmijeni",
+search_command: "Traลพi dalje / Otvori prozor za traลพenje",
+search: "Traลพi",
+replace: "Izmijeni",
+replace_command: "Izmijeni / Otvori prozor za traลพenje",
+find_next: "Traลพi dalje",
+replace_all: "Izmjeni sve",
+reg_exp: "Regularni izrazi",
+match_case: "Bitna vel. slova",
+not_found: "nije naรฐeno.",
+occurrence_replaced: "izmjenjenih.",
+search_field_empty: "Prazno polje za traลพenje!",
+restart_search_at_begin: "Doลกao do kraja. Poรจeo od poรจetka.",
+move_popup: "Pomakni prozor",
+font_size: "--Veliรจina teksta--",
+go_to_line: "Odi na redak",
+go_to_line_prompt: "Odi na redak:",
+undo: "Vrati natrag",
+redo: "Napravi ponovo",
+change_smooth_selection: "Ukljuรจi/iskljuรจi neke moguรฆnosti prikaza (pametniji prikaz, ali zaguลกeniji CPU)",
+highlight: "Ukljuรจi/iskljuรจi bojanje sintakse",
+reset_highlight: "Ponovi kolorizaciju (ako je nesinkronizirana s tekstom)",
+word_wrap: "toggle word wrapping mode",
+help: "O edit_area",
+save: "Spremi",
+load: "Uรจitaj",
+line_abbr: "Ln",
+char_abbr: "Zn",
+position: "Pozicija",
+total: "Ukupno",
+close_popup: "Zatvori prozor",
+shortcuts: "Kratice",
+add_tab: "Dodaj tabulaciju",
+remove_tab: "Makni tabulaciju",
+about_notice: "Napomena: koloriziranje sintakse je samo za kratke kodove",
+toggle: "Prebaci naรจin ureรฐivanja",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Procesiram...",
+fullscreen: "Cijeli prozor",
+syntax_selection: "--Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/nl.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/nl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/nl.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["nl"]={
+new_document: "nieuw leeg document",
+search_button: "zoek en vervang",
+search_command: "zoek volgende / zoekscherm openen",
+search: "zoek",
+replace: "vervang",
+replace_command: "vervang / zoekscherm openen",
+find_next: "volgende vinden",
+replace_all: "alles vervangen",
+reg_exp: "reguliere expressies",
+match_case: "hoofdletter gevoelig",
+not_found: "niet gevonden.",
+occurrence_replaced: "object vervangen.",
+search_field_empty: "Zoek veld leeg",
+restart_search_at_begin: "Niet meer instanties gevonden, begin opnieuw",
+move_popup: "versleep zoek scherm",
+font_size: "--Letter grootte--",
+go_to_line: "Ga naar regel",
+go_to_line_prompt: "Ga naar regel nummer:",
+undo: "Ongedaan maken",
+redo: "Opnieuw doen",
+change_smooth_selection: "zet wat schermopties aan/uit (kan langzamer zijn)",
+highlight: "zet syntax highlight aan/uit",
+reset_highlight: "reset highlight (indien gedesynchronizeerd)",
+word_wrap: "toggle word wrapping mode",
+help: "informatie",
+save: "opslaan",
+load: "laden",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Positie",
+total: "Totaal",
+close_popup: "Popup sluiten",
+shortcuts: "Snelkoppelingen",
+add_tab: "voeg tabs toe in tekst",
+remove_tab: "verwijder tabs uit tekst",
+about_notice: "Notitie: syntax highlight functie is alleen voor kleine tekst",
+toggle: "geavanceerde bewerkingsopties",
+accesskey: "Accessknop",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Verwerken...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/pl.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/pl.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/pl.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["pl"]={
+new_document: "nowy dokument",
+search_button: "znajdลบ i zamieล",
+search_command: "znajdลบ nastฤpny",
+search: "znajdลบ",
+replace: "zamieล",
+replace_command: "zamieล",
+find_next: "nastฤpny",
+replace_all: "zamieล wszystko",
+reg_exp: "wyraลผenie regularne",
+match_case: "uwzglฤdnij wielkoลฤ liter<br />",
+not_found: "nie znaleziono.",
+occurrence_replaced: "wystฤpieล zamieniono.",
+search_field_empty: "Nie wprowadzono tekstu",
+restart_search_at_begin: "Koniec dokumentu. Wyszukiwanie od poczฤtku.",
+move_popup: "przesuล okienko wyszukiwania",
+font_size: "Rozmiar",
+go_to_line: "idลบ do linii",
+go_to_line_prompt: "numer linii:",
+undo: "cofnij",
+redo: "przywrรณฤ",
+change_smooth_selection: "wลฤcz/wyลฤcz niektรณre opcje wyglฤdu (zaawansowane opcje wyglฤdu obciฤลผajฤ procesor)",
+highlight: "wลฤcz/wyลฤcz podลwietlanie skลadni",
+reset_highlight: "odลwieลผ podลwietlanie skลadni (jeลli rozsynchronizowaลo siฤ z tekstem)",
+word_wrap: "toggle word wrapping mode",
+help: "o programie",
+save: "zapisz",
+load: "otwรณrz",
+line_abbr: "Ln",
+char_abbr: "Zn",
+position: "Pozycja",
+total: "W sumie",
+close_popup: "zamknij okienko",
+shortcuts: "Skrรณty klawiaturowe",
+add_tab: "dodaj wciฤcie do zaznaczonego tekstu",
+remove_tab: "usuล wciฤcie",
+about_notice: "Uwaga: podลwietlanie skลadni nie jest zalecane dla dลugich tekstรณw",
+toggle: "Wลฤcz/wyลฤcz edytor",
+accesskey: "Alt+",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Przetwarzanie...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/it.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/it.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/it.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["it"]={
+new_document: "nuovo documento vuoto",
+search_button: "cerca e sostituisci",
+search_command: "trova successivo / apri finestra di ricerca",
+search: "cerca",
+replace: "sostituisci",
+replace_command: "sostituisci / apri finestra di ricerca",
+find_next: "trova successivo",
+replace_all: "sostituisci tutti",
+reg_exp: "espressioni regolari",
+match_case: "confronta maiuscole/minuscole<br />",
+not_found: "non trovato.",
+occurrence_replaced: "occorrenze sostituite.",
+search_field_empty: "Campo ricerca vuoto",
+restart_search_at_begin: "Fine del testo raggiunta. Ricomincio dall'inizio.",
+move_popup: "sposta popup di ricerca",
+font_size: "-- Dimensione --",
+go_to_line: "vai alla linea",
+go_to_line_prompt: "vai alla linea numero:",
+undo: "annulla",
+redo: "ripeti",
+change_smooth_selection: "abilita/disabilita alcune caratteristiche della visualizzazione",
+highlight: "abilita/disabilita colorazione della sintassi",
+reset_highlight: "aggiorna colorazione (se non sincronizzata)",
+word_wrap: "toggle word wrapping mode",
+help: "informazioni su...",
+save: "salva",
+load: "carica",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Posizione",
+total: "Totale",
+close_popup: "chiudi popup",
+shortcuts: "Scorciatoie",
+add_tab: "aggiungi tabulazione",
+remove_tab: "rimuovi tabulazione",
+about_notice: "Avviso: la colorazione della sintassi vale solo con testo piccolo",
+toggle: "Abilita/disabilita editor",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "In corso...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/sk.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/sk.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/sk.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["sk"]={
+new_document: "novรฝ prรกzdy dokument",
+search_button: "vyhฤพadaj a nahraฤ",
+search_command: "hฤพadaj ฤalsลกie / otvor vyhฤพadรกvacie pole",
+search: "hฤพadaj",
+replace: "nahraฤ",
+replace_command: "nahraฤ / otvor vyhฤพadรกvacie pole",
+find_next: "nรกjdi ฤalลกie",
+replace_all: "nahraฤ vลกetko",
+reg_exp: "platnรฉ vรฝrazy",
+match_case: "zhodujรบce sa vรฝrazy",
+not_found: "nenรกjdenรฉ.",
+occurrence_replaced: "vรฝskyty nahradenรฉ.",
+search_field_empty: "Pole vyhฤพadรกvanie je prรกdzne",
+restart_search_at_begin: "End of area reached. Restart at begin.",
+move_popup: "presuล vyhฤพadรกvacie okno",
+font_size: "--Veฤพkosลฅ textu--",
+go_to_line: "prejdi na riadok",
+go_to_line_prompt: "prejdi na riadok:",
+undo: "krok spรคลฅ",
+redo: "prepracovaลฅ",
+change_smooth_selection: "povoliลฅ/zamietnรบลฅ niektorรฉ zo zobrazenรฝch funkciรญ (รบฤelnejลกie zobrazenie vyลพaduje  vรคฤลกie zaลฅaลพenie procesora CPU)",
+highlight: "prepnรบลฅ zvรฝrazลovanie syntaxe zap/vyp",
+reset_highlight: "zruลกiลฅ zvรฝrazลovanie (ak je nesynchronizovanรฉ s textom)",
+word_wrap: "toggle word wrapping mode",
+help: "o programe",
+save: "uloลพiลฅ",
+load: "naฤรญtaลฅ",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Pozรญcia",
+total: "Spolu",
+close_popup: "zavrieลฅ okno",
+shortcuts: "Skratky",
+add_tab: "pridaลฅ tabulovanie textu",
+remove_tab: "odstrรกniลฅ tabulovanie textu",
+about_notice: "Upozornenie: funkcia zvรฝrazลovania syntaxe je dostupnรก iba pre malรฝ text",
+toggle: "Prepnรบลฅ editor",
+accesskey: "Accesskey",
+tab: "Zรกloลพka",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Spracรบvam...",
+fullscreen: "cel=a obrazovka",
+syntax_selection: "--Vyber Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/zh.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/zh.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/zh.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["zh"]={
+new_document: "ๆฐๅปบ็ฉบ็ฝๆๆกฃ",
+search_button: "ๆฅๆพไธๆฟๆข",
+search_command: "ๆฅๆพไธไธไธช / ๆๅผๆฅๆพๆก",
+search: "ๆฅๆพ",
+replace: "ๆฟๆข",
+replace_command: "ๆฟๆข / ๆๅผๆฅๆพๆก",
+find_next: "ๆฅๆพไธไธไธช",
+replace_all: "ๅจ้จๆฟๆข",
+reg_exp: "ๆญฃๅ่กจ่พพๅผ",
+match_case: "ๅน้ๅคงๅฐๅ",
+not_found: "ๆชๆพๅฐ.",
+occurrence_replaced: "ๅค่ขซๆฟๆข.",
+search_field_empty: "ๆฅๆพๆกๆฒกๆๅๅฎน",
+restart_search_at_begin: "ๅทฒๅฐๅฐๆๆกฃๆซๅฐพ. ไปๅคด้ๆฐๆฅๆพ.",
+move_popup: "็งปๅจๆฅๆพๅฏน่ฏๆก",
+font_size: "--ๅญไฝๅคงๅฐ--",
+go_to_line: "่ฝฌๅฐ่ก",
+go_to_line_prompt: "่ฝฌๅฐ่ก:",
+undo: "ๆขๅค",
+redo: "้ๅ",
+change_smooth_selection: "ๅฏ็จ/็ฆๆญขไธไบๆพ็คบ็นๆง(ๆดๅฅฝ็ไฝๆด่่ดน่ตๆบ)",
+highlight: "ๅฏ็จ/็ฆๆญข่ฏญๆณ้ซไบฎ",
+reset_highlight: "้็ฝฎ่ฏญๆณ้ซไบฎ(ๅฝๆๆฌๆพ็คบไธๅๆญฅๆถ)",
+word_wrap: "toggle word wrapping mode",
+help: "ๅณไบ",
+save: "ไฟๅญ",
+load: "ๅ ่ฝฝ",
+line_abbr: "่ก",
+char_abbr: "ๅญ็ฌฆ",
+position: "ไฝ็ฝฎ",
+total: "ๆป่ฎก",
+close_popup: "ๅณ้ญๅฏน่ฏๆก",
+shortcuts: "ๅฟซๆท้ฎ",
+add_tab: "ๆทปๅ ๅถ่กจ็ฌฆ(Tab)",
+remove_tab: "็งป้คๅถ่กจ็ฌฆ(Tab)",
+about_notice: "ๆณจๆ๏ผ่ฏญๆณ้ซไบฎๅ่ฝไป็จไบ่พๅฐๅๅฎน็ๆๆฌ(ๆไปถๅๅฎนๅคชๅคงไผๅฏผ่ดๆต่งๅจๅๅบๆข)",
+toggle: "ๅๆข็ผ่พๅจ",
+accesskey: "ๅฟซๆท้ฎ",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "ๆญฃๅจๅค็ไธญ...",
+fullscreen: "ๅจๅฑ็ผ่พ",
+syntax_selection: "--่ฏญๆณ--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "ๅณ้ญๆไปถ"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/pt.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/pt.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/pt.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["pt"]={
+new_document: "Novo documento",
+search_button: "Localizar e substituir",
+search_command: "Localizar prรณximo",
+search: "Localizar",
+replace: "Substituir",
+replace_command: "Substituir",
+find_next: "Localizar",
+replace_all: "Subst. tudo",
+reg_exp: "Expressรตes regulares",
+match_case: "Diferenciar maiรบsculas e minรบsculas",
+not_found: "Nรฃo encontrado.",
+occurrence_replaced: "Ocorrรชncias substituidas",
+search_field_empty: "Campo localizar vazio.",
+restart_search_at_begin: "Fim das ocorrรชncias. Recomeรงar do inicio.",
+move_popup: "Mover janela",
+font_size: "--Tamanho da fonte--",
+go_to_line: "Ir para linha",
+go_to_line_prompt: "Ir para a linha:",
+undo: "Desfazer",
+redo: "Refazer",
+change_smooth_selection: "Opรงรตes visuais",
+highlight: "Cores de sintaxe",
+reset_highlight: "Resetar cores (se nรฃo sincronizado)",
+word_wrap: "toggle word wrapping mode",
+help: "Sobre",
+save: "Salvar",
+load: "Carregar",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Posiรงรฃo",
+total: "Total",
+close_popup: "Fechar",
+shortcuts: "Shortcuts",
+add_tab: "Adicionar tabulaรงรฃo",
+remove_tab: "Remover tabulaรงรฃo",
+about_notice: "Atenรงรฃo: Cores de sintaxe sรฃo indicados somente para textos pequenos",
+toggle: "Exibir editor",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Processando...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/ru.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/ru.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/ru.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["ru"]={
+new_document: "ะฝะพะฒัะน ะฟัััะพะน ะดะพะบัะผะตะฝั",
+search_button: "ะฟะพะธัะบ ะธ ะทะฐะผะตะฝะฐ",
+search_command: "ะธัะบะฐัั ัะปะตะดัััะธะน / ะพัะบัััั ะฟะฐะฝะตะปั ะฟะพะธัะบะฐ",
+search: "ะฟะพะธัะบ",
+replace: "ะทะฐะผะตะฝะฐ",
+replace_command: "ะทะฐะผะตะฝะธัั / ะพัะบัััั ะฟะฐะฝะตะปั ะฟะพะธัะบะฐ",
+find_next: "ะฝะฐะนัะธ ัะปะตะดัััะตะต",
+replace_all: "ะทะฐะผะตะฝะธัั ะฒัะต",
+reg_exp: "ัะตะณัะปััะฝะพะต ะฒััะฐะถะตะฝะธะต",
+match_case: "ััะธััะฒะฐัั ัะตะณะธััั",
+not_found: "ะฝะต ะฝะฐะนะดะตะฝะพ.",
+occurrence_replaced: "ะฒัะพะถะดะตะฝะธะต ะทะฐะผะตะฝะตะฝะพ.",
+search_field_empty: "ะะพะปะต ะฟะพะธัะบะฐ ะฟัััะพะต",
+restart_search_at_begin: "ะะพััะธะณะฝัั ะบะพะฝะตั ะดะพะบัะผะตะฝัะฐ. ะะฐัะธะฝะฐั ั ะฝะฐัะฐะปะฐ.",
+move_popup: "ะฟะตัะตะผะตััะธัั ะพะบะฝะพ ะฟะพะธัะบะฐ",
+font_size: "--ะ ะฐะทะผะตั ััะธััะฐ--",
+go_to_line: "ะฟะตัะตะนัะธ ะบ ัััะพะบะต",
+go_to_line_prompt: "ะฟะตัะตะนัะธ ะบ ัััะพะบะต ะฝะพะผะตั:",
+undo: "ะพัะผะตะฝะธัั",
+redo: "ะฒะตัะฝััั",
+change_smooth_selection: "ะฒะบะปััะธัั/ะพัะบะปััะธัั ะฝะตะบะพัะพััะต ััะฝะบัะธะธ ะฟัะพัะผะพััะฐ (ะฑะพะปะตะต ะบัะฐัะธะฒะพ, ะฝะพ ะฑะพะปััะต ะธัะฟะพะปัะทัะตั ะฟัะพัะตััะพั)",
+highlight: "ะฟะตัะตะบะปััะธัั ะฟะพะดัะฒะตัะบั ัะธะฝัะฐะบัะธัะฐ ะฒะบะปััะตะฝะฐ/ะฒัะบะปััะตะฝะฐ",
+reset_highlight: "ะฒะพัััะฐะฝะพะฒะธัั ะฟะพะดัะฒะตัะบั (ะตัะปะธ ัะฐะทัะธะฝััะพะฝะธะทะธัะพะฒะฐะฝะฐ ะพั ัะตะบััะฐ)",
+word_wrap: "toggle word wrapping mode",
+help: "ะพ ะฟัะพะณัะฐะผะผะต",
+save: "ัะพััะฐะฝะธัั",
+load: "ะทะฐะณััะทะธัั",
+line_abbr: "ะกัั",
+char_abbr: "ะกัะปะฑ",
+position: "ะะพะทะธัะธั",
+total: "ะัะตะณะพ",
+close_popup: "ะทะฐะบัััั ะฒัะฟะปัะฒะฐััะตะต ะพะบะฝะพ",
+shortcuts: "ะะพัััะธะต ะบะปะฐะฒะธัะธ",
+add_tab: "ะดะพะฑะฐะฒะธัั ัะฐะฑัะปััะธั ะฒ ัะตะบัั",
+remove_tab: "ัะฑัะฐัั ัะฐะฑัะปััะธั ะธะท ัะตะบััะฐ",
+about_notice: "ะะฝะธะผะฐะฝะธะต: ััะฝะบัะธั ะฟะพะดัะฒะตัะบะธ ัะธะฝัะฐะบัะธัะฐ ัะพะปัะบะพ ะดะปั ะฝะตะฑะพะปััะธั ัะตะบััะพะฒ",
+toggle: "ะะตัะตะบะปััะธัั ัะตะดะฐะบัะพั",
+accesskey: "ะะพัััะฐั ะบะปะฐะฒะธัะฐ",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "ะะฑัะฐะฑะพัะบะฐ...",
+fullscreen: "ะฟะพะปะฝัะน ัะบัะฐะฝ",
+syntax_selection: "--ะกะธะฝัะฐะบั--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "ะะฐะบัััั ัะฐะนะป"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/bg.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/bg.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/bg.js	(revision 1130)
@@ -0,0 +1,73 @@
+/*
+ *	Bulgarian translation
+ *	Author:		Valentin Hristov
+ *	Company:	SOFTKIT Bulgarian
+ *	Site:		http://www.softkit-bg.com
+ */
+editAreaLoader.lang["bg"]={
+new_document: "ะฝะพะฒ ะดะพะบัะผะตะฝั",
+search_button: "ััััะตะฝะต ะธ ะทะฐะผัะฝะฐ",
+search_command: "ััััะธ ัะปะตะดะฒะฐัะธั / ะพัะฒะพัะธ ะฟัะพะทะพัะตั ั ััััะฐัะบะฐ",
+search: "ััััะตะฝะต",
+replace: "ะทะฐะผัะฝะฐ",
+replace_command: "ะทะฐะผัะฝะฐ / ะพัะฒะพัะธ ะฟัะพะทะพัะตั ั ััััะฐัะบะฐ",
+find_next: "ะฝะฐะผะตัะธ ัะปะตะดะฒะฐัะธั",
+replace_all: "ะทะฐะผะตะฝะธ ะฒัะธัะบะธ",
+reg_exp: "ัะตะณะพะปััะฝะธ ะธะทัะฐะทะธ",
+match_case: "ััััะฒะธัะตะปะตะฝ ะบัะผ ัะตะณะธััััะฐ",
+not_found: "ะฝัะผะฐ ัะตะทัะปัะฐั.",
+occurrence_replaced: "ะทะฐะผัะฝะฐัะฐ ะต ะพัััะตััะฒะตะฝะฐ.",
+search_field_empty: "ะะพะปะตัะพ ะทะฐ ััััะตะฝะต ะต ะฟัะฐะทะฝะพ",
+restart_search_at_begin: "ะะพ ะบัะฐั ะฝะฐ ะดะพะบัะผะตะฝัะฐ. ะะพัะฝะธ ั ะฝะฐัะฐะปะพัะพ.",
+move_popup: "ะฟัะตะผะตััะธ ะฟัะพะทะพัะตัะฐ ั ััััะฐัะบะฐัะฐ",
+font_size: "--ะ ะฐะทะผะตั ะฝะฐ ััะธััะฐ--",
+go_to_line: "ะฟัะตะผะตะฝะธ ะบัะผ ัะตะดะฐ",
+go_to_line_prompt: "ะฟัะตะผะตะฝะธ ะบัะผ ะฝะพะผะตัะฐ ะฝะฐ ัะตะดะฐ:",
+undo: "ะพัะผะตะฝะธ",
+redo: "ะฒััะฝะธ",
+change_smooth_selection: "ะฒะบะปััะธ/ะธะทะบะปััะธ ะฝัะบะพะน ะพั ััะฝะบัะธะธัะต ะทะฐ ะฟัะตะณะปะตะด (ะฟะพ ะบัะฐัะธะฒะพ, ะฝะพ ะฟะพะฒะตัะต ะฝะฐัะพะฒะฐัะฒะฐ)",
+highlight: "ะฟัะตะฒะบะปััะฒะฐะฝะต ะฝะฐ ะพัะฒะตััะฒะฐะฝะต ะฝะฐ ัะธะฝัะฐะบัะธัะฐ ะฒะบะปััะตะฝะฐ/ะธะทะบะปััะตะฝะฐ",
+reset_highlight: "ะฒัััะฐะฝะพะฒะธ ะพัะฒะตััะฒะฐะฝะต ะฝะฐ ัะธะฝัะฐะบัะธัะฐ (ะฐะบะพ ะฝะต ะต ัะธะฝััะพะฝะธะทะธัะฐะฝ ั ัะตะบััะฐ)",
+word_wrap: "ัะตะถะธะผ ะฝะฐ ะฟัะตะฝะฐััะฝะต ะฝะฐ ะดัะปะณะธ ัะตะดะพะฒะต",
+help: "ะทะฐ ะฟัะพะณัะฐะผะฐัะฐ",
+save: "ััััะฐะฝะธ",
+load: "ะทะฐัะตะดะธ",
+line_abbr: "ะกัั",
+char_abbr: "ะกัะปะฑ",
+position: "ะะพะทะธัะธั",
+total: "ะัะธัะบะพ",
+close_popup: "ะทะฐัะฒะพัะธ ะฟัะพะทะพัะตัะฐ",
+shortcuts: "ะััะทะธ ะบะปะฐะฒะธัะธ",
+add_tab: "ะดะพะฑะฐะฒะธ ัะฐะฑัะปะฐัะธั ะฒ ัะตะบััะฐ",
+remove_tab: "ะฟัะตะผะฐัะฝะธ ัะฐะฑัะปะฐัะธััะฐ ะฒ ัะตะบััะฐ",
+about_notice: "ะะฝะธะผะฐะฝะธะต: ะธะทะฟะพะปะทะฒะฐะนัะต ััะฝะบัะธััะฐ ะพัะฒะตััะฒะฐะฝะต ะฝะฐ ัะธะฝัะฐะบัะธัะฐ ัะฐะผะพ ะทะฐ ะผะฐะปะบะธ ัะตะบััะพะฒะต",
+toggle: "ะัะตะฒะบะปััะธ ัะตะดะฐะบัะพั",
+accesskey: "ะััะท ะบะปะฐะฒะธั",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "ะะฐัะตะถะดะฐะฝะต...",
+fullscreen: "ะฝะฐ ััะป ะตะบัะฐะฝ",
+syntax_selection: "--ะกะธะฝัะฐะบัะธั--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "PHP",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "XML",
+syntax_c: "C",
+syntax_cpp: "C++",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "ะะฐัะฒะพัะธ ัะฐะนะปะฐ"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/de.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/de.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/de.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["de"]={
+new_document: "Neues Dokument",
+search_button: "Suchen und Ersetzen",
+search_command: "Weitersuchen / &ouml;ffne Suchfeld",
+search: "Suchen",
+replace: "Ersetzen",
+replace_command: "Ersetzen / &ouml;ffne Suchfeld",
+find_next: "Weitersuchen",
+replace_all: "Ersetze alle Treffer",
+reg_exp: "regul&auml;re Ausdr&uuml;cke",
+match_case: "passt auf den Begriff<br />",
+not_found: "Nicht gefunden.",
+occurrence_replaced: "Die Vorkommen wurden ersetzt.",
+search_field_empty: "Leeres Suchfeld",
+restart_search_at_begin: "Ende des zu durchsuchenden Bereiches erreicht. Es wird die Suche von Anfang an fortgesetzt.", //find a shorter translation
+move_popup: "Suchfenster bewegen",
+font_size: "--Schriftgr&ouml;&szlig;e--",
+go_to_line: "Gehe zu Zeile",
+go_to_line_prompt: "Gehe zu Zeilennummmer:",
+undo: "R&uuml;ckg&auml;ngig",
+redo: "Wiederherstellen",
+change_smooth_selection: "Aktiviere/Deaktiviere einige Features (weniger Bildschirmnutzung aber mehr CPU-Belastung)",
+highlight: "Syntax Highlighting an- und ausschalten",
+reset_highlight: "Highlighting zur&uuml;cksetzen (falls mit Text nicht konform)",
+word_wrap: "Toggle word wrapping mode",
+help: "Info",
+save: "Speichern",
+load: "&Ouml;ffnen",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Position",
+total: "Gesamt",
+close_popup: "Popup schlie&szlig;en",
+shortcuts: "Shortcuts",
+add_tab: "Tab zum Text hinzuf&uuml;gen",
+remove_tab: "Tab aus Text entfernen",
+about_notice: "Bemerkung: Syntax Highlighting ist nur f&uuml;r kurze Texte",
+toggle: "Editor an- und ausschalten",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "In Bearbeitung...",
+fullscreen: "Full-Screen",
+syntax_selection: "--Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/ja.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/ja.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/ja.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["ja"]={
+new_document: "ๆฐ่ฆไฝๆ",
+search_button: "ๆค็ดขใป็ฝฎๆ",
+search_command: "ๆฌกใๆค็ดข / ๆค็ดข็ชใ่กจ็คบ",
+search: "ๆค็ดข",
+replace: "็ฝฎๆ",
+replace_command: "็ฝฎๆ / ็ฝฎๆ็ชใ่กจ็คบ",
+find_next: "ๆฌกใๆค็ดข",
+replace_all: "ๅจ็ฝฎๆ",
+reg_exp: "ๆญฃ่ฆ่กจ็พ",
+match_case: "ๅคงๆๅญๅฐๆๅญใฎๅบๅฅ",
+not_found: "่ฆใคใใใพใใใ",
+occurrence_replaced: "็ฝฎๆใใพใใใ",
+search_field_empty: "ๆค็ดขๅฏพ่ฑกๆๅญๅใ็ฉบใงใใ",
+restart_search_at_begin: "็ต็ซฏใซ้ใใพใใใๅงใใซๆปใใพใ",
+move_popup: "ๆค็ดข็ชใ็งปๅ",
+font_size: "--ใใฉใณใใตใคใบ--",
+go_to_line: "ๆๅฎ่กใธ็งปๅ",
+go_to_line_prompt: "ๆๅฎ่กใธ็งปๅใใพใ:",
+undo: "ๅใซๆปใ",
+redo: "ใใ็ดใ",
+change_smooth_selection: "ในใ ใผใน่กจ็คบใฎๅใๆฟใ๏ผCPUใไฝฟใใพใ๏ผ",
+highlight: "ๆงๆๅผท่ชฟ่กจ็คบใฎๅใๆฟใ",
+reset_highlight: "ๆงๆๅผท่ชฟ่กจ็คบใฎใชใปใใ",
+word_wrap: "toggle word wrapping mode",
+help: "ใใซใใ่กจ็คบ",
+save: "ไฟๅญ",
+load: "่ชญใฟ่พผใฟ",
+line_abbr: "่ก",
+char_abbr: "ๆๅญ",
+position: "ไฝ็ฝฎ",
+total: "ๅ่จ",
+close_popup: "ใใใใขใใใ้ใใ",
+shortcuts: "ใทใงใผใใซใใ",
+add_tab: "ใฟใใๆฟๅฅใใ",
+remove_tab: "ใฟใใๅ้คใใ",
+about_notice: "ๆณจๆ๏ผๆงๆๅผท่ชฟ่กจ็คบใฏ็ญใใใญในใใงใใๆๅนใซๆฉ่ฝใใพใใใ",
+toggle: "ใใญในใใจใชใขใจeditAreaใฎๅใๆฟใ",
+accesskey: "ใขใฏใปในใญใผ",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "ๅฆ็ไธญใงใ...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/dk.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/dk.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/dk.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["dk"]={
+new_document: "nyt tomt dokument",
+search_button: "s&oslash;g og erstat",
+search_command: "find n&aelig;ste / &aring;ben s&oslash;gefelt",
+search: "s&oslash;g",
+replace: "erstat",
+replace_command: "erstat / &aring;ben s&oslash;gefelt",
+find_next: "find n&aelig;ste",
+replace_all: "erstat alle",
+reg_exp: "regular expressions",
+match_case: "forskel pรฅ store/sm&aring; bogstaver<br />",
+not_found: "not found.",
+occurrence_replaced: "occurences replaced.",
+search_field_empty: "Search field empty",
+restart_search_at_begin: "End of area reached. Restart at begin.",
+move_popup: "flyt sรธgepopup",
+font_size: "--Skriftstรธrrelse--",
+go_to_line: "g&aring; til linie",
+go_to_line_prompt: "gรฅ til linienummer:",
+undo: "fortryd",
+redo: "gentag",
+change_smooth_selection: "sl&aring; display funktioner til/fra (smartere display men mere CPU kr&aelig;vende)",
+highlight: "sl&aring; syntax highlight til/fra",
+reset_highlight: "nulstil highlight (hvis den er desynkroniseret fra teksten)",
+word_wrap: "toggle word wrapping mode",
+help: "om",
+save: "gem",
+load: "hent",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Position",
+total: "Total",
+close_popup: "luk popup",
+shortcuts: "Genveje",
+add_tab: "tilf&oslash;j tabulation til tekst",
+remove_tab: "fjern tabulation fra tekst",
+about_notice: "Husk: syntax highlight funktionen b&oslash;r kun bruge til sm&aring; tekster",
+toggle: "Sl&aring; editor til / fra",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Skift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Processing...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/fi.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/fi.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/fi.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["fi"]={
+new_document: "uusi tyhjรค dokumentti",
+search_button: "etsi ja korvaa",
+search_command: "etsi seuraava / avaa etsintรคvalikko",
+search: "etsi",
+replace: "korvaa",
+replace_command: "korvaa / avaa etsintรคvalikko",
+find_next: "etsi seuraava",
+replace_all: "korvaa kaikki",
+reg_exp: "sรครคnnรถlliset lausekkeet",
+match_case: "tรคsmรครค kirjainkokoon",
+not_found: "ei lรถytynyt.",
+occurrence_replaced: "esiintymรครค korvattu.",
+search_field_empty: "Haettava merkkijono on tyhjรค",
+restart_search_at_begin: "Alueen loppu saavutettiin. Aloitetaan alusta.",
+move_popup: "siirrรค etsintรคvalikkoa",
+font_size: "--Fontin koko--",
+go_to_line: "siirry riville",
+go_to_line_prompt: "mene riville:",
+undo: "peruuta",
+redo: "tee uudelleen",
+change_smooth_selection: "kytke/sammuta joitakin nรคyttรถtoimintoja (รlykkรครคmpi toiminta, mutta suurempi CPU kuormitus)",
+highlight: "kytke syntaksikorostus pรครคlle/pois",
+reset_highlight: "resetoi syntaksikorostus (jos teksti ei ole synkassa korostuksen kanssa)",
+word_wrap: "toggle word wrapping mode",
+help: "tietoja",
+save: "tallenna",
+load: "lataa",
+line_abbr: "Rv",
+char_abbr: "Pos",
+position: "Paikka",
+total: "Yhteensรค",
+close_popup: "sulje valikko",
+shortcuts: "Pikatoiminnot",
+add_tab: "lisรครค sisennys tekstiin",
+remove_tab: "poista sisennys tekstistรค",
+about_notice: "Huomautus: syntaksinkorostus toimii vain pienelle tekstille",
+toggle: "Kytke editori",
+accesskey: "Pikanรคppรคin",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Odota...",
+fullscreen: "koko ruutu",
+syntax_selection: "--Syntaksi--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Sulje tiedosto"
+};
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/editarea/langs/en.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/en.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/en.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["en"]={
+new_document: "new empty document",
+search_button: "search and replace",
+search_command: "search next / open search area",
+search: "search",
+replace: "replace",
+replace_command: "replace / open search area",
+find_next: "find next",
+replace_all: "replace all",
+reg_exp: "regular expressions",
+match_case: "match case",
+not_found: "not found.",
+occurrence_replaced: "occurences replaced.",
+search_field_empty: "Search field empty",
+restart_search_at_begin: "End of area reached. Restart at begin.",
+move_popup: "move search popup",
+font_size: "--Font size--",
+go_to_line: "go to line",
+go_to_line_prompt: "go to line number:",
+undo: "undo",
+redo: "redo",
+change_smooth_selection: "enable/disable some display features (smarter display but more CPU charge)",
+highlight: "toggle syntax highlight on/off",
+reset_highlight: "reset highlight (if desyncronized from text)",
+word_wrap: "toggle word wrapping mode",
+help: "about",
+save: "save",
+load: "load",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Position",
+total: "Total",
+close_popup: "close popup",
+shortcuts: "Shortcuts",
+add_tab: "add tabulation to text",
+remove_tab: "remove tabulation to text",
+about_notice: "Notice: syntax highlight function is only for small text",
+toggle: "Toggle editor",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Processing...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Close file"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/eo.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/eo.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/eo.js	(revision 1130)
@@ -0,0 +1,67 @@
+editAreaLoader.lang["eo"]={
+new_document: "nova dokumento (vakigas la enhavon)",
+search_button: "ser&#265;i / anstata&#365;igi",
+search_command: "pluser&#265;i / malfermi la ser&#265;o-fenestron",
+search: "ser&#265;i",
+replace: "anstata&#365;igi",
+replace_command: "anstata&#365;igi / malfermi la ser&#265;o-fenestron",
+find_next: "ser&#265;i",
+replace_all: "anstata&#365;igi &#265;ion",
+reg_exp: "regula esprimo",
+match_case: "respekti la usklecon",
+not_found: "ne trovita.",
+occurrence_replaced: "anstata&#365;igoj plenumitaj.",
+search_field_empty: "La kampo estas malplena.",
+restart_search_at_begin: "Fino de teksto &#285;isrirata, &#265;u da&#365;rigi el la komenco?",
+move_popup: "movi la ser&#265;o-fenestron",
+font_size: "--Tipara grando--",
+go_to_line: "iri al la linio",
+go_to_line_prompt: "iri al la linio numero:",
+undo: "rezigni",
+redo: "refari",
+change_smooth_selection: "ebligi/malebligi la funkcioj de vidigo (pli bona vidigo, sed pli da &#349;ar&#285;o de la &#265;eforgano)",
+highlight: "ebligi/malebligi la sintaksan kolorigon",
+reset_highlight: "repravalorizi la sintaksan kolorigon (se malsinkronigon de la teksto)",
+word_wrap: "toggle word wrapping mode",
+help: "pri",
+save: "registri",
+load: "&#349;ar&#285;i",
+line_abbr: "Ln",
+char_abbr: "Sg",
+position: "Pozicio",
+total: "Sumo",
+close_popup: "fermi la &#349;prucfenestron",
+shortcuts: "Fulmoklavo",
+add_tab: "aldoni tabon en la tekston",
+remove_tab: "forigi tablon el la teksto",
+about_notice: "Noto: la sintaksa kolorigo estas nur prikalkulita por mallongaj tekstoj.",
+toggle: "baskuligi la redaktilon",
+accesskey: "Fulmoklavo",
+tab: "Tab",
+shift: "Maj",
+ctrl: "Ktrl",
+esc: "Esk",
+processing: "&#349;argante...",
+fullscreen: "plenekrane",
+syntax_selection: "--Sintakso--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Pitono",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+syntax_java: "Java",
+close_tab: "Fermi la dosieron"
+};
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/editarea/langs/no.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/no.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/no.js	(revision 1130)
@@ -0,0 +1,65 @@
+editAreaLoader.lang["no"]={
+new_document: "nytt tomt dokument",
+search_button: "s&oslash;k og erstatt",
+search_command: "s&oslash;k etter neste/ &aring;pne s&oslash;ke omr&aring;det",
+search: "s&oslash;k",
+replace: "erstatt",
+replace_command: "erstatt / aring;pne s&oslash;ke omr&aring;det",
+find_next: "finn neste",
+replace_all: "erstatt alle",
+reg_exp: "standard uttrykk",
+match_case: "skill mellom store/ sm&aring; bokstaver",
+not_found: "ikke funnetnot found.",
+occurrence_replaced: "alle forekomstene ble endret.",
+search_field_empty: "Tomt s&oslash;kefelt",
+restart_search_at_begin: "Du er kommet til slutten av s&oslash;keomr&aring;ede. Vil du starte fra begynnelsen.",
+move_popup: "flytt s&oslash;ke vinuet",
+font_size: "--Skrift s&oslash;rrelse--",
+go_to_line: "g&aring; til linje",
+go_to_line_prompt: "g&aring; til linje nummer:",
+undo: "angre",
+redo: "gj&oslash;re igjen",
+change_smooth_selection: "aktivere/ deaktivere visnings alternativer(gj&oslash;r skjermvisningen smartere, men gir h&oslash;yere prosessor belastning)",
+highlight: "skru merking av s&oslash;keord av/ p&aring;",
+reset_highlight: "starte markeringen p&aring; nytt(hvis den er usynkron med deksten)",
+help: "om",
+save: "lagre",
+load: "laste",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Posisjon",
+total: "Total",
+close_popup: "lukk vindu",
+shortcuts: "Snarveier",
+add_tab: "legg til tabulering i teksten",
+remove_tab: "fj&aelig;rn tabulering i teksten",
+about_notice: "OBS!: markering av s&oslash;ketekst er kun for tekst med sm&aring; bokstaver",
+toggle: "skru redigeringsverkt&oslash;yet av/ p&aring;",
+accesskey: "Tillgangsn&oslash;kkel",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Behandler...",
+fullscreen: "full skjerm",
+syntax_selection: "--Sprๅk--",
+syntax_css: "CSS",
+syntax_html: "HTML",
+syntax_js: "Javascript",
+syntax_php: "Php",
+syntax_python: "Python",
+syntax_vb: "Visual Basic",
+syntax_xml: "Xml",
+syntax_c: "C",
+syntax_cpp: "CPP",
+syntax_basic: "Basic",
+syntax_pas: "Pascal",
+syntax_brainfuck: "Brainfuck",
+syntax_sql: "SQL",
+syntax_ruby: "Ruby",
+syntax_robotstxt: "Robots txt",
+syntax_tsql: "T-SQL",
+syntax_perl: "Perl",
+syntax_coldfusion: "Coldfusion",
+close_tab: "Lukk filen"
+};
Index: tags/2.8.0/trunk/wb/include/editarea/langs/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/langs/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/langs/index.php	(revision 1130)
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Website Baker wrapper functions for the Javascript code editor: "EditArea"
+ *
+ * EditArea is created by Christophe Dolivet and released under "LGPL", 
+ * "Apache" and "BSD" licenses. For the integration into Website Baker 
+ * the LGPL license was choosen.
+ *
+ * LICENSE: GNU Lesser General Public License 3.0
+ * 
+ * @author		Christophe Dolivet (EditArea), Christian Sommer (WB wrapper)
+ * @copyright	(c) 2005-2009
+ * @license		http://www.gnu.org/copyleft/lesser.html
+ * @version		0.7.2.3 
+ * @platform	Website Baker 2.7
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/editarea/edit_area_full.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/edit_area_full.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/edit_area_full.js	(revision 1130)
@@ -0,0 +1,38 @@
+ function EAL(){var t=this;t.version="0.8.1.1";date=new Date();t.start_time=date.getTime();t.win="loading";t.error=false;t.baseURL="";t.template="";t.lang={};t.load_syntax={};t.syntax={};t.loadedFiles=[];t.waiting_loading={};t.scripts_to_load=[];t.sub_scripts_to_load=[];t.resize=[];t.hidden={};t.default_settings={debug:false,smooth_selection:true,font_size:"10",font_family:"monospace",start_highlight:false,toolbar:"search,go_to_line,fullscreen,|,undo,redo,|,select_font,|,change_smooth_selection,highlight,reset_highlight,word_wrap,|,help",begin_toolbar:"",end_toolbar:"",is_multi_files:false,allow_resize:"both",show_line_colors:false,min_width:400,min_height:125,replace_tab_by_spaces:false,allow_toggle:true,language:"en",syntax:"",syntax_selection_allow:"basic,brainfuck,c,coldfusion,cpp,css,html,java,js,pas,perl,php,python,ruby,robotstxt,sql,tsql,vb,xml",display:"onload",max_undo:30,browsers:"known",plugins:"",gecko_spellcheck:false,fullscreen:false,is_editable:true,cursor_position:"begin",word_wrap:false,autocompletion:false,load_callback:"",save_callback:"",change_callback:"",submit_callback:"",EA_init_callback:"",EA_delete_callback:"",EA_load_callback:"",EA_unload_callback:"",EA_toggle_on_callback:"",EA_toggle_off_callback:"",EA_file_switch_on_callback:"",EA_file_switch_off_callback:"",EA_file_close_callback:""};t.advanced_buttons=[ ['new_document','newdocument.gif','new_document',false],['search','search.gif','show_search',false],['go_to_line','go_to_line.gif','go_to_line',false],['undo','undo.gif','undo',true],['redo','redo.gif','redo',true],['change_smooth_selection','smooth_selection.gif','change_smooth_selection_mode',true],['reset_highlight','reset_highlight.gif','resync_highlight',true],['highlight','highlight.gif','change_highlight',true],['help','help.gif','show_help',false],['save','save.gif','save',false],['load','load.gif','load',false],['fullscreen','fullscreen.gif','toggle_full_screen',false],['word_wrap','word_wrap.gif','toggle_word_wrap',true],['autocompletion','autocompletion.gif','toggle_autocompletion',true] ];t.set_browser_infos(t);if(t.isIE>=6||t.isGecko||(t.isWebKit&&!t.isSafari<3)||t.isOpera>=9||t.isCamino)t.isValidBrowser=true;
+else t.isValidBrowser=false;t.set_base_url();for(var i=0;i<t.scripts_to_load.length;i++){setTimeout("eAL.load_script('"+t.baseURL+t.scripts_to_load[i]+".js');",1);t.waiting_loading[t.scripts_to_load[i]+".js"]=false;}t.add_event(window,"load",EAL.prototype.window_loaded);};EAL.prototype={has_error:function(){this.error=true;for(var i in EAL.prototype){EAL.prototype[i]=function(){};}},set_browser_infos:function(o){ua=navigator.userAgent;o.isWebKit=/WebKit/.test(ua);o.isGecko=!o.isWebKit&&/Gecko/.test(ua);o.isMac=/Mac/.test(ua);o.isIE=(navigator.appName=="Microsoft Internet Explorer");if(o.isIE){o.isIE=ua.replace(/^.*?MSIE\s+([0-9\.]+).*$/,"$1");if(o.isIE<6)o.has_error();}if(o.isOpera=(ua.indexOf('Opera')!=-1)){o.isOpera=ua.replace(/^.*?Opera.*?([0-9\.]+).*$/i,"$1");if(o.isOpera<9)o.has_error();o.isIE=false;}if(o.isFirefox=(ua.indexOf('Firefox')!=-1))o.isFirefox=ua.replace(/^.*?Firefox.*?([0-9\.]+).*$/i,"$1");if(ua.indexOf('Iceweasel')!=-1)o.isFirefox=ua.replace(/^.*?Iceweasel.*?([0-9\.]+).*$/i,"$1");if(ua.indexOf('GranParadiso')!=-1)o.isFirefox=ua.replace(/^.*?GranParadiso.*?([0-9\.]+).*$/i,"$1");if(ua.indexOf('BonEcho')!=-1)o.isFirefox=ua.replace(/^.*?BonEcho.*?([0-9\.]+).*$/i,"$1");if(ua.indexOf('SeaMonkey')!=-1)o.isFirefox=(ua.replace(/^.*?SeaMonkey.*?([0-9\.]+).*$/i,"$1"))+1;if(o.isCamino=(ua.indexOf('Camino')!=-1))o.isCamino=ua.replace(/^.*?Camino.*?([0-9\.]+).*$/i,"$1");if(o.isSafari=(ua.indexOf('Safari')!=-1))o.isSafari=ua.replace(/^.*?Version\/([0-9]+\.[0-9]+).*$/i,"$1");if(o.isChrome=(ua.indexOf('Chrome')!=-1)){o.isChrome=ua.replace(/^.*?Chrome.*?([0-9\.]+).*$/i,"$1");o.isSafari=false;}},window_loaded:function(){eAL.win="loaded";if(document.forms){for(var i=0;i<document.forms.length;i++){var form=document.forms[i];form.edit_area_replaced_submit=null;try{form.edit_area_replaced_submit=form.onsubmit;form.onsubmit="";}catch(e){}eAL.add_event(form,"submit",EAL.prototype.submit);eAL.add_event(form,"reset",EAL.prototype.reset);}}eAL.add_event(window,"unload",function(){for(var i in eAs){eAL.delete_instance(i);}});},init_ie_textarea:function(id){var a=document.getElementById(id);try{if(a&&typeof(a.focused)=="undefined"){a.focus();a.focused=true;a.selectionStart=a.selectionEnd=0;get_IE_selection(a);eAL.add_event(a,"focus",IE_textarea_focus);eAL.add_event(a,"blur",IE_textarea_blur);}}catch(ex){}},init:function(settings){var t=this,s=settings,i;if(!s["id"])t.has_error();if(t.error)return;if(eAs[s["id"]])t.delete_instance(s["id"]);for(i in t.default_settings){if(typeof(s[i])=="undefined")s[i]=t.default_settings[i];}if(s["browsers"]=="known"&&t.isValidBrowser==false){return;}if(s["begin_toolbar"].length>0)s["toolbar"]=s["begin_toolbar"]+","+s["toolbar"];if(s["end_toolbar"].length>0)s["toolbar"]=s["toolbar"]+","+s["end_toolbar"];s["tab_toolbar"]=s["toolbar"].replace(/ /g,"").split(",");s["plugins"]=s["plugins"].replace(/ /g,"").split(",");for(i=0;i<s["plugins"].length;i++){if(s["plugins"][i].length==0)s["plugins"].splice(i,1);}t.get_template();t.load_script(t.baseURL+"langs/"+s["language"]+".js");if(s["syntax"].length>0){s["syntax"]=s["syntax"].toLowerCase();t.load_script(t.baseURL+"reg_syntax/"+s["syntax"]+".js");}eAs[s["id"]]={"settings":s};eAs[s["id"]]["displayed"]=false;eAs[s["id"]]["hidden"]=false;t.start(s["id"]);},delete_instance:function(id){var d=document,fs=window.frames,span,iframe;eAL.execCommand(id,"EA_delete");if(fs["frame_"+id]&&fs["frame_"+id].editArea){if(eAs[id]["displayed"])eAL.toggle(id,"off");fs["frame_"+id].editArea.execCommand("EA_unload");}span=d.getElementById("EditAreaArroundInfos_"+id);if(span)span.parentNode.removeChild(span);iframe=d.getElementById("frame_"+id);if(iframe){iframe.parentNode.removeChild(iframe);try{delete fs["frame_"+id];}catch(e){}}delete eAs[id];},start:function(id){var t=this,d=document,f,span,father,next,html='',html_toolbar_content='',template,content,i;if(t.win!="loaded"){setTimeout("eAL.start('"+id+"');",50);return;}for(i in t.waiting_loading){if(t.waiting_loading[i]!="loaded"&&typeof(t.waiting_loading[i])!="function"){setTimeout("eAL.start('"+id+"');",50);return;}}if(!t.lang[eAs[id]["settings"]["language"]]||(eAs[id]["settings"]["syntax"].length>0&&!t.load_syntax[eAs[id]["settings"]["syntax"]])){setTimeout("eAL.start('"+id+"');",50);return;}if(eAs[id]["settings"]["syntax"].length>0)t.init_syntax_regexp();if(!d.getElementById("EditAreaArroundInfos_"+id)&&(eAs[id]["settings"]["debug"]||eAs[id]["settings"]["allow_toggle"])){span=d.createElement("span");span.id="EditAreaArroundInfos_"+id;if(eAs[id]["settings"]["allow_toggle"]){checked=(eAs[id]["settings"]["display"]=="onload")?"checked='checked'":"";html+="<div id='edit_area_toggle_"+i+"'>";html+="<input id='edit_area_toggle_checkbox_"+id+"' class='toggle_"+id+"' type='checkbox' onclick='eAL.toggle(\""+id+"\");' accesskey='e' "+checked+" />";html+="<label for='edit_area_toggle_checkbox_"+id+"'>{$toggle}</label></div>";}if(eAs[id]["settings"]["debug"])html+="<textarea id='edit_area_debug_"+id+"' spellcheck='off' style='z-index:20;width:100%;height:120px;overflow:auto;border:solid black 1px;'></textarea><br />";html=t.translate(html,eAs[id]["settings"]["language"]);span.innerHTML=html;father=d.getElementById(id).parentNode;next=d.getElementById(id).nextSibling;if(next==null)father.appendChild(span);
+else father.insertBefore(span,next);}if(!eAs[id]["initialized"]){t.execCommand(id,"EA_init");if(eAs[id]["settings"]["display"]=="later"){eAs[id]["initialized"]=true;return;}}if(t.isIE){t.init_ie_textarea(id);}area=eAs[id];for(i=0;i<area["settings"]["tab_toolbar"].length;i++){html_toolbar_content+=t.get_control_html(area["settings"]["tab_toolbar"][i],area["settings"]["language"]);}html_toolbar_content=t.translate(html_toolbar_content,area["settings"]["language"],"template");if(!t.iframe_script){t.iframe_script="";for(i=0;i<t.sub_scripts_to_load.length;i++)t.iframe_script+='<script language="javascript" type="text/javascript" src="'+t.baseURL+t.sub_scripts_to_load[i]+'.js"></script>';}for(i=0;i<area["settings"]["plugins"].length;i++){if(!t.all_plugins_loaded)t.iframe_script+='<script language="javascript" type="text/javascript" src="'+t.baseURL+'plugins/'+area["settings"]["plugins"][i]+'/'+area["settings"]["plugins"][i]+'.js"></script>';t.iframe_script+='<script language="javascript" type="text/javascript" src="'+t.baseURL+'plugins/'+area["settings"]["plugins"][i]+'/langs/'+area["settings"]["language"]+'.js"></script>';}if(!t.iframe_css){t.iframe_css="<link href='"+t.baseURL+"edit_area.css' rel='stylesheet' type='text/css' />";}template=t.template.replace(/\[__BASEURL__\]/g,t.baseURL);template=template.replace("[__TOOLBAR__]",html_toolbar_content);template=t.translate(template,area["settings"]["language"],"template");template=template.replace("[__CSSRULES__]",t.iframe_css);template=template.replace("[__JSCODE__]",t.iframe_script);template=template.replace("[__EA_VERSION__]",t.version);area.textarea=d.getElementById(area["settings"]["id"]);eAs[area["settings"]["id"]]["textarea"]=area.textarea;if(typeof(window.frames["frame_"+area["settings"]["id"]])!='undefined')delete window.frames["frame_"+area["settings"]["id"]];father=area.textarea.parentNode;content=d.createElement("iframe");content.name="frame_"+area["settings"]["id"];content.id="frame_"+area["settings"]["id"];content.style.borderWidth="0px";setAttribute(content,"frameBorder","0");content.style.overflow="hidden";content.style.display="none";next=area.textarea.nextSibling;if(next==null)father.appendChild(content);
+else father.insertBefore(content,next);f=window.frames["frame_"+area["settings"]["id"]];f.document.open();f.eAs=eAs;f.area_id=area["settings"]["id"];f.document.area_id=area["settings"]["id"];f.document.write(template);f.document.close();},toggle:function(id,toggle_to){if(!toggle_to)toggle_to=(eAs[id]["displayed"]==true)?"off":"on";if(eAs[id]["displayed"]==true&&toggle_to=="off"){this.toggle_off(id);}
+else if(eAs[id]["displayed"]==false&&toggle_to=="on"){this.toggle_on(id);}return false;},toggle_off:function(id){var fs=window.frames,f,t,parNod,nxtSib,selStart,selEnd,scrollTop,scrollLeft;if(fs["frame_"+id]){f=fs["frame_"+id];t=eAs[id]["textarea"];if(f.editArea.fullscreen['isFull'])f.editArea.toggle_full_screen(false);eAs[id]["displayed"]=false;t.wrap="off";setAttribute(t,"wrap","off");parNod=t.parentNode;nxtSib=t.nextSibling;parNod.removeChild(t);parNod.insertBefore(t,nxtSib);t.value=f.editArea.textarea.value;selStart=f.editArea.last_selection["selectionStart"];selEnd=f.editArea.last_selection["selectionEnd"];scrollTop=f.document.getElementById("result").scrollTop;scrollLeft=f.document.getElementById("result").scrollLeft;document.getElementById("frame_"+id).style.display='none';t.style.display="inline";try{t.focus();}catch(e){};if(this.isIE){t.selectionStart=selStart;t.selectionEnd=selEnd;t.focused=true;set_IE_selection(t);}
+else{if(this.isOpera&&this.isOpera < 9.6){t.setSelectionRange(0,0);}try{t.setSelectionRange(selStart,selEnd);}catch(e){};}t.scrollTop=scrollTop;t.scrollLeft=scrollLeft;f.editArea.execCommand("toggle_off");}},toggle_on:function(id){var fs=window.frames,f,t,selStart=0,selEnd=0,scrollTop=0,scrollLeft=0,curPos,elem;if(fs["frame_"+id]){f=fs["frame_"+id];t=eAs[id]["textarea"];area=f.editArea;area.textarea.value=t.value;curPos=eAs[id]["settings"]["cursor_position"];if(t.use_last==true){selStart=t.last_selectionStart;selEnd=t.last_selectionEnd;scrollTop=t.last_scrollTop;scrollLeft=t.last_scrollLeft;t.use_last=false;}
+else if(curPos=="auto"){try{selStart=t.selectionStart;selEnd=t.selectionEnd;scrollTop=t.scrollTop;scrollLeft=t.scrollLeft;}catch(ex){}}this.set_editarea_size_from_textarea(id,document.getElementById("frame_"+id));t.style.display="none";document.getElementById("frame_"+id).style.display="inline";area.execCommand("focus");eAs[id]["displayed"]=true;area.execCommand("update_size");f.document.getElementById("result").scrollTop=scrollTop;f.document.getElementById("result").scrollLeft=scrollLeft;area.area_select(selStart,selEnd-selStart);area.execCommand("toggle_on");}
+else{elem=document.getElementById(id);elem.last_selectionStart=elem.selectionStart;elem.last_selectionEnd=elem.selectionEnd;elem.last_scrollTop=elem.scrollTop;elem.last_scrollLeft=elem.scrollLeft;elem.use_last=true;eAL.start(id);}},set_editarea_size_from_textarea:function(id,frame){var elem,width,height;elem=document.getElementById(id);width=Math.max(eAs[id]["settings"]["min_width"],elem.offsetWidth)+"px";height=Math.max(eAs[id]["settings"]["min_height"],elem.offsetHeight)+"px";if(elem.style.width.indexOf("%")!=-1)width=elem.style.width;if(elem.style.height.indexOf("%")!=-1)height=elem.style.height;frame.style.width=width;frame.style.height=height;},set_base_url:function(){var t=this,elems,i,docBasePath;if(!this.baseURL){elems=document.getElementsByTagName('script');for(i=0;i<elems.length;i++){if(elems[i].src&&elems[i].src.match(/edit_area_[^\\\/]*$/i)){var src=elems[i].src;src=src.substring(0,src.lastIndexOf('/'));this.baseURL=src;this.file_name=elems[i].src.substr(elems[i].src.lastIndexOf("/")+1);break;}}}docBasePath=document.location.href;if(docBasePath.indexOf('?')!=-1)docBasePath=docBasePath.substring(0,docBasePath.indexOf('?'));docBasePath=docBasePath.substring(0,docBasePath.lastIndexOf('/'));if(t.baseURL.indexOf('://')==-1&&t.baseURL.charAt(0)!='/'){t.baseURL=docBasePath+"/"+t.baseURL;}t.baseURL+="/";},get_button_html:function(id,img,exec,isFileSpecific,baseURL){var cmd,html;if(!baseURL)baseURL=this.baseURL;cmd='editArea.execCommand(\''+exec+'\')';html='<a id="a_'+id+'" href="javascript:'+cmd+'" onclick="'+cmd+';return false;" onmousedown="return false;" target="_self" fileSpecific="'+(isFileSpecific?'yes':'no')+'">';html+='<img id="'+id+'" src="'+baseURL+'images/'+img+'" title="{$'+id+'}" width="20" height="20" class="editAreaButtonNormal" onmouseover="editArea.switchClass(this,\'editAreaButtonOver\');" onmouseout="editArea.restoreClass(this);" onmousedown="editArea.restoreAndSwitchClass(this,\'editAreaButtonDown\');" /></a>';return html;},get_control_html:function(button_name,lang){var t=this,i,but,html,si;for(i=0;i<t.advanced_buttons.length;i++){but=t.advanced_buttons[i];if(but[0]==button_name){return t.get_button_html(but[0],but[1],but[2],but[3]);}}switch(button_name){case "*":case "return":return "<br />";case "|":case "separator":return '<img src="'+t.baseURL+'images/spacer.gif" width="1" height="15" class="editAreaSeparatorLine">';case "select_font":html="<select id='area_font_size' onchange='javascript:editArea.execCommand(\"change_font_size\")' fileSpecific='yes'>";html+="<option value='-1'>{$font_size}</option>";si=[8,9,10,11,12,14];for(i=0;i<si.length;i++){html+="<option value='"+si[i]+"'>"+si[i]+" pt</option>";}html+="</select>";return html;case "syntax_selection":html="<select id='syntax_selection' onchange='javascript:editArea.execCommand(\"change_syntax\",this.value)' fileSpecific='yes'>";html+="<option value='-1'>{$syntax_selection}</option>";html+="</select>";return html;}return "<span id='tmp_tool_"+button_name+"'>["+button_name+"]</span>";},get_template:function(){if(this.template==""){var xhr_object=null;if(window.XMLHttpRequest)xhr_object=new XMLHttpRequest();
+else if(window.ActiveXObject)xhr_object=new ActiveXObject("Microsoft.XMLHTTP");
+else{alert("XMLHTTPRequest not supported. EditArea not loaded");return;}xhr_object.open("GET",this.baseURL+"template.html",false);xhr_object.send(null);if(xhr_object.readyState==4)this.template=xhr_object.responseText;
+else this.has_error();}},translate:function(text,lang,mode){if(mode=="word")text=eAL.get_word_translation(text,lang);
+else if(mode="template"){eAL.current_language=lang;text=text.replace(/\{\$([^\}]+)\}/gm,eAL.translate_template);}return text;},translate_template:function(){return eAL.get_word_translation(EAL.prototype.translate_template.arguments[1],eAL.current_language);},get_word_translation:function(val,lang){var i;for(i in eAL.lang[lang]){if(i==val)return eAL.lang[lang][i];}return "_"+val;},load_script:function(url){var t=this,d=document,script,head;if(t.loadedFiles[url])return;try{script=d.createElement("script");script.type="text/javascript";script.src=url;script.charset="UTF-8";d.getElementsByTagName("head")[0].appendChild(script);}catch(e){d.write('<sc'+'ript language="javascript" type="text/javascript" src="'+url+'" charset="UTF-8"></sc'+'ript>');}t.loadedFiles[url]=true;},add_event:function(obj,name,handler){try{if(obj.attachEvent){obj.attachEvent("on"+name,handler);}
+else{obj.addEventListener(name,handler,false);}}catch(e){}},remove_event:function(obj,name,handler){try{if(obj.detachEvent)obj.detachEvent("on"+name,handler);
+else obj.removeEventListener(name,handler,false);}catch(e){}},reset:function(e){var formObj,is_child,i,x;formObj=eAL.isIE ? window.event.srcElement:e.target;if(formObj.tagName!='FORM')formObj=formObj.form;for(i in eAs){is_child=false;for(x=0;x<formObj.elements.length;x++){if(formObj.elements[x].id==i)is_child=true;}if(window.frames["frame_"+i]&&is_child&&eAs[i]["displayed"]==true){var exec='window.frames["frame_'+i+'"].editArea.textarea.value=document.getElementById("'+i+'").value;';exec+='window.frames["frame_'+i+'"].editArea.execCommand("focus");';exec+='window.frames["frame_'+i+'"].editArea.check_line_selection();';exec+='window.frames["frame_'+i+'"].editArea.execCommand("reset");';window.setTimeout(exec,10);}}return;},submit:function(e){var formObj,is_child,fs=window.frames,i,x;formObj=eAL.isIE ? window.event.srcElement:e.target;if(formObj.tagName!='FORM')formObj=formObj.form;for(i in eAs){is_child=false;for(x=0;x<formObj.elements.length;x++){if(formObj.elements[x].id==i)is_child=true;}if(is_child){if(fs["frame_"+i]&&eAs[i]["displayed"]==true)document.getElementById(i).value=fs["frame_"+i].editArea.textarea.value;eAL.execCommand(i,"EA_submit");}}if(typeof(formObj.edit_area_replaced_submit)=="function"){res=formObj.edit_area_replaced_submit();if(res==false){if(eAL.isIE)return false;
+else e.preventDefault();}}return;},getValue:function(id){if(window.frames["frame_"+id]&&eAs[id]["displayed"]==true){return window.frames["frame_"+id].editArea.textarea.value;}
+else if(elem=document.getElementById(id)){return elem.value;}return false;},setValue:function(id,new_val){var fs=window.frames;if((f=fs["frame_"+id])&&eAs[id]["displayed"]==true){f.editArea.textarea.value=new_val;f.editArea.execCommand("focus");f.editArea.check_line_selection(false);f.editArea.execCommand("onchange");}
+else if(elem=document.getElementById(id)){elem.value=new_val;}},getSelectionRange:function(id){var sel,eA,fs=window.frames;sel={"start":0,"end":0};if(fs["frame_"+id]&&eAs[id]["displayed"]==true){eA=fs["frame_"+id].editArea;sel["start"]=eA.textarea.selectionStart;sel["end"]=eA.textarea.selectionEnd;}
+else if(elem=document.getElementById(id)){sel=getSelectionRange(elem);}return sel;},setSelectionRange:function(id,new_start,new_end){var fs=window.frames;if(fs["frame_"+id]&&eAs[id]["displayed"]==true){fs["frame_"+id].editArea.area_select(new_start,new_end-new_start);if(!this.isIE){fs["frame_"+id].editArea.check_line_selection(false);fs["frame_"+id].editArea.scroll_to_view();}}
+else if(elem=document.getElementById(id)){setSelectionRange(elem,new_start,new_end);}},getSelectedText:function(id){var sel=this.getSelectionRange(id);return this.getValue(id).substring(sel["start"],sel["end"]);},setSelectedText:function(id,new_val){var fs=window.frames,d=document,sel,text,scrollTop,scrollLeft,new_sel_end;new_val=new_val.replace(/\r/g,"");sel=this.getSelectionRange(id);text=this.getValue(id);if(fs["frame_"+id]&&eAs[id]["displayed"]==true){scrollTop=fs["frame_"+id].document.getElementById("result").scrollTop;scrollLeft=fs["frame_"+id].document.getElementById("result").scrollLeft;}
+else{scrollTop=d.getElementById(id).scrollTop;scrollLeft=d.getElementById(id).scrollLeft;}text=text.substring(0,sel["start"])+new_val+text.substring(sel["end"]);this.setValue(id,text);new_sel_end=sel["start"]+new_val.length;this.setSelectionRange(id,sel["start"],new_sel_end);if(new_val !=this.getSelectedText(id).replace(/\r/g,"")){this.setSelectionRange(id,sel["start"],new_sel_end+new_val.split("\n").length-1);}if(fs["frame_"+id]&&eAs[id]["displayed"]==true){fs["frame_"+id].document.getElementById("result").scrollTop=scrollTop;fs["frame_"+id].document.getElementById("result").scrollLeft=scrollLeft;fs["frame_"+id].editArea.execCommand("onchange");}
+else{d.getElementById(id).scrollTop=scrollTop;d.getElementById(id).scrollLeft=scrollLeft;}},insertTags:function(id,open_tag,close_tag){var old_sel,new_sel;old_sel=this.getSelectionRange(id);text=open_tag+this.getSelectedText(id)+close_tag;eAL.setSelectedText(id,text);new_sel=this.getSelectionRange(id);if(old_sel["end"] > old_sel["start"])this.setSelectionRange(id,new_sel["end"],new_sel["end"]);
+else this.setSelectionRange(id,old_sel["start"]+open_tag.length,old_sel["start"]+open_tag.length);},hide:function(id){var fs=window.frames,d=document,t=this,scrollTop,scrollLeft,span;if(d.getElementById(id)&&!t.hidden[id]){t.hidden[id]={};t.hidden[id]["selectionRange"]=t.getSelectionRange(id);if(d.getElementById(id).style.display!="none"){t.hidden[id]["scrollTop"]=d.getElementById(id).scrollTop;t.hidden[id]["scrollLeft"]=d.getElementById(id).scrollLeft;}if(fs["frame_"+id]){t.hidden[id]["toggle"]=eAs[id]["displayed"];if(fs["frame_"+id]&&eAs[id]["displayed"]==true){scrollTop=fs["frame_"+id].document.getElementById("result").scrollTop;scrollLeft=fs["frame_"+id].document.getElementById("result").scrollLeft;}
+else{scrollTop=d.getElementById(id).scrollTop;scrollLeft=d.getElementById(id).scrollLeft;}t.hidden[id]["scrollTop"]=scrollTop;t.hidden[id]["scrollLeft"]=scrollLeft;if(eAs[id]["displayed"]==true)eAL.toggle_off(id);}span=d.getElementById("EditAreaArroundInfos_"+id);if(span){span.style.display='none';}d.getElementById(id).style.display="none";}},show:function(id){var fs=window.frames,d=document,t=this,span;if((elem=d.getElementById(id))&&t.hidden[id]){elem.style.display="inline";elem.scrollTop=t.hidden[id]["scrollTop"];elem.scrollLeft=t.hidden[id]["scrollLeft"];span=d.getElementById("EditAreaArroundInfos_"+id);if(span){span.style.display='inline';}if(fs["frame_"+id]){elem.style.display="inline";if(t.hidden[id]["toggle"]==true)eAL.toggle_on(id);scrollTop=t.hidden[id]["scrollTop"];scrollLeft=t.hidden[id]["scrollLeft"];if(fs["frame_"+id]&&eAs[id]["displayed"]==true){fs["frame_"+id].document.getElementById("result").scrollTop=scrollTop;fs["frame_"+id].document.getElementById("result").scrollLeft=scrollLeft;}
+else{elem.scrollTop=scrollTop;elem.scrollLeft=scrollLeft;}}sel=t.hidden[id]["selectionRange"];t.setSelectionRange(id,sel["start"],sel["end"]);delete t.hidden[id];}},getCurrentFile:function(id){return this.execCommand(id,'get_file',this.execCommand(id,'curr_file'));},getFile:function(id,file_id){return this.execCommand(id,'get_file',file_id);},getAllFiles:function(id){return this.execCommand(id,'get_all_files()');},openFile:function(id,file_infos){return this.execCommand(id,'open_file',file_infos);},closeFile:function(id,file_id){return this.execCommand(id,'close_file',file_id);},setFileEditedMode:function(id,file_id,to){var reg1,reg2;reg1=new RegExp('\\\\','g');reg2=new RegExp('"','g');return this.execCommand(id,'set_file_edited_mode("'+file_id.replace(reg1,'\\\\').replace(reg2,'\\"')+'",'+to+')');},execCommand:function(id,cmd,fct_param){switch(cmd){case "EA_init":if(eAs[id]['settings']["EA_init_callback"].length>0)eval(eAs[id]['settings']["EA_init_callback"]+"('"+id+"');");break;case "EA_delete":if(eAs[id]['settings']["EA_delete_callback"].length>0)eval(eAs[id]['settings']["EA_delete_callback"]+"('"+id+"');");break;case "EA_submit":if(eAs[id]['settings']["submit_callback"].length>0)eval(eAs[id]['settings']["submit_callback"]+"('"+id+"');");break;}if(window.frames["frame_"+id]&&window.frames["frame_"+id].editArea){if(fct_param!=undefined)return eval('window.frames["frame_'+id+'"].editArea.'+cmd+'(fct_param);');
+else return eval('window.frames["frame_'+id+'"].editArea.'+cmd+';');}return false;}};var eAL=new EAL();var eAs={}; function getAttribute(elm,aName){var aValue,taName,i;try{aValue=elm.getAttribute(aName);}catch(exept){}if(! aValue){for(i=0;i < elm.attributes.length;i++){taName=elm.attributes[i] .name.toLowerCase();if(taName==aName){aValue=elm.attributes[i] .value;return aValue;}}}return aValue;};function setAttribute(elm,attr,val){if(attr=="class"){elm.setAttribute("className",val);elm.setAttribute("class",val);}
+else{elm.setAttribute(attr,val);}};function getChildren(elem,elem_type,elem_attribute,elem_attribute_match,option,depth){if(!option)var option="single";if(!depth)var depth=-1;if(elem){var children=elem.childNodes;var result=null;var results=[];for(var x=0;x<children.length;x++){strTagName=new String(children[x].tagName);children_class="?";if(strTagName!="undefined"){child_attribute=getAttribute(children[x],elem_attribute);if((strTagName.toLowerCase()==elem_type.toLowerCase()||elem_type=="")&&(elem_attribute==""||child_attribute==elem_attribute_match)){if(option=="all"){results.push(children[x]);}
+else{return children[x];}}if(depth!=0){result=getChildren(children[x],elem_type,elem_attribute,elem_attribute_match,option,depth-1);if(option=="all"){if(result.length>0){results=results.concat(result);}}
+else if(result!=null){return result;}}}}if(option=="all")return results;}return null;};function isChildOf(elem,parent){if(elem){if(elem==parent)return true;while(elem.parentNode !='undefined'){return isChildOf(elem.parentNode,parent);}}return false;};function getMouseX(e){if(e!=null&&typeof(e.pageX)!="undefined"){return e.pageX;}
+else{return(e!=null?e.x:event.x)+document.documentElement.scrollLeft;}};function getMouseY(e){if(e!=null&&typeof(e.pageY)!="undefined"){return e.pageY;}
+else{return(e!=null?e.y:event.y)+document.documentElement.scrollTop;}};function calculeOffsetLeft(r){return calculeOffset(r,"offsetLeft")};function calculeOffsetTop(r){return calculeOffset(r,"offsetTop")};function calculeOffset(element,attr){var offset=0;while(element){offset+=element[attr];element=element.offsetParent}return offset;};function get_css_property(elem,prop){if(document.defaultView){return document.defaultView.getComputedStyle(elem,null).getPropertyValue(prop);}
+else if(elem.currentStyle){var prop=prop.replace(/-\D/gi,function(sMatch){return sMatch.charAt(sMatch.length-1).toUpperCase();});return elem.currentStyle[prop];}
+else return null;}var _mCE;function start_move_element(e,id,frame){var elem_id=(e.target||e.srcElement).id;if(id)elem_id=id;if(!frame)frame=window;if(frame.event)e=frame.event;_mCE=frame.document.getElementById(elem_id);_mCE.frame=frame;frame.document.onmousemove=move_element;frame.document.onmouseup=end_move_element;mouse_x=getMouseX(e);mouse_y=getMouseY(e);_mCE.start_pos_x=mouse_x-(_mCE.style.left.replace("px","")||calculeOffsetLeft(_mCE));_mCE.start_pos_y=mouse_y-(_mCE.style.top.replace("px","")||calculeOffsetTop(_mCE));return false;};function end_move_element(e){_mCE.frame.document.onmousemove="";_mCE.frame.document.onmouseup="";_mCE=null;};function move_element(e){var newTop,newLeft,maxLeft;if(_mCE.frame&&_mCE.frame.event)e=_mCE.frame.event;newTop=getMouseY(e)-_mCE.start_pos_y;newLeft=getMouseX(e)-_mCE.start_pos_x;maxLeft=_mCE.frame.document.body.offsetWidth-_mCE.offsetWidth;max_top=_mCE.frame.document.body.offsetHeight-_mCE.offsetHeight;newTop=Math.min(Math.max(0,newTop),max_top);newLeft=Math.min(Math.max(0,newLeft),maxLeft);_mCE.style.top=newTop+"px";_mCE.style.left=newLeft+"px";return false;};var nav=eAL.nav;function getSelectionRange(textarea){return{"start":textarea.selectionStart,"end":textarea.selectionEnd};};function setSelectionRange(t,start,end){t.focus();start=Math.max(0,Math.min(t.value.length,start));end=Math.max(start,Math.min(t.value.length,end));if(this.isOpera&&this.isOpera < 9.6){t.selectionEnd=1;t.selectionStart=0;t.selectionEnd=1;t.selectionStart=0;}t.selectionStart=start;t.selectionEnd=end;if(isIE)set_IE_selection(t);};function get_IE_selection(t){var d=document,div,range,stored_range,elem,scrollTop,relative_top,line_start,line_nb,range_start,range_end,tab;if(t&&t.focused){if(!t.ea_line_height){div=d.createElement("div");div.style.fontFamily=get_css_property(t,"font-family");div.style.fontSize=get_css_property(t,"font-size");div.style.visibility="hidden";div.innerHTML="0";d.body.appendChild(div);t.ea_line_height=div.offsetHeight;d.body.removeChild(div);}range=d.selection.createRange();try{stored_range=range.duplicate();stored_range.moveToElementText(t);stored_range.setEndPoint('EndToEnd',range);if(stored_range.parentElement()==t){elem=t;scrollTop=0;while(elem.parentNode){scrollTop+=elem.scrollTop;elem=elem.parentNode;}relative_top=range.offsetTop-calculeOffsetTop(t)+scrollTop;line_start=Math.round((relative_top / t.ea_line_height)+1);line_nb=Math.round(range.boundingHeight / t.ea_line_height);range_start=stored_range.text.length-range.text.length;tab=t.value.substr(0,range_start).split("\n");range_start+=(line_start-tab.length)*2;t.selectionStart=range_start;range_end=t.selectionStart+range.text.length;tab=t.value.substr(0,range_start+range.text.length).split("\n");range_end+=(line_start+line_nb-1-tab.length)*2;t.selectionEnd=range_end;}}catch(e){}}setTimeout("get_IE_selection(document.getElementById('"+t.id+"'));",50);};function IE_textarea_focus(){event.srcElement.focused=true;}function IE_textarea_blur(){event.srcElement.focused=false;}function set_IE_selection(t){var nbLineStart,nbLineStart,nbLineEnd,range;if(!window.closed){nbLineStart=t.value.substr(0,t.selectionStart).split("\n").length-1;nbLineEnd=t.value.substr(0,t.selectionEnd).split("\n").length-1;try{range=document.selection.createRange();range.moveToElementText(t);range.setEndPoint('EndToStart',range);range.moveStart('character',t.selectionStart-nbLineStart);range.moveEnd('character',t.selectionEnd-nbLineEnd-(t.selectionStart-nbLineStart));range.select();}catch(e){}}};eAL.waiting_loading["elements_functions.js"]="loaded";
+ EAL.prototype.start_resize_area=function(){var d=document,a,div,width,height,father;d.onmouseup=eAL.end_resize_area;d.onmousemove=eAL.resize_area;eAL.toggle(eAL.resize["id"]);a=eAs[eAL.resize["id"]]["textarea"];div=d.getElementById("edit_area_resize");if(!div){div=d.createElement("div");div.id="edit_area_resize";div.style.border="dashed #888888 1px";}width=a.offsetWidth-2;height=a.offsetHeight-2;div.style.display="block";div.style.width=width+"px";div.style.height=height+"px";father=a.parentNode;father.insertBefore(div,a);a.style.display="none";eAL.resize["start_top"]=calculeOffsetTop(div);eAL.resize["start_left"]=calculeOffsetLeft(div);};EAL.prototype.end_resize_area=function(e){var d=document,div,a,width,height;d.onmouseup="";d.onmousemove="";div=d.getElementById("edit_area_resize");a=eAs[eAL.resize["id"]]["textarea"];width=Math.max(eAs[eAL.resize["id"]]["settings"]["min_width"],div.offsetWidth-4);height=Math.max(eAs[eAL.resize["id"]]["settings"]["min_height"],div.offsetHeight-4);if(eAL.isIE==6){width-=2;height-=2;}a.style.width=width+"px";a.style.height=height+"px";div.style.display="none";a.style.display="inline";a.selectionStart=eAL.resize["selectionStart"];a.selectionEnd=eAL.resize["selectionEnd"];eAL.toggle(eAL.resize["id"]);return false;};EAL.prototype.resize_area=function(e){var allow,newHeight,newWidth;allow=eAs[eAL.resize["id"]]["settings"]["allow_resize"];if(allow=="both"||allow=="y"){newHeight=Math.max(20,getMouseY(e)-eAL.resize["start_top"]);document.getElementById("edit_area_resize").style.height=newHeight+"px";}if(allow=="both"||allow=="x"){newWidth=Math.max(20,getMouseX(e)-eAL.resize["start_left"]);document.getElementById("edit_area_resize").style.width=newWidth+"px";}return false;};eAL.waiting_loading["resize_area.js"]="loaded";
+	EAL.prototype.get_regexp=function(text_array){res="(\\b)(";for(i=0;i<text_array.length;i++){if(i>0)res+="|";res+=this.get_escaped_regexp(text_array[i]);}res+=")(\\b)";reg=new RegExp(res);return res;};EAL.prototype.get_escaped_regexp=function(str){return str.toString().replace(/(\.|\?|\*|\+|\\|\(|\)|\[|\]|\}|\{|\$|\^|\|)/g,"\\$1");};EAL.prototype.init_syntax_regexp=function(){var lang_style={};for(var lang in this.load_syntax){if(!this.syntax[lang]){this.syntax[lang]={};this.syntax[lang]["keywords_reg_exp"]={};this.keywords_reg_exp_nb=0;if(this.load_syntax[lang]['KEYWORDS']){param="g";if(this.load_syntax[lang]['KEYWORD_CASE_SENSITIVE']===false)param+="i";for(var i in this.load_syntax[lang]['KEYWORDS']){if(typeof(this.load_syntax[lang]['KEYWORDS'][i])=="function")continue;this.syntax[lang]["keywords_reg_exp"][i]=new RegExp(this.get_regexp(this.load_syntax[lang]['KEYWORDS'][i]),param);this.keywords_reg_exp_nb++;}}if(this.load_syntax[lang]['OPERATORS']){var str="";var nb=0;for(var i in this.load_syntax[lang]['OPERATORS']){if(typeof(this.load_syntax[lang]['OPERATORS'][i])=="function")continue;if(nb>0)str+="|";str+=this.get_escaped_regexp(this.load_syntax[lang]['OPERATORS'][i]);nb++;}if(str.length>0)this.syntax[lang]["operators_reg_exp"]=new RegExp("("+str+")","g");}if(this.load_syntax[lang]['DELIMITERS']){var str="";var nb=0;for(var i in this.load_syntax[lang]['DELIMITERS']){if(typeof(this.load_syntax[lang]['DELIMITERS'][i])=="function")continue;if(nb>0)str+="|";str+=this.get_escaped_regexp(this.load_syntax[lang]['DELIMITERS'][i]);nb++;}if(str.length>0)this.syntax[lang]["delimiters_reg_exp"]=new RegExp("("+str+")","g");}var syntax_trace=[];this.syntax[lang]["quotes"]={};var quote_tab=[];if(this.load_syntax[lang]['QUOTEMARKS']){for(var i in this.load_syntax[lang]['QUOTEMARKS']){if(typeof(this.load_syntax[lang]['QUOTEMARKS'][i])=="function")continue;var x=this.get_escaped_regexp(this.load_syntax[lang]['QUOTEMARKS'][i]);this.syntax[lang]["quotes"][x]=x;quote_tab[quote_tab.length]="("+x+"(\\\\.|[^"+x+"])*(?:"+x+"|$))";syntax_trace.push(x);}}this.syntax[lang]["comments"]={};if(this.load_syntax[lang]['COMMENT_SINGLE']){for(var i in this.load_syntax[lang]['COMMENT_SINGLE']){if(typeof(this.load_syntax[lang]['COMMENT_SINGLE'][i])=="function")continue;var x=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_SINGLE'][i]);quote_tab[quote_tab.length]="("+x+"(.|\\r|\\t)*(\\n|$))";syntax_trace.push(x);this.syntax[lang]["comments"][x]="\n";}}if(this.load_syntax[lang]['COMMENT_MULTI']){for(var i in this.load_syntax[lang]['COMMENT_MULTI']){if(typeof(this.load_syntax[lang]['COMMENT_MULTI'][i])=="function")continue;var start=this.get_escaped_regexp(i);var end=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_MULTI'][i]);quote_tab[quote_tab.length]="("+start+"(.|\\n|\\r)*?("+end+"|$))";syntax_trace.push(start);syntax_trace.push(end);this.syntax[lang]["comments"][i]=this.load_syntax[lang]['COMMENT_MULTI'][i];}}if(quote_tab.length>0)this.syntax[lang]["comment_or_quote_reg_exp"]=new RegExp("("+quote_tab.join("|")+")","gi");if(syntax_trace.length>0)this.syntax[lang]["syntax_trace_regexp"]=new RegExp("((.|\n)*?)(\\\\*("+syntax_trace.join("|")+"|$))","gmi");if(this.load_syntax[lang]['SCRIPT_DELIMITERS']){this.syntax[lang]["script_delimiters"]={};for(var i in this.load_syntax[lang]['SCRIPT_DELIMITERS']){if(typeof(this.load_syntax[lang]['SCRIPT_DELIMITERS'][i])=="function")continue;this.syntax[lang]["script_delimiters"][i]=this.load_syntax[lang]['SCRIPT_DELIMITERS'];}}this.syntax[lang]["custom_regexp"]={};if(this.load_syntax[lang]['REGEXPS']){for(var i in this.load_syntax[lang]['REGEXPS']){if(typeof(this.load_syntax[lang]['REGEXPS'][i])=="function")continue;var val=this.load_syntax[lang]['REGEXPS'][i];if(!this.syntax[lang]["custom_regexp"][val['execute']])this.syntax[lang]["custom_regexp"][val['execute']]={};this.syntax[lang]["custom_regexp"][val['execute']][i]={'regexp':new RegExp(val['search'],val['modifiers']),'class':val['class']};}}if(this.load_syntax[lang]['STYLES']){lang_style[lang]={};for(var i in this.load_syntax[lang]['STYLES']){if(typeof(this.load_syntax[lang]['STYLES'][i])=="function")continue;if(typeof(this.load_syntax[lang]['STYLES'][i])!="string"){for(var j in this.load_syntax[lang]['STYLES'][i]){lang_style[lang][j]=this.load_syntax[lang]['STYLES'][i][j];}}
+else{lang_style[lang][i]=this.load_syntax[lang]['STYLES'][i];}}}var style="";for(var i in lang_style[lang]){if(lang_style[lang][i].length>0){style+="."+lang+" ."+i.toLowerCase()+" span{"+lang_style[lang][i]+"}\n";style+="."+lang+" ."+i.toLowerCase()+"{"+lang_style[lang][i]+"}\n";}}this.syntax[lang]["styles"]=style;}}};eAL.waiting_loading["reg_syntax.js"]="loaded";
+var editAreaLoader= eAL;var editAreas=eAs;EditAreaLoader=EAL;editAreaLoader.iframe_script= "<script type='text/javascript'> ร EA(){var t=ร;t.error=ร;t.inlinePopup=[{popup_id:\"area_search_replace\",icon_id:\"search\"},{popup_id:\"edit_area_help\",icon_id:\"help\"}];t.plugins={};t.line_number=0;ร.eAL.set_browser_infos(t);if(t.isIE >=8)t.isIE=7;t.ร={};t.last_text_to_highlight=\"\";t.last_hightlighted_text=\"\";t.syntax_list=[];t.allready_used_syntax={};t.check_line_selection_timer=50;t.รFocused=ร;t.highlight_selection_line=null;t.previous=[];t.next=[];t.last_undo=\"\";t.files={};t.filesIdAssoc={};t.curr_file='';t.assocBracket={};t.revertAssocBracket={};t.assocBracket[\"(\"]=\")\";t.assocBracket[\"{\"]=\"}\";t.assocBracket[\"[\"]=\"]\";for(var index in t.assocBracket){t.revertAssocBracket[t.assocBracket[index]]=index;}t.is_editable=ร;t.lineHeight=16;t.tab_nb_char=8;if(t.isOpera)t.tab_nb_char=6;t.is_tabbing=ร;t.fullscreen={'isFull':ร};t.isResizing=ร;t.id=area_id;t.ร=eAs[t.id][\"ร\"];if((\"\"+t.ร['replace_tab_by_spaces']).match(/^[0-9]+$/)){t.tab_nb_char=t.ร['replace_tab_by_spaces'];t.tabulation=\"\";for(var i=0;i<t.tab_nb_char;i++)t.tabulation+=\" \";}\nelse{t.tabulation=\"\t\";}if(t.ร[\"syntax_selection_allow\"]&&t.ร[\"syntax_selection_allow\"].ร>0)t.syntax_list=t.ร[\"syntax_selection_allow\"].replace(/ /g,\"\").split(\",\");if(t.ร['syntax'])t.allready_used_syntax[t.ร['syntax']]=ร;};EA.ร.init=ร(){var t=ร,a,s=t.ร;t.ร=_$(\"ร\");t.container=_$(\"container\");t.result=_$(\"result\");t.content_highlight=_$(\"content_highlight\");t.selection_field=_$(\"selection_field\");t.selection_field_text=_$(\"selection_field_text\");t.processing_screen=_$(\"processing\");t.editor_area=_$(\"editor\");t.tab_browsing_area=_$(\"tab_browsing_area\");t.test_font_size=_$(\"test_font_size\");a=t.ร;if(!s['is_editable'])t.set_editable(ร);t.set_show_line_colors(s['show_line_colors']);if(syntax_selec=_$(\"syntax_selection\")){for(var i=0;i<t.syntax_list.ร;i++){var syntax=t.syntax_list[i];var option=document.createElement(\"option\");option.ร=syntax;if(syntax==s['syntax'])option.selected=\"selected\";option.innerHTML=t.get_translation(\"syntax_\"+syntax,\"word\");syntax_selec.appendChild(option);}}spans=ร.getChildren(_$(\"toolbar_1\"),\"span\",\"\",\"\",\"all\",-1);for(var i=0;i<spans.ร;i++){id=spans[i].id.replace(/tmp_tool_(.*)/,\"$1\");if(id!=spans[i].id){for(var j in t.plugins){if(typeof(t.plugins[j].get_control_html)==\"ร\"){html=t.plugins[j].get_control_html(id);if(html!=ร){html=t.get_translation(html,\"template\");var new_span=document.createElement(\"span\");new_span.innerHTML=html;var father=spans[i].รNode;spans[i].รNode.replaceChild(new_span,spans[i]);break;}}}}}if(s[\"debug\"]){t.debug=ร.document.getElementById(\"edit_area_debug_\"+t.id);}if(_$(\"redo\")!=null)t.switchClassSticky(_$(\"redo\"),'editAreaButtonDisabled',ร);if(typeof(ร.eAL.syntax[s[\"syntax\"]])!=\"undefined\"){for(var i in ร.eAL.syntax){if(typeof(ร.eAL.syntax[i][\"รs\"])!=\"undefined\"){t.add_ร(ร.eAL.syntax[i][\"รs\"]);}}}if(t.isOpera)_$(\"editor\").onkeypress=keyDown;\nelse _$(\"editor\").onkeydown=keyDown;for(var i=0;i<t.inlinePopup.ร;i++){if(t.isOpera)_$(t.inlinePopup[i][\"popup_id\"]).onkeypress=keyDown;\nelse _$(t.inlinePopup[i][\"popup_id\"]).onkeydown=keyDown;}if(s[\"allow_resize\"]==\"both\"||s[\"allow_resize\"]==\"x\"||s[\"allow_resize\"]==\"y\")t.allow_resize(ร);ร.eAL.toggle(t.id,\"on\");t.change_smooth_selection_mode(eA.smooth_selection);t.execCommand(\"change_highlight\",s[\"start_highlight\"]);t.set_font(eA.ร[\"font_family\"],eA.ร[\"font_size\"]);children=ร.getChildren(document.body,\"\",\"selec\",\"none\",\"all\",-1);for(var i=0;i<children.ร;i++){if(t.isIE)children[i].unselectable=ร;\nelse children[i].onmousedown=ร(){return ร};}a.spellcheck=s[\"gecko_spellcheck\"];if(t.isFirefox >='3'){t.content_highlight.ร.paddingLeft=\"1px\";t.selection_field.ร.paddingLeft=\"1px\";t.selection_field_text.ร.paddingLeft=\"1px\";}if(t.isIE&&t.isIE < 8){a.ร.marginTop=\"-1px\";}if(t.isSafari){t.editor_area.ร.position=\"absolute\";a.ร.marginLeft=\"-3px\";if(t.isSafari < 3.2)a.ร.marginTop=\"1px\";}ร.eAL.add_event(t.result,\"click\",ร(e){if((e.target||e.srcElement)==eA.result){eA.area_select(eA.ร.ร.ร,0);}});if(s['is_multi_files']!=ร)t.open_file({'id':t.curr_file,'text':''});t.set_word_wrap(s['word_wrap']);setTimeout(\"eA.focus();eA.manage_size();eA.execCommand('EA_load');\",10);t.check_undo();t.check_line_selection(ร);t.scroll_to_view();for(var i in t.plugins){if(typeof(t.plugins[i].onload)==\"ร\")t.plugins[i].onload();}if(s['fullscreen']==ร)t.toggle_full_screen(ร);ร.eAL.add_event(window,\"resize\",eA.update_size);ร.eAL.add_event(ร.window,\"resize\",eA.update_size);ร.eAL.add_event(top.window,\"resize\",eA.update_size);ร.eAL.add_event(window,\"unload\",ร(){if(ร.eAL){ร.eAL.remove_event(ร.window,\"resize\",eA.update_size);ร.eAL.remove_event(top.window,\"resize\",eA.update_size);}if(eAs[eA.id]&&eAs[eA.id][\"displayed\"]){eA.execCommand(\"EA_unload\");}});};EA.ร.update_size=ร(){var d=document,pd=ร.document,height,width,popup,maxLeft,maxTop;if(typeof eAs !='undefined'&&eAs[eA.id]&&eAs[eA.id][\"displayed\"]==ร){if(eA.fullscreen['isFull']){pd.getElementById(\"frame_\"+eA.id).ร.width=pd.getElementsByTagName(\"html\")[0].clientWidth+\"px\";pd.getElementById(\"frame_\"+eA.id).ร.height=pd.getElementsByTagName(\"html\")[0].clientHeight+\"px\";}if(eA.tab_browsing_area.ร.display=='block'&&(!eA.isIE||eA.isIE >=8)){eA.tab_browsing_area.ร.height=\"0px\";eA.tab_browsing_area.ร.height=(eA.result.offsetTop-eA.tab_browsing_area.offsetTop-1)+\"px\";}height=d.body.offsetHeight-eA.get_all_toolbar_height()-4;eA.result.ร.height=height+\"px\";width=d.body.offsetWidth-2;eA.result.ร.width=width+\"px\";for(i=0;i < eA.inlinePopup.ร;i++){popup=_$(eA.inlinePopup[i][\"popup_id\"]);maxLeft=d.body.offsetWidth-popup.offsetWidth;maxTop=d.body.offsetHeight-popup.offsetHeight;if(popup.offsetTop > maxTop)popup.ร.top=maxTop+\"px\";if(popup.offsetLeft > maxLeft)popup.ร.left=maxLeft+\"px\";}eA.manage_size(ร);eA.fixLinesHeight(eA.ร.ร,0,-1);}};EA.ร.manage_size=ร(onlyOneTime){if(!eAs[ร.id])return ร;if(eAs[ร.id][\"displayed\"]==ร&&ร.รFocused){var area_height,resized=ร;if(!ร.ร['word_wrap']){var area_width=ร.ร.scrollWidth;area_height=ร.ร.scrollHeight;if(ร.isOpera&&ร.isOpera < 9.6){area_width=10000;}if(ร.ร.previous_scrollWidth!=area_width){ร.container.ร.width=area_width+\"px\";ร.ร.ร.width=area_width+\"px\";ร.content_highlight.ร.width=area_width+\"px\";ร.ร.previous_scrollWidth=area_width;resized=ร;}}if(ร.ร['word_wrap']){newW=ร.ร.offsetWidth;if(ร.isFirefox||ร.isIE)newW-=2;if(ร.isSafari)newW-=6;ร.content_highlight.ร.width=ร.selection_field_text.ร.width=ร.selection_field.ร.width=ร.test_font_size.ร.width=newW+\"px\";}if(ร.isOpera||ร.isFirefox||ร.isSafari){area_height=ร.getLinePosTop(ร.ร[\"nb_line\"]+1);}\nelse{area_height=ร.ร.scrollHeight;}if(ร.ร.previous_scrollHeight!=area_height){ร.container.ร.height=(area_height+2)+\"px\";ร.ร.ร.height=area_height+\"px\";ร.content_highlight.ร.height=area_height+\"px\";ร.ร.previous_scrollHeight=area_height;resized=ร;}if(ร.ร[\"nb_line\"] >=ร.line_number){var newLines='',destDiv=_$(\"line_number\"),start=ร.line_number,end=ร.ร[\"nb_line\"]+100;for(i=start+1;i < end;i++){newLines+='<div id=\"line_'+i+'\">'+i+\"</div>\";ร.line_number++;}destDiv.innerHTML=destDiv.innerHTML+newLines;ร.fixLinesHeight(ร.ร.ร,start,-1);}ร.ร.scrollTop=\"0px\";ร.ร.scrollLeft=\"0px\";if(resized==ร){ร.scroll_to_view();}}if(!onlyOneTime)setTimeout(\"eA.manage_size();\",100);};EA.ร.execCommand=ร(cmd,param){for(var i in ร.plugins){if(typeof(ร.plugins[i].execCommand)==\"ร\"){if(!ร.plugins[i].execCommand(cmd,param))return;}}switch(cmd){case \"save\":if(ร.ร[\"save_callback\"].ร>0)eval(\"ร.\"+ร.ร[\"save_callback\"]+\"('\"+ร.id+\"',eA.ร.ร);\");break;case \"load\":if(ร.ร[\"load_callback\"].ร>0)eval(\"ร.\"+ร.ร[\"load_callback\"]+\"('\"+ร.id+\"');\");break;case \"onchange\":if(ร.ร[\"change_callback\"].ร>0)eval(\"ร.\"+ร.ร[\"change_callback\"]+\"('\"+ร.id+\"');\");break;case \"EA_load\":if(ร.ร[\"EA_load_callback\"].ร>0)eval(\"ร.\"+ร.ร[\"EA_load_callback\"]+\"('\"+ร.id+\"');\");break;case \"EA_unload\":if(ร.ร[\"EA_unload_callback\"].ร>0)eval(\"ร.\"+ร.ร[\"EA_unload_callback\"]+\"('\"+ร.id+\"');\");break;case \"toggle_on\":if(ร.ร[\"EA_toggle_on_callback\"].ร>0)eval(\"ร.\"+ร.ร[\"EA_toggle_on_callback\"]+\"('\"+ร.id+\"');\");break;case \"toggle_off\":if(ร.ร[\"EA_toggle_off_callback\"].ร>0)eval(\"ร.\"+ร.ร[\"EA_toggle_off_callback\"]+\"('\"+ร.id+\"');\");break;case \"re_sync\":if(!ร.do_highlight)break;case \"file_switch_on\":if(ร.ร[\"EA_file_switch_on_callback\"].ร>0)eval(\"ร.\"+ร.ร[\"EA_file_switch_on_callback\"]+\"(param);\");break;case \"file_switch_off\":if(ร.ร[\"EA_file_switch_off_callback\"].ร>0)eval(\"ร.\"+ร.ร[\"EA_file_switch_off_callback\"]+\"(param);\");break;case \"file_close\":if(ร.ร[\"EA_file_close_callback\"].ร>0)return eval(\"ร.\"+ร.ร[\"EA_file_close_callback\"]+\"(param);\");break;default:if(typeof(eval(\"eA.\"+cmd))==\"ร\"){if(ร.ร[\"debug\"])eval(\"eA.\"+cmd+\"(param);\");\nelse try{eval(\"eA.\"+cmd+\"(param);\");}catch(e){};}}};EA.ร.get_translation=ร(word,mode){if(mode==\"template\")return ร.eAL.translate(word,ร.ร[\"language\"],mode);\nelse return ร.eAL.get_word_translation(word,ร.ร[\"language\"]);};EA.ร.add_plugin=ร(plug_name,plug_obj){for(var i=0;i<ร.ร[\"plugins\"].ร;i++){if(ร.ร[\"plugins\"][i]==plug_name){ร.plugins[plug_name]=plug_obj;plug_obj.baseURL=ร.eAL.baseURL+\"plugins/\"+plug_name+\"/\";if(typeof(plug_obj.init)==\"ร\")plug_obj.init();}}};EA.ร.load_css=ร(url){try{link=document.createElement(\"link\");link.type=\"text/css\";link.rel=\"รsheet\";link.media=\"all\";link.href=url;head=document.getElementsByTagName(\"head\");head[0].appendChild(link);}catch(e){document.write(\"<link href='\"+url+\"' rel='รsheet' type='text/css' />\");}};EA.ร.load_script=ร(url){try{script=document.createElement(\"script\");script.type=\"text/javascript\";script.src=url;script.charset=\"UTF-8\";head=document.getElementsByTagName(\"head\");head[0].appendChild(script);}catch(e){document.write(\"<script type='text/javascript' src='\"+url+\"' charset=\\\"UTF-8\\\"><\"+\"/script>\");}};EA.ร.add_lang=ร(language,รs){if(!ร.eAL.lang[language])ร.eAL.lang[language]={};for(var i in รs)ร.eAL.lang[language][i]=รs[i];};ร _$(id){return document.getElementById(id);};var eA=new EA();ร.eAL.add_event(window,\"load\",init);ร init(){setTimeout(\"eA.init();\",10);};	EA.ร.focus=ร(){ร.ร.focus();ร.รFocused=ร;};EA.ร.check_line_selection=ร(timer_checkup){var changes,infos,new_top,new_width,i;var t1=t2=t2_1=t3=tLines=tend=new Date().getTime();if(!eAs[ร.id])return ร;if(!ร.smooth_selection&&!ร.do_highlight){}\nelse if(ร.รFocused&&eAs[ร.id][\"displayed\"]==ร&&ร.isResizing==ร){infos=ร.get_selection_infos();changes=ร.checkTextEvolution(typeof(ร.ร['full_text'])=='undefined' ? '':ร.ร['full_text'],infos['full_text']);t2=new Date().getTime();if(ร.ร[\"line_start\"] !=infos[\"line_start\"]||ร.ร[\"line_nb\"] !=infos[\"line_nb\"]||infos[\"full_text\"] !=ร.ร[\"full_text\"]||ร.reload_highlight||ร.ร[\"selectionStart\"] !=infos[\"selectionStart\"]||ร.ร[\"selectionEnd\"] !=infos[\"selectionEnd\"]||!timer_checkup){new_top=ร.getLinePosTop(infos[\"line_start\"]);new_width=Math.max(ร.ร.scrollWidth,ร.container.clientWidth-50);ร.selection_field.ร.top=ร.selection_field_text.ร.top=new_top+\"px\";if(!ร.ร['word_wrap']){ร.selection_field.ร.width=ร.selection_field_text.ร.width=ร.test_font_size.ร.width=new_width+\"px\";}if(ร.do_highlight==ร){var curr_text=infos[\"full_text\"].split(\"\\n\");var content=\"\";var start=Math.max(0,infos[\"line_start\"]-1);var end=Math.min(curr_text.ร,infos[\"line_start\"]+infos[\"line_nb\"]-1);for(i=start;i< end;i++){content+=curr_text[i]+\"\\n\";}selLength=infos['selectionEnd']-infos['selectionStart'];content=content.substr(0,infos[\"curr_pos\"]-1)+\"\\r\\r\"+content.substr(infos[\"curr_pos\"]-1,selLength)+\"\\r\\r\"+content.substr(infos[\"curr_pos\"]-1+selLength);content='<span>'+content.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(\"\\r\\r\",'</span><strong>').replace(\"\\r\\r\",'</strong><span>')+'</span>';if(ร.isIE||(ร.isOpera&&ร.isOpera < 9.6)){ร.selection_field.innerHTML=\"<pre>\"+content.replace(/^\\r?\\n/,\"<br>\")+\"</pre>\";}\nelse{ร.selection_field.innerHTML=content;}ร.selection_field_text.innerHTML=ร.selection_field.innerHTML;t2_1=new Date().getTime();if(ร.reload_highlight||(infos[\"full_text\"] !=ร.last_text_to_highlight&&(ร.ร[\"line_start\"]!=infos[\"line_start\"]||ร.show_line_colors||ร.ร['word_wrap']||ร.ร[\"line_nb\"]!=infos[\"line_nb\"]||ร.ร[\"nb_line\"]!=infos[\"nb_line\"]))){ร.maj_highlight(infos);}}}t3=new Date().getTime();if(ร.ร['word_wrap']&&infos[\"full_text\"] !=ร.ร[\"full_text\"]){if(changes.newText.split(\"\\n\").ร==1&&ร.ร['nb_line']&&infos['nb_line']==ร.ร['nb_line']){ร.fixLinesHeight(infos['full_text'],changes.lineStart,changes.lineStart);}\nelse{ร.fixLinesHeight(infos['full_text'],changes.lineStart,-1);}}tLines=new Date().getTime();if(infos[\"line_start\"] !=ร.ร[\"line_start\"]||infos[\"curr_pos\"] !=ร.ร[\"curr_pos\"]||infos[\"full_text\"].ร!=ร.ร[\"full_text\"].ร||ร.reload_highlight||!timer_checkup){var selec_char=infos[\"curr_line\"].charAt(infos[\"curr_pos\"]-1);var no_real_move=ร;if(infos[\"line_nb\"]==1&&(ร.assocBracket[selec_char]||ร.revertAssocBracket[selec_char])){no_real_move=ร;if(ร.findEndBracket(infos,selec_char)===ร){_$(\"end_bracket\").ร.visibility=\"visible\";_$(\"cursor_pos\").ร.visibility=\"visible\";_$(\"cursor_pos\").innerHTML=selec_char;_$(\"end_bracket\").innerHTML=(ร.assocBracket[selec_char]||ร.revertAssocBracket[selec_char]);}\nelse{_$(\"end_bracket\").ร.visibility=\"hidden\";_$(\"cursor_pos\").ร.visibility=\"hidden\";}}\nelse{_$(\"cursor_pos\").ร.visibility=\"hidden\";_$(\"end_bracket\").ร.visibility=\"hidden\";}ร.displayToCursorPosition(\"cursor_pos\",infos[\"line_start\"],infos[\"curr_pos\"]-1,infos[\"curr_line\"],no_real_move);if(infos[\"line_nb\"]==1&&infos[\"line_start\"]!=ร.ร[\"line_start\"])ร.scroll_to_view();}ร.ร=infos;}tend=new Date().getTime();if(timer_checkup){setTimeout(\"eA.check_line_selection(ร)\",ร.check_line_selection_timer);}};EA.ร.get_selection_infos=ร(){var sel={},start,end,len,str;ร.getIESelection();start=ร.ร.selectionStart;end=ร.ร.selectionEnd;if(ร.ร[\"selectionStart\"]==start&&ร.ร[\"selectionEnd\"]==end&&ร.ร[\"full_text\"]==ร.ร.ร){return ร.ร;}if(ร.tabulation!=\"\t\"&&ร.ร.ร.indexOf(\"\t\")!=-1){len=ร.ร.ร.ร;ร.ร.ร=ร.replace_tab(ร.ร.ร);start=end=start+(ร.ร.ร.ร-len);ร.area_select(start,0);}sel[\"selectionStart\"]=start;sel[\"selectionEnd\"]=end;sel[\"full_text\"]=ร.ร.ร;sel[\"line_start\"]=1;sel[\"line_nb\"]=1;sel[\"curr_pos\"]=0;sel[\"curr_line\"]=\"\";sel[\"indexOfCursor\"]=0;sel[\"selec_direction\"]=ร.ร[\"selec_direction\"];var splitTab=sel[\"full_text\"].split(\"\\n\");var nbLine=Math.max(0,splitTab.ร);var nbChar=Math.max(0,sel[\"full_text\"].ร-(nbLine-1));if(sel[\"full_text\"].indexOf(\"\\r\")!=-1)nbChar=nbChar-(nbLine-1);sel[\"nb_line\"]=nbLine;sel[\"nb_char\"]=nbChar;if(start>0){str=sel[\"full_text\"].substr(0,start);sel[\"curr_pos\"]=start-str.lastIndexOf(\"\\n\");sel[\"line_start\"]=Math.max(1,str.split(\"\\n\").ร);}\nelse{sel[\"curr_pos\"]=1;}if(end>start){sel[\"line_nb\"]=sel[\"full_text\"].substring(start,end).split(\"\\n\").ร;}sel[\"indexOfCursor\"]=start;sel[\"curr_line\"]=splitTab[Math.max(0,sel[\"line_start\"]-1)];if(sel[\"selectionStart\"]==ร.ร[\"selectionStart\"]){if(sel[\"selectionEnd\"]>ร.ร[\"selectionEnd\"])sel[\"selec_direction\"]=\"down\";\nelse if(sel[\"selectionEnd\"]==ร.ร[\"selectionStart\"])sel[\"selec_direction\"]=ร.ร[\"selec_direction\"];}\nelse if(sel[\"selectionStart\"]==ร.ร[\"selectionEnd\"]&&sel[\"selectionEnd\"]>ร.ร[\"selectionEnd\"]){sel[\"selec_direction\"]=\"down\";}\nelse{sel[\"selec_direction\"]=\"up\";}_$(\"nbLine\").innerHTML=nbLine;_$(\"nbChar\").innerHTML=nbChar;_$(\"linePos\").innerHTML=sel[\"line_start\"];_$(\"currPos\").innerHTML=sel[\"curr_pos\"];return sel;};EA.ร.getIESelection=ร(){var selectionStart,selectionEnd,range,stored_range;if(!ร.isIE)return ร;if(ร.ร['word_wrap'])ร.ร.wrap='off';try{range=document.selection.createRange();stored_range=range.duplicate();stored_range.moveToElementText(ร.ร);stored_range.setEndPoint('EndToEnd',range);if(stored_range.รElement()!=ร.ร)throw \"invalid focus\";var scrollTop=ร.result.scrollTop+document.body.scrollTop;var relative_top=range.offsetTop-ร.calculeOffsetTop(ร.ร)+scrollTop;var line_start=Math.round((relative_top / ร.lineHeight)+1);var line_nb=Math.round(range.boundingHeight / ร.lineHeight);selectionStart=stored_range.text.ร-range.text.ร;selectionStart+=(line_start-ร.ร.ร.substr(0,selectionStart).split(\"\\n\").ร)*2;selectionStart-=(line_start-ร.ร.ร.substr(0,selectionStart).split(\"\\n\").ร)* 2;selectionEnd=selectionStart+range.text.ร;selectionEnd+=(line_start+line_nb-1-ร.ร.ร.substr(0,selectionEnd).split(\"\\n\").ร)*2;ร.ร.selectionStart=selectionStart;ร.ร.selectionEnd=selectionEnd;}catch(e){}if(ร.ร['word_wrap'])ร.ร.wrap='soft';};EA.ร.setIESelection=ร(){var a=ร.ร,nbLineStart,nbLineEnd,range;if(!ร.isIE)return ร;nbLineStart=a.ร.substr(0,a.selectionStart).split(\"\\n\").ร-1;nbLineEnd=a.ร.substr(0,a.selectionEnd).split(\"\\n\").ร-1;range=document.selection.createRange();range.moveToElementText(a);range.setEndPoint('EndToStart',range);range.moveStart('character',a.selectionStart-nbLineStart);range.moveEnd('character',a.selectionEnd-nbLineEnd-(a.selectionStart-nbLineStart));range.select();};EA.ร.checkTextEvolution=ร(lastText,newText){var ch={},baseStep=200,cpt=0,end,step,tStart=new Date().getTime();end=Math.min(newText.ร,lastText.ร);step=baseStep;while(cpt<end&&step>=1){if(lastText.substr(cpt,step)==newText.substr(cpt,step)){cpt+=step;}\nelse{step=Math.floor(step/2);}}ch.posStart=cpt;ch.lineStart=newText.substr(0,ch.posStart).split(\"\\n\").ร-1;cpt_last=lastText.ร;cpt=newText.ร;step=baseStep;while(cpt>=0&&cpt_last>=0&&step>=1){if(lastText.substr(cpt_last-step,step)==newText.substr(cpt-step,step)){cpt-=step;cpt_last-=step;}\nelse{step=Math.floor(step/2);}}ch.posNewEnd=cpt;ch.posLastEnd=cpt_last;if(ch.posNewEnd<=ch.posStart){if(lastText.ร < newText.ร){ch.posNewEnd=ch.posStart+newText.ร-lastText.ร;ch.posLastEnd=ch.posStart;}\nelse{ch.posLastEnd=ch.posStart+lastText.ร-newText.ร;ch.posNewEnd=ch.posStart;}}ch.newText=newText.substring(ch.posStart,ch.posNewEnd);ch.lastText=lastText.substring(ch.posStart,ch.posLastEnd);ch.lineNewEnd=newText.substr(0,ch.posNewEnd).split(\"\\n\").ร-1;ch.lineLastEnd=lastText.substr(0,ch.posLastEnd).split(\"\\n\").ร-1;ch.newTextLine=newText.split(\"\\n\").slice(ch.lineStart,ch.lineNewEnd+1).join(\"\\n\");ch.lastTextLine=lastText.split(\"\\n\").slice(ch.lineStart,ch.lineLastEnd+1).join(\"\\n\");return ch;};EA.ร.tab_selection=ร(){if(ร.is_tabbing)return;ร.is_tabbing=ร;ร.getIESelection();var start=ร.ร.selectionStart;var end=ร.ร.selectionEnd;var insText=ร.ร.ร.substring(start,end);var pos_start=start;var pos_end=end;if(insText.ร==0){ร.ร.ร=ร.ร.ร.substr(0,start)+ร.tabulation+ร.ร.ร.substr(end);pos_start=start+ร.tabulation.ร;pos_end=pos_start;}\nelse{start=Math.max(0,ร.ร.ร.substr(0,start).lastIndexOf(\"\\n\")+1);endText=ร.ร.ร.substr(end);startText=ร.ร.ร.substr(0,start);tmp=ร.ร.ร.substring(start,end).split(\"\\n\");insText=ร.tabulation+tmp.join(\"\\n\"+ร.tabulation);ร.ร.ร=startText+insText+endText;pos_start=start;pos_end=ร.ร.ร.indexOf(\"\\n\",startText.ร+insText.ร);if(pos_end==-1)pos_end=ร.ร.ร.ร;}ร.ร.selectionStart=pos_start;ร.ร.selectionEnd=pos_end;if(ร.isIE){ร.setIESelection();setTimeout(\"eA.is_tabbing=ร;\",100);}\nelse{ร.is_tabbing=ร;}};EA.ร.invert_tab_selection=ร(){var t=ร,a=ร.ร;if(t.is_tabbing)return;t.is_tabbing=ร;t.getIESelection();var start=a.selectionStart;var end=a.selectionEnd;var insText=a.ร.substring(start,end);var pos_start=start;var pos_end=end;if(insText.ร==0){if(a.ร.substring(start-t.tabulation.ร,start)==t.tabulation){a.ร=a.ร.substr(0,start-t.tabulation.ร)+a.ร.substr(end);pos_start=Math.max(0,start-t.tabulation.ร);pos_end=pos_start;}}\nelse{start=a.ร.substr(0,start).lastIndexOf(\"\\n\")+1;endText=a.ร.substr(end);startText=a.ร.substr(0,start);tmp=a.ร.substring(start,end).split(\"\\n\");insText=\"\";for(i=0;i<tmp.ร;i++){for(j=0;j<t.tab_nb_char;j++){if(tmp[i].charAt(0)==\"\t\"){tmp[i]=tmp[i].substr(1);j=t.tab_nb_char;}\nelse if(tmp[i].charAt(0)==\" \")tmp[i]=tmp[i].substr(1);}insText+=tmp[i];if(i<tmp.ร-1)insText+=\"\\n\";}a.ร=startText+insText+endText;pos_start=start;pos_end=a.ร.indexOf(\"\\n\",startText.ร+insText.ร);if(pos_end==-1)pos_end=a.ร.ร;}a.selectionStart=pos_start;a.selectionEnd=pos_end;if(t.isIE){t.setIESelection();setTimeout(\"eA.is_tabbing=ร;\",100);}\nelse t.is_tabbing=ร;};EA.ร.press_enter=ร(){if(!ร.smooth_selection)return ร;ร.getIESelection();var scrollTop=ร.result.scrollTop;var scrollLeft=ร.result.scrollLeft;var start=ร.ร.selectionStart;var end=ร.ร.selectionEnd;var start_last_line=Math.max(0,ร.ร.ร.substring(0,start).lastIndexOf(\"\\n\")+1);var begin_line=ร.ร.ร.substring(start_last_line,start).replace(/^([ \t]*).*/gm,\"$1\");var lineStart=ร.ร.ร.substring(0,start).split(\"\\n\").ร;if(begin_line==\"\\n\"||begin_line==\"\\r\"||begin_line.ร==0){return ร;}if(ร.isIE||(ร.isOpera&&ร.isOpera < 9.6)){begin_line=\"\\r\\n\"+begin_line;}\nelse{begin_line=\"\\n\"+begin_line;}ร.ร.ร=ร.ร.ร.substring(0,start)+begin_line+ร.ร.ร.substring(end);ร.area_select(start+begin_line.ร,0);if(ร.isIE){ร.result.scrollTop=scrollTop;ร.result.scrollLeft=scrollLeft;}return ร;};EA.ร.findEndBracket=ร(infos,bracket){var start=infos[\"indexOfCursor\"];var normal_order=ร;if(ร.assocBracket[bracket])endBracket=ร.assocBracket[bracket];\nelse if(ร.revertAssocBracket[bracket]){endBracket=ร.revertAssocBracket[bracket];normal_order=ร;}var end=-1;var nbBracketOpen=0;for(var i=start;i<infos[\"full_text\"].ร&&i>=0;){if(infos[\"full_text\"].charAt(i)==endBracket){nbBracketOpen--;if(nbBracketOpen<=0){end=i;break;}}\nelse if(infos[\"full_text\"].charAt(i)==bracket)nbBracketOpen++;if(normal_order)i++;\nelse i--;}if(end==-1)return ร;var endLastLine=infos[\"full_text\"].substr(0,end).lastIndexOf(\"\\n\");if(endLastLine==-1)line=1;\nelse line=infos[\"full_text\"].substr(0,endLastLine).split(\"\\n\").ร+1;var curPos=end-endLastLine-1;var endLineLength=infos[\"full_text\"].substring(end).split(\"\\n\")[0].ร;ร.displayToCursorPosition(\"end_bracket\",line,curPos,infos[\"full_text\"].substring(endLastLine+1,end+endLineLength));return ร;};EA.ร.displayToCursorPosition=ร(id,start_line,cur_pos,lineContent,no_real_move){var elem,dest,content,posLeft=0,posTop,fixPadding,topOffset,endElem;elem=ร.test_font_size;dest=_$(id);content=\"<span id='test_font_size_inner'>\"+lineContent.substr(0,cur_pos).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\")+\"</span><span id='endTestFont'>\"+lineContent.substr(cur_pos).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\")+\"</span>\";if(ร.isIE||(ร.isOpera&&ร.isOpera < 9.6)){elem.innerHTML=\"<pre>\"+content.replace(/^\\r?\\n/,\"<br>\")+\"</pre>\";}\nelse{elem.innerHTML=content;}endElem=_$('endTestFont');topOffset=endElem.offsetTop;fixPadding=parseInt(ร.content_highlight.ร.paddingLeft.replace(\"px\",\"\"));posLeft=45+endElem.offsetLeft+(!isNaN(fixPadding)&&topOffset > 0 ? fixPadding:0);posTop=ร.getLinePosTop(start_line)+topOffset;if(ร.isIE&&cur_pos > 0&&endElem.offsetLeft==0){posTop+=ร.lineHeight;}if(no_real_move!=ร){dest.ร.top=posTop+\"px\";dest.ร.left=posLeft+\"px\";}dest.cursor_top=posTop;dest.cursor_left=posLeft;};EA.ร.getLinePosTop=ร(start_line){var elem=_$('line_'+start_line),posTop=0;if(elem)posTop=elem.offsetTop;\nelse posTop=ร.lineHeight *(start_line-1);return posTop;};EA.ร.getTextHeight=ร(text){var t=ร,elem,height;elem=t.test_font_size;content=text.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\");if(t.isIE||(ร.isOpera&&ร.isOpera < 9.6)){elem.innerHTML=\"<pre>\"+content.replace(/^\\r?\\n/,\"<br>\")+\"</pre>\";}\nelse{elem.innerHTML=content;}height=elem.offsetHeight;height=Math.max(1,Math.floor(elem.offsetHeight / ร.lineHeight))* ร.lineHeight;return height;};EA.ร.fixLinesHeight=ร(textValue,lineStart,lineEnd){var aText=textValue.split(\"\\n\");if(lineEnd==-1)lineEnd=aText.ร-1;for(var i=Math.max(0,lineStart);i <=lineEnd;i++){if(elem=_$('line_'+(i+1))){elem.ร.height=typeof(aText[i])!=\"undefined\" ? ร.getTextHeight(aText[i])+\"px\":ร.lineHeight;}}};EA.ร.area_select=ร(start,ร){ร.ร.focus();start=Math.max(0,Math.min(ร.ร.ร.ร,start));end=Math.max(start,Math.min(ร.ร.ร.ร,start+ร));if(ร.isIE){ร.ร.selectionStart=start;ร.ร.selectionEnd=end;ร.setIESelection();}\nelse{if(ร.isOpera&&ร.isOpera < 9.6){ร.ร.setSelectionRange(0,0);}ร.ร.setSelectionRange(start,end);}ร.check_line_selection();};EA.ร.area_get_selection=ร(){var text=\"\";if(document.selection){var range=document.selection.createRange();text=range.text;}\nelse{text=ร.ร.ร.substring(ร.ร.selectionStart,ร.ร.selectionEnd);}return text;}; EA.ร.replace_tab=ร(text){return text.replace(/((\\n?)([^\t\\n]*)\t)/gi,eA.smartTab);};EA.ร.smartTab=ร(){val=\"                   \";return EA.ร.smartTab.arguments[2]+EA.ร.smartTab.arguments[3]+val.substr(0,eA.tab_nb_char-(EA.ร.smartTab.arguments[3].ร)%eA.tab_nb_char);};EA.ร.show_waiting_screen=ร(){width=ร.editor_area.offsetWidth;height=ร.editor_area.offsetHeight;if(!(ร.isIE&&ร.isIE<6)){width-=2;height-=2;}ร.processing_screen.ร.display=\"block\";ร.processing_screen.ร.width=width+\"px\";ร.processing_screen.ร.height=height+\"px\";ร.waiting_screen_displayed=ร;};EA.ร.hide_waiting_screen=ร(){ร.processing_screen.ร.display=\"none\";ร.waiting_screen_displayed=ร;};EA.ร.add_ร=ร(รs){if(รs.ร>0){newcss=document.createElement(\"ร\");newcss.type=\"text/css\";newcss.media=\"all\";if(newcss.รSheet){newcss.รSheet.cssText=รs;}\nelse{newcss.appendChild(document.createTextNode(รs));}document.getElementsByTagName(\"head\")[0].appendChild(newcss);}};EA.ร.set_font=ร(family,size){var t=ร,a=ร.ร,s=ร.ร,elem_font,i,elem;var elems=[\"ร\",\"content_highlight\",\"cursor_pos\",\"end_bracket\",\"selection_field\",\"selection_field_text\",\"line_number\"];if(family&&family!=\"\")s[\"font_family\"]=family;if(size&&size>0)s[\"font_size\"]=size;if(t.isOpera&&t.isOpera < 9.6)s['font_family']=\"monospace\";if(elem_font=_$(\"area_font_size\")){for(i=0;i < elem_font.ร;i++){if(elem_font.options[i].ร&&elem_font.options[i].ร==s[\"font_size\"])elem_font.options[i].selected=ร;}}if(t.isFirefox){var nbTry=3;do{var div1=document.createElement('div'),text1=document.createElement('ร');var รs={width:'40px',overflow:'scroll',zIndex:50,visibility:'hidden',fontFamily:s[\"font_family\"],fontSize:s[\"font_size\"]+\"pt\",lineHeight:t.lineHeight+\"px\",padding:'0',margin:'0',border:'none',whiteSpace:'nowrap'};var diff,changed=ร;for(i in รs){div1.ร[ i ]=รs[i];text1.ร[ i ]=รs[i];}text1.wrap='off';text1.setAttribute('wrap','off');t.container.appendChild(div1);t.container.appendChild(text1);div1.innerHTML=text1.ร='azertyuiopqsdfghjklm';div1.innerHTML=text1.ร=text1.ร+'wxcvbn^p*รน$!:;,,';diff=text1.scrollWidth-div1.scrollWidth;if(Math.abs(diff)>=2){s[\"font_size\"]++;changed=ร;}t.container.removeChild(div1);t.container.removeChild(text1);nbTry--;}while(changed&&nbTry > 0);}elem=t.test_font_size;elem.ร.fontFamily=\"\"+s[\"font_family\"];elem.ร.fontSize=s[\"font_size\"]+\"pt\";elem.innerHTML=\"0\";t.lineHeight=elem.offsetHeight;for(i=0;i<elems.ร;i++){elem=_$(elems[i]);elem.ร.fontFamily=s[\"font_family\"];elem.ร.fontSize=s[\"font_size\"]+\"pt\";elem.ร.lineHeight=t.lineHeight+\"px\";}t.add_ร(\"pre{font-family:\"+s[\"font_family\"]+\"}\");if((t.isOpera&&t.isOpera < 9.6)||t.isIE >=8){var parNod=a.รNode,nxtSib=a.nextSibling,start=a.selectionStart,end=a.selectionEnd;parNod.removeChild(a);parNod.insertBefore(a,nxtSib);t.area_select(start,end-start);}ร.focus();ร.update_size();ร.check_line_selection();};EA.ร.change_font_size=ร(){var size=_$(\"area_font_size\").ร;if(size>0)ร.set_font(\"\",size);};EA.ร.open_inline_popup=ร(popup_id){ร.close_all_inline_popup();var popup=_$(popup_id);var editor=_$(\"editor\");for(var i=0;i<ร.inlinePopup.ร;i++){if(ร.inlinePopup[i][\"popup_id\"]==popup_id){var icon=_$(ร.inlinePopup[i][\"icon_id\"]);if(icon){ร.switchClassSticky(icon,'editAreaButtonSelected',ร);break;}}}popup.ร.height=\"auto\";popup.ร.overflow=\"visible\";if(document.body.offsetHeight< popup.offsetHeight){popup.ร.height=(document.body.offsetHeight-10)+\"px\";popup.ร.overflow=\"auto\";}if(!popup.positionned){var new_left=editor.offsetWidth /2-popup.offsetWidth /2;var new_top=editor.offsetHeight /2-popup.offsetHeight /2;popup.ร.left=new_left+\"px\";popup.ร.top=new_top+\"px\";popup.positionned=ร;}popup.ร.visibility=\"visible\";};EA.ร.close_inline_popup=ร(popup_id){var popup=_$(popup_id);for(var i=0;i<ร.inlinePopup.ร;i++){if(ร.inlinePopup[i][\"popup_id\"]==popup_id){var icon=_$(ร.inlinePopup[i][\"icon_id\"]);if(icon){ร.switchClassSticky(icon,'editAreaButtonNormal',ร);break;}}}popup.ร.visibility=\"hidden\";};EA.ร.close_all_inline_popup=ร(e){for(var i=0;i<ร.inlinePopup.ร;i++){ร.close_inline_popup(ร.inlinePopup[i][\"popup_id\"]);}ร.ร.focus();};EA.ร.show_help=ร(){ร.open_inline_popup(\"edit_area_help\");};EA.ร.new_document=ร(){ร.ร.ร=\"\";ร.area_select(0,0);};EA.ร.get_all_toolbar_height=ร(){var area=_$(\"editor\");var results=ร.getChildren(area,\"div\",\"class\",\"area_toolbar\",\"all\",\"0\");var height=0;for(var i=0;i<results.ร;i++){height+=results[i].offsetHeight;}return height;};EA.ร.go_to_line=ร(line){if(!line){var icon=_$(\"go_to_line\");if(icon !=null){ร.restoreClass(icon);ร.switchClassSticky(icon,'editAreaButtonSelected',ร);}line=prompt(ร.get_translation(\"go_to_line_prompt\"));if(icon !=null)ร.switchClassSticky(icon,'editAreaButtonNormal',ร);}if(line&&line!=null&&line.search(/^[0-9]+$/)!=-1){var start=0;var lines=ร.ร.ร.split(\"\\n\");if(line > lines.ร)start=ร.ร.ร.ร;\nelse{for(var i=0;i<Math.min(line-1,lines.ร);i++)start+=lines[i].ร+1;}ร.area_select(start,0);}};EA.ร.change_smooth_selection_mode=ร(setTo){if(ร.do_highlight)return;if(setTo !=null){if(setTo===ร)ร.smooth_selection=ร;\nelse ร.smooth_selection=ร;}var icon=_$(\"change_smooth_selection\");ร.ร.focus();if(ร.smooth_selection===ร){ร.switchClassSticky(icon,'editAreaButtonNormal',ร);ร.smooth_selection=ร;ร.selection_field.ร.display=\"none\";_$(\"cursor_pos\").ร.display=\"none\";_$(\"end_bracket\").ร.display=\"none\";}\nelse{ร.switchClassSticky(icon,'editAreaButtonSelected',ร);ร.smooth_selection=ร;ร.selection_field.ร.display=\"block\";_$(\"cursor_pos\").ร.display=\"block\";_$(\"end_bracket\").ร.display=\"block\";}};EA.ร.scroll_to_view=ร(show){var zone,lineElem;if(!ร.smooth_selection)return;zone=_$(\"result\");var cursor_pos_top=_$(\"cursor_pos\").cursor_top;if(show==\"bottom\"){cursor_pos_top+=ร.getLinePosTop(ร.ร['line_start']+ร.ร['line_nb']-1);}var max_height_visible=zone.clientHeight+zone.scrollTop;var miss_top=cursor_pos_top+ร.lineHeight-max_height_visible;if(miss_top>0){zone.scrollTop=zone.scrollTop+miss_top;}\nelse if(zone.scrollTop > cursor_pos_top){zone.scrollTop=cursor_pos_top;}var cursor_pos_left=_$(\"cursor_pos\").cursor_left;var max_width_visible=zone.clientWidth+zone.scrollLeft;var miss_left=cursor_pos_left+10-max_width_visible;if(miss_left>0){zone.scrollLeft=zone.scrollLeft+miss_left+50;}\nelse if(zone.scrollLeft > cursor_pos_left){zone.scrollLeft=cursor_pos_left;}\nelse if(zone.scrollLeft==45){zone.scrollLeft=0;}};EA.ร.check_undo=ร(only_once){if(!eAs[ร.id])return ร;if(ร.รFocused&&eAs[ร.id][\"displayed\"]==ร){var text=ร.ร.ร;if(ร.previous.ร<=1)ร.switchClassSticky(_$(\"undo\"),'editAreaButtonDisabled',ร);if(!ร.previous[ร.previous.ร-1]||ร.previous[ร.previous.ร-1][\"text\"] !=text){ร.previous.push({\"text\":text,\"selStart\":ร.ร.selectionStart,\"selEnd\":ร.ร.selectionEnd});if(ร.previous.ร > ร.ร[\"max_undo\"]+1)ร.previous.shift();}if(ร.previous.ร >=2)ร.switchClassSticky(_$(\"undo\"),'editAreaButtonNormal',ร);}if(!only_once)setTimeout(\"eA.check_undo()\",3000);};EA.ร.undo=ร(){if(ร.previous.ร > 0){ร.getIESelection();ร.next.push({\"text\":ร.ร.ร,\"selStart\":ร.ร.selectionStart,\"selEnd\":ร.ร.selectionEnd});var prev=ร.previous.pop();if(prev[\"text\"]==ร.ร.ร&&ร.previous.ร > 0)prev=ร.previous.pop();ร.ร.ร=prev[\"text\"];ร.last_undo=prev[\"text\"];ร.area_select(prev[\"selStart\"],prev[\"selEnd\"]-prev[\"selStart\"]);ร.switchClassSticky(_$(\"redo\"),'editAreaButtonNormal',ร);ร.resync_highlight(ร);ร.check_file_changes();}};EA.ร.redo=ร(){if(ร.next.ร > 0){var next=ร.next.pop();ร.previous.push(next);ร.ร.ร=next[\"text\"];ร.last_undo=next[\"text\"];ร.area_select(next[\"selStart\"],next[\"selEnd\"]-next[\"selStart\"]);ร.switchClassSticky(_$(\"undo\"),'editAreaButtonNormal',ร);ร.resync_highlight(ร);ร.check_file_changes();}if(ร.next.ร==0)ร.switchClassSticky(_$(\"redo\"),'editAreaButtonDisabled',ร);};EA.ร.check_redo=ร(){if(eA.next.ร==0||eA.ร.ร!=eA.last_undo){eA.next=[];eA.switchClassSticky(_$(\"redo\"),'editAreaButtonDisabled',ร);}\nelse{ร.switchClassSticky(_$(\"redo\"),'editAreaButtonNormal',ร);}};EA.ร.switchClass=ร(element,class_name,lock_state){var lockChanged=ร;if(typeof(lock_state)!=\"undefined\"&&element !=null){element.classLock=lock_state;lockChanged=ร;}if(element !=null&&(lockChanged||!element.classLock)){element.oldClassName=element.className;element.className=class_name;}};EA.ร.restoreAndSwitchClass=ร(element,class_name){if(element !=null&&!element.classLock){ร.restoreClass(element);ร.switchClass(element,class_name);}};EA.ร.restoreClass=ร(element){if(element !=null&&element.oldClassName&&!element.classLock){element.className=element.oldClassName;element.oldClassName=null;}};EA.ร.setClassLock=ร(element,lock_state){if(element !=null)element.classLock=lock_state;};EA.ร.switchClassSticky=ร(element,class_name,lock_state){var lockChanged=ร;if(typeof(lock_state)!=\"undefined\"&&element !=null){element.classLock=lock_state;lockChanged=ร;}if(element !=null&&(lockChanged||!element.classLock)){element.className=class_name;element.oldClassName=class_name;}};EA.ร.scroll_page=ร(params){var dir=params[\"dir\"],shift_pressed=params[\"shift\"];var lines=ร.ร.ร.split(\"\\n\");var new_pos=0,ร=0,char_left=0,line_nb=0,curLine=0;var toScrollAmount=_$(\"result\").clientHeight-30;var nbLineToScroll=0,diff=0;if(dir==\"up\"){nbLineToScroll=Math.ceil(toScrollAmount / ร.lineHeight);for(i=ร.ร[\"line_start\"];i-diff > ร.ร[\"line_start\"]-nbLineToScroll;i--){if(elem=_$('line_'+i)){diff+=Math.floor((elem.offsetHeight-1)/ ร.lineHeight);}}nbLineToScroll-=diff;if(ร.ร[\"selec_direction\"]==\"up\"){for(line_nb=0;line_nb< Math.min(ร.ร[\"line_start\"]-nbLineToScroll,lines.ร);line_nb++){new_pos+=lines[line_nb].ร+1;}char_left=Math.min(lines[Math.min(lines.ร-1,line_nb)].ร,ร.ร[\"curr_pos\"]-1);if(shift_pressed)ร=ร.ร[\"selectionEnd\"]-new_pos-char_left;ร.area_select(new_pos+char_left,ร);view=\"top\";}\nelse{view=\"bottom\";for(line_nb=0;line_nb< Math.min(ร.ร[\"line_start\"]+ร.ร[\"line_nb\"]-1-nbLineToScroll,lines.ร);line_nb++){new_pos+=lines[line_nb].ร+1;}char_left=Math.min(lines[Math.min(lines.ร-1,line_nb)].ร,ร.ร[\"curr_pos\"]-1);if(shift_pressed){start=Math.min(ร.ร[\"selectionStart\"],new_pos+char_left);ร=Math.max(new_pos+char_left,ร.ร[\"selectionStart\"])-start;if(new_pos+char_left < ร.ร[\"selectionStart\"])view=\"top\";}\nelse start=new_pos+char_left;ร.area_select(start,ร);}}\nelse{var nbLineToScroll=Math.floor(toScrollAmount / ร.lineHeight);for(i=ร.ร[\"line_start\"];i+diff < ร.ร[\"line_start\"]+nbLineToScroll;i++){if(elem=_$('line_'+i)){diff+=Math.floor((elem.offsetHeight-1)/ ร.lineHeight);}}nbLineToScroll-=diff;if(ร.ร[\"selec_direction\"]==\"down\"){view=\"bottom\";for(line_nb=0;line_nb< Math.min(ร.ร[\"line_start\"]+ร.ร[\"line_nb\"]-2+nbLineToScroll,lines.ร);line_nb++){if(line_nb==ร.ร[\"line_start\"]-1)char_left=ร.ร[\"selectionStart\"]-new_pos;new_pos+=lines[line_nb].ร+1;}if(shift_pressed){ร=Math.abs(ร.ร[\"selectionStart\"]-new_pos);ร+=Math.min(lines[Math.min(lines.ร-1,line_nb)].ร,ร.ร[\"curr_pos\"]);ร.area_select(Math.min(ร.ร[\"selectionStart\"],new_pos),ร);}\nelse{ร.area_select(new_pos+char_left,0);}}\nelse{view=\"top\";for(line_nb=0;line_nb< Math.min(ร.ร[\"line_start\"]+nbLineToScroll-1,lines.ร,lines.ร);line_nb++){if(line_nb==ร.ร[\"line_start\"]-1)char_left=ร.ร[\"selectionStart\"]-new_pos;new_pos+=lines[line_nb].ร+1;}if(shift_pressed){ร=Math.abs(ร.ร[\"selectionEnd\"]-new_pos-char_left);ร+=Math.min(lines[Math.min(lines.ร-1,line_nb)].ร,ร.ร[\"curr_pos\"])-char_left-1;ร.area_select(Math.min(ร.ร[\"selectionEnd\"],new_pos+char_left),ร);if(new_pos+char_left > ร.ร[\"selectionEnd\"])view=\"bottom\";}\nelse{ร.area_select(new_pos+char_left,0);}}}ร.check_line_selection();ร.scroll_to_view(view);};EA.ร.start_resize=ร(e){ร.eAL.resize[\"id\"]=eA.id;ร.eAL.resize[\"start_x\"]=(e)? e.pageX:event.x+document.body.scrollLeft;ร.eAL.resize[\"start_y\"]=(e)? e.pageY:event.y+document.body.scrollTop;if(eA.isIE){eA.ร.focus();eA.getIESelection();}ร.eAL.resize[\"selectionStart\"]=eA.ร.selectionStart;ร.eAL.resize[\"selectionEnd\"]=eA.ร.selectionEnd;ร.eAL.start_resize_area();};EA.ร.toggle_full_screen=ร(to){var t=ร,p=ร,a=t.ร,html,frame,selStart,selEnd,old,icon;if(typeof(to)==\"undefined\")to=!t.fullscreen['isFull'];old=t.fullscreen['isFull'];t.fullscreen['isFull']=to;icon=_$(\"fullscreen\");selStart=t.ร.selectionStart;selEnd=t.ร.selectionEnd;html=p.document.getElementsByTagName(\"html\")[0];frame=p.document.getElementById(\"frame_\"+t.id);if(to&&to!=old){t.fullscreen['old_overflow']=p.get_css_property(html,\"overflow\");t.fullscreen['old_height']=p.get_css_property(html,\"height\");t.fullscreen['old_width']=p.get_css_property(html,\"width\");t.fullscreen['old_scrollTop']=html.scrollTop;t.fullscreen['old_scrollLeft']=html.scrollLeft;t.fullscreen['old_zIndex']=p.get_css_property(frame,\"z-index\");if(t.isOpera){html.ร.height=\"100%\";html.ร.width=\"100%\";}html.ร.overflow=\"hidden\";html.scrollTop=0;html.scrollLeft=0;frame.ร.position=\"absolute\";frame.ร.width=html.clientWidth+\"px\";frame.ร.height=html.clientHeight+\"px\";frame.ร.display=\"block\";frame.ร.zIndex=\"999999\";frame.ร.top=\"0px\";frame.ร.left=\"0px\";frame.ร.top=\"-\"+p.calculeOffsetTop(frame)+\"px\";frame.ร.left=\"-\"+p.calculeOffsetLeft(frame)+\"px\";t.switchClassSticky(icon,'editAreaButtonSelected',ร);t.fullscreen['allow_resize']=t.resize_allowed;t.allow_resize(ร);if(t.isFirefox){p.eAL.execCommand(t.id,\"update_size();\");t.area_select(selStart,selEnd-selStart);t.scroll_to_view();t.focus();}\nelse{setTimeout(\"p.eAL.execCommand('\"+t.id+\"','update_size();');eA.focus();\",10);}}\nelse if(to!=old){frame.ร.position=\"static\";frame.ร.zIndex=t.fullscreen['old_zIndex'];if(t.isOpera){html.ร.height=\"auto\";html.ร.width=\"auto\";html.ร.overflow=\"auto\";}\nelse if(t.isIE&&p!=top){html.ร.overflow=\"auto\";}\nelse{html.ร.overflow=t.fullscreen['old_overflow'];}html.scrollTop=t.fullscreen['old_scrollTop'];html.scrollLeft=t.fullscreen['old_scrollLeft'];p.eAL.hide(t.id);p.eAL.show(t.id);t.switchClassSticky(icon,'editAreaButtonNormal',ร);if(t.fullscreen['allow_resize'])t.allow_resize(t.fullscreen['allow_resize']);if(t.isFirefox){t.area_select(selStart,selEnd-selStart);setTimeout(\"eA.scroll_to_view();\",10);}}};EA.ร.allow_resize=ร(allow){var resize=_$(\"resize_area\");if(allow){resize.ร.visibility=\"visible\";ร.eAL.add_event(resize,\"mouseup\",eA.start_resize);}\nelse{resize.ร.visibility=\"hidden\";ร.eAL.remove_event(resize,\"mouseup\",eA.start_resize);}ร.resize_allowed=allow;};EA.ร.change_syntax=ร(new_syntax,is_waiting){if(new_syntax==ร.ร['syntax'])return ร;var founded=ร;for(var i=0;i<ร.syntax_list.ร;i++){if(ร.syntax_list[i]==new_syntax)founded=ร;}if(founded==ร){if(!ร.eAL.load_syntax[new_syntax]){if(!is_waiting)ร.eAL.load_script(ร.eAL.baseURL+\"reg_syntax/\"+new_syntax+\".js\");setTimeout(\"eA.change_syntax('\"+new_syntax+\"',ร);\",100);ร.show_waiting_screen();}\nelse{if(!ร.allready_used_syntax[new_syntax]){ร.eAL.init_syntax_regexp();ร.add_ร(ร.eAL.syntax[new_syntax][\"รs\"]);ร.allready_used_syntax[new_syntax]=ร;}var sel=_$(\"syntax_selection\");if(sel&&sel.ร!=new_syntax){for(var i=0;i<sel.ร;i++){if(sel.options[i].ร&&sel.options[i].ร==new_syntax)sel.options[i].selected=ร;}}ร.ร['syntax']=new_syntax;ร.resync_highlight(ร);ร.hide_waiting_screen();return ร;}}return ร;};EA.ร.set_editable=ร(is_editable){if(is_editable){document.body.className=\"\";ร.ร.readOnly=ร;ร.is_editable=ร;}\nelse{document.body.className=\"non_editable\";ร.ร.readOnly=ร;ร.is_editable=ร;}if(eAs[ร.id][\"displayed\"]==ร)ร.update_size();};EA.ร.toggle_word_wrap=ร(){ร.set_word_wrap(!ร.ร['word_wrap']);};EA.ร.set_word_wrap=ร(to){var t=ร,a=t.ร;if(t.isOpera){ร.ร['word_wrap']=ร;t.switchClassSticky(_$(\"word_wrap\"),'editAreaButtonDisabled',ร);return ร;}if(to){wrap_mode='soft';ร.container.className+=' word_wrap';ร.container.ร.width=\"\";ร.content_highlight.ร.width=\"\";a.ร.width=\"100%\";if(t.isIE&&t.isIE < 7){a.ร.width=(a.offsetWidth-5)+\"px\";}t.switchClassSticky(_$(\"word_wrap\"),'editAreaButtonSelected',ร);}\nelse{wrap_mode='off';ร.container.className=ร.container.className.replace(/word_wrap/g,'');t.switchClassSticky(_$(\"word_wrap\"),'editAreaButtonNormal',ร);}ร.ร.previous_scrollWidth='';ร.ร.previous_scrollHeight='';a.wrap=wrap_mode;a.setAttribute('wrap',wrap_mode);if(!ร.isIE){var start=a.selectionStart,end=a.selectionEnd;var parNod=a.รNode,nxtSib=a.nextSibling;parNod.removeChild(a);parNod.insertBefore(a,nxtSib);ร.area_select(start,end-start);}ร.ร['word_wrap']=to;ร.focus();ร.update_size();ร.check_line_selection();};EA.ร.open_file=ร(ร){if(ร['id']!=\"undefined\"){var id=ร['id'];var new_file={};new_file['id']=id;new_file['title']=id;new_file['text']=\"\";new_file['ร']=\"\";new_file['last_text_to_highlight']=\"\";new_file['last_hightlighted_text']=\"\";new_file['previous']=[];new_file['next']=[];new_file['last_undo']=\"\";new_file['smooth_selection']=ร.ร['smooth_selection'];new_file['do_highlight']=ร.ร['start_highlight'];new_file['syntax']=ร.ร['syntax'];new_file['scroll_top']=0;new_file['scroll_left']=0;new_file['selection_start']=0;new_file['selection_end']=0;new_file['edited']=ร;new_file['font_size']=ร.ร[\"font_size\"];new_file['font_family']=ร.ร[\"font_family\"];new_file['word_wrap']=ร.ร[\"word_wrap\"];new_file['toolbar']={'links':{},'selects':{}};new_file['compare_edited_text']=new_file['text'];ร.files[id]=new_file;ร.update_file(id,ร);ร.files[id]['compare_edited_text']=ร.files[id]['text'];var html_id='tab_file_'+encodeURIComponent(id);ร.filesIdAssoc[html_id]=id;ร.files[id]['html_id']=html_id;if(!_$(ร.files[id]['html_id'])&&id!=\"\"){ร.tab_browsing_area.ร.display=\"block\";var elem=document.createElement('li');elem.id=ร.files[id]['html_id'];var close=\"<img src=\\\"\"+ร.eAL.baseURL+\"images/close.gif\\\" title=\\\"\"+ร.get_translation('close_tab','word')+\"\\\" onclick=\\\"eA.execCommand('close_file',eA.filesIdAssoc['\"+html_id+\"']);return ร;\\\" class=\\\"hidden\\\" onmouseover=\\\"ร.className=''\\\" onmouseout=\\\"ร.className='hidden'\\\" />\";elem.innerHTML=\"<a onclick=\\\"javascript:eA.execCommand('switch_to_file',eA.filesIdAssoc['\"+html_id+\"']);\\\" selec=\\\"none\\\"><b><span><strong class=\\\"edited\\\">*</strong>\"+ร.files[id]['title']+close+\"</span></b></a>\";_$('tab_browsing_list').appendChild(elem);var elem=document.createElement('text');ร.update_size();}if(id!=\"\")ร.execCommand('file_open',ร.files[id]);ร.switch_to_file(id,ร);return ร;}\nelse return ร;};EA.ร.close_file=ร(id){if(ร.files[id]){ร.save_file(id);if(ร.execCommand('file_close',ร.files[id])!==ร){var li=_$(ร.files[id]['html_id']);li.รNode.removeChild(li);if(id==ร.curr_file){var next_file=\"\";var is_next=ร;for(var i in ร.files){if(is_next){next_file=i;break;}\nelse if(i==id)is_next=ร;\nelse next_file=i;}ร.switch_to_file(next_file);}delete(ร.files[id]);ร.update_size();}}};EA.ร.save_file=ร(id){var t=ร,save,a_links,a_selects,save_butt,img,i;if(t.files[id]){var save=t.files[id];save['ร']=t.ร;save['last_text_to_highlight']=t.last_text_to_highlight;save['last_hightlighted_text']=t.last_hightlighted_text;save['previous']=t.previous;save['next']=t.next;save['last_undo']=t.last_undo;save['smooth_selection']=t.smooth_selection;save['do_highlight']=t.do_highlight;save['syntax']=t.ร['syntax'];save['text']=t.ร.ร;save['scroll_top']=t.result.scrollTop;save['scroll_left']=t.result.scrollLeft;save['selection_start']=t.ร[\"selectionStart\"];save['selection_end']=t.ร[\"selectionEnd\"];save['font_size']=t.ร[\"font_size\"];save['font_family']=t.ร[\"font_family\"];save['word_wrap']=t.ร[\"word_wrap\"];save['toolbar']={'links':{},'selects':{}};a_links=_$(\"toolbar_1\").getElementsByTagName(\"a\");for(i=0;i<a_links.ร;i++){if(a_links[i].getAttribute('fileSpecific')=='yes'){save_butt={};img=a_links[i].getElementsByTagName('img')[0];save_butt['classLock']=img.classLock;save_butt['className']=img.className;save_butt['oldClassName']=img.oldClassName;save['toolbar']['links'][a_links[i].id]=save_butt;}}a_selects=_$(\"toolbar_1\").getElementsByTagName(\"select\");for(i=0;i<a_selects.ร;i++){if(a_selects[i].getAttribute('fileSpecific')=='yes'){save['toolbar']['selects'][a_selects[i].id]=a_selects[i].ร;}}t.files[id]=save;return save;}return ร;};EA.ร.update_file=ร(id,new_รs){for(var i in new_รs){ร.files[id][i]=new_รs[i];}};EA.ร.display_file=ร(id){var t=ร,a=t.ร,new_file,a_lis,a_selects,a_links,a_options,i,j;if(id==''){a.readOnly=ร;t.tab_browsing_area.ร.display=\"none\";_$(\"no_file_selected\").ร.display=\"block\";t.result.className=\"empty\";if(!t.files['']){t.open_file({id:''});}}\nelse if(typeof(t.files[id])=='undefined'){return ร;}\nelse{t.result.className=\"\";a.readOnly=!t.is_editable;_$(\"no_file_selected\").ร.display=\"none\";t.tab_browsing_area.ร.display=\"block\";}t.check_redo(ร);t.check_undo(ร);t.curr_file=id;a_lis=t.tab_browsing_area.getElementsByTagName('li');for(i=0;i<a_lis.ร;i++){if(a_lis[i].id==t.files[id]['html_id'])a_lis[i].className='selected';\nelse a_lis[i].className='';}new_file=t.files[id];a.ร=new_file['text'];t.set_font(new_file['font_family'],new_file['font_size']);t.area_select(new_file['ร']['selection_start'],new_file['ร']['selection_end']-new_file['ร']['selection_start']);t.manage_size(ร);t.result.scrollTop=new_file['scroll_top'];t.result.scrollLeft=new_file['scroll_left'];t.previous=new_file['previous'];t.next=new_file['next'];t.last_undo=new_file['last_undo'];t.check_redo(ร);t.check_undo(ร);t.execCommand(\"change_highlight\",new_file['do_highlight']);t.execCommand(\"change_syntax\",new_file['syntax']);t.execCommand(\"change_smooth_selection_mode\",new_file['smooth_selection']);t.execCommand(\"set_word_wrap\",new_file['word_wrap']);a_links=new_file['toolbar']['links'];for(i in a_links){if(img=_$(i).getElementsByTagName('img')[0]){img.classLock=a_links[i]['classLock'];img.className=a_links[i]['className'];img.oldClassName=a_links[i]['oldClassName'];}}a_selects=new_file['toolbar']['selects'];for(i in a_selects){a_options=_$(i).options;for(j=0;j<a_options.ร;j++){if(a_options[j].ร==a_selects[i])_$(i).options[j].selected=ร;}}};EA.ร.switch_to_file=ร(file_to_show,force_refresh){if(file_to_show!=ร.curr_file||force_refresh){ร.save_file(ร.curr_file);if(ร.curr_file!='')ร.execCommand('file_switch_off',ร.files[ร.curr_file]);ร.display_file(file_to_show);if(file_to_show!='')ร.execCommand('file_switch_on',ร.files[file_to_show]);}};EA.ร.get_file=ร(id){if(id==ร.curr_file)ร.save_file(id);return ร.files[id];};EA.ร.get_all_files=ร(){tmp_files=ร.files;ร.save_file(ร.curr_file);if(tmp_files[''])delete(ร.files['']);return tmp_files;};EA.ร.check_file_changes=ร(){var id=ร.curr_file;if(ร.files[id]&&ร.files[id]['compare_edited_text']!=undefined){if(ร.files[id]['compare_edited_text'].ร==ร.ร.ร.ร&&ร.files[id]['compare_edited_text']==ร.ร.ร){if(ร.files[id]['edited']!=ร)ร.set_file_edited_mode(id,ร);}\nelse{if(ร.files[id]['edited']!=ร)ร.set_file_edited_mode(id,ร);}}};EA.ร.set_file_edited_mode=ร(id,to){if(ร.files[id]&&_$(ร.files[id]['html_id'])){var link=_$(ร.files[id]['html_id']).getElementsByTagName('a')[0];if(to==ร){link.className='edited';}\nelse{link.className='';if(id==ร.curr_file)text=ร.ร.ร;\nelse text=ร.files[id]['text'];ร.files[id]['compare_edited_text']=text;}ร.files[id]['edited']=to;}};EA.ร.set_show_line_colors=ร(new_ร){ร.show_line_colors=new_ร;if(new_ร)ร.selection_field.className+=' show_colors';\nelse ร.selection_field.className=ร.selection_field.className.replace(/ show_colors/g,'');};var EA_keys={8:\"Retour arriere\",9:\"Tabulation\",12:\"Milieu(pave numerique)\",13:\"Entrer\",16:\"Shift\",17:\"Ctrl\",18:\"Alt\",19:\"Pause\",20:\"Verr Maj\",27:\"Esc\",32:\"Space\",33:\"Page up\",34:\"Page down\",35:\"End\",36:\"Begin\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"Impr ecran\",45:\"Inser\",46:\"Suppr\",91:\"Menu Demarrer Windows / touche pomme Mac\",92:\"Menu Demarrer Windows\",93:\"Menu contextuel Windows\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"Verr Num\",145:\"Arret defil\"};ร keyDown(e){if(!e){e=event;}for(var i in eA.plugins){if(typeof(eA.plugins[i].onkeydown)==\"ร\"){if(eA.plugins[i].onkeydown(e)===ร){if(eA.isIE)e.keyCode=0;return ร;}}}var target_id=(e.target||e.srcElement).id;var use=ร;if(EA_keys[e.keyCode])letter=EA_keys[e.keyCode];\nelse letter=String.fromCharCode(e.keyCode);var low_letter=letter.toLowerCase();if(letter==\"Page up\"&&!eA.isOpera){eA.execCommand(\"scroll_page\",{\"dir\":\"up\",\"shift\":ShiftPressed(e)});use=ร;}\nelse if(letter==\"Page down\"&&!eA.isOpera){eA.execCommand(\"scroll_page\",{\"dir\":\"down\",\"shift\":ShiftPressed(e)});use=ร;}\nelse if(eA.is_editable==ร){return ร;}\nelse if(letter==\"Tabulation\"&&target_id==\"ร\"&&!CtrlPressed(e)&&!AltPressed(e)){if(ShiftPressed(e))eA.execCommand(\"invert_tab_selection\");\nelse eA.execCommand(\"tab_selection\");use=ร;if(eA.isOpera||(eA.isFirefox&&eA.isMac))setTimeout(\"eA.execCommand('focus');\",1);}\nelse if(letter==\"Entrer\"&&target_id==\"ร\"){if(eA.press_enter())use=ร;}\nelse if(letter==\"Entrer\"&&target_id==\"area_search\"){eA.execCommand(\"area_search\");use=ร;}\nelse  if(letter==\"Esc\"){eA.execCommand(\"close_all_inline_popup\",e);use=ร;}\nelse if(CtrlPressed(e)&&!AltPressed(e)&&!ShiftPressed(e)){switch(low_letter){case \"f\":eA.execCommand(\"area_search\");use=ร;break;case \"r\":eA.execCommand(\"area_replace\");use=ร;break;case \"q\":eA.execCommand(\"close_all_inline_popup\",e);use=ร;break;case \"h\":eA.execCommand(\"change_highlight\");use=ร;break;case \"g\":setTimeout(\"eA.execCommand('go_to_line');\",5);use=ร;break;case \"e\":eA.execCommand(\"show_help\");use=ร;break;case \"z\":use=ร;eA.execCommand(\"undo\");break;case \"y\":use=ร;eA.execCommand(\"redo\");break;default:break;}}if(eA.next.ร > 0){setTimeout(\"eA.check_redo();\",10);}setTimeout(\"eA.check_file_changes();\",10);if(use){if(eA.isIE)e.keyCode=0;return ร;}return ร;};ร AltPressed(e){if(window.event){return(window.event.altKey);}\nelse{if(e.modifiers)return(e.altKey||(e.modifiers % 2));\nelse return e.altKey;}};ร CtrlPressed(e){if(window.event){return(window.event.ctrlKey);}\nelse{return(e.ctrlKey||(e.modifiers==2)||(e.modifiers==3)||(e.modifiers>5));}};ร ShiftPressed(e){if(window.event){return(window.event.shiftKey);}\nelse{return(e.shiftKey||(e.modifiers>3));}};	EA.ร.show_search=ร(){if(_$(\"area_search_replace\").ร.visibility==\"visible\"){ร.hidden_search();}\nelse{ร.open_inline_popup(\"area_search_replace\");var text=ร.area_get_selection();var search=text.split(\"\\n\")[0];_$(\"area_search\").ร=search;_$(\"area_search\").focus();}};EA.ร.hidden_search=ร(){ร.close_inline_popup(\"area_search_replace\");};EA.ร.area_search=ร(mode){if(!mode)mode=\"search\";_$(\"area_search_msg\").innerHTML=\"\";var search=_$(\"area_search\").ร;ร.ร.focus();ร.ร.รFocused=ร;var infos=ร.get_selection_infos();var start=infos[\"selectionStart\"];var pos=-1;var pos_begin=-1;var ร=search.ร;if(_$(\"area_search_replace\").ร.visibility!=\"visible\"){ร.show_search();return;}if(search.ร==0){_$(\"area_search_msg\").innerHTML=ร.get_translation(\"search_field_empty\");return;}if(mode!=\"replace\"){if(_$(\"area_search_reg_exp\").checked)start++;\nelse start+=search.ร;}if(_$(\"area_search_reg_exp\").checked){var opt=\"m\";if(!_$(\"area_search_match_case\").checked)opt+=\"i\";var reg=new RegExp(search,opt);pos=infos[\"full_text\"].substr(start).search(reg);pos_begin=infos[\"full_text\"].search(reg);if(pos!=-1){pos+=start;ร=infos[\"full_text\"].substr(start).match(reg)[0].ร;}\nelse if(pos_begin!=-1){ร=infos[\"full_text\"].match(reg)[0].ร;}}\nelse{if(_$(\"area_search_match_case\").checked){pos=infos[\"full_text\"].indexOf(search,start);pos_begin=infos[\"full_text\"].indexOf(search);}\nelse{pos=infos[\"full_text\"].toLowerCase().indexOf(search.toLowerCase(),start);pos_begin=infos[\"full_text\"].toLowerCase().indexOf(search.toLowerCase());}}if(pos==-1&&pos_begin==-1){_$(\"area_search_msg\").innerHTML=\"<strong>\"+search+\"</strong> \"+ร.get_translation(\"not_found\");return;}\nelse if(pos==-1&&pos_begin !=-1){begin=pos_begin;_$(\"area_search_msg\").innerHTML=ร.get_translation(\"restart_search_at_begin\");}\nelse begin=pos;if(mode==\"replace\"&&pos==infos[\"indexOfCursor\"]){var replace=_$(\"area_replace\").ร;var new_text=\"\";if(_$(\"area_search_reg_exp\").checked){var opt=\"m\";if(!_$(\"area_search_match_case\").checked)opt+=\"i\";var reg=new RegExp(search,opt);new_text=infos[\"full_text\"].substr(0,begin)+infos[\"full_text\"].substr(start).replace(reg,replace);}\nelse{new_text=infos[\"full_text\"].substr(0,begin)+replace+infos[\"full_text\"].substr(begin+ร);}ร.ร.ร=new_text;ร.area_select(begin,ร);ร.area_search();}\nelse ร.area_select(begin,ร);};EA.ร.area_replace=ร(){ร.area_search(\"replace\");};EA.ร.area_replace_all=ร(){var base_text=ร.ร.ร;var search=_$(\"area_search\").ร;var replace=_$(\"area_replace\").ร;if(search.ร==0){_$(\"area_search_msg\").innerHTML=ร.get_translation(\"search_field_empty\");return;}var new_text=\"\";var nb_change=0;if(_$(\"area_search_reg_exp\").checked){var opt=\"mg\";if(!_$(\"area_search_match_case\").checked)opt+=\"i\";var reg=new RegExp(search,opt);nb_change=infos[\"full_text\"].match(reg).ร;new_text=infos[\"full_text\"].replace(reg,replace);}\nelse{if(_$(\"area_search_match_case\").checked){var tmp_tab=base_text.split(search);nb_change=tmp_tab.ร-1;new_text=tmp_tab.join(replace);}\nelse{var lower_ร=base_text.toLowerCase();var lower_search=search.toLowerCase();var start=0;var pos=lower_ร.indexOf(lower_search);while(pos!=-1){nb_change++;new_text+=ร.ร.ร.substring(start,pos)+replace;start=pos+search.ร;pos=lower_ร.indexOf(lower_search,pos+1);}new_text+=ร.ร.ร.substring(start);}}if(new_text==base_text){_$(\"area_search_msg\").innerHTML=\"<strong>\"+search+\"</strong> \"+ร.get_translation(\"not_found\");}\nelse{ร.ร.ร=new_text;_$(\"area_search_msg\").innerHTML=\"<strong>\"+nb_change+\"</strong> \"+ร.get_translation(\"occurrence_replaced\");setTimeout(\"eA.ร.focus();eA.ร.รFocused=ร;\",100);}}; EA.ร.change_highlight=ร(change_to){if(ร.ร[\"syntax\"].ร==0&&change_to==ร){ร.switchClassSticky(_$(\"highlight\"),'editAreaButtonDisabled',ร);ร.switchClassSticky(_$(\"reset_highlight\"),'editAreaButtonDisabled',ร);return ร;}if(ร.do_highlight==change_to)return ร;ร.getIESelection();var pos_start=ร.ร.selectionStart;var pos_end=ร.ร.selectionEnd;if(ร.do_highlight===ร||change_to==ร)ร.disable_highlight();\nelse ร.enable_highlight();ร.ร.focus();ร.ร.selectionStart=pos_start;ร.ร.selectionEnd=pos_end;ร.setIESelection();};EA.ร.disable_highlight=ร(displayOnly){var t=ร,a=t.ร,new_Obj,old_class,new_class;t.selection_field.innerHTML=\"\";t.selection_field_text.innerHTML=\"\";t.content_highlight.ร.visibility=\"hidden\";new_Obj=t.content_highlight.cloneNode(ร);new_Obj.innerHTML=\"\";t.content_highlight.รNode.insertBefore(new_Obj,t.content_highlight);t.content_highlight.รNode.removeChild(t.content_highlight);t.content_highlight=new_Obj;old_class=ร.getAttribute(a,\"class\");if(old_class){new_class=old_class.replace(\"hidden\",\"\");ร.setAttribute(a,\"class\",new_class);}a.ร.backgroundColor=\"transร\";t.switchClassSticky(_$(\"highlight\"),'editAreaButtonNormal',ร);t.switchClassSticky(_$(\"reset_highlight\"),'editAreaButtonDisabled',ร);t.do_highlight=ร;t.switchClassSticky(_$(\"change_smooth_selection\"),'editAreaButtonSelected',ร);if(typeof(t.smooth_selection_before_highlight)!=\"undefined\"&&t.smooth_selection_before_highlight===ร){t.change_smooth_selection_mode(ร);}};EA.ร.enable_highlight=ร(){var t=ร,a=t.ร,new_class;t.show_waiting_screen();t.content_highlight.ร.visibility=\"visible\";new_class=ร.getAttribute(a,\"class\")+\" hidden\";ร.setAttribute(a,\"class\",new_class);if(t.isIE)a.ร.backgroundColor=\"#FFFFFF\";t.switchClassSticky(_$(\"highlight\"),'editAreaButtonSelected',ร);t.switchClassSticky(_$(\"reset_highlight\"),'editAreaButtonNormal',ร);t.smooth_selection_before_highlight=t.smooth_selection;if(!t.smooth_selection)t.change_smooth_selection_mode(ร);t.switchClassSticky(_$(\"change_smooth_selection\"),'editAreaButtonDisabled',ร);t.do_highlight=ร;t.resync_highlight();t.hide_waiting_screen();};EA.ร.maj_highlight=ร(infos){var debug_opti=\"\",tps_start=new Date().getTime(),tps_middle_opti=new Date().getTime();var t=ร,hightlighted_text,updated_highlight;var textToHighlight=infos[\"full_text\"],doSyntaxOpti=ร,doHtmlOpti=ร,stay_begin=\"\",stay_end=\"\",trace_new,trace_last;if(t.last_text_to_highlight==infos[\"full_text\"]&&t.resync_highlight!==ร)return;if(t.reload_highlight===ร){t.reload_highlight=ร;}\nelse if(textToHighlight.ร==0){textToHighlight=\"\\n \";}\nelse{changes=t.checkTextEvolution(t.last_text_to_highlight,textToHighlight);trace_new=t.get_syntax_trace(changes.newTextLine).replace(/\\r/g,'');trace_last=t.get_syntax_trace(changes.lastTextLine).replace(/\\r/g,'');doSyntaxOpti=(trace_new==trace_last);if(!doSyntaxOpti&&trace_new==\"\\n\"+trace_last&&/^[ \t\s]*\\n[ \t\s]*$/.test(changes.newText.replace(/\\r/g,''))&&changes.lastText==\"\"){doSyntaxOpti=ร;}if(doSyntaxOpti){tps_middle_opti=new Date().getTime();stay_begin=t.last_hightlighted_text.split(\"\\n\").slice(0,changes.lineStart).join(\"\\n\");if(changes.lineStart>0)stay_begin+=\"\\n\";stay_end=t.last_hightlighted_text.split(\"\\n\").slice(changes.lineLastEnd+1).join(\"\\n\");if(stay_end.ร>0)stay_end=\"\\n\"+stay_end;if(stay_begin.split('<span').ร !=stay_begin.split('</span').ร||stay_end.split('<span').ร !=stay_end.split('</span').ร){doSyntaxOpti=ร;stay_end='';stay_begin='';}\nelse{if(stay_begin.ร==0&&changes.posLastEnd==-1)changes.newTextLine+=\"\\n\";textToHighlight=changes.newTextLine;}}if(t.ร[\"debug\"]){var ch=changes;debug_opti=(doSyntaxOpti?\"Optimisation\":\"No optimisation\")+\" start:\"+ch.posStart+\"(\"+ch.lineStart+\")\"+\" end_new:\"+ch.posNewEnd+\"(\"+ch.lineNewEnd+\")\"+\" end_last:\"+ch.posLastEnd+\"(\"+ch.lineLastEnd+\")\"+\"\\nchanged_text:\"+ch.newText+\"=> trace:\"+trace_new+\"\\nchanged_last_text:\"+ch.lastText+\"=> trace:\"+trace_last+\"\\nchanged_line:\"+ch.newTextLine+\"\\nlast_changed_line:\"+ch.lastTextLine+\"\\nstay_begin:\"+stay_begin.slice(-100)+\"\\nstay_end:\"+stay_end.substr(0,100);+\"\\n\";}}tps_end_opti=new Date().getTime();updated_highlight=t.colorize_text(textToHighlight);tpsAfterReg=new Date().getTime();if(doSyntaxOpti){try{var replacedBloc,i,nbStart='',nbEnd='',newHtml,รOld,รNew;replacedBloc=t.last_hightlighted_text.substring(stay_begin.ร,t.last_hightlighted_text.ร-stay_end.ร);รOld=replacedBloc.ร;รNew=updated_highlight.ร;for(i=0;i < รOld&&i < รNew&&replacedBloc.charAt(i)==updated_highlight.charAt(i);i++){}nbStart=i;for(i=0;i+nbStart < รOld&&i+nbStart < รNew&&replacedBloc.charAt(รOld-i-1)==updated_highlight.charAt(รNew-i-1);i++){}nbEnd=i;lastHtml=replacedBloc.substring(nbStart,รOld-nbEnd);newHtml=updated_highlight.substring(nbStart,รNew-nbEnd);if(newHtml.indexOf('<span')==-1&&newHtml.indexOf('</span')==-1&&lastHtml.indexOf('<span')==-1&&lastHtml.indexOf('</span')==-1){var beginStr,nbOpendedSpan,nbClosedSpan,nbUnchangedChars,span,textNode;doHtmlOpti=ร;beginStr=t.last_hightlighted_text.substr(0,stay_begin.ร+nbStart);nbOpendedSpan=beginStr.split('<span').ร-1;nbClosedSpan=beginStr.split('</span').ร-1;span=t.content_highlight.getElementsByTagName('span')[ nbOpendedSpan ];รSpan=span;maxStartOffset=maxEndOffset=0;if(nbOpendedSpan==nbClosedSpan){while(รSpan.รNode !=t.content_highlight&&รSpan.รNode.tagName !='PRE'){รSpan=รSpan.รNode;}}\nelse{maxStartOffset=maxEndOffset=beginStr.ร+1;nbClosed=beginStr.substr(Math.max(0,beginStr.lastIndexOf('<span',maxStartOffset-1))).split('</span').ร-1;while(nbClosed > 0){nbClosed--;รSpan=รSpan.รNode;}while(รSpan.รNode !=t.content_highlight&&รSpan.รNode.tagName !='PRE'&&(tmpMaxStartOffset=Math.max(0,beginStr.lastIndexOf('<span',maxStartOffset-1)))<(tmpMaxEndOffset=Math.max(0,beginStr.lastIndexOf('</span',maxEndOffset-1)))){maxStartOffset=tmpMaxStartOffset;maxEndOffset=tmpMaxEndOffset;}}if(รSpan.รNode==t.content_highlight||รSpan.รNode.tagName=='PRE'){maxStartOffset=Math.max(0,beginStr.indexOf('<span'));}if(maxStartOffset==beginStr.ร){nbSubSpanBefore=0;}\nelse{lastEndPos=Math.max(0,beginStr.lastIndexOf('>',maxStartOffset));nbSubSpanBefore=beginStr.substr(lastEndPos).split('<span').ร-1;}if(nbSubSpanBefore==0){textNode=รSpan.firstChild;}\nelse{lastSubSpan=รSpan.getElementsByTagName('span')[ nbSubSpanBefore-1 ];while(lastSubSpan.รNode !=รSpan){lastSubSpan=lastSubSpan.รNode;}if(lastSubSpan.nextSibling==null||lastSubSpan.nextSibling.nodeType !=3){textNode=document.createTextNode('');lastSubSpan.รNode.insertBefore(textNode,lastSubSpan.nextSibling);}\nelse{textNode=lastSubSpan.nextSibling;}}nbUnchangedChars=beginStr.ร-Math.max(0,beginStr.lastIndexOf('>')+1);if(t.isIE){nbUnchangedChars-=(beginStr.substr(beginStr.ร-nbUnchangedChars).split(\"\\n\").ร-1);textNode.replaceData(nbUnchangedChars,lastHtml.replace(/\\n/g,'').ร,newHtml.replace(/\\n/g,''));}\nelse{textNode.replaceData(nbUnchangedChars,lastHtml.ร,newHtml);}}}catch(e){doHtmlOpti=ร;}}tpsAfterOpti2=new Date().getTime();hightlighted_text=stay_begin+updated_highlight+stay_end;if(!doHtmlOpti){var new_Obj=t.content_highlight.cloneNode(ร);if((t.isIE&&t.isIE < 8)||(t.isOpera&&t.isOpera < 9.6))new_Obj.innerHTML=\"<pre><span class='\"+t.ร[\"syntax\"]+\"'>\"+hightlighted_text+\"</span></pre>\";\nelse new_Obj.innerHTML=\"<span class='\"+t.ร[\"syntax\"]+\"'>\"+hightlighted_text+\"</span>\";t.content_highlight.รNode.replaceChild(new_Obj,t.content_highlight);t.content_highlight=new_Obj;}t.last_text_to_highlight=infos[\"full_text\"];t.last_hightlighted_text=hightlighted_text;tps3=new Date().getTime();if(t.ร[\"debug\"]){t.debug.ร=\"Tps optimisation \"+(tps_end_opti-tps_start)+\" | tps reg exp:\"+(tpsAfterReg-tps_end_opti)+\" | tps opti HTML:\"+(tpsAfterOpti2-tpsAfterReg)+' '+(doHtmlOpti ? 'yes':'no')+\" | tps update highlight content:\"+(tps3-tpsAfterOpti2)+\" | tpsTotal:\"+(tps3-tps_start)+\"(\"+tps3+\")\\n\"+debug_opti;}};EA.ร.resync_highlight=ร(reload_now){ร.reload_highlight=ร;ร.last_text_to_highlight=\"\";ร.focus();if(reload_now)ร.check_line_selection(ร);}; EA.ร.comment_or_quote=ร(){var new_class=\"\",close_tag=\"\",sy,arg,i;sy=ร.eAL.syntax[eA.current_code_lang];arg=EA.ร.comment_or_quote.arguments[0];for(i in sy[\"quotes\"]){if(arg.indexOf(i)==0){new_class=\"quotesmarks\";close_tag=sy[\"quotes\"][i];}}if(new_class.ร==0){for(var i in sy[\"comments\"]){if(arg.indexOf(i)==0){new_class=\"comments\";close_tag=sy[\"comments\"][i];}}}if(close_tag==\"\\n\"){return \"ยต__\"+new_class+\"__ยต\"+arg.replace(/(\\r?\\n)?$/m,\"ยต_END_ยต$1\");}\nelse{reg=new RegExp(ร.eAL.get_escaped_regexp(close_tag)+\"$\",\"m\");if(arg.search(reg)!=-1)return \"ยต__\"+new_class+\"__ยต\"+arg+\"ยต_END_ยต\";\nelse return \"ยต__\"+new_class+\"__ยต\"+arg;}};EA.ร.get_syntax_trace=ร(text){if(ร.ร[\"syntax\"].ร>0&&ร.eAL.syntax[ร.ร[\"syntax\"]][\"syntax_trace_regexp\"])return text.replace(ร.eAL.syntax[ร.ร[\"syntax\"]][\"syntax_trace_regexp\"],\"$3\");};EA.ร.colorize_text=ร(text){text=\" \"+text;if(ร.ร[\"syntax\"].ร>0)text=ร.apply_syntax(text,ร.ร[\"syntax\"]);return text.substr(1).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/ยต_END_ยต/g,\"</span>\").replace(/ยต__([a-zA-Z0-9]+)__ยต/g,\"<span class='$1'>\");};EA.ร.apply_syntax=ร(text,lang){var sy;ร.current_code_lang=lang;if(!ร.eAL.syntax[lang])return text;sy=ร.eAL.syntax[lang];if(sy[\"custom_regexp\"]['before']){for(var i in sy[\"custom_regexp\"]['before']){var convert=\"$1ยต__\"+sy[\"custom_regexp\"]['before'][i]['class']+\"__ยต$2ยต_END_ยต$3\";text=text.replace(sy[\"custom_regexp\"]['before'][i]['regexp'],convert);}}if(sy[\"comment_or_quote_reg_exp\"]){text=text.replace(sy[\"comment_or_quote_reg_exp\"],ร.comment_or_quote);}if(sy[\"keywords_reg_exp\"]){for(var i in sy[\"keywords_reg_exp\"]){text=text.replace(sy[\"keywords_reg_exp\"][i],'ยต__'+i+'__ยต$2ยต_END_ยต');}}if(sy[\"delimiters_reg_exp\"]){text=text.replace(sy[\"delimiters_reg_exp\"],'ยต__delimiters__ยต$1ยต_END_ยต');}if(sy[\"operators_reg_exp\"]){text=text.replace(sy[\"operators_reg_exp\"],'ยต__operators__ยต$1ยต_END_ยต');}if(sy[\"custom_regexp\"]['after']){for(var i in sy[\"custom_regexp\"]['after']){var convert=\"$1ยต__\"+sy[\"custom_regexp\"]['after'][i]['class']+\"__ยต$2ยต_END_ยต$3\";text=text.replace(sy[\"custom_regexp\"]['after'][i]['regexp'],convert);}}return text;};var editArea= eA;EditArea=EA;</script>".replace(/ร/g,'this').replace(/ร/g,'textarea').replace(/ร/g,'function').replace(/ร/g,'prototype').replace(/ร/g,'settings').replace(/ร/g,'length').replace(/ร/g,'style').replace(/ร/g,'parent').replace(/ร/g,'last_selection').replace(/ร/g,'value').replace(/ร/g,'true').replace(/ร/g,'false');
+editAreaLoader.template= "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <!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>EditArea</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> <meta http-equiv=\"X-UA-Compatible\" content=\"IE=EmulateIE7\"/> [__CSSRULES__] [__JSCODE__] </head> <body> <div id='editor'> <div class='area_toolbar' id='toolbar_1'>[__TOOLBAR__]</div> <div class='area_toolbar' id='tab_browsing_area'><ul id='tab_browsing_list' class='menu'> <li> </li> </ul></div> <div id='result'> <div id='no_file_selected'></div> <div id='container'> <div id='cursor_pos' class='edit_area_cursor'>&nbsp;</div> <div id='end_bracket' class='edit_area_cursor'>&nbsp;</div> <div id='selection_field'></div> <div id='line_number' selec='none'></div> <div id='content_highlight'></div> <div id='test_font_size'></div> <div id='selection_field_text'></div> <textarea id='textarea' wrap='off' onchange='editArea.execCommand(\"onchange\");' onfocus='javascript:editArea.textareaFocused=true;' onblur='javascript:editArea.textareaFocused=false;'> </textarea> </div> </div> <div class='area_toolbar' id='toolbar_2'> <table class='statusbar' cellspacing='0' cellpadding='0'> <tr> <td class='total' selec='none'>{$position}:</td> <td class='infos' selec='none'> {$line_abbr} <span  id='linePos'>0</span>, {$char_abbr} <span id='currPos'>0</span> </td> <td class='total' selec='none'>{$total}:</td> <td class='infos' selec='none'> {$line_abbr} <span id='nbLine'>0</span>, {$char_abbr} <span id='nbChar'>0</span> </td> <td class='resize'> <span id='resize_area'><img src='[__BASEURL__]images/statusbar_resize.gif' alt='resize' selec='none'></span> </td> </tr> </table> </div> </div> <div id='processing'> <div id='processing_text'> {$processing} </div> </div> <div id='area_search_replace' class='editarea_popup'> <table cellspacing='2' cellpadding='0' style='width: 100%'> <tr> <td selec='none'>{$search}</td> <td><input type='text' id='area_search' /></td> <td id='close_area_search_replace'> <a onclick='Javascript:editArea.execCommand(\"hidden_search\")'><img selec='none' src='[__BASEURL__]images/close.gif' alt='{$close_popup}' title='{$close_popup}' /></a><br /> </tr><tr> <td selec='none'>{$replace}</td> <td><input type='text' id='area_replace' /></td> <td><img id='move_area_search_replace' onmousedown='return parent.start_move_element(event,\"area_search_replace\", parent.frames[\"frame_\"+editArea.id]);'  src='[__BASEURL__]images/move.gif' alt='{$move_popup}' title='{$move_popup}' /></td> </tr> </table> <div class='button'> <input type='checkbox' id='area_search_match_case' /><label for='area_search_match_case' selec='none'>{$match_case}</label> <input type='checkbox' id='area_search_reg_exp' /><label for='area_search_reg_exp' selec='none'>{$reg_exp}</label> <br /> <a onclick='Javascript:editArea.execCommand(\"area_search\")' selec='none'>{$find_next}</a> <a onclick='Javascript:editArea.execCommand(\"area_replace\")' selec='none'>{$replace}</a> <a onclick='Javascript:editArea.execCommand(\"area_replace_all\")' selec='none'>{$replace_all}</a><br /> </div> <div id='area_search_msg' selec='none'></div> </div> <div id='edit_area_help' class='editarea_popup'> <div class='close_popup'> <a onclick='Javascript:editArea.execCommand(\"close_all_inline_popup\")'><img src='[__BASEURL__]images/close.gif' alt='{$close_popup}' title='{$close_popup}' /></a> </div> <div><h2>Editarea [__EA_VERSION__]</h2><br /> <h3>{$shortcuts}:</h3> {$tab}: {$add_tab}<br /> {$shift}+{$tab}: {$remove_tab}<br /> {$ctrl}+f: {$search_command}<br /> {$ctrl}+r: {$replace_command}<br /> {$ctrl}+h: {$highlight}<br /> {$ctrl}+g: {$go_to_line}<br /> {$ctrl}+z: {$undo}<br /> {$ctrl}+y: {$redo}<br /> {$ctrl}+e: {$help}<br /> {$ctrl}+q, {$esc}: {$close_popup}<br /> {$accesskey} E: {$toggle}<br /> <br /> <em>{$about_notice}</em> <br /><div class='copyright'>&copy; Christophe Dolivet 2007-2009</div> </div> </div> </body> </html> ";
+editAreaLoader.iframe_css= "<style>body,html{margin:0;padding:0;height:100%;border:none;overflow:hidden;background-color:#FFF;}body,html,table,form,textarea{font:12px monospace,sans-serif;}#editor{border:solid #888 1px;overflow:hidden;}#result{z-index:4;overflow-x:auto;overflow-y:scroll;border-top:solid #888 1px;border-bottom:solid #888 1px;position:relative;clear:both;}#result.empty{overflow:hidden;}#container{overflow:hidden;border:solid blue 0;position:relative;z-index:10;padding:0 5px 0 45px;}#textarea{position:relative;top:0;left:0;margin:0;padding:0;width:100%;height:100%;overflow:hidden;z-index:7;border-width:0;background-color:transparent;resize:none;}#textarea,#textarea:hover{outline:none;}#content_highlight{white-space:pre;margin:0;padding:0;position:absolute;z-index:4;overflow:visible;}#selection_field,#selection_field_text{margin:0;background-color:#E1F2F9;position:absolute;z-index:5;top:-100px;padding:0;white-space:pre;overflow:hidden;}#selection_field.show_colors {z-index:3;background-color:#EDF9FC;}#selection_field strong{font-weight:normal;}#selection_field.show_colors *,#selection_field_text * {visibility:hidden;}#selection_field_text{background-color:transparent;}#selection_field_text strong{font-weight:normal;background-color:#3399FE;color:#FFF;visibility:visible;}#container.word_wrap #content_highlight,#container.word_wrap #selection_field,#container.word_wrap #selection_field_text,#container.word_wrap #test_font_size{white-space:pre-wrap;white-space:-moz-pre-wrap !important;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;width:99%;}#line_number{position:absolute;overflow:hidden;border-right:solid black 1px;z-index:8;width:38px;padding:0 5px 0 0;margin:0 0 0 -45px;text-align:right;color:#AAAAAA;}#test_font_size{padding:0;margin:0;visibility:hidden;position:absolute;white-space:pre;}pre{margin:0;padding:0;}.hidden{opacity:0.2;filter:alpha(opacity=20);}#result .edit_area_cursor{position:absolute;z-index:6;background-color:#FF6633;top:-100px;margin:0;}#result .edit_area_selection_field .overline{background-color:#996600;}.editarea_popup{border:solid 1px #888888;background-color:#ECE9D8;width:250px;padding:4px;position:absolute;visibility:hidden;z-index:15;top:-500px;}.editarea_popup,.editarea_popup table{font-family:sans-serif;font-size:10pt;}.editarea_popup img{border:0;}.editarea_popup .close_popup{float:right;line-height:16px;border:0;padding:0;}.editarea_popup h1,.editarea_popup h2,.editarea_popup h3,.editarea_popup h4,.editarea_popup h5,.editarea_popup h6{margin:0;padding:0;}.editarea_popup .copyright{text-align:right;}div#area_search_replace{}div#area_search_replace img{border:0;}div#area_search_replace div.button{text-align:center;line-height:1.7em;}div#area_search_replace .button a{cursor:pointer;border:solid 1px #888888;background-color:#DEDEDE;text-decoration:none;padding:0 2px;color:#000000;white-space:nowrap;}div#area_search_replace a:hover{background-color:#EDEDED;}div#area_search_replace  #move_area_search_replace{cursor:move;border:solid 1px #888;}div#area_search_replace  #close_area_search_replace{text-align:right;vertical-align:top;white-space:nowrap;}div#area_search_replace  #area_search_msg{height:18px;overflow:hidden;border-top:solid 1px #888;margin-top:3px;}#edit_area_help{width:350px;}#edit_area_help div.close_popup{float:right;}.area_toolbar{width:100%;margin:0;padding:0;background-color:#ECE9D8;text-align:center;}.area_toolbar,.area_toolbar table{font:11px sans-serif;}.area_toolbar img{border:0;vertical-align:middle;}.area_toolbar input{margin:0;padding:0;}.area_toolbar select{font-family:'MS Sans Serif',sans-serif,Verdana,Arial;font-size:7pt;font-weight:normal;margin:2px 0 0 0 ;padding:0;vertical-align:top;background-color:#F0F0EE;}table.statusbar{width:100%;}.area_toolbar td.infos{text-align:center;width:130px;border-right:solid 1px #888;border-width:0 1px 0 0;padding:0;}.area_toolbar td.total{text-align:right;width:50px;padding:0;}.area_toolbar td.resize{text-align:right;}.area_toolbar span#resize_area{cursor:nw-resize;visibility:hidden;}.editAreaButtonNormal,.editAreaButtonOver,.editAreaButtonDown,.editAreaSeparator,.editAreaSeparatorLine,.editAreaButtonDisabled,.editAreaButtonSelected {border:0; margin:0; padding:0; background:transparent;margin-top:0;margin-left:1px;padding:0;}.editAreaButtonNormal {border:1px solid #ECE9D8 !important;cursor:pointer;}.editAreaButtonOver {border:1px solid #0A246A !important;cursor:pointer;background-color:#B6BDD2;}.editAreaButtonDown {cursor:pointer;border:1px solid #0A246A !important;background-color:#8592B5;}.editAreaButtonSelected {border:1px solid #C0C0BB !important;cursor:pointer;background-color:#F4F2E8;}.editAreaButtonDisabled {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);-moz-opacity:0.3;opacity:0.3;border:1px solid #F0F0EE !important;cursor:pointer;}.editAreaSeparatorLine {margin:1px 2px;background-color:#C0C0BB;width:2px;height:18px;}#processing{display:none;background-color:#ECE9D8;border:solid #888 1px;position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;text-align:center;}#processing_text{position:absolute;left:50%;top:50%;width:200px;height:20px;margin-left:-100px;margin-top:-10px;text-align:center;}#tab_browsing_area{display:none;background-color:#CCC9A8;border-top:1px solid #888;text-align:left;margin:0;}#tab_browsing_list {padding:0;margin:0;list-style-type:none;white-space:nowrap;}#tab_browsing_list li {float:left;margin:-1px;}#tab_browsing_list a {position:relative;display:block;text-decoration:none;float:left;cursor:pointer;line-height:14px;}#tab_browsing_list a span {display:block;color:#000;background:#ECE9D8;border:1px solid #888;border-width:1px 1px 0;text-align:center;padding:2px 2px 1px 4px;position:relative;}#tab_browsing_list a b {display:block;border-bottom:2px solid #617994;}#tab_browsing_list a .edited {display:none;}#tab_browsing_list a.edited .edited {display:inline;}#tab_browsing_list a img{margin-left:7px;}#tab_browsing_list a.edited img{margin-left:3px;}#tab_browsing_list a:hover span {background:#F4F2E8;border-color:#0A246A;}#tab_browsing_list .selected a span{background:#046380;color:#FFF;}#no_file_selected{height:100%;width:150%;background:#CCC;display:none;z-index:20;position:absolute;}.non_editable #editor{border-width:0 1px;}.non_editable .area_toolbar{display:none;}#auto_completion_area{background:#FFF;border:solid 1px #888;position:absolute;z-index:15;width:280px;height:180px;overflow:auto;display:none;}#auto_completion_area a,#auto_completion_area a:visited{display:block;padding:0 2px 1px;color:#000;text-decoration:none;}#auto_completion_area a:hover,#auto_completion_area a:focus,#auto_completion_area a.focus{background:#D6E1FE;text-decoration:none;}#auto_completion_area ul{margin:0;padding:0;list-style:none inside;}#auto_completion_area li{padding:0;}#auto_completion_area .prefix{font-style:italic;padding:0 3px;}</style>";
Index: tags/2.8.0/trunk/wb/include/editarea/reg_syntax/html.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/reg_syntax/html.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/reg_syntax/html.js	(revision 1130)
@@ -0,0 +1,50 @@
+/*
+* last update: 2006-08-24
+*/
+
+editAreaLoader.load_syntax["html"] = {
+	'COMMENT_SINGLE' : {}
+	,'COMMENT_MULTI' : {'<!--' : '-->'}
+	,'QUOTEMARKS' : {1: "'", 2: '"'}
+	,'KEYWORD_CASE_SENSITIVE' : false
+	,'KEYWORDS' : {
+	}
+	,'OPERATORS' :[
+	]
+	,'DELIMITERS' :[
+	]
+	,'REGEXPS' : {
+		'doctype' : {
+			'search' : '()(<!DOCTYPE[^>]*>)()'
+			,'class' : 'doctype'
+			,'modifiers' : ''
+			,'execute' : 'before' // before or after
+		}
+		,'tags' : {
+			'search' : '(<)(/?[a-z][^ \r\n\t>]*)([^>]*>)'
+			,'class' : 'tags'
+			,'modifiers' : 'gi'
+			,'execute' : 'before' // before or after
+		}
+		,'attributes' : {
+			'search' : '( |\n|\r|\t)([^ \r\n\t=]+)(=)'
+			,'class' : 'attributes'
+			,'modifiers' : 'g'
+			,'execute' : 'before' // before or after
+		}
+	}
+	,'STYLES' : {
+		'COMMENTS': 'color: #AAAAAA;'
+		,'QUOTESMARKS': 'color: #6381F8;'
+		,'KEYWORDS' : {
+			}
+		,'OPERATORS' : 'color: #E775F0;'
+		,'DELIMITERS' : ''
+		,'REGEXPS' : {
+			'attributes': 'color: #B1AC41;'
+			,'tags': 'color: #E62253;'
+			,'doctype': 'color: #8DCFB5;'
+			,'test': 'color: #00FF00;'
+		}	
+	}		
+};
Index: tags/2.8.0/trunk/wb/include/editarea/reg_syntax/php.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/reg_syntax/php.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/reg_syntax/php.js	(revision 1130)
@@ -0,0 +1,156 @@
+editAreaLoader.load_syntax["php"] = {
+	'COMMENT_SINGLE' : {1 : '//', 2 : '#'}
+	,'COMMENT_MULTI' : {'/*' : '*/'}
+	,'QUOTEMARKS' : {1: "'", 2: '"'}
+	,'KEYWORD_CASE_SENSITIVE' : false
+	,'KEYWORDS' : {
+		'statements' : [
+			'include', 'require', 'include_once', 'require_once',
+			'for', 'foreach', 'as', 'if', 'elseif', 'else', 'while', 'do', 'endwhile',
+            'endif', 'switch', 'case', 'endswitch',
+			'return', 'break', 'continue'
+		]
+		,'reserved' : [
+			'_GET', '_POST', '_SESSION', '_SERVER', '_FILES', '_ENV', '_COOKIE', '_REQUEST',
+			'null', '__LINE__', '__FILE__',
+			'false', '&lt;?php', '?&gt;', '&lt;?',
+			'&lt;script language', '&lt;/script&gt;',
+			'true', 'var', 'default',
+			'function', 'class', 'new', '&amp;new', 'this',
+			'__FUNCTION__', '__CLASS__', '__METHOD__', 'PHP_VERSION',
+			'PHP_OS', 'DEFAULT_INCLUDE_PATH', 'PEAR_INSTALL_DIR', 'PEAR_EXTENSION_DIR',
+			'PHP_EXTENSION_DIR', 'PHP_BINDIR', 'PHP_LIBDIR', 'PHP_DATADIR', 'PHP_SYSCONFDIR',
+			'PHP_LOCALSTATEDIR', 'PHP_CONFIG_FILE_PATH', 'PHP_OUTPUT_HANDLER_START', 'PHP_OUTPUT_HANDLER_CONT',
+			'PHP_OUTPUT_HANDLER_END', 'E_ERROR', 'E_WARNING', 'E_PARSE', 'E_NOTICE',
+			'E_CORE_ERROR', 'E_CORE_WARNING', 'E_COMPILE_ERROR', 'E_COMPILE_WARNING', 'E_USER_ERROR',
+			'E_USER_WARNING', 'E_USER_NOTICE', 'E_ALL'
+			
+		]
+		,'functions' : [
+			'func_num_args', 'func_get_arg', 'func_get_args', 'strlen', 'strcmp', 'strncmp', 'strcasecmp', 'strncasecmp', 'each', 'error_reporting', 'define', 'defined',
+			'trigger_error', 'user_error', 'set_error_handler', 'restore_error_handler', 'get_declared_classes', 'get_loaded_extensions',
+			'extension_loaded', 'get_extension_funcs', 'debug_backtrace',
+			'constant', 'bin2hex', 'sleep', 'usleep', 'time', 'mktime', 'gmmktime', 'strftime', 'gmstrftime', 'strtotime', 'date', 'gmdate', 'getdate', 'localtime', 'checkdate', 'flush', 'wordwrap', 'htmlspecialchars', 'htmlentities', 'html_entity_decode', 'md5', 'md5_file', 'crc32', 'getimagesize', 'image_type_to_mime_type', 'phpinfo', 'phpversion', 'phpcredits', 'strnatcmp', 'strnatcasecmp', 'substr_count', 'strspn', 'strcspn', 'strtok', 'strtoupper', 'strtolower', 'strpos', 'strrpos', 'strrev', 'hebrev', 'hebrevc', 'nl2br', 'basename', 'dirname', 'pathinfo', 'stripslashes', 'stripcslashes', 'strstr', 'stristr', 'strrchr', 'str_shuffle', 'str_word_count', 'strcoll', 'substr', 'substr_replace', 'quotemeta', 'ucfirst', 'ucwords', 'strtr', 'addslashes', 'addcslashes', 'rtrim', 'str_replace', 'str_repeat', 'count_chars', 'chunk_split', 'trim', 'ltrim', 'strip_tags', 'similar_text', 'explode', 'implode', 'setlocale', 'localeconv',
+			'parse_str', 'str_pad', 'chop', 'strchr', 'sprintf', 'printf', 'vprintf', 'vsprintf', 'sscanf', 'fscanf', 'parse_url', 'urlencode', 'urldecode', 'rawurlencode', 'rawurldecode', 'readlink', 'linkinfo', 'link', 'unlink', 'exec', 'system', 'escapeshellcmd', 'escapeshellarg', 'passthru', 'shell_exec', 'proc_open', 'proc_close', 'rand', 'srand', 'getrandmax', 'mt_rand', 'mt_srand', 'mt_getrandmax', 'base64_decode', 'base64_encode', 'abs', 'ceil', 'floor', 'round', 'is_finite', 'is_nan', 'is_infinite', 'bindec', 'hexdec', 'octdec', 'decbin', 'decoct', 'dechex', 'base_convert', 'number_format', 'fmod', 'ip2long', 'long2ip', 'getenv', 'putenv', 'getopt', 'microtime', 'gettimeofday', 'getrusage', 'uniqid', 'quoted_printable_decode', 'set_time_limit', 'get_cfg_var', 'magic_quotes_runtime', 'set_magic_quotes_runtime', 'get_magic_quotes_gpc', 'get_magic_quotes_runtime',
+			'import_request_variables', 'error_log', 'serialize', 'unserialize', 'memory_get_usage', 'var_dump', 'var_export', 'debug_zval_dump', 'print_r','highlight_file', 'show_source', 'highlight_string', 'ini_get', 'ini_get_all', 'ini_set', 'ini_alter', 'ini_restore', 'get_include_path', 'set_include_path', 'restore_include_path', 'setcookie', 'header', 'headers_sent', 'connection_aborted', 'connection_status', 'ignore_user_abort', 'parse_ini_file', 'is_uploaded_file', 'move_uploaded_file', 'intval', 'floatval', 'doubleval', 'strval', 'gettype', 'settype', 'is_null', 'is_resource', 'is_bool', 'is_long', 'is_float', 'is_int', 'is_integer', 'is_double', 'is_real', 'is_numeric', 'is_string', 'is_array', 'is_object', 'is_scalar',
+			'ereg', 'ereg_replace', 'eregi', 'eregi_replace', 'split', 'spliti', 'join', 'sql_regcase', 'dl', 'pclose', 'popen', 'readfile', 'rewind', 'rmdir', 'umask', 'fclose', 'feof', 'fgetc', 'fgets', 'fgetss', 'fread', 'fopen', 'fpassthru', 'ftruncate', 'fstat', 'fseek', 'ftell', 'fflush', 'fwrite', 'fputs', 'mkdir', 'rename', 'copy', 'tempnam', 'tmpfile', 'file', 'file_get_contents', 'stream_select', 'stream_context_create', 'stream_context_set_params', 'stream_context_set_option', 'stream_context_get_options', 'stream_filter_prepend', 'stream_filter_append', 'fgetcsv', 'flock', 'get_meta_tags', 'stream_set_write_buffer', 'set_file_buffer', 'set_socket_blocking', 'stream_set_blocking', 'socket_set_blocking', 'stream_get_meta_data', 'stream_register_wrapper', 'stream_wrapper_register', 'stream_set_timeout', 'socket_set_timeout', 'socket_get_status', 'realpath', 'fnmatch', 'fsockopen', 'pfsockopen', 'pack', 'unpack', 'get_browser', 'crypt', 'opendir', 'closedir', 'chdir', 'getcwd', 'rewinddir', 'readdir', 'dir', 'glob', 'fileatime', 'filectime', 'filegroup', 'fileinode', 'filemtime', 'fileowner', 'fileperms', 'filesize', 'filetype', 'file_exists', 'is_writable', 'is_writeable', 'is_readable', 'is_executable', 'is_file', 'is_dir', 'is_link', 'stat', 'lstat', 'chown',
+			'touch', 'clearstatcache', 'mail', 'ob_start', 'ob_flush', 'ob_clean', 'ob_end_flush', 'ob_end_clean', 'ob_get_flush', 'ob_get_clean', 'ob_get_length', 'ob_get_level', 'ob_get_status', 'ob_get_contents', 'ob_implicit_flush', 'ob_list_handlers', 'ksort', 'krsort', 'natsort', 'natcasesort', 'asort', 'arsort', 'sort', 'rsort', 'usort', 'uasort', 'uksort', 'shuffle', 'array_walk', 'count', 'end', 'prev', 'next', 'reset', 'current', 'key', 'min', 'max', 'in_array', 'array_search', 'extract', 'compact', 'array_fill', 'range', 'array_multisort', 'array_push', 'array_pop', 'array_shift', 'array_unshift', 'array_splice', 'array_slice', 'array_merge', 'array_merge_recursive', 'array_keys', 'array_values', 'array_count_values', 'array_reverse', 'array_reduce', 'array_pad', 'array_flip', 'array_change_key_case', 'array_rand', 'array_unique', 'array_intersect', 'array_intersect_assoc', 'array_diff', 'array_diff_assoc', 'array_sum', 'array_filter', 'array_map', 'array_chunk', 'array_key_exists', 'pos', 'sizeof', 'key_exists', 'assert', 'assert_options', 'version_compare', 'ftok', 'str_rot13', 'aggregate',
+			'session_name', 'session_module_name', 'session_save_path', 'session_id', 'session_regenerate_id', 'session_decode', 'session_register', 'session_unregister', 'session_is_registered', 'session_encode',
+			'session_start', 'session_destroy', 'session_unset', 'session_set_save_handler', 'session_cache_limiter', 'session_cache_expire', 'session_set_cookie_params', 'session_get_cookie_params', 'session_write_close', 'preg_match', 'preg_match_all', 'preg_replace', 'preg_replace_callback', 'preg_split', 'preg_quote', 'preg_grep', 'overload', 'ctype_alnum', 'ctype_alpha', 'ctype_cntrl', 'ctype_digit', 'ctype_lower', 'ctype_graph', 'ctype_print', 'ctype_punct', 'ctype_space', 'ctype_upper', 'ctype_xdigit', 'virtual', 'apache_request_headers', 'apache_note', 'apache_lookup_uri', 'apache_child_terminate', 'apache_setenv', 'apache_response_headers', 'apache_get_version', 'getallheaders', 'mysql_connect', 'mysql_pconnect', 'mysql_close', 'mysql_select_db', 'mysql_create_db', 'mysql_drop_db', 'mysql_query', 'mysql_unbuffered_query', 'mysql_db_query', 'mysql_list_dbs', 'mysql_list_tables', 'mysql_list_fields', 'mysql_list_processes', 'mysql_error', 'mysql_errno', 'mysql_affected_rows', 'mysql_insert_id', 'mysql_result', 'mysql_num_rows', 'mysql_num_fields', 'mysql_fetch_row', 'mysql_fetch_array', 'mysql_fetch_assoc', 'mysql_fetch_object', 'mysql_data_seek', 'mysql_fetch_lengths', 'mysql_fetch_field', 'mysql_field_seek', 'mysql_free_result', 'mysql_field_name', 'mysql_field_table', 'mysql_field_len', 'mysql_field_type', 'mysql_field_flags', 'mysql_escape_string', 'mysql_real_escape_string', 'mysql_stat',
+			'mysql_thread_id', 'mysql_client_encoding', 'mysql_get_client_info', 'mysql_get_host_info', 'mysql_get_proto_info', 'mysql_get_server_info', 'mysql_info', 'mysql', 'mysql_fieldname', 'mysql_fieldtable', 'mysql_fieldlen', 'mysql_fieldtype', 'mysql_fieldflags', 'mysql_selectdb', 'mysql_createdb', 'mysql_dropdb', 'mysql_freeresult', 'mysql_numfields', 'mysql_numrows', 'mysql_listdbs', 'mysql_listtables', 'mysql_listfields', 'mysql_db_name', 'mysql_dbname', 'mysql_tablename', 'mysql_table_name', 'pg_connect', 'pg_pconnect', 'pg_close', 'pg_connection_status', 'pg_connection_busy', 'pg_connection_reset', 'pg_host', 'pg_dbname', 'pg_port', 'pg_tty', 'pg_options', 'pg_ping', 'pg_query', 'pg_send_query', 'pg_cancel_query', 'pg_fetch_result', 'pg_fetch_row', 'pg_fetch_assoc', 'pg_fetch_array', 'pg_fetch_object', 'pg_fetch_all', 'pg_affected_rows', 'pg_get_result', 'pg_result_seek', 'pg_result_status', 'pg_free_result', 'pg_last_oid', 'pg_num_rows', 'pg_num_fields', 'pg_field_name', 'pg_field_num', 'pg_field_size', 'pg_field_type', 'pg_field_prtlen', 'pg_field_is_null', 'pg_get_notify', 'pg_get_pid', 'pg_result_error', 'pg_last_error', 'pg_last_notice', 'pg_put_line', 'pg_end_copy', 'pg_copy_to', 'pg_copy_from',
+			'pg_trace', 'pg_untrace', 'pg_lo_create', 'pg_lo_unlink', 'pg_lo_open', 'pg_lo_close', 'pg_lo_read', 'pg_lo_write', 'pg_lo_read_all', 'pg_lo_import', 'pg_lo_export', 'pg_lo_seek', 'pg_lo_tell', 'pg_escape_string', 'pg_escape_bytea', 'pg_unescape_bytea', 'pg_client_encoding', 'pg_set_client_encoding', 'pg_meta_data', 'pg_convert', 'pg_insert', 'pg_update', 'pg_delete', 'pg_select', 'pg_exec', 'pg_getlastoid', 'pg_cmdtuples', 'pg_errormessage', 'pg_numrows', 'pg_numfields', 'pg_fieldname', 'pg_fieldsize', 'pg_fieldtype', 'pg_fieldnum', 'pg_fieldprtlen', 'pg_fieldisnull', 'pg_freeresult', 'pg_result', 'pg_loreadall', 'pg_locreate', 'pg_lounlink', 'pg_loopen', 'pg_loclose', 'pg_loread', 'pg_lowrite', 'pg_loimport', 'pg_loexport',
+			'echo', 'print', 'global', 'static', 'exit', 'array', 'empty', 'eval', 'isset', 'unset', 'die'
+
+		]
+	}
+	,'OPERATORS' :[
+		'+', '-', '/', '*', '=', '<', '>', '%', '!', '&&', '||'
+	]
+	,'DELIMITERS' :[
+		'(', ')', '[', ']', '{', '}'
+	]
+	,'REGEXPS' : {
+		// highlight all variables ($...)
+		'variables' : {
+			'search' : '()(\\$\\w+)()'
+			,'class' : 'variables'
+			,'modifiers' : 'g'
+			,'execute' : 'before' // before or after
+		}
+	}
+	,'STYLES' : {
+		'COMMENTS': 'color: #AAAAAA;'
+		,'QUOTESMARKS': 'color: #879EFA;'
+		,'KEYWORDS' : {
+			'reserved' : 'color: #48BDDF;'
+			,'functions' : 'color: #0040FD;'
+			,'statements' : 'color: #60CA00;'
+			}
+		,'OPERATORS' : 'color: #FF00FF;'
+		,'DELIMITERS' : 'color: #2B60FF;'
+		,'REGEXPS' : {
+			'variables' : 'color: #E0BD54;'
+		}		
+	}
+	,'AUTO_COMPLETION' :  {
+		"default": {	// the name of this definition group. It's posisble to have different rules inside the same definition file
+			"REGEXP": { "before_word": "[^a-zA-Z0-9_]|^"	// \\s|\\.|
+						,"possible_words_letters": "[a-zA-Z0-9_\$]+"
+						,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"
+						,"prefix_separator": "\\-\\>|\\:\\:"
+					}
+			,"CASE_SENSITIVE": true
+			,"MAX_TEXT_LENGTH": 100		// the maximum length of the text being analyzed before the cursor position
+			,"KEYWORDS": {
+					'': [	// the prefix of thoses items
+						/**
+						 * 0 : the keyword the user is typing
+						 * 1 : (optionnal) the string inserted in code ("{@}" being the new position of the cursor, "ยง" beeing the equivalent to the value the typed string indicated if the previous )
+						 * 		If empty the keyword will be displayed
+						 * 2 : (optionnal) the text that appear in the suggestion box (if empty, the string to insert will be displayed)
+						 */
+						 ['$_POST']
+			    		,['$_GET']
+			    		,['$_SESSION']
+			    		,['$_SERVER']
+			    		,['$_FILES']
+			    		,['$_ENV']
+			    		,['$_COOKIE']
+			    		,['$_REQUEST']
+			    		// magic methods
+			    		,['__construct', 'ยง( {@} )']
+			    		,['__destruct', 'ยง( {@} )']
+			    		,['__sleep', 'ยง( {@} )']
+			    		,['__wakeup', 'ยง( {@} )']
+			    		,['__toString', 'ยง( {@} )']
+			    		// include
+			    		,['include', 'ยง "{@}";']
+			    		,['include_once', 'ยง "{@}";']
+			    		,['require', 'ยง "{@}";']
+			    		,['require_once', 'ยง "{@}";']
+			    		// statements
+			    		,['for', 'ยง( {@} )']
+			    		,['foreach', 'ยง( {@} )']
+			    		,['if', 'ยง( {@} )']
+			    		,['elseif', 'ยง( {@} )']
+			    		,['while', 'ยง( {@} )']
+			    		,['switch', 'ยง( {@} )']
+			    		,['break']
+			    		,['case']
+			    		,['continue']
+			    		,['do']
+			    		,['else']
+			    		,['endif']
+			    		,['endswitch']
+			    		,['endwhile']
+			    		,['return']
+			    		// function
+			    		,['unset', 'ยง( {@} )']
+					]
+				}
+			}
+		,"live": {	
+			
+			// class NAME: /class\W+([a-z]+)\W+/gi
+			// method: /^(public|private|protected)?\s*function\s+([a-z][a-z0-9\_]*)\s*(\([^\{]*\))/gmi
+			// static: /^(public|private|protected)?\s+static\s+(public|private|protected)?\s*function\s+([a-z][a-z0-9\_]*)\s*(\([^\{]*\))/gmi 
+			// attributes: /(\$this\-\>|(?:var|public|protected|private)\W+\$)([a-z0-9\_]+)(?!\()\b/gi 
+			// 		v1 : /(\$this\-\>|var\W+|public\W+|protected\W+|private\W+)([a-z0-9\_]+)\W*(=|;)/gi 
+			// var type: /(\$(this\-\>)?[a-z0-9\_]+)\s*\=\s*new\s+([a-z0-9\_])+/gi 
+			
+			
+			"REGEXP": { "before_word": "[^a-zA-Z0-9_]|^"	// \\s|\\.|
+						,"possible_words_letters": "[a-zA-Z0-9_\$]+"
+						,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"
+						,"prefix_separator": "\\-\\>"
+					}
+			,"CASE_SENSITIVE": true
+			,"MAX_TEXT_LENGTH": 100		// the maximum length of the text being analyzed before the cursor position
+			,"KEYWORDS": {
+					'$this': [	// the prefix of thoses items
+						['test']
+					]
+				}
+			}
+	}
+};
Index: tags/2.8.0/trunk/wb/include/editarea/reg_syntax/css.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/reg_syntax/css.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/reg_syntax/css.js	(revision 1130)
@@ -0,0 +1,84 @@
+editAreaLoader.load_syntax["css"] = {
+	'COMMENT_SINGLE' : {1 : '@'}
+	,'COMMENT_MULTI' : {'/*' : '*/'}
+	,'QUOTEMARKS' : ['"', "'"]
+	,'KEYWORD_CASE_SENSITIVE' : false
+	,'KEYWORDS' : {
+		'attributes' : [
+			'aqua', 'azimuth', 'background-attachment', 'background-color',
+			'background-image', 'background-position', 'background-repeat',
+			'background', 'border-bottom-color', 'border-bottom-style',
+			'border-bottom-width', 'border-left-color', 'border-left-style',
+			'border-left-width', 'border-right', 'border-right-color',
+			'border-right-style', 'border-right-width', 'border-top-color',
+			'border-top-style', 'border-top-width','border-bottom', 'border-collapse',
+			'border-left', 'border-width', 'border-color', 'border-spacing',
+			'border-style', 'border-top', 'border',  'caption-side',
+			'clear', 'clip', 'color', 'content', 'counter-increment', 'counter-reset',
+			'cue-after', 'cue-before', 'cue', 'cursor', 'direction', 'display',
+			'elevation', 'empty-cells', 'float', 'font-family', 'font-size',
+			'font-size-adjust', 'font-stretch', 'font-style', 'font-variant',
+			'font-weight', 'font', 'height', 'letter-spacing', 'line-height',
+			'list-style', 'list-style-image', 'list-style-position', 'list-style-type',
+			'margin-bottom', 'margin-left', 'margin-right', 'margin-top', 'margin',
+			'marker-offset', 'marks', 'max-height', 'max-width', 'min-height',
+			'min-width', 'opacity', 'orphans', 'outline', 'outline-color', 'outline-style',
+			'outline-width', 'overflow', 'padding-bottom', 'padding-left',
+			'padding-right', 'padding-top', 'padding', 'page', 'page-break-after',
+			'page-break-before', 'page-break-inside', 'pause-after', 'pause-before',
+			'pause', 'pitch', 'pitch-range',  'play-during', 'position', 'quotes',
+			'richness', 'right', 'size', 'speak-header', 'speak-numeral', 'speak-punctuation',
+			'speak', 'speech-rate', 'stress', 'table-layout', 'text-align', 'text-decoration',
+			'text-indent', 'text-shadow', 'text-transform', 'top', 'unicode-bidi',
+			'vertical-align', 'visibility', 'voice-family', 'volume', 'white-space', 'widows',
+			'width', 'word-spacing', 'z-index', 'bottom', 'left'
+		]
+		,'values' : [
+			'above', 'absolute', 'always', 'armenian', 'aural', 'auto', 'avoid',
+			'baseline', 'behind', 'below', 'bidi-override', 'black', 'blue', 'blink', 'block', 'bold', 'bolder', 'both',
+			'capitalize', 'center-left', 'center-right', 'center', 'circle', 'cjk-ideographic', 
+            'close-quote', 'collapse', 'condensed', 'continuous', 'crop', 'crosshair', 'cross', 'cursive',
+			'dashed', 'decimal-leading-zero', 'decimal', 'default', 'digits', 'disc', 'dotted', 'double',
+			'e-resize', 'embed', 'extra-condensed', 'extra-expanded', 'expanded',
+			'fantasy', 'far-left', 'far-right', 'faster', 'fast', 'fixed', 'fuchsia',
+			'georgian', 'gray', 'green', 'groove', 'hebrew', 'help', 'hidden', 'hide', 'higher',
+			'high', 'hiragana-iroha', 'hiragana', 'icon', 'inherit', 'inline-table', 'inline',
+			'inset', 'inside', 'invert', 'italic', 'justify', 'katakana-iroha', 'katakana',
+			'landscape', 'larger', 'large', 'left-side', 'leftwards', 'level', 'lighter', 'lime', 'line-through', 'list-item', 'loud', 'lower-alpha', 'lower-greek', 'lower-roman', 'lowercase', 'ltr', 'lower', 'low',
+			'maroon', 'medium', 'message-box', 'middle', 'mix', 'monospace',
+			'n-resize', 'narrower', 'navy', 'ne-resize', 'no-close-quote', 'no-open-quote', 'no-repeat', 'none', 'normal', 'nowrap', 'nw-resize',
+			'oblique', 'olive', 'once', 'open-quote', 'outset', 'outside', 'overline',
+			'pointer', 'portrait', 'purple', 'px',
+			'red', 'relative', 'repeat-x', 'repeat-y', 'repeat', 'rgb', 'ridge', 'right-side', 'rightwards',
+			's-resize', 'sans-serif', 'scroll', 'se-resize', 'semi-condensed', 'semi-expanded', 'separate', 'serif', 'show', 'silent', 'silver', 'slow', 'slower', 'small-caps', 'small-caption', 'smaller', 'soft', 'solid', 'spell-out', 'square',
+			'static', 'status-bar', 'super', 'sw-resize',
+			'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row', 'table-row-group', 'teal', 'text', 'text-bottom', 'text-top', 'thick', 'thin', 'transparent',
+			'ultra-condensed', 'ultra-expanded', 'underline', 'upper-alpha', 'upper-latin', 'upper-roman', 'uppercase', 'url',
+			'visible',
+			'w-resize', 'wait', 'white', 'wider',
+			'x-fast', 'x-high', 'x-large', 'x-loud', 'x-low', 'x-small', 'x-soft', 'xx-large', 'xx-small',
+			'yellow', 'yes'
+		]
+		,'specials' : [
+			'important'
+		]
+	}
+	,'OPERATORS' :[
+		':', ';', '!', '.', '#'
+	]
+	,'DELIMITERS' :[
+		'{', '}'
+	]
+	,'STYLES' : {
+		'COMMENTS': 'color: #AAAAAA;'
+		,'QUOTESMARKS': 'color: #6381F8;'
+		,'KEYWORDS' : {
+			'attributes' : 'color: #48BDDF;'
+			,'values' : 'color: #2B60FF;'
+			,'specials' : 'color: #FF0000;'
+			}
+		,'OPERATORS' : 'color: #FF00FF;'
+		,'DELIMITERS' : 'color: #60CA00;'
+				
+	}
+};
Index: tags/2.8.0/trunk/wb/include/editarea/reg_syntax/js.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/reg_syntax/js.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/reg_syntax/js.js	(revision 1130)
@@ -0,0 +1,93 @@
+editAreaLoader.load_syntax["js"] = {
+	'COMMENT_SINGLE' : {1 : '//'}
+	,'COMMENT_MULTI' : {'/*' : '*/'}
+	,'QUOTEMARKS' : {1: "'", 2: '"'}
+	,'KEYWORD_CASE_SENSITIVE' : false
+	,'KEYWORDS' : {
+		'statements' : [
+			'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
+			'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
+			'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
+			'while', 'write', 'with'
+		]
+ 		,'keywords' : [
+			'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
+			'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
+			'protected', 'public', 'super', 'true', 'use', 'var', 'window', 'document',		
+			// the list below must be sorted and checked (if it is a keywords or a function and if it is not present twice
+			'Link ', 'outerHeight ', 'Anchor', 'FileUpload', 
+			'location', 'outerWidth', 'Select', 'Area', 'find', 'Location', 'Packages', 'self', 
+			'arguments', 'locationbar', 'pageXoffset', 'Form', 
+			'Math', 'pageYoffset', 'setTimeout', 'assign', 'Frame', 'menubar', 'parent', 'status', 
+			'blur', 'frames', 'MimeType', 'parseFloat', 'statusbar', 'Boolean', 'Function', 'moveBy', 
+			'parseInt', 'stop', 'Button', 'getClass', 'moveTo', 'Password', 'String', 'callee', 'Hidden', 
+			'name', 'personalbar', 'Submit', 'caller', 'history', 'NaN', 'Plugin', 'sun', 'captureEvents', 
+			'History', 'navigate', 'print', 'taint', 'Checkbox', 'home', 'navigator', 'prompt', 'Text', 
+			'Image', 'Navigator', 'prototype', 'Textarea', 'clearTimeout', 'Infinity', 
+			'netscape', 'Radio', 'toolbar', 'close', 'innerHeight', 'Number', 'ref', 'top', 'closed', 
+			'innerWidth', 'Object', 'RegExp', 'toString', 'confirm', 'isFinite', 'onBlur', 'releaseEvents', 
+			'unescape', 'constructor', 'isNan', 'onError', 'Reset', 'untaint', 'Date', 'java', 'onFocus', 
+			'resizeBy', 'unwatch', 'defaultStatus', 'JavaArray', 'onLoad', 'resizeTo', 'valueOf', 'document', 
+			'JavaClass', 'onUnload', 'routeEvent', 'watch', 'Document', 'JavaObject', 'open', 'scroll', 'window', 
+			'Element', 'JavaPackage', 'opener', 'scrollbars', 'Window', 'escape', 'length', 'Option', 'scrollBy'			
+		]
+    	,'functions' : [
+			// common functions for Window object
+			'alert', 'Array', 'back', 'blur', 'clearInterval', 'close', 'confirm', 'eval ', 'focus', 'forward', 'home',
+			'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
+			'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'scrollTo', 'setInterval', 'status',
+			'stop' 
+		]
+	}
+	,'OPERATORS' :[
+		'+', '-', '/', '*', '=', '<', '>', '%', '!'
+	]
+	,'DELIMITERS' :[
+		'(', ')', '[', ']', '{', '}'
+	]
+	,'STYLES' : {
+		'COMMENTS': 'color: #AAAAAA;'
+		,'QUOTESMARKS': 'color: #6381F8;'
+		,'KEYWORDS' : {
+			'statements' : 'color: #60CA00;'
+			,'keywords' : 'color: #48BDDF;'
+			,'functions' : 'color: #2B60FF;'
+		}
+		,'OPERATORS' : 'color: #FF00FF;'
+		,'DELIMITERS' : 'color: #0038E1;'
+				
+	}
+	,'AUTO_COMPLETION' :  {
+		"default": {	// the name of this definition group. It's posisble to have different rules inside the same definition file
+			"REGEXP": { "before_word": "[^a-zA-Z0-9_]|^"	// \\s|\\.|
+						,"possible_words_letters": "[a-zA-Z0-9_]+"
+						,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"
+						,"prefix_separator": "\\."
+					}
+			,"CASE_SENSITIVE": true
+			,"MAX_TEXT_LENGTH": 100		// the maximum length of the text being analyzed before the cursor position
+			,"KEYWORDS": {
+				'': [	// the prefix of thoses items
+						/**
+						 * 0 : the keyword the user is typing
+						 * 1 : (optionnal) the string inserted in code ("{@}" being the new position of the cursor, "ยง" beeing the equivalent to the value the typed string indicated if the previous )
+						 * 		If empty the keyword will be displayed
+						 * 2 : (optionnal) the text that appear in the suggestion box (if empty, the string to insert will be displayed)
+						 */
+						 ['Array', 'ยง()', '']
+			    		,['alert', 'ยง({@})', 'alert(String message)']
+			    		,['document']
+			    		,['window']
+			    	]
+		    	,'window' : [
+			    		 ['location']
+			    		,['document']
+			    		,['scrollTo', 'scrollTo({@})', 'scrollTo(Int x,Int y)']
+					]
+		    	,'location' : [
+			    		 ['href']
+					]
+			}
+		}
+	}
+};
Index: tags/2.8.0/trunk/wb/include/editarea/reg_syntax/xml.js
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/reg_syntax/xml.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/reg_syntax/xml.js	(revision 1130)
@@ -0,0 +1,56 @@
+/*
+* last update: 2006-08-24
+*/
+
+editAreaLoader.load_syntax["xml"] = {
+	'COMMENT_SINGLE' : {}
+	,'COMMENT_MULTI' : {'<!--' : '-->'}
+	,'QUOTEMARKS' : {1: "'", 2: '"'}
+	,'KEYWORD_CASE_SENSITIVE' : false
+	,'KEYWORDS' : {
+	}
+	,'OPERATORS' :[
+	]
+	,'DELIMITERS' :[
+	]
+	,'REGEXPS' : {
+		'xml' : {
+			'search' : '()(<\\?[^>]*?\\?>)()'
+			,'class' : 'xml'
+			,'modifiers' : 'g'
+			,'execute' : 'before' // before or after
+		}
+		,'cdatas' : {
+			'search' : '()(<!\\[CDATA\\[.*?\\]\\]>)()'
+			,'class' : 'cdata'
+			,'modifiers' : 'g'
+			,'execute' : 'before' // before or after
+		}
+		,'tags' : {
+			'search' : '(<)(/?[a-z][^ \r\n\t>]*)([^>]*>)'
+			,'class' : 'tags'
+			,'modifiers' : 'gi'
+			,'execute' : 'before' // before or after
+		}
+		,'attributes' : {
+			'search' : '( |\n|\r|\t)([^ \r\n\t=]+)(=)'
+			,'class' : 'attributes'
+			,'modifiers' : 'g'
+			,'execute' : 'before' // before or after
+		}
+	}
+	,'STYLES' : {
+		'COMMENTS': 'color: #AAAAAA;'
+		,'QUOTESMARKS': 'color: #6381F8;'
+		,'KEYWORDS' : {
+			}
+		,'OPERATORS' : 'color: #E775F0;'
+		,'DELIMITERS' : ''
+		,'REGEXPS' : {
+			'attributes': 'color: #B1AC41;'
+			,'tags': 'color: #E62253;'
+			,'xml': 'color: #8DCFB5;'
+			,'cdata': 'color: #50B020;'
+		}	
+	}		
+};
Index: tags/2.8.0/trunk/wb/include/editarea/reg_syntax/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/reg_syntax/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/reg_syntax/index.php	(revision 1130)
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Website Baker wrapper functions for the Javascript code editor: "EditArea"
+ *
+ * EditArea is created by Christophe Dolivet and released under "LGPL", 
+ * "Apache" and "BSD" licenses. For the integration into Website Baker 
+ * the LGPL license was choosen.
+ *
+ * LICENSE: GNU Lesser General Public License 3.0
+ * 
+ * @author		Christophe Dolivet (EditArea), Christian Sommer (WB wrapper)
+ * @copyright	(c) 2005-2009
+ * @license		http://www.gnu.org/copyleft/lesser.html
+ * @version		0.7.2.3 
+ * @platform	Website Baker 2.7
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/editarea/images/processing.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/processing.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/spacer.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/spacer.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/smooth_selection.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/smooth_selection.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/go_to_line.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/go_to_line.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/load.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/load.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/opacity.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/opacity.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/help.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/help.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/newdocument.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/newdocument.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/statusbar_resize.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/statusbar_resize.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/images/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/images/index.php	(revision 1130)
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Website Baker wrapper functions for the Javascript code editor: "EditArea"
+ *
+ * EditArea is created by Christophe Dolivet and released under "LGPL", 
+ * "Apache" and "BSD" licenses. For the integration into Website Baker 
+ * the LGPL license was choosen.
+ *
+ * LICENSE: GNU Lesser General Public License 3.0
+ * 
+ * @author		Christophe Dolivet (EditArea), Christian Sommer (WB wrapper)
+ * @copyright	(c) 2005-2009
+ * @license		http://www.gnu.org/copyleft/lesser.html
+ * @version		0.7.2.3 
+ * @platform	Website Baker 2.7
+*/
+
+// prevent directory listing
+header('Location: ../../../index.php');
+
+?>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/editarea/images/redo.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/redo.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/save.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/save.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/autocompletion.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/autocompletion.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/fullscreen.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/fullscreen.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/close.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/close.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/search.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/search.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/undo.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/undo.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/move.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/move.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/highlight.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/highlight.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/images/reset_highlight.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/editarea/images/reset_highlight.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/editarea/wb_wrapper_edit_area.php
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/wb_wrapper_edit_area.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/wb_wrapper_edit_area.php	(revision 1130)
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Website Baker wrapper functions for the Javascript code editor: "EditArea"
+ *
+ * EditArea is created by Christophe Dolivet and released under "LGPL", 
+ * "Apache" and "BSD" licenses. For the integration into Website Baker 
+ * the LGPL license was choosen.
+ *
+ * LICENSE: GNU Lesser General Public License 3.0
+ * 
+ * @author		Christophe Dolivet (EditArea), Christian Sommer (WB wrapper)
+ * @copyright	(c) 2005-2009
+ * @license		http://www.gnu.org/copyleft/lesser.html
+ * @version		0.7.2.3 
+ * @platform	Website Baker 2.7
+*/
+
+if (!function_exists('registerEditArea')) {
+	function registerEditArea($id = 'code_area', $syntax = 'php', $syntax_selection = true
+		, $allow_resize = 'no', $allow_toggle = true, $start_highlight = true
+		, $min_width = 600, $min_height = 300, $toolbar = 'default')
+	{ 
+		// set default toolbar if no user defined was specified
+		if ($toolbar == 'default') {
+			$toolbar = 'search, fullscreen, |, undo, redo, |, select_font, syntax_selection, |, highlight, reset_highlight, |, help';
+			$toolbar = (!$syntax_selection) ? str_replace('syntax_selection,', '', $toolbar) : $toolbar;
+		}
+	
+		// check if used Website Baker backend language is supported by EditArea
+		$language = 'en';
+		if (defined('LANGUAGE') && file_exists(dirname(__FILE__) . '/langs/' . strtolower(LANGUAGE) . '.js')) {
+			$language = strtolower(LANGUAGE);
+		}
+
+		// check if highlight syntax is supported by edit_area
+		$syntax = in_array($syntax, array('css', 'html', 'js', 'php', 'xml')) ? $syntax : 'php';
+
+		// check if resize option is supported by edit_area
+		$allow_resize = in_array($allow_resize, array('no', 'both', 'x', 'y')) ? $allow_resize : 'no';
+
+		// return the Javascript code
+		$result = <<< EOT
+		<script language="javascript" type="text/javascript">
+			editAreaLoader.init({
+				id: 				'$id'
+				,start_highlight:	$start_highlight
+				,syntax:			'$syntax'
+				,min_width:			$min_width
+				,min_height:		$min_height
+				,allow_resize: 		'$allow_resize'
+				,allow_toggle: 		$allow_toggle
+				,toolbar: 			'$toolbar'
+				,language:			'$language'
+			});
+		</script>
+EOT;
+		return $result;	
+	}
+}
+
+if (!function_exists('getEditAreaSyntax')) {
+	function getEditAreaSyntax($file) 
+	{
+		// returns the highlight scheme for edit_area
+		$syntax = 'php';
+		if (is_readable($file)) {
+			// extract file extension
+			$file_info = pathinfo($file);
+		
+			switch ($file_info['extension']) {
+				case 'htm': case 'html': case 'htt':
+					$syntax = 'html';
+	  				break;
+
+	 			case 'css':
+					$syntax = 'css';
+	  				break;
+
+				case 'js':
+					$syntax = 'js';
+					break;
+
+				case 'xml':
+					$syntax = 'xml';
+					break;
+
+	 			case 'php': case 'php3': case 'php4': case 'php5':
+					$syntax = 'php';
+	  				break;
+
+				default:
+					$syntax = 'php';
+					break;
+			}
+		}
+		return $syntax ;
+	}
+}
+
+?>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/editarea/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/index.php	(revision 1130)
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Website Baker wrapper functions for the Javascript code editor: "EditArea"
+ *
+ * EditArea is created by Christophe Dolivet and released under "LGPL", 
+ * "Apache" and "BSD" licenses. For the integration into Website Baker 
+ * the LGPL license was choosen.
+ *
+ * LICENSE: GNU Lesser General Public License 3.0
+ * 
+ * @author		Christophe Dolivet (EditArea), Christian Sommer (WB wrapper)
+ * @copyright	(c) 2005-2009
+ * @license		http://www.gnu.org/copyleft/lesser.html
+ * @version		0.7.2.3 
+ * @platform	Website Baker 2.7
+*/
+
+// prevent directory listing
+header('Location: ../../index.php');
+
+?>
\ No newline at end of file
Index: tags/2.8.0/trunk/wb/include/editarea/license_lgpl.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/editarea/license_lgpl.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/editarea/license_lgpl.txt	(revision 1130)
@@ -0,0 +1,458 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 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.
+
+[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.8.0/trunk/wb/include/captcha/backgrounds/bg_14.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_14.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_15.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_15.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_10.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_10.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_11.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_11.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_12.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_12.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_13.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/captcha/backgrounds/bg_13.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/captcha/backgrounds/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/backgrounds/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/backgrounds/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/captcha/fonts/FreeSansWBCaptchaCond.ttf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/captcha/fonts/FreeSansWBCaptchaCond.ttf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/captcha/fonts/FreeSerifItalicWBCaptchaCond.ttf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/captcha/fonts/FreeSerifItalicWBCaptchaCond.ttf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/captcha/fonts/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/fonts/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/fonts/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/captcha/fonts/LL_Readme
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/fonts/LL_Readme	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/fonts/LL_Readme	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/include/captcha/fonts/LL_OFL.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/fonts/LL_OFL.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/fonts/LL_OFL.txt	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/include/captcha/fonts/LL_GPL.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/fonts/LL_GPL.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/fonts/LL_GPL.txt	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/include/captcha/fonts/LL_LICENCE.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/fonts/LL_LICENCE.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/fonts/LL_LICENCE.txt	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/include/captcha/captchas/ttf_image.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/captchas/ttf_image.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/captchas/ttf_image.php	(revision 1130)
@@ -0,0 +1,141 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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());
+		mt_srand((float)$sec + ((float)$usec * 100000));
+		//$possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghkmnpqrstuvwxyz23456789";
+		$possible="abdfhkrsvwxz23456789";
+		$str="";
+		while(strlen($str)<$len) {
+			$str.=substr($possible,(mt_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 reload-image
+$reload = ImageCreateFromPNG(WB_PATH.'/include/captcha/reload_140_40.png'); // reload-overlay
+
+if(mt_rand(0,2)==0) { // 1 out of 3
+
+	// draw each character individualy
+	$image = ImageCreateFromPNG($bg); // background image
+	$grey = mt_rand(0,50);
+	$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
+	$ttf = $font;
+	$ttfsize = 25; // fontsize
+	$count = 0;
+	$image_failed = true;
+	$angle = mt_rand(-15,15);
+	$x = mt_rand(10,25);
+	$y = mt_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 = mt_rand(-15,15);
+			$x = mt_rand($res[4],$res[4]+10);
+			$y = mt_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 = mt_rand(0,50);
+		$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
+		$ttf = $font;
+		$ttfsize = 25; // fontsize
+		$angle = mt_rand(0,5);
+		$x = mt_rand(5,30);
+		$y = mt_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);
+	
+}
+
+imagealphablending($reload, TRUE);
+imagesavealpha($reload, TRUE);
+
+// overlay
+imagecopy($reload, $image, 0,0,0,0, 140,40);
+imagedestroy($image);
+$image = $reload;
+
+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.8.0/trunk/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.8.0/trunk/wb/include/captcha/captchas/old_image.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/captchas/old_image.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/captchas/old_image.php	(revision 1130)
@@ -0,0 +1,79 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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);
+
+// create reload-image
+$reload = ImageCreateFromPNG(WB_PATH.'/include/captcha/reload_120_30.png'); // reload-overlay
+
+$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); 
+}
+
+imagealphablending($reload, TRUE);
+imagesavealpha($reload, TRUE);
+
+// overlay
+imagecopy($reload, $image, 0,0,0,0, 120,30);
+imagedestroy($image);
+$image = $reload;
+
+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.8.0/trunk/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.8.0/trunk/wb/include/captcha/captchas/calc_ttf_image.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/captchas/calc_ttf_image.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/captchas/calc_ttf_image.php	(revision 1130)
@@ -0,0 +1,150 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 reload-image
+$reload = ImageCreateFromPNG(WB_PATH.'/include/captcha/reload_140_40.png'); // reload-overlay
+
+if(mt_rand(0,2)==0) { // 1 out of 3
+
+	// draw each character individualy
+	$image = ImageCreateFromPNG($bg); // background image
+	$grey = mt_rand(0,50);
+	$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
+	$ttf = $font;
+	$ttfsize = 25; // fontsize
+	$count = 0;
+	$image_failed = true;
+	$angle = mt_rand(-10,10);
+	$x = mt_rand(20,35);
+	$y = mt_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 = mt_rand(-10,10);
+			$x = mt_rand($res[4],$res[4]+10);
+			$y = mt_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 = mt_rand(0,50);
+		$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
+		$ttf = $font;
+		$ttfsize = 25; // fontsize
+		$angle = mt_rand(0,5);
+		$x = mt_rand(20,35);
+		$y = mt_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);
+	
+}
+
+imagealphablending($reload, TRUE);
+imagesavealpha($reload, TRUE);
+
+// overlay
+imagecopy($reload, $image, 0,0,0,0, 140,40);
+imagedestroy($image);
+$image = $reload;
+
+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.8.0/trunk/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.8.0/trunk/wb/include/captcha/captchas/calc_image.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/captchas/calc_image.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/captchas/calc_image.php	(revision 1130)
@@ -0,0 +1,96 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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;
+}
+
+// create reload-image
+$reload = ImageCreateFromPNG(WB_PATH.'/include/captcha/reload_120_30.png'); // reload-overlay
+
+$image = imagecreate(120, 30);
+
+$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
+$gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
+$darkgray = imagecolorallocate($image, 0x30, 0x30, 0x30);
+
+for($i = 0; $i < 30; $i++) {
+	$x1 = mt_rand(0,120);
+	$y1 = mt_rand(0,30);
+	$x2 = mt_rand(0,120);
+	$y2 = mt_rand(0,30);
+	imageline($image, $x1, $y1, $x2, $y2 , $gray);  
+}
+
+$x = 10;
+$l = strlen($cap);
+for($i = 0; $i < $l; $i++) {
+	$fnt = mt_rand(3,5);
+	$x = $x + mt_rand(12 , 20);
+	$y = mt_rand(7 , 12); 
+	imagestring($image, $fnt, $x, $y, substr($cap, $i, 1), $darkgray); 
+}
+
+imagealphablending($reload, TRUE);
+imagesavealpha($reload, TRUE);
+
+// overlay
+imagecopy($reload, $image, 0,0,0,0, 120,30);
+imagedestroy($image);
+$image = $reload;
+
+captcha_header();
+imagepng($image);
+imagedestroy($image);
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/include/captcha/captchas/text.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/captchas/text.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/captchas/text.php	(revision 1130)
@@ -0,0 +1,97 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/captcha/captchas/calc_text.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/captchas/calc_text.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/captchas/calc_text.php	(revision 1130)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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"); }
+
+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');
+}
+
+$_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;
+?>

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/include/captcha/captchas/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/captchas/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/captchas/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/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.8.0/trunk/wb/include/captcha/captcha.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/captcha.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/captcha.php	(revision 1130)
@@ -0,0 +1,252 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// displays the image or text inside an <iframe>
+function display_captcha_real($kind='image') {
+	$t = time();
+	$_SESSION['captcha_time'] = $t;
+	if($kind=='image') {
+		?><a title="reload" href="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=2'; ?>">
+		  <img style="border: none;" src="<?php echo WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t"; ?>" alt="Captcha" />
+			</a><?php
+	} else {
+		echo 'error';
+	}
+}
+
+// called from an <iframe>
+if(isset($_GET['display_captcha_X986E21'])) {
+	require('../../config.php');
+	switch(CAPTCHA_TYPE) {
+	case 'calc_image':
+	case 'calc_ttf_image':
+	case 'ttf_image':
+	case 'old_image':
+		display_captcha_real('image');
+		break;
+	}
+	exit(0);
+}
+
+
+// Make sure page cannot be 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;
+
+		// get width and height of captcha image for use in <iframe>
+		switch(CAPTCHA_TYPE) {
+		case 'calc_image':
+			$captcha_width = 142;
+			$captcha_height = 30;
+			break;
+		case 'calc_ttf_image':
+			$captcha_width = 162;
+			$captcha_height = 40;
+			break;
+		case 'ttf_image':
+			$captcha_width = 162;
+			$captcha_height = 40;
+			break;
+		case 'old_image':
+			$captcha_width = 142;
+			$captcha_height = 30;
+			break;
+		default:
+			$captcha_width = 250;
+			$captcha_height = 100;
+		}
+
+		if($action=='all') {
+			switch(CAPTCHA_TYPE) {
+				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></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;
+				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'); ?>
+					</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;
+				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">
+						<iframe class="captcha_iframe" width="<?php echo $captcha_width; ?>" height="<?php echo $captcha_height; ?>" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" name="captcha_iframe" src="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=1'; ?>">
+						<img src="<?php echo WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t"; ?>" alt="Captcha" />
+						</iframe>
+					</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">
+						<iframe class="captcha_iframe" width="<?php echo $captcha_width; ?>" height="<?php echo $captcha_height; ?>" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" name="captcha_iframe" src="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=1'; ?>">
+						<img src="<?php echo WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t"; ?>" alt="Captcha" />
+						</iframe>
+					</td>
+					<td></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=='image_iframe') {
+			switch(CAPTCHA_TYPE) {
+				case 'text': // text-captcha
+					echo ($style?"<span $style>":'');
+					include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php');
+					echo ($style?'</span>':'');
+					break;
+				case 'calc_text': // calculation as text
+					include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php');
+					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
+					?><iframe class="captcha_iframe" width="<?php echo $captcha_width; ?>" height="<?php echo $captcha_height; ?>" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" name="captcha_iframe" src="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=1'; ?>"><?php
+					echo "<img $style alt=\"Captcha\" src=\"".WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t\" />";
+					?></iframe><?php
+					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.8.0/trunk/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.8.0/trunk/wb/include/captcha/readme.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/readme.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/readme.txt	(revision 1130)
@@ -0,0 +1,78 @@
+// $Id$
+
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/captcha/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/captcha/reload_140_40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/captcha/reload_140_40.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.8.0/trunk/wb/include/captcha/reload_120_30.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.8.0/trunk/wb/include/captcha/reload_120_30.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.8.0/trunk/wb/include/pclzip/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/pclzip/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/pclzip/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/pclzip/gnu-lgpl.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/pclzip/gnu-lgpl.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/pclzip/gnu-lgpl.txt	(revision 1130)
@@ -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.8.0/trunk/wb/include/pclzip/gnu-lgpl.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/pclzip/readme.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/pclzip/readme.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/pclzip/readme.txt	(revision 1130)
@@ -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.8.0/trunk/wb/include/pclzip/readme.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/pclzip/pclzip.lib.php
===================================================================
--- tags/2.8.0/trunk/wb/include/pclzip/pclzip.lib.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/pclzip/pclzip.lib.php	(revision 1130)
@@ -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.8.0/trunk/wb/include/pclzip/pclzip.lib.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/connection/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/connection/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/connection/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/yui/connection/connection.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/connection/connection.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/connection/connection.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/connection/connection.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/connection/connection-min.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/connection/connection-min.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/connection/connection-min.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/connection/connection-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/connection/README
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/connection/README	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/connection/README	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/connection/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/connection/connection-debug.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/connection/connection-debug.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/connection/connection-debug.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/connection/connection-debug.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/dom/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/dom/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/dom/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/yui/dom/dom.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/dom/dom.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/dom/dom.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/dom/dom.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/dom/dom-min.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/dom/dom-min.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/dom/dom-min.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/dom/dom-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/dom/README
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/dom/README	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/dom/README	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/dom/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/dom/dom-debug.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/dom/dom-debug.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/dom/dom-debug.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/dom/dom-debug.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/yahoo/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/yahoo/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/yahoo/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/yui/yahoo/yahoo.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/yahoo/yahoo.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/yahoo/yahoo.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/yahoo/yahoo.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/yahoo/yahoo-min.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/yahoo/yahoo-min.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/yahoo/yahoo-min.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/yahoo/yahoo-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/yahoo/README
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/yahoo/README	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/yahoo/README	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/yahoo/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/yahoo/yahoo-debug.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/yahoo/yahoo-debug.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/yahoo/yahoo-debug.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/yahoo/yahoo-debug.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/event/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/event/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/event/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/yui/event/event-debug.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/event/event-debug.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/event/event-debug.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/event/event-debug.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/event/event.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/event/event.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/event/event.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/event/event.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/event/README
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/event/README	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/event/README	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/event/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/event/event-min.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/event/event-min.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/event/event-min.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/event/event-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/dragdrop/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/dragdrop/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/dragdrop/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/yui/dragdrop/dragdrop-debug.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/dragdrop/dragdrop-debug.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/dragdrop/dragdrop-debug.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/dragdrop/dragdrop-debug.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/dragdrop/README
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/dragdrop/README	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/dragdrop/README	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/dragdrop/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/dragdrop/dragdrop.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/dragdrop/dragdrop.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/dragdrop/dragdrop.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/dragdrop/dragdrop.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/dragdrop/dragdrop-min.js
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/dragdrop/dragdrop-min.js	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/dragdrop/dragdrop-min.js	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/dragdrop/dragdrop-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/yui/License.txt
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/License.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/License.txt	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/License.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/yui/README
===================================================================
--- tags/2.8.0/trunk/wb/include/yui/README	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/yui/README	(revision 1130)
@@ -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.8.0/trunk/wb/include/yui/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.8.0/trunk/wb/include/captcha.php
===================================================================
--- tags/2.8.0/trunk/wb/include/captcha.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/captcha.php	(revision 1130)
@@ -0,0 +1,83 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/include/index.php
===================================================================
--- tags/2.8.0/trunk/wb/include/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/include/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/search/search.php
===================================================================
--- tags/2.8.0/trunk/wb/search/search.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/search/search.php	(revision 1130)
@@ -0,0 +1,711 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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 search language, used for special umlaut handling (DE: ร=ss, ...)
+$search_lang = '';
+if(isset($_REQUEST['search_lang'])) {
+	$search_lang = $_REQUEST['search_lang'];
+	if(!preg_match('~^[A-Z]{2}$~', $search_lang))
+		$search_lang = LANGUAGE;
+} else {
+	$search_lang = LANGUAGE;
+}
+
+// Get the path to search into. Normally left blank
+// ATTN: since wb2.7.1 the path is evaluated as SQL: LIKE "/path%" - which will find "/path.php", "/path/info.php", ...; But not "/de/path.php"
+// Add a '%' in front of each path to get SQL: LIKE "%/path%"
+/* possible values:
+ * - a single path: "/en/" - search only pages whose link contains 'path' ("/en/machinery/bender-x09")
+ * - a single path not to search into: "-/help" - search all, exclude /help...
+ * - 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.
+ */
+// ATTN: in wb2.7.0 "/en/" matched all links with "/en/" somewhere in the link: "/info/en/intro.php", "/en/info.php", ...
+// since wb2.7.1 "/en/" matches only links _starting_  with "/en/": "/en/intro/info.php"
+// use "%/en/" (or "%/en/, %/info", ...) to get the old behavior
+$search_path_SQL = '';
+$search_path = '';
+if(isset($_REQUEST['search_path'])) {
+	$search_path = addslashes(htmlspecialchars(strip_tags($wb->strip_slashes($_REQUEST['search_path'])), ENT_QUOTES));
+	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 .= ' )';
+	}
+}
+
+// use page_languages?
+if(PAGE_LANGUAGES) {
+	$table = TABLE_PREFIX."pages";
+	$search_language_SQL_t = "AND $table.`language` = '".LANGUAGE."'";
+	$search_language_SQL = "AND `language` = '".LANGUAGE."'";
+} else {
+	$search_language_SQL_t = '';
+	$search_language_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 = '';
+$search_entities_string = ''; // for SQL's LIKE
+$search_display_string = ''; // for displaying
+$search_url_string = ''; // for $_GET -- ATTN: unquoted! Will become urldecoded later
+$string = '';
+if(isset($_REQUEST['string'])) {
+	if($match!='exact') { // $string will be cleaned below
+		$string=str_replace(',', '', $_REQUEST['string']);
+	} else {
+		$string=$_REQUEST['string'];
+	}
+	// redo possible magic quotes
+	$string = $wb->strip_slashes($string);
+	$string = preg_replace('/\s+/', ' ', $string);
+	$string = trim($string);
+	// remove some bad chars
+	$string = str_replace ( array('[[',']]'),'', $string);
+	$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');
+	$search_url_string = $string;
+	$string = preg_quote($string);
+	// quote ' " and /  -we need quoted / for regex
+	$search_normal_string = str_replace(array('\'','"','/'), array('\\\'','\"','\/'), $string);
+}
+// make arrays from the search_..._strings above
+if($match == 'exact')
+	$search_url_array[] = $search_url_string;
+else
+	$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(WB_PATH.'/search/search_convert.php');
+$search_words = array();
+foreach($search_normal_array AS $str) {
+	$str = str_replace($string_ul_umlaut, $string_ul_regex, $str);
+	$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.
+	if($search_max_excerpt!=0) { // skip this search if $search_max_excerpt==0
+		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 $search_language_SQL
+				ORDER BY s.page_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,
+						'time_limit' => $search_time_limit // time-limit in secs
+					);
+					// 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 $search_language_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) {
+			if(isset($seen_pages[$module['value']]) && count($seen_pages[$module['value']])>0) // skip modules handled by new search-func
+				continue;
+			$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." ".$search_language_SQL_t);
+
+				// 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 = str_replace(" ", "_",$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.8.0/trunk/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.8.0/trunk/wb/search/search_modext.php
===================================================================
--- tags/2.8.0/trunk/wb/search/search_modext.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/search/search_modext.php	(revision 1130)
@@ -0,0 +1,410 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.'/ui', $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.'/ui', $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).')';
+
+	//Filter droplets from the page data
+	preg_match_all('~\[\[(.*?)\]\]~', $text, $matches);
+	foreach ($matches[1] as $match) {
+		$text = str_replace('[['.$match.']]', '', $text);					
+	}
+
+	// Build the regex-string
+	if(strpos(strtoupper(PHP_OS), 'WIN')===0) { // windows -> see below
+		$str1=".!?;";
+		$str2=".!?;";
+	} else { // linux & Co.
+		// 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|$))/uis';
+	if(version_compare(PHP_VERSION, '4.3.3', '>=') &&
+	   strpos(strtoupper(PHP_OS), 'WIN')!==0
+	) { // this may crash windows server, so skip if on windows
+		// jump from match to match, get excerpt, stop if $max_excerpt_num is reached
+		$last_end = 0; $offset = 0;
+		while(preg_match('/'.$word.'/uis', $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.-]+\./', $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 { // compatible, but may be very slow with 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.-]+\./', $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;','&#039;','&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.'/ui', $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*"(.*)"/iU', 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);
+	}
+	
+	// since wb 2.7.1 the section-anchor is configurable - SEC_ANCHOR holds the anchor name
+	if(substr($page_link_target,0,12)=='#wb_section_') {
+		if(defined('SEC_ANCHOR') && SEC_ANCHOR!='') {
+			$sec_id = substr($page_link_target, 12);
+			$page_link_target = '#'.SEC_ANCHOR.$sec_id;
+		} else { // section-anchors are disabled
+			$page_link_target = '';
+		}
+	}
+	
+	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(isset($mod_ext_charset)) $mod_ext_charset = strtolower($mod_ext_charset);
+	else $mod_ext_charset = '';
+
+	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('#<(!--.*--|style.*</style|script.*</script)>#iU', ' ', $mod_text);
+	$mod_text = preg_replace('#<(br( /)?|dt|/dd|/?(h[1-6]|tr|table|p|li|ul|pre|code|div|hr))[^>]*>#i', '.', $mod_text);
+	$mod_text = preg_replace('/(\v\s?|\s\s)+/', ' ', $mod_text);
+	$mod_text = preg_replace('/\s\./', '.', $mod_text);
+	if($mod_ext_charset!='') { // data from external database may have a different charset
+		require_once(WB_PATH.'/framework/functions-utf8.php');
+		switch($mod_ext_charset) {
+		case 'latin1':
+		case 'cp1252':
+			$mod_text = charset_to_utf8($mod_text, 'CP1252');
+			break;
+		case 'cp1251':
+			$mod_text = charset_to_utf8($mod_text, 'CP1251');
+			break;
+		case 'latin2':
+			$mod_text = charset_to_utf8($mod_text, 'ISO-8859-2');
+			break;
+		case 'hebrew':
+			$mod_text = charset_to_utf8($mod_text, 'ISO-8859-8');
+			break;
+		case 'greek':
+			$mod_text = charset_to_utf8($mod_text, 'ISO-8859-7');
+			break;
+		case 'latin5':
+			$mod_text = charset_to_utf8($mod_text, 'ISO-8859-9');
+			break;
+		case 'latin7':
+			$mod_text = charset_to_utf8($mod_text, 'ISO-8859-13');
+			break;
+		case 'utf8':
+		default:
+			$mod_text = charset_to_utf8($mod_text, 'UTF-8');
+		}
+	} else {
+	$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;','&#039;','&apos;','&nbsp;'), array('>','<','&','"','\'','\'',"\xC2\xA0"), $mod_text);
+	$mod_text = '.'.trim($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.8.0/trunk/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.8.0/trunk/wb/search/search_convert.php
===================================================================
--- tags/2.8.0/trunk/wb/search/search_convert.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/search/search_convert.php	(revision 1130)
@@ -0,0 +1,98 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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);
+}
+if(!isset($search_lang)) $search_lang = LANGUAGE;
+
+// umlaut to '(upper|lower)' for preg_match()
+// this is UTF-8-encoded
+// there is no need for a translation-table anymore since we use u-switch (utf-8) for preg-functions
+// remember that we use the i-switch, too. [No need for (ae|Ae)]
+
+$string_ul_umlaut = array();
+$string_ul_regex = array();
+
+// but add some national stuff
+if($search_lang=='DE') { // add special handling for german umlauts (รค==ae, ...)
+	$string_ul_umlaut_add = array(
+		"\xc3\x9f", // german SZ-Ligatur
+		"\xc3\xa4", // german ae
+		"\xc3\xb6", // german oe
+		"\xc3\xbc", // german ue
+		"\xc3\x84", // german Ae
+		"\xc3\x96", // german Oe
+		"\xc3\x9c", // german Ue
+		// these are not that usual
+		"\xEF\xAC\x84", // german ffl-ligatur
+		"ffl",          // german ffl-ligatur
+		"\xEF\xAC\x83", // german ffi-ligatur
+		"ffi",          // german ffi-ligatur
+		"0xEF\xAC\x80", // german ff-Ligatur
+		"ff",           // german ff-Ligatur
+		"\xEF\xAC\x81", // german fi-ligatur
+		"fi",           // german fi-ligatur
+		"\xEF\xAC\x82", // german fl-ligatur
+		"fl",           // german fl-ligatur
+		"\xEF\xAC\x85", // german st-Ligatur (long s)
+		"st",           // german st-Ligatur
+		"\xEF\xAC\x86"  // german st-ligatur (round-s)
+	);
+	$string_ul_regex_add = array(
+		"(\xc3\x9f|ss)", // german SZ.Ligatur
+		"(\xc3\xa4|ae)", // german ae
+		"(\xc3\xb6|oe)", // german oe
+		"(\xc3\xbc|ue)", // german ue
+		"(\xc3\x84|Ae)", // german Ae
+		"(\xc3\x96|Oe)", // german Oe
+		"(\xc3\x9c|Ue)", // german Ue
+		// these are not that usual
+		"(\xEF\xAC\x84|ffl)", // german ffl-ligatur
+		"(\xEF\xAC\x84|ffl)", // german ffl-ligatur
+		"(\xEF\xAC\x83|ffi)", // german ffi-ligatur
+		"(\xEF\xAC\x83|ffi)", // german ffi-ligatur
+		"(\xEF\xAC\x80|ff)",  // german ff-Ligatur
+		"(\xEF\xAC\x80|ff)",  // german ff-Ligatur
+		"(\xEF\xAC\x81|fi)",  // german fi-Ligatur
+		"(\xEF\xAC\x81|fi)",  // german fi-Ligatur
+		"(\xEF\xAC\x82|fl)",  // german fl-ligatur
+		"(\xEF\xAC\x82|fl)",  // german fl-ligatur
+		"(\xEF\xAC\x85|st)",  // german st-Ligatur (long s)
+		"(\xEF\xAC\x85|st|\xEF\xAC\x86)",  // german st-Ligaturs
+		"(\xEF\xAC\x86|st)"  // german st-ligatur (round-s)
+	);
+	$string_ul_umlaut = array_merge($string_ul_umlaut_add, $string_ul_umlaut);
+	$string_ul_regex = array_merge($string_ul_regex_add, $string_ul_regex);
+}
+
+
+?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/search/index.php
===================================================================
--- tags/2.8.0/trunk/wb/search/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/search/index.php	(revision 1130)
@@ -0,0 +1,63 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/account/preferences.php
===================================================================
--- tags/2.8.0/trunk/wb/account/preferences.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/preferences.php	(revision 1130)
@@ -0,0 +1,72 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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');
+$wb_inst = new wb();
+if ($wb_inst->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.8.0/trunk/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.8.0/trunk/wb/account/forgot_form.php
===================================================================
--- tags/2.8.0/trunk/wb/account/forgot_form.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/forgot_form.php	(revision 1130)
@@ -0,0 +1,142 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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']) && $_POST['email'] != "" &&
+	eregi("^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$", $_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 = time()-$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 = '".time()."' WHERE user_id = '".$results_array['user_id']."'");
+			
+			if($database->is_error()) {
+				// Error updating database
+				$message = $database->get_error();
+			} else {
+				// Setup email to send
+				$mail_to = $email;
+				$mail_subject = $MESSAGE['SIGNUP2']['SUBJECT_LOGIN_INFO'];
+
+				// Replace placeholders from language variable with values
+				$search = array('{LOGIN_DISPLAY_NAME}', '{LOGIN_WEBSITE_TITLE}', '{LOGIN_NAME}', '{LOGIN_PASSWORD}');
+				$replace = array($results_array['display_name'], WEBSITE_TITLE, $results_array['username'], $new_pass); 
+				$mail_message = str_replace($search, $replace, $MESSAGE['SIGNUP2']['BODY_LOGIN_INFO']);
+
+				// 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.8.0/trunk/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.8.0/trunk/wb/account/email.php
===================================================================
--- tags/2.8.0/trunk/wb/account/email.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/email.php	(revision 1130)
@@ -0,0 +1,65 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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']['CURRENT_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.8.0/trunk/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.8.0/trunk/wb/account/login.php
===================================================================
--- tags/2.8.0/trunk/wb/account/login.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/login.php	(revision 1130)
@@ -0,0 +1,87 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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" => THEME_URL."/templates/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" => THEME_PATH."/templates",
+									"TEMPLATE_FILE" => "login.htt",
+									"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.8.0/trunk/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.8.0/trunk/wb/account/signup2.php
===================================================================
--- tags/2.8.0/trunk/wb/account/signup2.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/signup2.php	(revision 1130)
@@ -0,0 +1,136 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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_to = $email;
+	$mail_subject = $MESSAGE['SIGNUP2']['SUBJECT_LOGIN_INFO'];
+
+	// Replace placeholders from language variable with values
+	$search = array('{LOGIN_DISPLAY_NAME}', '{LOGIN_WEBSITE_TITLE}', '{LOGIN_NAME}', '{LOGIN_PASSWORD}');
+	$replace = array($display_name, WEBSITE_TITLE, $username, $new_pass); 
+	$mail_message = str_replace($search, $replace, $MESSAGE['SIGNUP2']['BODY_LOGIN_INFO']);
+
+	// 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.8.0/trunk/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.8.0/trunk/wb/account/logout.php
===================================================================
--- tags/2.8.0/trunk/wb/account/logout.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/logout.php	(revision 1130)
@@ -0,0 +1,49 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/account/login_form.php
===================================================================
--- tags/2.8.0/trunk/wb/account/login_form.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/login_form.php	(revision 1130)
@@ -0,0 +1,107 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/account/forgot.php
===================================================================
--- tags/2.8.0/trunk/wb/account/forgot.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/forgot.php	(revision 1130)
@@ -0,0 +1,59 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/account/password.php
===================================================================
--- tags/2.8.0/trunk/wb/account/password.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/password.php	(revision 1130)
@@ -0,0 +1,69 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/account/preferences_form.php
===================================================================
--- tags/2.8.0/trunk/wb/account/preferences_form.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/preferences_form.php	(revision 1130)
@@ -0,0 +1,231 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/account/details.php
===================================================================
--- tags/2.8.0/trunk/wb/account/details.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/details.php	(revision 1130)
@@ -0,0 +1,70 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/account/signup.php
===================================================================
--- tags/2.8.0/trunk/wb/account/signup.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/signup.php	(revision 1130)
@@ -0,0 +1,83 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/account/index.php
===================================================================
--- tags/2.8.0/trunk/wb/account/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/account/signup_form.php
===================================================================
--- tags/2.8.0/trunk/wb/account/signup_form.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/account/signup_form.php	(revision 1130)
@@ -0,0 +1,103 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/install/index.php
===================================================================
--- tags/2.8.0/trunk/wb/install/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/install/index.php	(revision 1130)
@@ -0,0 +1,437 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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="../templates/wb_theme/images/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="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="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="checked"'; } elseif($_SESSION['install_tables'] == 'true') { echo ' checked="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.8.0/trunk/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.8.0/trunk/wb/install/save.php
===================================================================
--- tags/2.8.0/trunk/wb/install/save.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/install/save.php	(revision 1130)
@@ -0,0 +1,797 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+$debug = true;
+
+if (true === $debug) {
+	ini_set('display_errors', 1);
+	error_reporting(E_ALL);
+}
+// 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) {
+	if (!defined('WB_INSTALL_PROCESS')) define ('WB_INSTALL_PROCESS', 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'),"
+	." ('sec_anchor', 'wb_'),"
+	." ('default_timezone', '$default_timezone'),"
+	." ('default_date_format', 'M d Y'),"
+	." ('default_time_format', 'g:i A'),"
+	." ('redirect_timer', '1500'),"
+	." ('home_folders', 'true'),"
+	." ('default_template', 'round'),"
+	." ('default_theme', 'wb_theme'),"
+	." ('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', ''),"
+	." ('mediasettings', '')";
+	$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('<tr><td><p>[TEXT_NO_RESULTS]</p></td></tr>');
+	$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());
+	}
+
+// end of if install_tables	
+} else {
+	/**
+	 *	DB - Exists
+	 *	Tables also?
+	 *
+	 */
+	$requested_tables = array("pages","sections","settings","users","groups","search","addons");
+	for($i=0;$i<count($requested_tables);$i++) $requested_tables[$i] = $table_prefix.$requested_tables[$i];
+	
+	$result = mysql_list_tables( DB_NAME );
+	$all_tables = array();
+	for($i=0; $i < mysql_num_rows($result); $i++) $all_tables[] = mysql_table_name($result, $i);
+
+	$missing_tables = array();
+	foreach($requested_tables as $temp_table) {
+		if (!in_array($temp_table, $all_tables)) {
+			$missing_tables[] = $temp_table;
+		}
+	}
+	
+	/**
+	 *	If one or more needed tables are missing, so 
+	 *	we can't go on and have to display an error
+	 */
+	if ( count($missing_tables) > 0 ) {
+		$error_message  = "One or more tables are missing in the selected database <b><font color='#990000'>".DB_NAME."</font></b>.<br />";
+		$error_message .= "Please install the missing tables or choose 'install tables' as recommend.<br />";
+		$error_message .= "Missing tables are: <b>".implode(", ", $missing_tables)."</b>";
+		
+		set_error( $error_message );
+	}
+	
+	/**
+	 *	Try to get some default settings ...
+	 */
+	$vars = array(
+		'DEFAULT_THEME'	=> "wb_theme",
+		'THEME_URL'		=> WB_URL."/templates/wb_theme",
+		'THEME_PATH'	=> WB_PATH."/templates/wb_theme",
+		'LANGUAGE'		=> $_POST['default_language'],
+		'SERVER_EMAIL'	=> "admin@yourdomain.com",
+		'SMART_LOGIN'	=> false
+	);
+	foreach($vars as $k => $v) if (!defined($k)) define($k, $v);
+	
+	if (!isset($MESSAGE)) include (WB_PATH."/languages/".LANGUAGE.".php");
+	
+	/**
+	 *	The important part ...
+	 *	Is there an valid user?
+	 */
+	$result = $database->query("SELECT * from ".$table_prefix."users where username='".$_POST['admin_username']."'");
+	if ( $database->is_error() ) {
+		set_error ($database->get_error() );
+	}
+	if ($result->numRows() == 0) {
+		/**
+		 *	No matches found ... user properly unknown
+	 	 */
+	 	set_error ("Unkown user. Please use a valid username.");
+	} else {
+	 	
+		$data = $result->fetchRow();
+	 	/**
+	 	 *	Does the password match
+	 	 */
+	 	if ( md5($_POST['admin_password']) != $data['password']) {
+	 		set_error ("Password didn't match");
+	 	}
+	}
+}
+// 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.8.0/trunk/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.8.0/trunk/wb/install/stylesheet.css
===================================================================
--- tags/2.8.0/trunk/wb/install/stylesheet.css	(nonexistent)
+++ tags/2.8.0/trunk/wb/install/stylesheet.css	(revision 1130)
@@ -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(../templates/wb_theme/images/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.8.0/trunk/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.8.0/trunk/wb/index.php
===================================================================
--- tags/2.8.0/trunk/wb/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/index.php	(revision 1130)
@@ -0,0 +1,111 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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;
+if(version_compare(phpversion(), '4.3', '>=')) $php43 = TRUE; else $php43 = FALSE;
+$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 * FROM $table WHERE page_id = '$this_page_id'");
+	if($query_tpid->numRows() == 1) {
+		$res=$query_tpid->fetchRow();
+		$target_page_id = $res['target_page_id'];
+		$r_type = $res['redirect_type'];
+		$anchor = $res['anchor'];
+		$extern = $res['extern'];
+		if($anchor != '0') $anchor = ''.$anchor;
+		else $anchor = FALSE;
+		// set redirect-type
+		if($r_type=='301') {
+			if($php43) @header('HTTP/1.1 301 Moved Permanently', TRUE, 301);
+			else @header('HTTP/1.1 301 Moved Permanently');
+		}
+		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'];
+				header('Location: '.WB_URL.PAGES_DIRECTORY.$target_page_link.PAGE_EXTENSION.($anchor?'#'.$anchor:''));
+				exit;
+			}
+		}
+	}
+}
+
+// Backwards compatible Frontend filter support
+// include the output filter module routines
+if(file_exists(WB_PATH .'/modules/output_filter/filter-routines.php')) {@require_once(WB_PATH .'/modules/output_filter/filter-routines.php');}
+// Load Droplet engine
+if(file_exists(WB_PATH .'/modules/droplets/droplets.php')) { @require_once(WB_PATH .'/modules/droplets/droplets.php'); }
+
+//Get pagecontent in buffer for Droplets and/or Filter operations
+ob_start();
+require(WB_PATH.'/templates/'.TEMPLATE.'/index.php');
+$output = ob_get_contents();
+ob_end_clean();
+
+if(function_exists('evalDroplets')) { $output = evalDroplets($output); }
+if(function_exists('filter_frontend_output')) { $output = filter_frontend_output($output); }
+echo $output;
+
+?>

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/wb/media/index.php
===================================================================
--- tags/2.8.0/trunk/wb/media/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/media/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/pages/index.php
===================================================================
--- tags/2.8.0/trunk/wb/pages/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/pages/index.php	(revision 1130)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/temp/index.php
===================================================================
--- tags/2.8.0/trunk/wb/temp/index.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/temp/index.php	(revision 1130)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2009, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public 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.8.0/trunk/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.8.0/trunk/wb/htaccess.txt
===================================================================
--- tags/2.8.0/trunk/wb/htaccess.txt	(nonexistent)
+++ tags/2.8.0/trunk/wb/htaccess.txt	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/wb/config.php
===================================================================
--- tags/2.8.0/trunk/wb/config.php	(nonexistent)
+++ tags/2.8.0/trunk/wb/config.php	(revision 1130)
@@ -0,0 +1 @@
+<?php ?>
\ No newline at end of file

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/LICENSE
===================================================================
--- tags/2.8.0/trunk/LICENSE	(nonexistent)
+++ tags/2.8.0/trunk/LICENSE	(revision 1130)
@@ -0,0 +1,5 @@
+License
+=======
+Website Baker is released under the GNU General Public License,
+Copyright (C) 2004-2009 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.8.0/trunk/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.8.0/trunk/README
===================================================================
--- tags/2.8.0/trunk/README	(nonexistent)
+++ tags/2.8.0/trunk/README	(revision 1130)
@@ -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-2009 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
+
+
+Bugs
+====
+To submit a bug:
+http://www.websitebaker.org
+
+
+Contribute
+==========
+For information about how to contribute (donating, etc):
+http://www.websitebaker.org
+

Property changes on: tags/2.8.0/trunk/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.8.0/trunk/INSTALL
===================================================================
--- tags/2.8.0/trunk/INSTALL	(nonexistent)
+++ tags/2.8.0/trunk/INSTALL	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk/COPYING
===================================================================
--- tags/2.8.0/trunk/COPYING	(nonexistent)
+++ tags/2.8.0/trunk/COPYING	(revision 1130)
@@ -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.8.0/trunk/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.8.0/trunk
===================================================================
--- tags/2.8.0/trunk	(nonexistent)
+++ tags/2.8.0/trunk	(revision 1130)

Property changes on: tags/2.8.0/trunk
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,2 ##
+
+.project
