diff --git a/CHANGELOG.php b/CHANGELOG.php new file mode 100644 --- /dev/null +++ b/CHANGELOG.php @@ -0,0 +1,1955 @@ + +1. Copyright and disclaimer +--------------------------- +This application is opensource software released under the GPL. Please +see source code and the LICENSE file + + +2. Changelog +------------ +This is a non-exhaustive (but still near complete) changelog for +Joomla! 1.5, including beta and release candidate versions. +Our thanks to all those people who've contributed bug reports and +code fixes. + +Legend: + +* -> Security Fix +# -> Bug Fix +$ -> Language fix or change ++ -> Addition +^ -> Change +- -> Removed +! -> Note + +-------------------- 1.5.9 Stable Release [9-January-2008] ------------------ + +09-Jan-2009 Ian MacLennan + # [#14495] Issue 14398 fix doesn't work with SEF off + +09-Jan-2009 Wilco Jansen + ^ Updated the CREDITS.php file with new list of translators, and some contributers + ^ Changed /installation/template/tmpl/finish.html updated link to community site + ^ Updated language packs to 1.5.9 (thanks JM for the huge job of coordinating this) + ^ Activated installation check + ^ Implemented security fixes + ! Thanks to all who provided the patches and worked hard on testing and documenting this release + +06-Jan-2009 Ian MacLennan + # [#14414] string is unnecessary + # [#14433] Fix for openid transition issues + # [#14434] Typo in Cache Manager + +05-Jan-2009 Kevin Devine + # [#14415] Rhuk Milkyway: Some strings unnecessary + # [#14389] String missing in en-GB.com_installer.ini + # [#10680] Blank page if vcard is not enabled in the contact parameters, but selected + # [#13942] The 'modules' view in com_installer does not display author email and url + # [#14070] Article archive pagination + # [#14339] JString bug for strspn() + # [#13949] robots & author metadata lost on copy + # [#12812] 1.5.7. uri.php changes break backend urls if $live_site=Http (note uppercase H) + # [#14394] Poll error message strange + +05-Jan-2009 Sam Moffatt + - Removed extraneous com_statistics language file + +04-Jan-2009 Ian MacLennan + # [#14408] Weird characters in LICENSES.php + # [#14395] e-mail a friend shows language string not the translation + # [#14374] One english remaining string in mod_search + # [#11871] vCard displays excess spaces + # [#14412] 404 if menu access is set to Public and Contact item to Registered + # [#14402] In Category List, user cannot see what is being filtered + # [#14391] en-GB.com_statistics.ini should be deleted + # [#14410] Outdated link in the installer language file + # [#14317] Cache space not freed + # [#12577] Small change in components/com_banners/models/banner.php + +03-Jan-2009 Ian MacLennan + # [#14392] Register to read more should redirect to article, not front page. + # [#14390] Hits Filter in Category List Uses Like Instead of Greater Than or Equal + # [#14313] short php notation in beez as committed in 12798 creates problems on Windows hosting + # [#14360] Spacers JAPurity Translatable + # [#14171] No image + # [#14106] Changing the access for plugins on the plugins list does not work in 1.5.8 + # [#13811] Wrong license for PHPMailer in CREDITS.php + # [#13517] CSS errors in rhuk_milkyway/css/template_rtl.css + # [#12023] Aditional Help server is deleted when helper servers are reset + # [#11874] New modules cannot be added when there are no modules in the table for a given client + # [#10840] Cache:filter on view table category doesn't work if cache is enabled + # [#14227] Fix for old dev.joomla.org links + # [#14398] Category list loses column sort when you navigate to new page + +01-Jan-2009 Wilco Jansen + ! Revert CHANGELOG.php, COPYRIGHT.php, CREDITS.php, INSTALL.php, LICENSE.php, LICENSES.php to webroot + +01-Jan-2009 Ian MacLennan + # [#12217] Current OpenID used by joomla does not work with Yahoo - OpenID 2.0 protocol is required + +30-Dec-2008 Ian MacLennan + # [#12746] Replace PEAR with a GPL alternative - updated Archive_Tar to relicensed BSD version. + +30-Dec-2008 Wilco Jansen + - Removed CHANGELOG.php, COPYRIGHT.php, CREDITS.php, INSTALL.php, LICENSE.php, LICENSES.php from webroot + ^ Moved informational php files from previous line to text versions in install/information + ! See discussion at http://mail.google.com/mail/#inbox/11e86e6661059074 + +29-Dec-2008 Ian MacLennan + # [#14308] Spacer Values Not Translatable + # [#14196] Non registered users can print full pdf of registered article + # [#13490] Fulltext search for Uncategorized and Archived articles + # [#11235] RTL feeds PARAM not saved in db + rtl feeds not correctly displayed in Milkyway as well as in Beez/solution included + +12-Dec-2008 Kevin Devine + # [#12868] Contact form 1.5.7 not valid XHTML 1.0 Transitional (+solution) + +05-Dec-2008 Kevin Devine + # [#13909] strpos error on editing alias menu item + # [#13901] Editor deletes content when default filter is applied: UTF-8 compatibility not enforced with JInputFilter. + +26-Nov-2008 Ian MacLennan + # [#13860] Calling JDatabase::Query() or anything invoking JDatabase::Query() more than once causes SQL error + # [#12989] 404 - Contact not found - with dropdown in contact view + +24-Nov-2008 Ian MacLennan + # [#13859] Bad file reference in the "Beez" template + # [#13694] Archive Module count Parameter doesnt work//needs tool tip correction + +23-Nov-2008 Ian MacLennan + # [#13794] Space between meta keywords gone after saving article + # [#13634] Beez override differences in titles + # [#13570] Missing h1 text-align in rhuk_milkyway/css/template_rtl.css + # [#13499] • Cope with ini files wrongly encoded utf8 with bom - patch attached + # [#13549] typo in sample_data.sql + # [#13761] Media Manager Javascript error: Object doesn't support this property or method [IE only] + # [#13700] Contact image changes for Beez override + # [#13514] Untranslated Strings in en-GB.ini after SVN 11236 + # [#12939] JFolder::delete bug when folder contain symbolic links on folders + # [#12841] Toolbar & Button Mediamanager + # [#12730] 'page'-string in plugins/content/pagebreak.php not properly externalized + +21-Nov-2008 Ian MacLennan + # [#13770] Remove default filter for super admin users, fix filter whitelist problem + # [#13666] Untranslated Strings in admin/mod_feed + # [#13662] Legacy Plugin - Login Timeout - Refresh + # [#13633] Tooltip language string in com_config + # [#13632] Wrong date Last Updated in Beez + # [#13626] Untranslated strings in com_contact + # [#13617] JMenu getMenu() doc error + # [#13611] Inconsistency in login/logout redirection page of mod_login + # [#13608] Untranslated Strings in com_weblinks + # [#13584] Beez template override for com_search doesn't echo error message + # [#13574] JInstallerHelper class function description mistakes + # [#13542] 'Change Contact Details' link loads wrong page. + # [#13505] onPrepareContent fix for non com_content Components + # [#12925] ja_purity default status for the right modules collapsible function does not work + # [#12887] CSS and XHTML valid error in template JA_Purity///link to css validator broken + # [#12247] query_batch change a sql in a wrong way + # [#12115] Cache: plgSystemCache plugin doesn't respect site/page language + # [#13616] Changes at help screens + +18-Nov-2008 Jui-Yu Tsai + # [#13673] Front end article submission auto-populates "finish publishing" date with same date as "start publishing" + +14-Nov-2008 Jui-Yu Tsai + # [#13045] Contact category incorrect links + +10-Nov-2008 Anthony Ferrara + # Removed Install Check + +-------------------- 1.5.8 Stable Release [10-November-2008] ------------------ + +10-Nov-2008 Anthony Ferrara + # Added security fixes + +10-Nov-2008 Wilco Jansen + # Changed version tags of default language file to 1.5.8 (Wohnaiki) + # Change of version file + +07-Nov-2008 Sam Moffatt + # [#13590] New installation languages to get into 1.5.8 + +01-Nov-2008 Ian MacLennan + # [#13470] Missing languagestrings in mod_breadcrumbs.ini + # [#13440] Later versions of cURL break GMail plugin + # [#13432] Description error + # [#13412] typo in en-GB.mod_latestnews.ini + # [#13388] Admin modules xml does not uninstall ini files + # [#13373] Defaut config change to cope with flash10 issue + # [#12854] emailcloak whitespace + +30-Oct-2008 Kevin Devine + # [#13326] Beez 'Your Details' page + # [#12696] **SEF plugin does not convert object param and onmouseover/onmouseout rollovers + # [#13405] Further Changes to Welcome to Joomla! Module + +29-Oct-2008 Sam Moffatt + # [#13387] Incorrect regexp in JTableUser matches too many fields + +28-Oct-2008 Kevin Devine + # [#13313] Archive is not getdate - 1.5.7 + +25-Oct-2008 Ian MacLennan + # [#12920] **Perform isInternal checking on referer values in User Controller + # [#10954] **Start Publishing is automatically changed upon editing an article when time zone is not set to UTC 00:00 + # [#12798] **Beez Html Folder + # [#12372] **Secure password is not allowed when editing account details + + +25-Oct-2008 Ian MacLennan + # [#13323] **New Welcome to Joomla module and Security Newsfeed module in CPANEL + # [#12885] **Newsfeed Module Cache is broken + # [#13165] please select an item message does not append task to javascript pop up + # [#11798] Missing l10n in JApplicationHelper::parseXMLInstallFile() - patch 2 committed only + # [#11807] mosMenuCheck missing return statement + # [#13297] Missing languagestrings in com_menus.ini + # [#13265] **Remove illegal characters in Article Keywords + # [#11759] **Bug in menu system when changing menu link type + +25-Oct-2008 Sam Moffatt + # [#13264] **Untranslated Strings in en-GB.tpl_ja_purity.ini + # [#13262] Untranslated Strings in Unknown file + # [#13253] Untranslated Strings in en-GB.ini + # [#13242] print icon on layout "blog category" as first page + # [#13233] reset button on article selection for menu item doesn't work + # [#13223] Same language string in Section layout of a menu item** + # [#13217] **Error in the increase of hits count when editing article in front end + # [#12878] error language string in mod_feed.ini + # [#12542] **Inconsistent showing of default records in un-install screens (templates/language) + + + +19-Oct-2008 Ian MacLennan + # [#12697] **More sample data changes, including UTF-8 Fixes + # [#12724] **Content Router appends ID to item and is different from the menu (revert 11561) + # [#12859] **Backend: Disabled Admin Menu = javascript error + # [#12864] Issue with JMenu and large sites + # [#12950] **Beez template: The password reset doesn't work at all + # [#13198] *** Temporary users cannot log out + +15-Oct-2008 Kevin Devine + # [#13076] **Feed module target attribute not validating + # [#13064] **Problem with mod_related_items Keyword Matching + # [#12550] **nameQuote() mixed order in strpos + # [#12625] ** default_form.php in com_search has onClick on button tag which fails XHTML 1.0 Transitional validation + +13-Oct-2008 Ian MacLennan + # [#13164] JFolder::files and JFolder::folders don't function properly when using integral search depth + # [#13152] Component Directories to be completely deleted upon bogus entry into jos_components + # [#13151] Wrong wording in language file + # [#13017] Install language with pdf fonts with both admin and site bug (patch included) + # [#13015] Frontpage blog wrong number of links + # [#12942] A tag of category link is not closed in Section blog view + # [#12602] mod_stats shows wrong time + # [#12533] Missing method in JRecordSet + # [#12424] Correct or Remove Show_noauth parameter from sections module + # [#11707] In category blog layout, edit icon not displayed for user who canEdit if show title is 'No' + # [#11261] Cache: Undefined variable: rows in /administrator/components/com_cache/cache.class.php on line 114 + +10-Oct-2008 Kevin Devine + # [#12722] STRIPOS + +06-Oct-2008 Ian MacLennan + # [#12843] Text 'New ordering saved' cannot be translated in weblinks + # [#12734] Missing language string JA Purity + # [#12031] File Not Found or Compoent Not Found When SEARCH Button is Pressed + # [#12011] E-mail content pop-up window too short in Beez + +02-Oct-2008 Ian MacLennan + # [#12855] Misspelling of category in components/com_content/views/category/view.feed.php + +25-Sep-2008 Ian MacLennan + # [#12778] Remove commercial newsfeeds from joomla installation packages + # [#12731] Wrong frontpage article after upgrade to 1.5.7 + # [#11521] ****Image does not display in Contacts when an image directory is configured + # [#12338] URL: mod_login loses ItemID on redirect + +22-Sep-2008 Ian MacLennan + # [10254] Remove brackets around date/time in "Last Updated" + # [12630] Plural/singular issue for Section list + +09-Sep-2008 Anthony Ferrara + ^ Disabled Installation Check + +-------------------- 1.5.7 Stable Release [9-September-2008] ------------------ + +09-Sep-2008 Wilco Jansen + # Security fixes, thanks JSST! + # Changed version tags of default language file to 1.5.7 + # Change of version file + +05-Sep-2008 Wilco Jansen + # Enabled installation check + # [12543] pagebreak plugin: undefined variable full + # [12663] Feeds in com_content don't show up more than once when caching is enabled + # [12519] Clean up Outdated Sample Content + # [12480] When a guest uses a registered article view url a 403 or 404 is thrown + +31-Aug-2008 Wilco Jansen + # [12039] Cannot override contact list length + # [12481] When saving or cancellig a frontend edit you are redirected to a blank page instead of the article + # [12536] Warnings for Path to Image Folder and Path to Media Folder + +30-Aug-2008 Wilco Jansen + # [10175] JRoute::_() and Application Redirect() Causing CGI Error IIS 6 + # [10691] Section/Category Blog fills top->bottom instead of left->right + # [10943] Error of menu display according to access right + # [10953] Time zone need to be changed + # [11330] Box Width Parameter in mod_search Has No Effect + # [11621] Warning: strpos() [function.strpos]: Empty delimiter + # [11870] show_noauth problem in 2 module helpers + # [12071] SEO: index and follow meta tag in print view + # [12165] Pagination in com_categories does not respect sectionfilter + # [12167] Show Search Results" Option in Search Component Not Working + # [12204] ja_purity template - site logo text goes under header background + # [12229] Article Order Drop-Down List on Front End Shows Archived and Trashed Articles + # [12259] Help Key Reference Update for Modules: New Screen + # [12276] Selection of name/username doesnt work in mod_login + # [12336] Terms impossible to translate in admin.newsfeeds.php + # [12394] Incorrect colspan in admin mod_latest + # [12425] When a guest tries to view unauthorized content, redirect should be to login not register + # [12426] Polls and Search use the wrong view - IIS 7 + # [12432] Category search plugin not working + # [12438]
tags do not pass html validation + ! There where a dozen mismatches in the language files, so not all
tags have been replaced, + new language files for 1.5.7 need to be validated on this issue. + # [12442] JA Purity SVN changes can break backwards compatibility with existing sites + # [12462] Menu item is still locked after closing it + # [12492] Preview an edited artcle does not use template editor.css + # [12055] Archive intro text is cut to 255 characters - causes formatting problems + # [12457] Alias is copied incorrectly, when copying an article + # [12460] $row->getError() all over the shop where $row is not initialized + # [12194] URL: Incorrect SEF URLs for outgoing recommandation e-mails + +29-Aug-2008 Charl van Niekerk + # [10458] Pagebreak in article in blog layout does not work - limitstart double usage ( Tim, Arno ) + +28-Aug-2008 Andrew Eddie + # [12110] Beez Template - Newsflash - Article URL not provided when "Title Linkable" is Yes + # [12033] Menu Separator shows as link instead of plain text when using Legacy Menu Formats + # [12261] textarea parameter type cannot handle more than one line of data + +28-Aug-2008 Charl van Niekerk + # [11763] RSS feed produces incorrect publish date ( Hannes ) + +27-Aug-2008 Toby Patterson + # [9343] Profiling J1.5 framework ( Dalibor, Hannes ) + # [11018] TMLSelect makes all items selected when using not numeric keys and selected item is 0 ( Alessandro ) + # [11255] JMail class ignores JConfig.sendmail path for sendmail ( Ernie, Jens ) + # [11535] Coding error in metadata handling of com_content controller.php ( John ) + # [12101] Cache: JCacheStorageFile::gc flawed logic in cache expiry ( Geraint ) + # [12146] SEO: User/Developer frontend: $document->setMetadata creates duplicate meta tags. ( Paul, Mickael ) + # [12382] XMLrpc client id is to high ( Emil ) + # [12461] Cache: can't Clean Cache File with Cache Manager when change Cache Handler ( Akarawuth ) + +26-Aug-2008 Charl van Niekerk + # [9824] alt tags missing for some img tags ( Gergo Erdosi ) + +25-Aug-2008 Toby Patterson + # [10265] & not replaced with & in the external links ( Denis, Hannes ) + # [10384] Single quote in title is escaped twice when editing an article in frontend ( Arnault, Bill ) + # [11115] queryBatch does not log queries in debugmode ( Ian ) + # [12441] Street Address is not shown in contacts ( Eduardo, JBS ) + +24-Aug-2008 Sam Moffatt + # [11970] ja_purity email and print button files misnamed and not used + +23-Aug-2008 Wilco Jansen + # [11327] Base path showed in media manager is missing slashes + # [11544] JSite::getParams() doesn't work as expected + # [11561] Section blog resulting breadcrumbs issue + # [12080] System generated RSS feeds not rendering correctly for external URLs + # [12118] Latest version check &help.j.org at Joomla! Help + # [12187] Ja_purity default article layout does not display Edit icon for authors + # [12252] Outdated Links in Welcome to Joomla! and Newsfeed Fixes + # [12268] Multiple issues with Top menu in JA_Purity + # [12399] Copying Newsflash Module in Sample Data results in 500 error and duplicate key for menu table + # [12353] More aritcle links in section blog not working + +22-Aug-2008 Toby Patterson + # [#10965] Not all instances of module are deleted when module is uninstalled ( Andrzej and Sam ) + # [#11561] Patch: Beez Contact Image, typo in attribute value ( Rene and Elin ) + +19-Aug-2008 Toby Patterson + # [#12010] Remove confusing error message about language files for extension installations ( thanks Amy && Sam) + +13-August-2008 Anthony Ferrara + ^ Remove install check + +-------------------- 1.5.6 Stable Release [12-August-2008] ------------------ + +05-Aug-2008 Toby Patterson + # [#10906] Error in JURI::buildQuery if using "param[key]=value" GET parameter + +-------------------- 1.5.5 Stable Release [27-July-2008] --------------------- + +26-July-2008 Anthony Ferrara + # [#11973] Section Layout chooses existing Category Blog for drill down using SEF URLs + # [#11737] Archive and SEO + +22-July-2008 Anthony Ferrara + # [#11682] component login error with SEF + # [#11888] Archive Article Error With Finish Publishing Date + # [#11849] Various problems with com_content router + # [#11875] Item user acces overridden in newsflash module + # [#11744] searching for article-title doesn't work + +21-July-2008 Anthony Ferrara + # [#11718] Pagebreak plugin still does not work + # [#11844] SEF Plugin breaks Google Webmaster Tools JS + +21-July-2008 Sam Moffatt + # [#11818] JA_Purity : CSS style not correctly apply to menu in Hornav position + # [#11698] Issue with & in Menu Manager Unique Name + # [#10662] Error not warning when there is a submit menu item with the wrong permissions + # [#11895] Wrong overlib for login + # [#11892] Determining Read more Tag + # [#11890] Installing upgrade module results in duplicate module entry + # [#11873] Upgrading components deletes old component entry + # [#11838] Clean up of some Todos + # [#11820] javascript file dtree is corrupt + # [#11717] Double Titles with 1.5.4 upgrade + # [#11409] Category List view does not have a parameter in XML for number of items + # [#10869] newsflash description bad: "random article"? + # [#8889] BEEZ - search ONLY fieldset alignment + +17-July-2008 Mati Kochen + # [#10823] mosmsg is ignored - added support in legacy plugin (thanks Ian for code suggestions) + +16-July-2008 Alan Langford + # [#11846] Allow "collapse all" on all instances of JPane + +15-July-2008 Anthony Ferrara + # [#11839] Contact item, setting the bad word param stops all mail + # [#11731] Wrong languagestring in tpl_ja_purity + # [#11808] Sample data - Promo Books banner incorrect link + # [#11817] JA-Purity Login module using incorrect code for token + # [#11676] fix for Newsflash "read more" links in beez template incorrect + # [#11730] Missing language string in com_content.ini + # [#11760] Another missing language string in com_content.ini + # [#11597] Search filter on Private Messaging Doesn't Find any Messages + # [#11716] Banner using Flash/SWF wrong dimensions + # [#11806] Notice in article selection for article layout menu items + # [#11789] forgot your user name not displayed in other languages + # [#11602] Language file is missing for administrator module mod_feed + +8-July-2008 Anthony Ferrara + # Removal of install check + +-------------------- 1.5.4 Stable Release [7-July-2008] --------------------- + +6-July-2008 Wilco Jansen + # Rollback of language file in joomla_backward.sql + # Included latest language files in installer for 1.5.4 + +5-July-2008 Andrew Eddie + # [#11075] Minor errors in ACL libraries (reopened) + +4-July-2008 Wilco Jansen + ^ Change default template back to rhuk_milkyway (all help docs are based upon this template) + +4-July-2008 Anthony Ferrara + # Rollback of language file change (accidental removal of 3 strings) + +3-July-2008 Ian MacLennan + # [#8369] Issues with Page Title and Menu Item Layouts + # [#10766] table align=right breaks rendering in IE and Opera + # [#11646] Corrects in spelling and grammar for en-GB site + # [#11659] Sorting of modules in New module screen is wrong + +3-July-2008 Anthony Ferrara + # [#11647] Corrections (spelling and grammar) to en-GB administrator files (Thanks Ron!) + # [#11648] Corrections to en-GB installer (Thanks Ron!) + # [#11618] acl check incorrect in com_users for block user and email events + # [#11609] Default Article Layout should not have width or colspan="2" + # [#9234] Article Layout menu type does not restrict Categories by Section in Article listbox + # [#11639] OpenID Javascript throws errors causes conflicts with Mootools functions + # [#11627] OnBefore/AfterContentSave Triggers + +2-July-2008 Anthony Ferrara + # [#11643] Cannot save menu item for Submit New Article (Thanks Jens!) + # [#11638] SVN Rev.10473 breaks path on JS includes (Thanks Jens!) + # [#11636] [t,297432] htaccess Security Issue + # [#11635] [Security BUG 1.5.3] User redirect spam (Thanks Ian!) + +30-June-2008 Andrew Eddie + # [11637] Fix htmlentities in com_modules + +28-June 2008 Anthony Ferrara + # [#11583] Updated help screen key refs from doc team (Thanks Chris Davenport) + ! Patches provided during the second Pizza Bug and Fun event (28/29 june) + +28/29-June 2008 Wilco jansen + # [9027] Search system use keyword "Search..." if the inputbox empty + # [10166] Untranslated String in Calendar tool + # [11249] Set unpublished menu-item as default + # [11407] error of time display module pool + # [11464] Contact router broken on SEF and no Itemid + # [11562] Help screen key reference for Category Manager needs to be variable + # [11600] JURI::root does not honour live_site setting + # [11632] Registration redirects upon successful submission of form back to blank registration form + # [11633] The css for messages in in milkyway is incorrect + ! Patches provided during the second Pizza Bug and Fun event (28/29 june) + +27-June-2008 Andrew Eddie + ^ [11601] Improvement to System Debug plugin + # [10842] [patch] mod_latest doesn't use JHTML::_('date') + # [11610] Date in popular module in administrator not GMT + +26-June-2008 Wilco Jansen + # [11190] Unable to delete files with illegal characters + # [11571] Old cache file can't be deleted when cache is turned off + # [11580] Missing translation for timezone Venezuela + # [11463] Dates for votes on poll is not gmt + # [11598] JFactory::getUser() error when specifying user who doesn't exist + # [11470] registered content doesn't show up in a public view when show unauthorized links is set to true in a section view + # [11584] Sort "add module" list in alpha order by column; fix HTML + +25-June-2008 Sam Moffatt + # [11079] Joomla! LDAP Library doesn't support altering details in LDAP + +19/20-June-2008 Wilco Jansen + # [9729] Category Manager - Uncategorized + # [9901] Patch - com_weblinks Categories view revised tmpl/default.php + # [10291] Empty URL Parameters + # [10273] HTML entities in changelog break help display in back-end + # [10280] New Time Zone in Venezuela + # [10380] Category description textarea not HTML-quoted + # [10532] Filter issues in installation and missing or invalid language strings + # [10877] Error: time connection remains a UTC + # [10881] "Article order" missing in language file + # [10944] josSpoofCheck not passing $alternate to josSpoofValue correctly + # [11326] "validName" popup when omitting user name, password or database name in setup wizard + # [11444] [Patch] "What is OpenID?" not displayed + # [11487] Unable to insert image directly after upload without flash uploader + # [11516] Typo in en-GB.mod_mainmenu.ini + ! Patches provided during the second Pizza Bug and Fun event + +19-June-2008 Wilco Jansen + # [11225] Expired cache files lead to component not found error message + ! Patch provided by Anthony. Also unit tests have been created for the caching layer...yay! + +15-June-2008 Wilco Jansen + # [9991] Inconsistent use of nameQuote() + # [11426] Banners component not able to handle flash banners + +8-June-2008 Ian MacLennan + # [10363] E_NOLOGIN_BLOCKED visible in error/warning + +6-June-2008 Wilco Jansen + # [9806] Menu instance seems to be overriden + # [11338] Linked category title in JA_Purity category blog causes text to be linked + # [10873] Frontend Does Not Respect Global List Length + # [11333] Various weblinks fixes, and a little on category manager + # [10834] "Umbrella" issue for several mod_newsfeed issues + # [11354] Typo in gmail authentication plugin + +3-June-2008 Sam Moffatt + ^ prop-set all js, ini and css files to LF line ending style and cleaned up mixed line ending styles + +1-June-2008 Sam Moffatt + ^ prop-set all php files to LF line ending style + ^ Cleaned up a lot of files with mixed line ending styles + # [#8957] ampersand in Site name shows up as & in Administrator tool + +31-May-2008 Wilco Jansen + # [10864] PHP session.auto_start leads to broken installation and warning messages + # [11329] If you have a login menu item, Forgot Password and Forgot Username links don't work + # [10107] Notice: Trying to get property of non-object in section.php on line 449 + # [10126] External link in breadcrumb + # [10376] Article editing from FrontPage changes the article alias + # [11331] Breadcrumbs: redundant parameter, and not respecting default values for parameters + # [11158] Menu link to unpublished menu item causes fatal error + # [11191] Missing mandatory check for several menu item types + # [11075] Minor errors in ACL libraries + # [11054] Logged in user can view registration form + # [11311] JA Purity - templateDetails.xml, params - language + # [8512] HTML in content items matches search words in search component/plugin (AKA the real big issue with search in Joomla!) + # [11302] Typos in tpl_ja_purity admin + +29-May-2008 Wilco Jansen + # [10942] Menu does not rebuild sublevel on copy/move (causes menu ordering issues) + # [10037] timeoffset correction in toISO8601 method of JDate Class + # [11189] Install site and admin languages with one package + +21-May-2008 Anthony Ferrara + # Fix for fatal error introduced by [#10397] fix. Supports pass by reference too (so [#10397] is fixed as well) + +19-May-2008 Anthony Ferrara + # [#11111] More robust checking of menu type layouts for JS validation (Thanks Jens!) + +18-May-2008 Wilco Jansen + # [9349] JApplicationHelper::getPath requires strict naming conventions which may be deprecated + # [10255] Adding Additonal Security to Joomla's File Caching + # [10397] _processBuildRules and processParseRules not passing by reference + # [10793] Two small bugs in com_messages + # [10949] Cannot Add News Feeds Category List Layout in 1.5.3 + +14-May-2008 Ian MacLennan + ^ Updated key reference for help system from screen.menus.type to screen.menus.edit + +10-May-2008 Wilco Jansen + # [9986] Extension installer Install from Directory field should come with the site path prefilled by default. + # [10412] XHTML validation fails when using category name as a link on frontpage + # [10811] Category link is not closed on front page in BEEZ template - default_item.php + # [10498] [PATCH] folders not copied correctly, using in XML + # [11055] [Security] Crafted URL can disclose absolute path + # [10226] mod_login has a slightly wrong description for login/logout redirection + # [10669] Breadcrumbs module always produces last item in pathway + +09-May-2008 Andrew Eddie + + Added ja_purity template by JoomlArt + +07-May-2008 Sam Moffatt + # [10923] Backend accepts any password for custom Super Administrator when LDAP enabled + +24-Apr-2008 Mati Kochen + # Fix for the Legacy-Marker - missing parse + # Removed the special treatment for RTL in Pagination + +-------------------- 1.5.3 Stable Release [22-April-2008] --------------------- + +19-Apr-2008 Anthony Ferrara + # [#10009] Search Function yields warning + # [#10150] Installation minimum password length doesn't work + # [#10725] Installation not xhtml compliant + # [#10739] Spelling error in com_installer.ini + # [#10092] Switcher hides nested divs + # Fix for fatal error related to [#10638] + +19-Apr-2008 Andrew Eddie + ! Trailing white-space cleanup + # [#9725] JFilterInput Infinite Loop + +18-Apr-2008 Ian MacLennan + # [#10732] Help screen updates for Menu Manager + +18-Apr-2008 Sam Moffatt + # [#10724] Custom user groups fail to display + # [#10707] update link to forum in Sample content + # [#10638] mod_newsflash renders article separator after last article + +17-Apr-2008 Anthony Ferrara + # [#9858] Flash Uploader not loading properly + # [#10511] Print button showing Array Print Array + # [#9775] Cache directory not writable causes warning + # [#10588] QueryBatch executing empty queries + # [#10675] Code Cleanup + # [#10702] JURI::clean fix (not properly stripping out /'s) - Thanks Alex Stylianos + # [#10308] Installer rejects valid DB names + # [#10323] Wrong param count for class_exists in TCPDF + +14-Apr-2008 Mati Kochen + + Offline validation + + Legacy-Marker - a marker to show (admin) extensions requiring Legacy-Mode ON + +13-Apr-2008 Sam Moffatt + # [#10639] mod_newsflash renders bad "read more" link text + # [#10574] Problem with template rhuk_milkyway in white color variation. + # [#10540] com_login not w3c valid + # [#10539] Contacts string repeat twice in com_contacts language file + # [#10510] /templates/beez/com_content/section/default.php + # [#10302] Milky Way and Beez lack editor.css files + # [#9984] Plugin parameters with pipes still not working perfectly + # [#10402] Mainmenu Module issues + # [#9977] Search module changing '-' to ':' in keywords + # [#10097] Various XHTML fixes + +10-Apr-2008 Anthony Ferrara + # [#10508] Caching pathway and breadcrumbs fix + # [#10329] Debug fails with version of Zend Optimizer + +10-Apr-2008 Mati Kochen + # [#10299] Added 'Use Global' as default value to weblink.xml + +09-Apr-2008 Mati Kochen + # [#10253] Better PDF coding + +09-Apr-2008 Mati Kochen + # [#10297] Fixed RTL in Offline message + +04-Apr-2008 Toby Patterson + # Fixed [#10307] "Select Article" breaks on change category refresh ( Thanks Michael ) + +03-Apr-2008 Toby Patterson + # Fixed [#10197] component install error fails to reference left over folder in administrator/components folder + # Fixed [#10200] jdoc:include type="module" not usable + # Fixed [#10012] $task is not properly passed to extensions + # Fixed [#10345] emailcloak is not removed if the article does not contain @ + +29-Mar-2008 Ian MacLennan + # Fixed [#9335] Extra/Random table class (sectionentrytable0) + +29-Mar-2008 Sam Moffatt + ! Removed old TODO notice in installer + +28-Mar-2008 Wilco Jansen + # Fixed [9118] Uncaught Error message in Extension Manager when uninstalling deleted component + ! Thanks Ian for the patch + +26-Mar-2008 Toby Patterson + # Fixed [9015] No .blank class in system general.css + +-------------------- 1.5.2 Stable Release [22-March-2008] --------------------- + +22-Mar-2008 Sam Moffatt + $ Added ko-KR installation language files + +21-Mar-2008 Sam Moffatt + $ Added lt-LT, pl-PL and ca-ES installation language files + +20-Mar-2008 Ian MacLennan + $ Added bn-IN and th-TH installation language files + +20-Mar-2008 Andrew Eddie + # Fixed double-quoting bug in gacl_api::del_object + +15-Mar-2008 Ian MacLennan + # [#9816] Fixed openid toggle link doesn't appear on component. Also fixes duplicate ids for com and mod. + # [#9816] Fixed username cannot contain + or - characters + # [#9816] Fixed css resulting from first patch above + +15-Mar-2008 Sam Moffatt + ^ Updated language XML files version to 1.5.2 and date to 2008-03-15 (pour JM) + +12-Mar-2008 Ian MacLennan + # [#10156] Param for disabling the Flash Uploader + +11-Mar-2008 Anthony Ferrara + # [#10077] Edit links for frontpage layout broken when not default menu item. + +11-Mar-2008 Wilco Jansen + # [10129] front-end message when article submitted not translated + +10-Mar-2008 Wilco Jansen + # [9971] Default parameter (global configuration) not stored in table + # [9976] Invalid behavior after switching list length + # [10112] Strings and tips added for 10019 editing options + # [10124] Notice layout in milkyway is not right due to missing some css + # [10071] Email alert for private message is confusing + +09-Mar-2008 Mati Kochen + # [#10083] Upgraded TCPDF Library to v2.6 + # [#10102] Removed unneeded IF clause for ICONV usage + +08-Mar-2008 Andrew Eddie + # [#10103] Additional Content Filtering + +07-Mar-2008 Ian MacLennan + # [#9808] JHTMLSelect::Options dies if empty array passed + # [#10027] When bulit a menu with catalog list which catalog has no articles, error comes out when click this menu + # [#10055] Administrator login not possible due to unmasked querys. + +07-Mar-2008 Andrew Eddie + # [#10032] JView::get() does not defer properly to JObject::get() + # [#9641] Extra , and

tages. + - [1816393] Documentation was updated. + - 'ln' parameter was fixed on writeHTMLCell. Now it's possible to print two or more columns across several pages; + - The method lastPage() was added to move the pointer on the last page; + +------------------------------------------------------------ + +1.53.0.TC034 (2007-07-30) + - fixed htmlentities convesion. + - MultiCell() function returns the number of cells. + +1.53.0.TC033 (2007-07-30) + - fixed bug 1762550: case sensitive for font files + - NOTE: all fonts files names must be in lowercase! + +1.53.0.TC032 (2007-07-27) + - setLastH method was added to resolve bug 1689071. + - all fonts names were converted in lowercase (bug 1713005). + - bug 1740954 was fixed. + - justification was added as Cell option. + +1.53.0.TC031 (2007-03-20) + - ToUnicode CMap were added on _puttruetypeunicode function. Now you may search and copy unicode text. + +1.53.0.TC030 (2007-03-06) + - fixed bug on PHP4 version. + +1.53.0.TC029 (2007-03-06) + - DejaVu Fonts were added. + +1.53.0.TC028 (2007-03-03) + - MultiCell function signature were changed: the $ln parameter were added. Check documentation for further information. + - Greek language were added on example sentences. + - setPrintHeader() and setPrintFooter() functions were added to enable or disable page header and footer. + +1.53.0.TC027 (2006-12-14) + - $attr['face'] bug were fixed. + - K_TCPDF_EXTERNAL_CONFIG control where introduced on /config/tcpdf_config.php to use external configuration files. + +1.53.0.TC026 (2006-10-28) + - writeHTML function call were fixed on examples. + +1.53.0.TC025 (2006-10-27) + - Bugs item #1421290 were fixed (0D - 0A substitution in some characters) + - Bugs item #1573174 were fixed (MultiCell documentation) + +1.53.0.TC024 (2006-09-26) + - getPageHeight() function were fixed (bug 1543476). + - fixed missing breaks on closedHTMLTagHandler function (bug 1535263). + - fixed extra spaces on Write function (bug 1535262). + +1.53.0.TC023 (2006-08-04) + - paths to barcode directory were fixed. + - documentation were updated. + +1.53.0.TC022 (2006-07-16) + - fixed bug: [ 1516858 ] Probs with PHP autoloader and class_exists() + +1.53.0.TC021 (2006-07-01) + - HTML attributes with whitespaces are now supported (thanks to Nelson Benitez for his support) + +1.53.0.TC020 (2006-06-23) + - code cleanup + +1.53.0.TC019 (2006-05-21) + - fixed and closing tags + +1.53.0.TC018 (2006-05-18) + - fixed font names bug + +1.53.0.TC017 (2006-05-18) + - the TTF2UFM utility to convert True Type fonts for TCPDF were included on fonts folder. + - new free unicode fonts were included on /fonts/freefont. + - test_unicode.php example were exended. + - parameter $fill were added on Write, writeHTML and writeHTMLCell functions. + - documentation were updated. + +1.53.0.TC016 (2006-03-09) + - fixed closing tag on html parser. + +1.53.0.TC016 (2005-08-28) + - fpdf.php and tcpdf.php files were joined in one single class (you can still extend TCPDF with your own class). + - fixed problem when mb_internal_encoding is set. + +1.53.0.TC014 (2005-05-29) + - fixed WriteHTMLCell new page issue. + +1.53.0.TC013 (2005-05-29) + - fixed WriteHTMLCell across pages. + +1.53.0.TC012 (2005-05-29) + - font color attribute bug were fixed. + +1.53.0.TC011 (2005-03-31) + - SetFont function were fixed (thank Sjaak Lauwers for bug notice). + +1.53.0.TC010 (2005-03-22) + - the html functions were improved (thanks to Manfred Vervuert for bug reporting). + +1.53.0.TC009 (2005-03-19) + - a wrong reference to convertColorHexToDec were fixed. + +1.53.0.TC008 (2005-02-07) + - removed some extra bytes from PHP files. + +1.53.0.TC007 (2005-01-08) + - fill attribute were removed from writeHTMLCell method. + +1.53.0.TC006 (2005-01-08) + - the documentation were updated. + +1.53.0.TC005 (2005-01-05) + - Steven Wittens's unicode methods were removed. + - All unicode methods were rewritten from scratch. + - TCPDF is now licensed as LGPL. + +1.53.0.TC004 (2005-01-04) + - this changelog were added. + - removed comercial fonts for licensing issue. + - Bitstream Vera Fonts were added (http://www.bitstream.com/font_rendering/products/dev_fonts/vera.html). + - Now the AddFont and SetFont functions returns the basic font if the styled version do not exist. + diff --git a/libraries/tcpdf/LICENSE.TXT b/libraries/tcpdf/LICENSE.TXT new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/LICENSE.TXT @@ -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. + + + Copyright (C) + + 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. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/libraries/tcpdf/README.TXT b/libraries/tcpdf/README.TXT new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/README.TXT @@ -0,0 +1,68 @@ +TCPDF - README +============================================================ + +Name: + TCPDF + +Version: + 2.6.000_PHP4 + +Release date: + 2008-03-07 + +Author: + Nicola Asuni + +Copyright (c) 2001-2008: + Nicola Asuni + Tecnick.com s.r.l. + Via Della Pace, 11 + 09044 Quartucciu (CA) + ITALY + www.tecnick.com + +URLs: + http://www.tcpdf.org + http://tcpdf.sourceforge.net/ + +Description: + TCPDF is a PHP5 class for generating PDF files on-the-fly without requiring external extensions. + TCPDF has been originally derived from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org). + + Main Features: + + - supports UTF-8 Unicode and Right-To-Left languages; + - supports document encryption; + - includes methods to publish some xhtml code; + - includes graphic and transformation methods; + - includes bookmarks; + - includes Javascript and forms support; + - includes a method to print various barcode formats using an improved version of "Generic Barcode Render Class" by Karim Mribti (http://www.mribti.com/barcode/) (require GD library: http://www.boutell.com/gd/) + - supports TrueTypeUnicode, TrueType, Type1 and encoding; + - supports custom page formats, margins and units of measure; + - includes methods for page header and footer management; + - supports automatic page break; + - supports automatic page numbering; + - supports automatic line break and text justification; + - supports JPEG, PNG anf GIF images; + - supports colors; + - supports links; + - support page compression (require zlib extension: http://www.gzip.org/zlib/); + - the source code is full documented in PhpDocumentor Style (http://www.phpdoc.org). + +Installation: + 1. copy the folder on your Web server + 2. set your installation path on the config/tcpdf_config.php + 3. call the test_unicode.php page with your browser to see an example + NOTE: the test_old.php require proper font setup on tcpdf_config. + +Source Code Documentation: + doc/index.html + +For Additional Documentation check: + http://www.tcpdf.org + +License + GNU LESSER GENERAL PUBLIC LICENSE v.2.1 + http://www.gnu.org/copyleft/lesser.html +============================================================ \ No newline at end of file diff --git a/libraries/tcpdf/cache/index.html b/libraries/tcpdf/cache/index.html new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/cache/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/libraries/tcpdf/config/index.html b/libraries/tcpdf/config/index.html new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/config/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/libraries/tcpdf/config/lang/eng.php b/libraries/tcpdf/config/lang/eng.php new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/config/lang/eng.php @@ -0,0 +1,49 @@ + diff --git a/libraries/tcpdf/config/lang/index.html b/libraries/tcpdf/config/lang/index.html new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/config/lang/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/libraries/tcpdf/config/tcpdf_config.php b/libraries/tcpdf/config/tcpdf_config.php new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/config/tcpdf_config.php @@ -0,0 +1,198 @@ + diff --git a/libraries/tcpdf/html_entity_decode_php4.php b/libraries/tcpdf/html_entity_decode_php4.php new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/html_entity_decode_php4.php @@ -0,0 +1,309 @@ +> 0x06) + 0xC0).chr(($num & 0x3F) + 128); + } elseif ($num <= 0xFFFF) { + return chr(($num >> 0x0C) + 0xE0).chr((($num >> 0x06) & 0x3F) + 0x80).chr(($num & 0x3F) + 0x80); + } elseif ($num <= 0x1FFFFF) { + return chr(($num >> 0x12) + 0xF0).chr((($num >> 0x0C) & 0x3F) + 0x80).chr((($num >> 0x06) & 0x3F) + 0x80).chr(($num & 0x3F) + 0x80); + } + return ' '; // default value +} + +/** + * Reverse function for htmlentities. + * Convert entities in UTF-8. + * @param $text_to_convert Text to convert. + * @return string converted + */ +function html_entity_decode_php4($text_to_convert) { + $htmlentities_table = array ( + "Á" => "".chr(195).chr(129)."", + "á" => "".chr(195).chr(161)."", + "Â" => "".chr(195).chr(130)."", + "â" => "".chr(195).chr(162)."", + "´" => "".chr(194).chr(180)."", + "Æ" => "".chr(195).chr(134)."", + "æ" => "".chr(195).chr(166)."", + "À" => "".chr(195).chr(128)."", + "à" => "".chr(195).chr(160)."", + "ℵ" => "".chr(226).chr(132).chr(181)."", + "Α" => "".chr(206).chr(145)."", + "α" => "".chr(206).chr(177)."", + "&" => "".chr(38)."", + "∧" => "".chr(226).chr(136).chr(167)."", + "∠" => "".chr(226).chr(136).chr(160)."", + "Å" => "".chr(195).chr(133)."", + "å" => "".chr(195).chr(165)."", + "≈" => "".chr(226).chr(137).chr(136)."", + "Ã" => "".chr(195).chr(131)."", + "ã" => "".chr(195).chr(163)."", + "Ä" => "".chr(195).chr(132)."", + "ä" => "".chr(195).chr(164)."", + "„" => "".chr(226).chr(128).chr(158)."", + "Β" => "".chr(206).chr(146)."", + "β" => "".chr(206).chr(178)."", + "¦" => "".chr(194).chr(166)."", + "•" => "".chr(226).chr(128).chr(162)."", + "∩" => "".chr(226).chr(136).chr(169)."", + "Ç" => "".chr(195).chr(135)."", + "ç" => "".chr(195).chr(167)."", + "¸" => "".chr(194).chr(184)."", + "¢" => "".chr(194).chr(162)."", + "Χ" => "".chr(206).chr(167)."", + "χ" => "".chr(207).chr(135)."", + "ˆ" => "".chr(203).chr(134)."", + "♣" => "".chr(226).chr(153).chr(163)."", + "≅" => "".chr(226).chr(137).chr(133)."", + "©" => "".chr(194).chr(169)."", + "↵" => "".chr(226).chr(134).chr(181)."", + "∪" => "".chr(226).chr(136).chr(170)."", + "¤" => "".chr(194).chr(164)."", + "†" => "".chr(226).chr(128).chr(160)."", + "‡" => "".chr(226).chr(128).chr(161)."", + "↓" => "".chr(226).chr(134).chr(147)."", + "⇓" => "".chr(226).chr(135).chr(147)."", + "°" => "".chr(194).chr(176)."", + "Δ" => "".chr(206).chr(148)."", + "δ" => "".chr(206).chr(180)."", + "♦" => "".chr(226).chr(153).chr(166)."", + "÷" => "".chr(195).chr(183)."", + "É" => "".chr(195).chr(137)."", + "é" => "".chr(195).chr(169)."", + "Ê" => "".chr(195).chr(138)."", + "ê" => "".chr(195).chr(170)."", + "È" => "".chr(195).chr(136)."", + "è" => "".chr(195).chr(168)."", + "∅" => "".chr(226).chr(136).chr(133)."", + " " => "".chr(226).chr(128).chr(131)."", + " " => "".chr(226).chr(128).chr(130)."", + "Ε" => "".chr(206).chr(149)."", + "ε" => "".chr(206).chr(181)."", + "≡" => "".chr(226).chr(137).chr(161)."", + "Η" => "".chr(206).chr(151)."", + "η" => "".chr(206).chr(183)."", + "Ð" => "".chr(195).chr(144)."", + "ð" => "".chr(195).chr(176)."", + "Ë" => "".chr(195).chr(139)."", + "ë" => "".chr(195).chr(171)."", + "€" => "".chr(226).chr(130).chr(172)."", + "∃" => "".chr(226).chr(136).chr(131)."", + "ƒ" => "".chr(198).chr(146)."", + "∀" => "".chr(226).chr(136).chr(128)."", + "½" => "".chr(194).chr(189)."", + "¼" => "".chr(194).chr(188)."", + "¾" => "".chr(194).chr(190)."", + "⁄" => "".chr(226).chr(129).chr(132)."", + "Γ" => "".chr(206).chr(147)."", + "γ" => "".chr(206).chr(179)."", + "≥" => "".chr(226).chr(137).chr(165)."", + "↔" => "".chr(226).chr(134).chr(148)."", + "⇔" => "".chr(226).chr(135).chr(148)."", + "♥" => "".chr(226).chr(153).chr(165)."", + "…" => "".chr(226).chr(128).chr(166)."", + "Í" => "".chr(195).chr(141)."", + "í" => "".chr(195).chr(173)."", + "Î" => "".chr(195).chr(142)."", + "î" => "".chr(195).chr(174)."", + "¡" => "".chr(194).chr(161)."", + "Ì" => "".chr(195).chr(140)."", + "ì" => "".chr(195).chr(172)."", + "ℑ" => "".chr(226).chr(132).chr(145)."", + "∞" => "".chr(226).chr(136).chr(158)."", + "∫" => "".chr(226).chr(136).chr(171)."", + "Ι" => "".chr(206).chr(153)."", + "ι" => "".chr(206).chr(185)."", + "¿" => "".chr(194).chr(191)."", + "∈" => "".chr(226).chr(136).chr(136)."", + "Ï" => "".chr(195).chr(143)."", + "ï" => "".chr(195).chr(175)."", + "Κ" => "".chr(206).chr(154)."", + "κ" => "".chr(206).chr(186)."", + "Λ" => "".chr(206).chr(155)."", + "λ" => "".chr(206).chr(187)."", + "⟨" => "".chr(226).chr(140).chr(169)."", + "«" => "".chr(194).chr(171)."", + "←" => "".chr(226).chr(134).chr(144)."", + "⇐" => "".chr(226).chr(135).chr(144)."", + "⌈" => "".chr(226).chr(140).chr(136)."", + "“" => "".chr(226).chr(128).chr(156)."", + "≤" => "".chr(226).chr(137).chr(164)."", + "⌊" => "".chr(226).chr(140).chr(138)."", + "∗" => "".chr(226).chr(136).chr(151)."", + "◊" => "".chr(226).chr(151).chr(138)."", + "‎" => "".chr(226).chr(128).chr(142)."", + "‹" => "".chr(226).chr(128).chr(185)."", + "‘" => "".chr(226).chr(128).chr(152)."", + "¯" => "".chr(194).chr(175)."", + "—" => "".chr(226).chr(128).chr(148)."", + "µ" => "".chr(194).chr(181)."", + "·" => "".chr(194).chr(183)."", + "−" => "".chr(226).chr(136).chr(146)."", + "Μ" => "".chr(206).chr(156)."", + "μ" => "".chr(206).chr(188)."", + "∇" => "".chr(226).chr(136).chr(135)."", + " " => "".chr(194).chr(160)."", + "–" => "".chr(226).chr(128).chr(147)."", + "≠" => "".chr(226).chr(137).chr(160)."", + "∋" => "".chr(226).chr(136).chr(139)."", + "¬" => "".chr(194).chr(172)."", + "∉" => "".chr(226).chr(136).chr(137)."", + "⊄" => "".chr(226).chr(138).chr(132)."", + "Ñ" => "".chr(195).chr(145)."", + "ñ" => "".chr(195).chr(177)."", + "Ν" => "".chr(206).chr(157)."", + "ν" => "".chr(206).chr(189)."", + "Ó" => "".chr(195).chr(147)."", + "ó" => "".chr(195).chr(179)."", + "Ô" => "".chr(195).chr(148)."", + "ô" => "".chr(195).chr(180)."", + "Œ" => "".chr(197).chr(146)."", + "œ" => "".chr(197).chr(147)."", + "Ò" => "".chr(195).chr(146)."", + "ò" => "".chr(195).chr(178)."", + "‾" => "".chr(226).chr(128).chr(190)."", + "Ω" => "".chr(206).chr(169)."", + "ω" => "".chr(207).chr(137)."", + "Ο" => "".chr(206).chr(159)."", + "ο" => "".chr(206).chr(191)."", + "⊕" => "".chr(226).chr(138).chr(149)."", + "∨" => "".chr(226).chr(136).chr(168)."", + "ª" => "".chr(194).chr(170)."", + "º" => "".chr(194).chr(186)."", + "Ø" => "".chr(195).chr(152)."", + "ø" => "".chr(195).chr(184)."", + "Õ" => "".chr(195).chr(149)."", + "õ" => "".chr(195).chr(181)."", + "⊗" => "".chr(226).chr(138).chr(151)."", + "Ö" => "".chr(195).chr(150)."", + "ö" => "".chr(195).chr(182)."", + "¶" => "".chr(194).chr(182)."", + "∂" => "".chr(226).chr(136).chr(130)."", + "‰" => "".chr(226).chr(128).chr(176)."", + "⊥" => "".chr(226).chr(138).chr(165)."", + "Φ" => "".chr(206).chr(166)."", + "φ" => "".chr(207).chr(134)."", + "Π" => "".chr(206).chr(160)."", + "π" => "".chr(207).chr(128)."", + "ϖ" => "".chr(207).chr(150)."", + "±" => "".chr(194).chr(177)."", + "£" => "".chr(194).chr(163)."", + "′" => "".chr(226).chr(128).chr(178)."", + "″" => "".chr(226).chr(128).chr(179)."", + "∏" => "".chr(226).chr(136).chr(143)."", + "∝" => "".chr(226).chr(136).chr(157)."", + "Ψ" => "".chr(206).chr(168)."", + "ψ" => "".chr(207).chr(136)."", + "√" => "".chr(226).chr(136).chr(154)."", + "⟩" => "".chr(226).chr(140).chr(170)."", + "»" => "".chr(194).chr(187)."", + "→" => "".chr(226).chr(134).chr(146)."", + "⇒" => "".chr(226).chr(135).chr(146)."", + "⌉" => "".chr(226).chr(140).chr(137)."", + "”" => "".chr(226).chr(128).chr(157)."", + "ℜ" => "".chr(226).chr(132).chr(156)."", + "®" => "".chr(194).chr(174)."", + "⌋" => "".chr(226).chr(140).chr(139)."", + "Ρ" => "".chr(206).chr(161)."", + "ρ" => "".chr(207).chr(129)."", + "‏" => "".chr(226).chr(128).chr(143)."", + "›" => "".chr(226).chr(128).chr(186)."", + "’" => "".chr(226).chr(128).chr(153)."", + "‚" => "".chr(226).chr(128).chr(154)."", + "Š" => "".chr(197).chr(160)."", + "š" => "".chr(197).chr(161)."", + "⋅" => "".chr(226).chr(139).chr(133)."", + "§" => "".chr(194).chr(167)."", + "­" => "".chr(194).chr(173)."", + "Σ" => "".chr(206).chr(163)."", + "σ" => "".chr(207).chr(131)."", + "ς" => "".chr(207).chr(130)."", + "∼" => "".chr(226).chr(136).chr(188)."", + "♠" => "".chr(226).chr(153).chr(160)."", + "⊂" => "".chr(226).chr(138).chr(130)."", + "⊆" => "".chr(226).chr(138).chr(134)."", + "∑" => "".chr(226).chr(136).chr(145)."", + "¹" => "".chr(194).chr(185)."", + "²" => "".chr(194).chr(178)."", + "³" => "".chr(194).chr(179)."", + "⊃" => "".chr(226).chr(138).chr(131)."", + "⊇" => "".chr(226).chr(138).chr(135)."", + "ß" => "".chr(195).chr(159)."", + "Τ" => "".chr(206).chr(164)."", + "τ" => "".chr(207).chr(132)."", + "∴" => "".chr(226).chr(136).chr(180)."", + "Θ" => "".chr(206).chr(152)."", + "θ" => "".chr(206).chr(184)."", + "ϑ" => "".chr(207).chr(145)."", + " " => "".chr(226).chr(128).chr(137)."", + "Þ" => "".chr(195).chr(158)."", + "þ" => "".chr(195).chr(190)."", + "˜" => "".chr(203).chr(156)."", + "×" => "".chr(195).chr(151)."", + "™" => "".chr(226).chr(132).chr(162)."", + "Ú" => "".chr(195).chr(154)."", + "ú" => "".chr(195).chr(186)."", + "↑" => "".chr(226).chr(134).chr(145)."", + "⇑" => "".chr(226).chr(135).chr(145)."", + "Û" => "".chr(195).chr(155)."", + "û" => "".chr(195).chr(187)."", + "Ù" => "".chr(195).chr(153)."", + "ù" => "".chr(195).chr(185)."", + "¨" => "".chr(194).chr(168)."", + "ϒ" => "".chr(207).chr(146)."", + "Υ" => "".chr(206).chr(165)."", + "υ" => "".chr(207).chr(133)."", + "Ü" => "".chr(195).chr(156)."", + "ü" => "".chr(195).chr(188)."", + "℘" => "".chr(226).chr(132).chr(152)."", + "Ξ" => "".chr(206).chr(158)."", + "ξ" => "".chr(206).chr(190)."", + "Ý" => "".chr(195).chr(157)."", + "ý" => "".chr(195).chr(189)."", + "¥" => "".chr(194).chr(165)."", + "ÿ" => "".chr(195).chr(191)."", + "Ÿ" => "".chr(197).chr(184)."", + "Ζ" => "".chr(206).chr(150)."", + "ζ" => "".chr(206).chr(182)."", + "‍" => "".chr(226).chr(128).chr(141)."", + "‌" => "".chr(226).chr(128).chr(140)."", + ">" => ">", + "<" => "<" + ); + $return_text = strtr($text_to_convert, $htmlentities_table); + $return_text = preg_replace('~&#x([0-9a-f]+);~ei', 'code_to_utf8(hexdec("\\1"))', $return_text); + $return_text = preg_replace('~&#([0-9]+);~e', 'code_to_utf8(\\1)', $return_text); + return $return_text; +} + +//============================================================+ +// END OF FILE +//============================================================+ +?> \ No newline at end of file diff --git a/libraries/tcpdf/images/_blank.png b/libraries/tcpdf/images/_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..38f7b2fa56ab08499e0d6f848af9b91c14963aa1 GIT binary patch literal 137 zc%17D@N?(olHy`uVBq!ia0vp^j3CUx3?$;uu;>Cg%mF?juK)l4Uw%aT1W2wV$S;_| z;n|HeAcwQSBeIx*fm;ZK886+f`vVdzag8W(&d<$F%`0JG=+x?E0}66^x;TbZ%t=lF YvY8kdJ=QNN1hN=BUHx3vIVCg!07t?hGXMYp diff --git a/libraries/tcpdf/images/index.html b/libraries/tcpdf/images/index.html new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/libraries/tcpdf/index.html b/libraries/tcpdf/index.html new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/libraries/tcpdf/tcpdf.php b/libraries/tcpdf/tcpdf.php new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/tcpdf.php @@ -0,0 +1,6997 @@ + value attribute. +// Patrick Benny for text stretch suggestion on Cell(). +// Johannes G�ntert for JavaScript support. +// Denis Van Nuffelen for Dynamic Form. +// Jacek Czekaj for multibyte justification +// Anthony Ferrara for the reintroduction of legacy image methods. +// Anyone that has reported a bug or sent a suggestion. +//============================================================+ + + + +/** + * This is a PHP5 class for generating PDF files on-the-fly without requiring external extensions.
+ * TCPDF project (http://tcpdf.sourceforge.net) has been originally derived from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org).
+ *

TCPDF main features are:

+ *
    + *
  • supports all ISO page formats;
  • + *
  • supports UTF-8 Unicode and Right-To-Left languages;
  • + *
  • supports document encryption;
  • + *
  • includes methods to publish some xhtml code, supporting the following elements: h1, h2, h3, h4, h5, h6, b, u, i, a, img, p, br, strong, em, font, blockquote, li, ul, ol, hr, td, th, tr, table, sup, sub, small;
  • + *
  • includes a method to print various barcode formats using an improved version of "Generic Barcode Render Class" by Karim Mribti (http://www.mribti.com/barcode/) (require GD library: http://www.boutell.com/gd/)
  • + *
  • supports TrueTypeUnicode, TrueType, Type1 and encoding;
  • + *
  • supports custom page formats, margins and units of measure;
  • + *
  • includes methods for page header and footer management;
  • + *
  • supports automatic page break;
  • + *
  • supports automatic page numbering;
  • + *
  • supports automatic line break and text justification;
  • + *
  • supports JPEG, PNG anf GIF images;
  • + *
  • supports colors;
  • + *
  • supports links;
  • + *
  • support page compression (require zlib extension: http://www.gzip.org/zlib/);
  • + *
  • the source code is full documented in PhpDocumentor Style (http://www.phpdoc.org).
  • + *
+ * Tools to encode your unicode fonts are on fonts/ttf2ufm directory.

+ * @name TCPDF + * @package com.tecnick.tcpdf + * @abstract Class for generating PDF files on-the-fly without requiring external extensions. + * @author Nicola Asuni + * @copyright 2004-2008 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com + * @link http://www.tcpdf.org + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version 2.5.000_PHP4 + */ + +/** + * include configuration file + */ +require_once(dirname(__FILE__).'/config/tcpdf_config.php'); + +if(!class_exists('TCPDF')) { + /** + * define default PDF document producer + */ + define('PDF_PRODUCER','TCPDF 2.5.000_PHP4 (http://www.tcpdf.org)'); + + /** + * This is a PHP5 class for generating PDF files on-the-fly without requiring external extensions.
+ * TCPDF project (http://tcpdf.sourceforge.net) has been originally derived from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org).
+ * To add your own TTF fonts please read /fonts/README.TXT + * @name TCPDF + * @package com.tecnick.tcpdf + * @version 2.5.000_PHP4 + * @author Nicola Asuni + * @link http://www.tcpdf.org + * @license http://www.gnu.org/copyleft/lesser.html LGPL + */ + class TCPDF { + + // Private or Protected properties + + /** + * @var current page number + * @access protected + */ + var $page; + + /** + * @var current object number + * @access protected + */ + var $n; + + /** + * @var array of object offsets + * @access protected + */ + var $offsets; + + /** + * @var buffer holding in-memory PDF + * @access protected + */ + var $buffer; + + /** + * @var array containing pages + * @access protected + */ + var $pages; + + /** + * @var current document state + * @access protected + */ + var $state; + + /** + * @var compression flag + * @access protected + */ + var $compress; + + /** + * @var default page orientation (P = Portrait, L = Landscape) + * @access protected + */ + var $DefOrientation; + + /** + * @var current page orientation (P = Portrait, L = Landscape) + * @access protected + */ + var $CurOrientation; + + /** + * @var array indicating page orientation changes + * @access protected + */ + var $OrientationChanges; + + /** + * @var scale factor (number of points in user unit) + * @access protected + */ + var $k; + + /** + * @var width of page format in points + * @access protected + */ + var $fwPt; + + /** + * @var height of page format in points + * @access protected + */ + var $fhPt; + + /** + * @var width of page format in user unit + * @access protected + */ + var $fw; + + /** + * @var height of page format in user unit + * @access protected + */ + var $fh; + + /** + * @var current width of page in points + * @access protected + */ + var $wPt; + + /** + * @var current height of page in points + * @access protected + */ + var $hPt; + + /** + * @var current width of page in user unit + * @access protected + */ + var $w; + + /** + * @var current height of page in user unit + * @access protected + */ + var $h; + + /** + * @var left margin + * @access protected + */ + var $lMargin; + + /** + * @var top margin + * @access protected + */ + var $tMargin; + + /** + * @var right margin + * @access protected + */ + var $rMargin; + + /** + * @var page break margin + * @access protected + */ + var $bMargin; + + /** + * @var cell internal padding + * @access protected + */ + var $cMargin; + + /** + * @var current horizontal position in user unit for cell positioning + * @access protected + */ + var $x; + + /** + * @var current vertical position in user unit for cell positioning + * @access protected + */ + var $y; + + /** + * @var height of last cell printed + * @access protected + */ + var $lasth; + + /** + * @var line width in user unit + * @access protected + */ + var $LineWidth; + + /** + * @var array of standard font names + * @access protected + */ + var $CoreFonts; + + /** + * @var array of used fonts + * @access protected + */ + var $fonts; + + /** + * @var array of font files + * @access protected + */ + var $FontFiles; + + /** + * @var array of encoding differences + * @access protected + */ + var $diffs; + + /** + * @var array of used images + * @access protected + */ + var $images; + + /** + * @var array of links in pages + * @access protected + */ + var $PageLinks; + + /** + * @var array of internal links + * @access protected + */ + var $links; + + /** + * @var current font family + * @access protected + */ + var $FontFamily; + + /** + * @var current font style + * @access protected + */ + var $FontStyle; + + /** + * @var underlining flag + * @access protected + */ + var $underline; + + /** + * @var current font info + * @access protected + */ + var $CurrentFont; + + /** + * @var current font size in points + * @access protected + */ + var $FontSizePt; + + /** + * @var current font size in user unit + * @access protected + */ + var $FontSize; + + /** + * @var commands for drawing color + * @access protected + */ + var $DrawColor; + + /** + * @var commands for filling color + * @access protected + */ + var $FillColor; + + /** + * @var commands for text color + * @access protected + */ + var $TextColor; + + /** + * @var indicates whether fill and text colors are different + * @access protected + */ + var $ColorFlag; + + /** + * @var word spacing + * @access protected + */ + var $ws; + + /** + * @var automatic page breaking + * @access protected + */ + var $AutoPageBreak; + + /** + * @var threshold used to trigger page breaks + * @access protected + */ + var $PageBreakTrigger; + + /** + * @var flag set when processing footer + * @access protected + */ + var $InFooter; + + /** + * @var zoom display mode + * @access protected + */ + var $ZoomMode; + + /** + * @var layout display mode + * @access protected + */ + var $LayoutMode; + + /** + * @var title + * @access protected + */ + var $title; + + /** + * @var subject + * @access protected + */ + var $subject; + + /** + * @var author + * @access protected + */ + var $author; + + /** + * @var keywords + * @access protected + */ + var $keywords; + + /** + * @var creator + * @access protected + */ + var $creator; + + /** + * @var alias for total number of pages + * @access protected + */ + var $AliasNbPages; + + /** + * @var right-bottom corner X coordinate of inserted image + * @since 2002-07-31 + * @author Nicola Asuni + * @access protected + */ + var $img_rb_x; + + /** + * @var right-bottom corner Y coordinate of inserted image + * @since 2002-07-31 + * @author Nicola Asuni + * @access protected + */ + var $img_rb_y; + + /** + * @var image scale factor + * @since 2004-06-14 + * @author Nicola Asuni + * @access protected + */ + var $imgscale = 1; + + /** + * @var boolean set to true when the input text is unicode (require unicode fonts) + * @since 2005-01-02 + * @author Nicola Asuni + * @access protected + */ + var $isunicode = false; + + /** + * @var PDF version + * @since 1.5.3 + * @access protected + */ + var $PDFVersion = "1.5"; + + + // ---------------------- + + /** + * @var Minimum distance between header and top page margin. + * @access private + */ + var $header_margin; + + /** + * @var Minimum distance between footer and bottom page margin. + * @access private + */ + var $footer_margin; + + /** + * @var original left margin value + * @access private + * @since 1.53.0.TC013 + */ + var $original_lMargin; + + /** + * @var original right margin value + * @access private + * @since 1.53.0.TC013 + */ + var $original_rMargin; + + /** + * @var Header font. + * @access private + */ + var $header_font; + + /** + * @var Footer font. + * @access private + */ + var $footer_font; + + /** + * @var Language templates. + * @access private + */ + var $l; + + /** + * @var Barcode to print on page footer (only if set). + * @access private + */ + var $barcode = false; + + /** + * @var If true prints header + * @access private + */ + var $print_header = true; + + /** + * @var If true prints footer. + * @access private + */ + var $print_footer = true; + + /** + * @var Header width (0 = full page width). + * @access private + */ + var $header_width = 0; + + /** + * @var Header image logo. + * @access private + */ + var $header_logo = ""; + + /** + * @var Header image logo width in mm. + * @access private + */ + var $header_logo_width = 30; + + /** + * @var String to print as title on document header. + * @access private + */ + var $header_title = ""; + + /** + * @var String to print on document header. + * @access private + */ + var $header_string = ""; + + /** + * @var Default number of columns for html table. + * @access private + */ + var $default_table_columns = 4; + + + // variables for html parser + + /** + * @var HTML PARSER: store current link. + * @access private + */ + var $HREF; + + /** + * @var HTML PARSER: store font list. + * @access private + */ + var $fontList; + + /** + * @var HTML PARSER: true when font attribute is set. + * @access private + */ + var $issetfont; + + /** + * @var HTML PARSER: true when color attribute is set. + * @access private + */ + var $issetcolor; + + /** + * @var HTML PARSER: true in case of ordered list (OL), false otherwise. + * @access private + */ + var $listordered = false; + + /** + * @var HTML PARSER: count list items. + * @access private + */ + var $listcount = 0; + + /** + * @var HTML PARSER: size of table border. + * @access private + */ + var $tableborder = 0; + + /** + * @var HTML PARSER: true at the beginning of table. + * @access private + */ + var $tdbegin = false; + + /** + * @var HTML PARSER: table width. + * @access private + */ + var $tdwidth = 0; + + /** + * @var HTML PARSER: table height. + * @access private + */ + var $tdheight = 0; + + /** + * @var HTML PARSER: table align. + * @access private + */ + var $tdalign = "L"; + + /** + * @var HTML PARSER: table background color. + * @access private + */ + var $tdbgcolor = false; + + /** + * @var Store temporary font size in points. + * @access private + */ + var $tempfontsize = 10; + + /** + * @var Bold font style status. + * @access private + */ + var $b; + + /** + * @var Underlined font style status. + * @access private + */ + var $u; + + /** + * @var Italic font style status. + * @access private + */ + var $i; + + /** + * @var spacer for LI tags. + * @access private + */ + var $lispacer = ""; + + /** + * @var default encoding + * @access private + * @since 1.53.0.TC010 + */ + var $encoding = "UTF-8"; + + /** + * @var PHP internal encoding + * @access private + * @since 1.53.0.TC016 + */ + var $internal_encoding; + + /** + * @var store previous fill color as RGB array + * @access private + * @since 1.53.0.TC017 + */ + var $prevFillColor = array(255,255,255); + + /** + * @var store previous text color as RGB array + * @access private + * @since 1.53.0.TC017 + */ + var $prevTextColor = array(0,0,0); + + /** + * @var store previous font family + * @access private + * @since 1.53.0.TC017 + */ + var $prevFontFamily; + + /** + * @var store previous font style + * @access private + * @since 1.53.0.TC017 + */ + var $prevFontStyle; + + /** + * @var indicates if the document language is Right-To-Left + * @access private + * @since 2.0.000 + */ + var $rtl = false; + + /** + * @var used to force RTL or LTR string inversion + * @access private + * @since 2.0.000 + */ + var $tmprtl = false; + + // --- Variables used for document encryption: + + /** + * Indicates whether document is protected + * @access private + * @since 2.0.000 (2008-01-02) + */ + var $encrypted; + + /** + * U entry in pdf document + * @access private + * @since 2.0.000 (2008-01-02) + */ + var $Uvalue; + + /** + * O entry in pdf document + * @access private + * @since 2.0.000 (2008-01-02) + */ + var $Ovalue; + + /** + * P entry in pdf document + * @access private + * @since 2.0.000 (2008-01-02) + */ + var $Pvalue; + + /** + * encryption object id + * @access private + * @since 2.0.000 (2008-01-02) + */ + var $enc_obj_id; + + /** + * last RC4 key encrypted (cached for optimisation) + * @access private + * @since 2.0.000 (2008-01-02) + */ + var $last_rc4_key; + + /** + * last RC4 computed key + * @access private + * @since 2.0.000 (2008-01-02) + */ + var $last_rc4_key_c; + + // --- bookmark --- + + /** + * Outlines for bookmark + * @access private + * @since 2.1.002 (2008-02-12) + */ + var $outlines = array(); + + /** + * Outline root for bookmark + * @access private + * @since 2.1.002 (2008-02-12) + */ + var $OutlineRoot; + + + // --- javascript and form --- + + /** + * javascript code + * @access private + * @since 2.1.002 (2008-02-12) + */ + var $javascript = ""; + + /** + * javascript counter + * @access private + * @since 2.1.002 (2008-02-12) + */ + var $n_js; + + //------------------------------------------------------------ + // Public methods + //------------------------------------------------------------ + + /** + * This is the class constructor. + * It allows to set up the page format, the orientation and + * the measure unit used in all the methods (except for the font sizes). + * @since 1.0 + * @param string $orientation page orientation. Possible values are (case insensitive):
  • P or Portrait (default)
  • L or Landscape
+ * @param string $unit User measure unit. Possible values are:
  • pt: point
  • mm: millimeter (default)
  • cm: centimeter
  • in: inch

A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This is a very common unit in typography; font sizes are expressed in that unit. + * @param mixed $format The format used for pages. It can be either one of the following values (case insensitive) or a custom format in the form of a two-element array containing the width and the height (expressed in the unit given by unit).
  • 4A0
  • 2A0
  • A0
  • A1
  • A2
  • A3
  • A4 (default)
  • A5
  • A6
  • A7
  • A8
  • A9
  • A10
  • B0
  • B1
  • B2
  • B3
  • B4
  • B5
  • B6
  • B7
  • B8
  • B9
  • B10
  • C0
  • C1
  • C2
  • C3
  • C4
  • C5
  • C6
  • C7
  • C8
  • C9
  • C10
  • RA0
  • RA1
  • RA2
  • RA3
  • RA4
  • SRA0
  • SRA1
  • SRA2
  • SRA3
  • SRA4
  • LETTER
  • LEGAL
  • EXECUTIVE
  • FOLIO
+ * @param boolean $unicode TRUE means that the input text is unicode (default = true) + * @param String $encoding charset encoding; default is UTF-8 + */ + function TCPDF($orientation='P', $unit='mm', $format='A4', $unicode=true, $encoding="UTF-8") { + + /* Set internal character encoding to ASCII */ + if (function_exists("mb_internal_encoding") AND mb_internal_encoding()) { + $this->internal_encoding = mb_internal_encoding(); + mb_internal_encoding("ASCII"); + } + + // set language direction + $this->rtl = $this->l['a_meta_dir']=='rtl' ? true : false; + $this->tmprtl = false; + + //Some checks + $this->_dochecks(); + + //Initialization of properties + $this->isunicode=$unicode; + $this->page=0; + $this->n=2; + $this->buffer=''; + $this->pages=array(); + $this->OrientationChanges=array(); + $this->state=0; + $this->fonts=array(); + $this->FontFiles=array(); + $this->diffs=array(); + $this->images=array(); + $this->links=array(); + $this->InFooter=false; + $this->lasth=0; + $this->FontFamily=''; + $this->FontStyle=''; + $this->FontSizePt=12; + $this->underline=false; + $this->DrawColor='0 G'; + $this->FillColor='0 g'; + $this->TextColor='0 g'; + $this->ColorFlag=false; + $this->ws=0; + // encryption values + $this->encrypted=false; + $this->last_rc4_key=''; + $this->padding="\x28\xBF\x4E\x5E\x4E\x75\x8A\x41\x64\x00\x4E\x56\xFF\xFA\x01\x08\x2E\x2E\x00\xB6\xD0\x68\x3E\x80\x2F\x0C\xA9\xFE\x64\x53\x69\x7A"; + + //Standard Unicode fonts + $this->CoreFonts=array( + 'courier'=>'Courier', + 'courierB'=>'Courier-Bold', + 'courierI'=>'Courier-Oblique', + 'courierBI'=>'Courier-BoldOblique', + 'helvetica'=>'Helvetica', + 'helveticaB'=>'Helvetica-Bold', + 'helveticaI'=>'Helvetica-Oblique', + 'helveticaBI'=>'Helvetica-BoldOblique', + 'times'=>'Times-Roman', + 'timesB'=>'Times-Bold', + 'timesI'=>'Times-Italic', + 'timesBI'=>'Times-BoldItalic', + 'symbol'=>'Symbol', + 'zapfdingbats'=>'ZapfDingbats' + ); + + //Scale factor + switch (strtolower($unit)){ + case 'pt': {$this->k=1; break;} + case 'mm': {$this->k=72/25.4; break;} + case 'cm': {$this->k=72/2.54; break;} + case 'in': {$this->k=72; break;} + default : {$this->Error('Incorrect unit: '.$unit); break;} + } + + //Page format + if(is_string($format)) { + // Page formats (45 standard ISO paper formats and 4 american common formats). + // Paper cordinates are calculated in this way: (inches * 72) where (1 inch = 2.54 cm) + switch (strtoupper($format)){ + case '4A0': {$format = array(4767.87,6740.79); break;} + case '2A0': {$format = array(3370.39,4767.87); break;} + case 'A0': {$format = array(2383.94,3370.39); break;} + case 'A1': {$format = array(1683.78,2383.94); break;} + case 'A2': {$format = array(1190.55,1683.78); break;} + case 'A3': {$format = array(841.89,1190.55); break;} + case 'A4': default: {$format = array(595.28,841.89); break;} + case 'A5': {$format = array(419.53,595.28); break;} + case 'A6': {$format = array(297.64,419.53); break;} + case 'A7': {$format = array(209.76,297.64); break;} + case 'A8': {$format = array(147.40,209.76); break;} + case 'A9': {$format = array(104.88,147.40); break;} + case 'A10': {$format = array(73.70,104.88); break;} + case 'B0': {$format = array(2834.65,4008.19); break;} + case 'B1': {$format = array(2004.09,2834.65); break;} + case 'B2': {$format = array(1417.32,2004.09); break;} + case 'B3': {$format = array(1000.63,1417.32); break;} + case 'B4': {$format = array(708.66,1000.63); break;} + case 'B5': {$format = array(498.90,708.66); break;} + case 'B6': {$format = array(354.33,498.90); break;} + case 'B7': {$format = array(249.45,354.33); break;} + case 'B8': {$format = array(175.75,249.45); break;} + case 'B9': {$format = array(124.72,175.75); break;} + case 'B10': {$format = array(87.87,124.72); break;} + case 'C0': {$format = array(2599.37,3676.54); break;} + case 'C1': {$format = array(1836.85,2599.37); break;} + case 'C2': {$format = array(1298.27,1836.85); break;} + case 'C3': {$format = array(918.43,1298.27); break;} + case 'C4': {$format = array(649.13,918.43); break;} + case 'C5': {$format = array(459.21,649.13); break;} + case 'C6': {$format = array(323.15,459.21); break;} + case 'C7': {$format = array(229.61,323.15); break;} + case 'C8': {$format = array(161.57,229.61); break;} + case 'C9': {$format = array(113.39,161.57); break;} + case 'C10': {$format = array(79.37,113.39); break;} + case 'RA0': {$format = array(2437.80,3458.27); break;} + case 'RA1': {$format = array(1729.13,2437.80); break;} + case 'RA2': {$format = array(1218.90,1729.13); break;} + case 'RA3': {$format = array(864.57,1218.90); break;} + case 'RA4': {$format = array(609.45,864.57); break;} + case 'SRA0': {$format = array(2551.18,3628.35); break;} + case 'SRA1': {$format = array(1814.17,2551.18); break;} + case 'SRA2': {$format = array(1275.59,1814.17); break;} + case 'SRA3': {$format = array(907.09,1275.59); break;} + case 'SRA4': {$format = array(637.80,907.09); break;} + case 'LETTER': {$format = array(612.00,792.00); break;} + case 'LEGAL': {$format = array(612.00,1008.00); break;} + case 'EXECUTIVE': {$format = array(521.86,756.00); break;} + case 'FOLIO': {$format = array(612.00,936.00); break;} + // default: {$this->Error('Unknown page format: '.$format); break;} + } + $this->fwPt=$format[0]; + $this->fhPt=$format[1]; + } + else { + $this->fwPt=$format[0]*$this->k; + $this->fhPt=$format[1]*$this->k; + } + + $this->fw=$this->fwPt/$this->k; + $this->fh=$this->fhPt/$this->k; + + //Page orientation + $orientation=strtolower($orientation); + if($orientation=='p' or $orientation=='portrait') { + $this->DefOrientation='P'; + $this->wPt=$this->fwPt; + $this->hPt=$this->fhPt; + } + elseif($orientation=='l' or $orientation=='landscape') { + $this->DefOrientation='L'; + $this->wPt=$this->fhPt; + $this->hPt=$this->fwPt; + } + else { + $this->Error('Incorrect orientation: '.$orientation); + } + + $this->CurOrientation=$this->DefOrientation; + $this->w=$this->wPt/$this->k; + $this->h=$this->hPt/$this->k; + //Page margins (1 cm) + $margin=28.35/$this->k; + $this->SetMargins($margin,$margin); + //Interior cell margin (1 mm) + $this->cMargin=$margin/10; + //Line width (0.2 mm) + $this->LineWidth=.567/$this->k; + //Automatic page break + $this->SetAutoPageBreak(true,2*$margin); + //Full width display mode + $this->SetDisplayMode('fullwidth'); + //Compression + $this->SetCompression(true); + //Set default PDF version number + $this->PDFVersion = "1.5"; + + $this->encoding = $encoding; + $this->b = 0; + $this->i = 0; + $this->u = 0; + $this->HREF = ''; + $this->fontlist = array("arial", "times", "courier", "helvetica", "symbol"); + $this->issetfont = false; + $this->issetcolor = false; + $this->tableborder = 0; + $this->tdbegin = false; + $this->tdwidth= 0; + $this->tdheight = 0; + if($this->rtl) { + $this->tdalign = "R"; + } else { + $this->tdalign = "L"; + } + $this->tdbgcolor = false; + + $this->SetFillColor(200, 200, 200, true); + $this->SetTextColor(0, 0, 0, true); + } + + /** + * Enable or disable Right-To-Left language mode + * @param Boolean $enable if true enable Right-To-Left language mode. + * @since 2.0.000 (2008-01-03) + */ + function setRTL($enable) { + $this->rtl = $enable ? true : false; + $this->tmprtl = false; + } + + /** + * Force temporary RTL language direction + * @param mixed $mode can be false, 'L' for LTR or 'R' for RTL + * @since 2.1.000 (2008-01-09) + */ + function setTempRTL($mode) { + switch ($mode) { + case false: + case 'L': + case 'R': { + $this->tmprtl = $mode; + } + } + } + + /** + * Set the last cell height. + * @param float $h cell height. + * @author Nicola Asuni + * @since 1.53.0.TC034 + */ + function setLastH($h) { + $this->lasth=$h; + } + + /** + * Set the image scale. + * @param float $scale image scale. + * @author Nicola Asuni + * @since 1.5.2 + */ + function setImageScale($scale) { + $this->imgscale=$scale; + } + + /** + * Returns the image scale. + * @return float image scale. + * @author Nicola Asuni + * @since 1.5.2 + */ + function getImageScale() { + return $this->imgscale; + } + + /** + * Returns the page width in units. + * @return int page width. + * @author Nicola Asuni + * @since 1.5.2 + */ + function getPageWidth() { + return $this->w; + } + + /** + * Returns the page height in units. + * @return int page height. + * @author Nicola Asuni + * @since 1.5.2 + */ + function getPageHeight() { + return $this->h; + } + + /** + * Returns the page break margin. + * @return int page break margin. + * @author Nicola Asuni + * @since 1.5.2 + */ + function getBreakMargin() { + return $this->bMargin; + } + + /** + * Returns the scale factor (number of points in user unit). + * @return int scale factor. + * @author Nicola Asuni + * @since 1.5.2 + */ + function getScaleFactor() { + return $this->k; + } + + /** + * Defines the left, top and right margins. By default, they equal 1 cm. Call this method to change them. + * @param float $left Left margin. + * @param float $top Top margin. + * @param float $right Right margin. Default value is the left one. + * @since 1.0 + * @see SetLeftMargin(), SetTopMargin(), SetRightMargin(), SetAutoPageBreak() + */ + function SetMargins($left, $top, $right=-1) { + //Set left, top and right margins + $this->lMargin=$left; + $this->tMargin=$top; + if($right==-1) { + $right=$left; + } + $this->rMargin=$right; + } + + /** + * Defines the left margin. The method can be called before creating the first page. If the current abscissa gets out of page, it is brought back to the margin. + * @param float $margin The margin. + * @since 1.4 + * @see SetTopMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins() + */ + function SetLeftMargin($margin) { + //Set left margin + $this->lMargin=$margin; + if(($this->page > 0) AND ($this->x < $margin)) { + $this->x = $margin; + } + } + + /** + * Defines the top margin. The method can be called before creating the first page. + * @param float $margin The margin. + * @since 1.5 + * @see SetLeftMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins() + */ + function SetTopMargin($margin) { + //Set top margin + $this->tMargin=$margin; + if(($this->page > 0) AND ($this->y < $margin)) { + $this->y = $margin; + } + } + + /** + * Defines the right margin. The method can be called before creating the first page. + * @param float $margin The margin. + * @since 1.5 + * @see SetLeftMargin(), SetTopMargin(), SetAutoPageBreak(), SetMargins() + */ + function SetRightMargin($margin) { + $this->rMargin=$margin; + if(($this->page > 0) AND ($this->x > ($this->w - $margin))) { + $this->x = $this->w - $margin; + } + } + + /** + * Set the internal Cell padding. + * @param float $pad internal padding. + * @since 2.1.000 (2008-01-09) + * @see Cell(), SetLeftMargin(), SetTopMargin(), SetAutoPageBreak(), SetMargins() + */ + function SetCellPadding($pad) { + $this->cMargin=$pad; + } + + /** + * Enables or disables the automatic page breaking mode. When enabling, the second parameter is the distance from the bottom of the page that defines the triggering limit. By default, the mode is on and the margin is 2 cm. + * @param boolean $auto Boolean indicating if mode should be on or off. + * @param float $margin Distance from the bottom of the page. + * @since 1.0 + * @see Cell(), MultiCell(), AcceptPageBreak() + */ + function SetAutoPageBreak($auto, $margin=0) { + //Set auto page break mode and triggering margin + $this->AutoPageBreak = $auto; + $this->bMargin = $margin; + $this->PageBreakTrigger = $this->h - $margin; + } + + /** + * Defines the way the document is to be displayed by the viewer. The zoom level can be set: pages can be displayed entirely on screen, occupy the full width of the window, use real size, be scaled by a specific zooming factor or use viewer default (configured in the Preferences menu of Acrobat). The page layout can be specified too: single at once, continuous display, two columns or viewer default. By default, documents use the full width mode with continuous display. + * @param mixed $zoom The zoom to use. It can be one of the following string values or a number indicating the zooming factor to use.
  • fullpage: displays the entire page on screen
  • fullwidth: uses maximum width of window
  • real: uses real size (equivalent to 100% zoom)
  • default: uses viewer default mode
+ * @param string $layout The page layout. Possible values are:
  • single: displays one page at once
  • continuous: displays pages continuously (default)
  • two: displays two pages on two columns
  • default: uses viewer default mode
+ * @since 1.2 + */ + function SetDisplayMode($zoom, $layout='continuous') { + //Set display mode in viewer + if($zoom=='fullpage' or $zoom=='fullwidth' or $zoom=='real' or $zoom=='default' or !is_string($zoom)) { + $this->ZoomMode=$zoom; + } + else { + $this->Error('Incorrect zoom display mode: '.$zoom); + } + if($layout=='single' or $layout=='continuous' or $layout=='two' or $layout=='default') { + $this->LayoutMode=$layout; + } + else { + $this->Error('Incorrect layout display mode: '.$layout); + } + } + + /** + * Activates or deactivates page compression. When activated, the internal representation of each page is compressed, which leads to a compression ratio of about 2 for the resulting document. Compression is on by default. + * Note: the Zlib extension is required for this feature. If not present, compression will be turned off. + * @param boolean $compress Boolean indicating if compression must be enabled. + * @since 1.4 + */ + function SetCompression($compress) { + //Set page compression + if(function_exists('gzcompress')) { + $this->compress=$compress; + } + else { + $this->compress=false; + } + } + + /** + * Defines the title of the document. + * @param string $title The title. + * @since 1.2 + * @see SetAuthor(), SetCreator(), SetKeywords(), SetSubject() + */ + function SetTitle($title) { + //Title of document + $this->title=$title; + } + + /** + * Defines the subject of the document. + * @param string $subject The subject. + * @since 1.2 + * @see SetAuthor(), SetCreator(), SetKeywords(), SetTitle() + */ + function SetSubject($subject) { + //Subject of document + $this->subject=$subject; + } + + /** + * Defines the author of the document. + * @param string $author The name of the author. + * @since 1.2 + * @see SetCreator(), SetKeywords(), SetSubject(), SetTitle() + */ + function SetAuthor($author) { + //Author of document + $this->author=$author; + } + + /** + * Associates keywords with the document, generally in the form 'keyword1 keyword2 ...'. + * @param string $keywords The list of keywords. + * @since 1.2 + * @see SetAuthor(), SetCreator(), SetSubject(), SetTitle() + */ + function SetKeywords($keywords) { + //Keywords of document + $this->keywords=$keywords; + } + + /** + * Defines the creator of the document. This is typically the name of the application that generates the PDF. + * @param string $creator The name of the creator. + * @since 1.2 + * @see SetAuthor(), SetKeywords(), SetSubject(), SetTitle() + */ + function SetCreator($creator) { + //Creator of document + $this->creator=$creator; + } + + /** + * Defines an alias for the total number of pages. It will be substituted as the document is closed.
+ * Example:
+ *
+		* class PDF extends TCPDF {
+		* 	function Footer() {
+		* 		//Go to 1.5 cm from bottom
+		* 		$this->SetY(-15);
+		* 		//Select Arial italic 8
+		* 		$this->SetFont('vera','I',8);
+		* 		//Print current and total page numbers
+		* 		$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
+		* 	}
+		* }
+		* $pdf=new PDF();
+		* $pdf->AliasNbPages();
+		* 
+ * @param string $alias The alias. Default value: {nb}. + * @since 1.4 + * @see PageNo(), Footer() + */ + function AliasNbPages($alias='{nb}') { + //Define an alias for total number of pages + $this->AliasNbPages = $this->_escapetext($alias); + } + + /** + * This method is automatically called in case of fatal error; it simply outputs the message and halts the execution. An inherited class may override it to customize the error handling but should always halt the script, or the resulting document would probably be invalid. + * 2004-06-11 :: Nicola Asuni : changed bold tag with strong + * @param string $msg The error message + * @since 1.0 + */ + function Error($msg) { + //Fatal error + die('TCPDF error: '.$msg); + } + + /** + * This method begins the generation of the PDF document. It is not necessary to call it explicitly because AddPage() does it automatically. + * Note: no page is created by this method + * @since 1.0 + * @see AddPage(), Close() + */ + function Open() { + //Begin document + $this->state=1; + } + + /** + * Terminates the PDF document. It is not necessary to call this method explicitly because Output() does it automatically. If the document contains no page, AddPage() is called to prevent from getting an invalid document. + * @since 1.0 + * @see Open(), Output() + */ + function Close() { + //Terminate document + if($this->state==3) { + return; + } + if($this->page==0) { + $this->AddPage(); + } + //Page footer + $this->InFooter=true; + $this->Footer(); + $this->InFooter=false; + //Close page + $this->_endpage(); + //Close document + $this->_enddoc(); + } + + /** + * Reset pointer to the last document page. + * @since 2.0.000 (2008-01-04) + * @see setPage(), getPage(), getNumPages() + */ + function lastPage() { + $this->page = count($this->pages); + } + + /** + * Move pointer to the apecified document page. + * @param int $pnum page number + * @since 2.1.000 (2008-01-07) + * @see getPage(), lastpage(), getNumPages() + */ + function setPage($pnum) { + if(($pnum > 0) AND ($pnum <= count($this->pages))) { + $this->page = $pnum; + } + } + + /** + * Get current document page number. + * @return int page number + * @since 2.1.000 (2008-01-07) + * @see setPage(), lastpage(), getNumPages() + */ + function getPage() { + return $this->page; + } + + + /** + * Get the total number of insered pages. + * @return int number of pages + * @since 2.1.000 (2008-01-07) + * @see setPage(), getPage(), lastpage() + */ + function getNumPages() { + return count($this->pages); + } + + /** + * Adds a new page to the document. If a page is already present, the Footer() method is called first to output the footer. Then the page is added, the current position set to the top-left corner according to the left and top margins, and Header() is called to display the header. + * The font which was set before calling is automatically restored. There is no need to call SetFont() again if you want to continue with the same font. The same is true for colors and line width. + * The origin of the coordinate system is at the top-left corner and increasing ordinates go downwards. + * @param string $orientation Page orientation. Possible values are (case insensitive):
  • P or Portrait
  • L or Landscape
The default value is the one passed to the constructor. + * @since 1.0 + * @see TCPDF(), Header(), Footer(), SetMargins() + */ + function AddPage($orientation='') { + if (count($this->pages) > $this->page) { + // this page has been already added + $this->page++; + $this->y = $this->tMargin; + return; + } + //Start a new page + if($this->state==0) { + $this->Open(); + } + $family=$this->FontFamily; + $style=$this->FontStyle.($this->underline ? 'U' : ''); + $size=$this->FontSizePt; + $lw=$this->LineWidth; + $dc=$this->DrawColor; + $fc=$this->FillColor; + $tc=$this->TextColor; + $cf=$this->ColorFlag; + if($this->page>0) { + //Page footer + $this->InFooter=true; + $this->Footer(); + $this->InFooter=false; + //Close page + $this->_endpage(); + } + //Start new page + $this->_beginpage($orientation); + //Set line cap style to square + $this->_out('2 J'); + //Set line width + $this->LineWidth=$lw; + $this->_out(sprintf('%.2f w',$lw*$this->k)); + //Set font + if($family) { + $this->SetFont($family,$style,$size); + } + //Set colors + $this->DrawColor=$dc; + if($dc!='0 G') { + $this->_out($dc); + } + $this->FillColor=$fc; + if($fc!='0 g') { + $this->_out($fc); + } + $this->TextColor=$tc; + $this->ColorFlag=$cf; + //Page header + $this->Header(); + //Restore line width + if($this->LineWidth!=$lw) { + $this->LineWidth=$lw; + $this->_out(sprintf('%.2f w',$lw*$this->k)); + } + //Restore font + if($family) { + $this->SetFont($family,$style,$size); + } + //Restore colors + if($this->DrawColor!=$dc) { + $this->DrawColor=$dc; + $this->_out($dc); + } + if($this->FillColor!=$fc) { + $this->FillColor=$fc; + $this->_out($fc); + } + $this->TextColor=$tc; + $this->ColorFlag=$cf; + } + + /** + * Set header data. + * @param string $ln header image logo + * @param string $lw header image logo width in mm + * @param string $ht string to print as title on document header + * @param string $hs string to print on document header + */ + function setHeaderData($ln="", $lw=0, $ht="", $hs="") { + $this->header_logo = $ln; + $this->header_logo_width = $lw; + $this->header_title = $ht; + $this->header_string = $hs; + } + + /** + * Set header margin. + * (minimum distance between header and top page margin) + * @param int $hm distance in millimeters + */ + function setHeaderMargin($hm=10) { + $this->header_margin = $hm; + } + + /** + * Set footer margin. + * (minimum distance between footer and bottom page margin) + * @param int $fm distance in millimeters + */ + function setFooterMargin($fm=10) { + $this->footer_margin = $fm; + } + + /** + * Set a flag to print page header. + * @param boolean $val set to true to print the page header (default), false otherwise. + */ + function setPrintHeader($val=true) { + $this->print_header = $val; + } + + /** + * Set a flag to print page footer. + * @param boolean $value set to true to print the page footer (default), false otherwise. + */ + function setPrintFooter($val=true) { + $this->print_footer = $val; + } + + /** + * This method is used to render the page header. + * It is automatically called by AddPage() and could be overwritten in your own inherited class. + */ + function Header() { + if ($this->print_header) { + + if (!isset($this->original_lMargin)) { + $this->original_lMargin = $this->lMargin; + } + if (!isset($this->original_rMargin)) { + $this->original_rMargin = $this->rMargin; + } + + // reset original header margins + $this->rMargin = $this->original_rMargin; + $this->lMargin = $this->original_lMargin; + + // save current font values + $font_family = $this->FontFamily; + $font_style = $this->FontStyle; + $font_size = $this->FontSizePt; + + //set current position + if ($this->rtl) { + $this->SetXY($this->original_rMargin, $this->header_margin); + } else { + $this->SetXY($this->original_lMargin, $this->header_margin); + } + + if (($this->header_logo) AND ($this->header_logo != K_BLANK_IMAGE)) { + $this->Image(K_PATH_IMAGES.$this->header_logo, $this->GetX(), $this->header_margin, $this->header_logo_width); + } else { + $this->img_rb_x = $this->GetX(); + $this->img_rb_y = $this->GetY(); + } + + $cell_height = round((K_CELL_HEIGHT_RATIO * $this->header_font[2]) / $this->k, 2); + // set starting margin for text data cell + if ($this->rtl) { + $header_x = $this->original_rMargin + ($this->header_logo_width * 1.1); + } else { + $header_x = $this->original_lMargin + ($this->header_logo_width * 1.1); + } + + // header title + $this->SetFont($this->header_font[0], 'B', $this->header_font[2] + 1); + $this->SetX($header_x); + $this->Cell($this->header_width, $cell_height, $this->header_title, 0, 1, ''); + + // header string + $this->SetFont($this->header_font[0], $this->header_font[1], $this->header_font[2]); + $this->SetX($header_x); + $this->MultiCell($this->header_width, $cell_height, $this->header_string, 0, '', 0, 1, 0, 0, true, 0); + + // print an ending header line + //set style for cell border + $prevlinewidth = $this->GetLineWidth(); + $line_width = 0.3; + $this->SetLineWidth($line_width); + $this->SetDrawColor(0, 0, 0); + $this->SetY(1 + max($this->img_rb_y, $this->GetY())); + if ($this->rtl) { + $this->SetX($this->original_rMargin); + } else { + $this->SetX($this->original_lMargin); + } + $this->Cell(0, 0, '', 'T', 0, 'C'); + $this->SetLineWidth($prevlinewidth); + + //restore position + if ($this->rtl) { + $this->SetXY($this->original_rMargin, $this->tMargin); + } else { + $this->SetXY($this->original_lMargin, $this->tMargin); + } + + // restore font values + $this->SetFont($font_family, $font_style, $font_size); + } + } + + /** + * This method is used to render the page footer. + * It is automatically called by AddPage() and could be overwritten in your own inherited class. + */ + function Footer() { + if ($this->print_footer) { + + if (!isset($this->original_lMargin)) { + $this->original_lMargin = $this->lMargin; + } + if (!isset($this->original_rMargin)) { + $this->original_rMargin = $this->rMargin; + } + + // reset original header margins + $this->rMargin = $this->original_rMargin; + $this->lMargin = $this->original_lMargin; + + // save current font values + $font_family = $this->FontFamily; + $font_style = $this->FontStyle; + $font_size = $this->FontSizePt; + + //set font + $this->SetFont($this->footer_font[0], $this->footer_font[1] , $this->footer_font[2]); + //set style for cell border + $prevlinewidth = $this->GetLineWidth(); + $line_width = 0.3; + $this->SetLineWidth($line_width); + $this->SetDrawColor(0, 0, 0); + + $footer_height = round((K_CELL_HEIGHT_RATIO * $this->footer_font[2]) / $this->k, 2); //footer height + //get footer y position + $footer_y = $this->h - $this->footer_margin - $footer_height; + //set current position + if ($this->rtl) { + $this->SetXY($this->original_rMargin, $footer_y); + } else { + $this->SetXY($this->original_lMargin, $footer_y); + } + + //print document barcode + if ($this->barcode) { + $this->Ln(); + $barcode_width = round(($this->w - $this->original_lMargin - $this->original_rMargin)/3); //max width + $this->writeBarcode($this->GetX(), $footer_y + $line_width, $barcode_width, $footer_height - $line_width, "C128B", false, false, 2, $this->barcode); + } + + $pagenumtxt = $this->l['w_page']." ".$this->PageNo().' / {nb}'; + + $this->SetY($footer_y); + + //Print page number + if ($this->rtl) { + $this->SetX($this->original_rMargin); + $this->Cell(0, $footer_height, $pagenumtxt, 'T', 0, 'L'); + } else { + $this->SetX($this->original_lMargin); + $this->Cell(0, $footer_height, $pagenumtxt, 'T', 0, 'R'); + } + // restore line width + $this->SetLineWidth($prevlinewidth); + + // restore font values + $this->SetFont($font_family, $font_style, $font_size); + } + } + + /** + * Returns the current page number. + * @return int page number + * @since 1.0 + * @see AliasNbPages() + */ + function PageNo() { + //Get current page number + return $this->page; + } + + /** + * Defines the color used for all drawing operations (lines, rectangles and cell borders). It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page. + * @param int $r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255 + * @param int $g Green component (between 0 and 255) + * @param int $b Blue component (between 0 and 255) + * @since 1.3 + * @see SetFillColor(), SetTextColor(), Line(), Rect(), Cell(), MultiCell() + */ + function SetDrawColor($r, $g=-1, $b=-1) { + //Set color for all stroking operations + if(($r==0 and $g==0 and $b==0) or $g==-1) { + $this->DrawColor=sprintf('%.3f G',$r/255); + } + else { + $this->DrawColor=sprintf('%.3f %.3f %.3f RG',$r/255,$g/255,$b/255); + } + if($this->page>0) { + $this->_out($this->DrawColor); + } + } + + /** + * Defines the color used for all filling operations (filled rectangles and cell backgrounds). It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page. + * @param int $r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255 + * @param int $g Green component (between 0 and 255) + * @param int $b Blue component (between 0 and 255) + * @param boolean $storeprev if true stores the RGB array on $prevFillColor variable. + * @since 1.3 + * @see SetDrawColor(), SetTextColor(), Rect(), Cell(), MultiCell() + */ + function SetFillColor($r, $g=-1, $b=-1, $storeprev=false) { + //Set color for all filling operations + if(($r==0 and $g==0 and $b==0) or $g==-1) { + $this->FillColor=sprintf('%.3f g',$r/255); + } + else { + $this->FillColor=sprintf('%.3f %.3f %.3f rg',$r/255,$g/255,$b/255); + } + $this->ColorFlag=($this->FillColor!=$this->TextColor); + if($this->page>0) { + $this->_out($this->FillColor); + } + if ($storeprev) { + // store color as previous value + $this->prevFillColor = array($r, $g, $b); + } + } + + /** + * Defines the color used for text. It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page. + * @param int $r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255 + * @param int $g Green component (between 0 and 255) + * @param int $b Blue component (between 0 and 255) + * @param boolean $storeprev if true stores the RGB array on $prevTextColor variable. + * @since 1.3 + * @see SetDrawColor(), SetFillColor(), Text(), Cell(), MultiCell() + */ + function SetTextColor($r, $g=-1, $b=-1, $storeprev=false) { + //Set color for text + if(($r==0 and $g==0 and $b==0) or $g==-1) { + $this->TextColor=sprintf('%.3f g',$r/255); + } + else { + $this->TextColor=sprintf('%.3f %.3f %.3f rg',$r/255,$g/255,$b/255); + } + $this->ColorFlag=($this->FillColor!=$this->TextColor); + if ($storeprev) { + // store color as previous value + $this->prevTextColor = array($r, $g, $b); + } + } + + /** + * Returns the length of a string in user unit. A font must be selected.
+ * @param string $s The string whose length is to be computed + * @return int string length + * @author Nicola Asuni + * @since 1.2 + */ + function GetStringWidth($s) { + return $this->GetArrStringWidth($this->utf8Bidi($this->UTF8StringToArray($s), $this->tmprtl)); + } + + /** + * Returns the string length of an array of chars in user unit. A font must be selected.
+ * @param string $arr The array of chars whose total length is to be computed + * @return int string length + * @author Nicola Asuni + * @since 2.4.000 (2008-03-06) + */ + function GetArrStringWidth($sa) { + $w = 0; + foreach($sa as $char) { + $w += $this->GetCharWidth($char); + } + return $w; + } + + /** + * Returns the length of the char in user unit. A font must be selected.
+ * @param string $char The char whose length is to be returned + * @return int char width + * @author Nicola Asuni + * @since 2.4.000 (2008-03-06) + */ + function GetCharWidth($char) { + $cw = &$this->CurrentFont['cw']; + if (isset($cw[$char])) { + $w = $cw[$char]; + } elseif(isset($cw[ord($char)])) { + $w = $cw[ord($char)]; + } elseif(isset($cw[chr($char)])) { + $w = $cw[chr($char)]; + } elseif(isset($this->CurrentFont['desc']['MissingWidth'])) { + $w = $this->CurrentFont['desc']['MissingWidth']; // set default size + } else { + $w = 500; + } + return ($w * $this->FontSize / 1000); + } + + /** + * Returns the numbero of characters in a string. + * @param string $s The input string. + * @return int number of characters + * @since 2.0.0001 (2008-01-07) + */ + function GetNumChars($s) { + if($this->isunicode) { + return count($this->UTF8StringToArray($s)); + } + return strlen($s); + } + + /** + * Imports a TrueType or Type1 font and makes it available. It is necessary to generate a font definition file first with the makefont.php utility. The definition file (and the font file itself when embedding) must be present either in the current directory or in the one indicated by K_PATH_FONTS if the constant is defined. If it could not be found, the error "Could not include font definition file" is generated. + * Support UTF-8 Unicode [Nicola Asuni, 2005-01-02]. + * Example:
+ *
+		* $pdf->AddFont('Comic','I');
+		* // is equivalent to:
+		* $pdf->AddFont('Comic','I','comici.php');
+		* 
+ * @param string $family Font family. The name can be chosen arbitrarily. If it is a standard family name, it will override the corresponding font. + * @param string $style Font style. Possible values are (case insensitive):
  • empty string: regular (default)
  • B: bold
  • I: italic
  • BI or IB: bold italic
+ * @param string $file The font definition file. By default, the name is built from the family and style, in lower case with no space. + * @since 1.5 + * @see SetFont() + */ + function AddFont($family, $style='', $file='') { + if(empty($family)) { + return; + } + + //Add a TrueType or Type1 font + $family = strtolower($family); + if((!$this->isunicode) AND ($family == 'arial')) { + $family = 'helvetica'; + } + + $style=strtoupper($style); + $style=str_replace('U','',$style); + if($style == 'IB') { + $style = 'BI'; + } + + $fontkey = $family.$style; + // check if the font has been already added + if(isset($this->fonts[$fontkey])) { + return; + } + + if($file=='') { + $file = str_replace(' ', '', $family).strtolower($style).'.php'; + } + if(!file_exists($this->_getfontpath().$file)) { + // try to load the basic file without styles + $file = str_replace(' ', '', $family).'.php'; + } + + include($this->_getfontpath().$file); + + if(!isset($name) AND !isset($fpdf_charwidths)) { + $this->Error('Could not include font definition file'); + } + + $i = count($this->fonts)+1; + + if($this->isunicode) { + $this->fonts[$fontkey] = array('i'=>$i, 'type'=>$type, 'name'=>$name, 'desc'=>$desc, 'up'=>$up, 'ut'=>$ut, 'cw'=>$cw, 'enc'=>$enc, 'file'=>$file, 'ctg'=>$ctg); + $fpdf_charwidths[$fontkey] = $cw; + } else { + $this->fonts[$fontkey]=array('i'=>$i, 'type'=>'core', 'name'=>$this->CoreFonts[$fontkey], 'up'=>-100, 'ut'=>50, 'cw'=>$fpdf_charwidths[$fontkey]); + } + + if(isset($diff) AND (!empty($diff))) { + //Search existing encodings + $d=0; + $nb=count($this->diffs); + for($i=1;$i<=$nb;$i++) { + if($this->diffs[$i]==$diff) { + $d=$i; + break; + } + } + if($d==0) { + $d=$nb+1; + $this->diffs[$d]=$diff; + } + $this->fonts[$fontkey]['diff']=$d; + } + if(!empty($file)) { + if((strcasecmp($type,"TrueType") == 0) OR (strcasecmp($type,"TrueTypeUnicode") == 0)) { + $this->FontFiles[$file]=array('length1'=>$originalsize); + } + else { + $this->FontFiles[$file]=array('length1'=>$size1,'length2'=>$size2); + } + } + } + + /** + * Sets the font used to print character strings. It is mandatory to call this method at least once before printing text or the resulting document would not be valid. + * The font can be either a standard one or a font added via the AddFont() method. Standard fonts use Windows encoding cp1252 (Western Europe). + * The method can be called before the first page is created and the font is retained from page to page. + If you just wish to change the current font size, it is simpler to call SetFontSize(). + * Note: for the standard fonts, the font metric files must be accessible. There are three possibilities for this:
  • They are in the current directory (the one where the running script lies)
  • They are in one of the directories defined by the include_path parameter
  • They are in the directory defined by the K_PATH_FONTS constant

+ * Example for the last case (note the trailing slash):
+ *
+		* define('K_PATH_FONTS','/home/www/font/');
+		* require('tcpdf.php');
+		*
+		* //Times regular 12
+		* $pdf->SetFont('Times');
+		* //Arial bold 14
+		* $pdf->SetFont('vera','B',14);
+		* //Removes bold
+		* $pdf->SetFont('');
+		* //Times bold, italic and underlined 14
+		* $pdf->SetFont('Times','BIU');
+		* 

+ * If the file corresponding to the requested font is not found, the error "Could not include font metric file" is generated. + * @param string $family Family font. It can be either a name defined by AddFont() or one of the standard families (case insensitive):
  • Courier (fixed-width)
  • Helvetica or Arial (synonymous; sans serif)
  • Times (serif)
  • Symbol (symbolic)
  • ZapfDingbats (symbolic)
It is also possible to pass an empty string. In that case, the current family is retained. + * @param string $style Font style. Possible values are (case insensitive):
  • empty string: regular
  • B: bold
  • I: italic
  • U: underline
or any combination. The default value is regular. Bold and italic styles do not apply to Symbol and ZapfDingbats + * @param float $size Font size in points. The default value is the current size. If no size has been specified since the beginning of the document, the value taken is 12 + * @since 1.0 + * @see AddFont(), SetFontSize() + */ + function SetFont($family, $style='', $size=0) { + // save previous values + $this->prevFontFamily = $this->FontFamily; + $this->prevFontStyle = $this->FontStyle; + + //Select a font; size given in points + global $fpdf_charwidths; + + $family=strtolower($family); + if($family=='') { + $family=$this->FontFamily; + } + if((!$this->isunicode) AND ($family == 'arial')) { + $family = 'helvetica'; + } + elseif(($family=="symbol") OR ($family=="zapfdingbats")) { + $style=''; + } + $style=strtoupper($style); + + if(strpos($style,'U')!==false) { + $this->underline=true; + $style=str_replace('U','',$style); + } + else { + $this->underline=false; + } + if($style=='IB') { + $style='BI'; + } + if($size==0) { + $size=$this->FontSizePt; + } + + // try to add font (if not already added) + if($this->isunicode) { + $this->AddFont($family, $style); + } + + //Test if font is already selected + if(($this->FontFamily == $family) AND ($this->FontStyle == $style) AND ($this->FontSizePt == $size)) { + return; + } + + $fontkey = $family.$style; + //if(!isset($this->fonts[$fontkey]) AND isset($this->fonts[$family])) { + // $style=''; + //} + + //Test if used for the first time + if(!isset($this->fonts[$fontkey])) { + //Check if one of the standard fonts + if(isset($this->CoreFonts[$fontkey])) { + if(!isset($fpdf_charwidths[$fontkey])) { + //Load metric file + $file = $family; + if(($family!='symbol') AND ($family!='zapfdingbats')) { + $file .= strtolower($style); + } + if(!file_exists($this->_getfontpath().$file.'.php')) { + // try to load the basic file without styles + $file = $family; + $fontkey = $family; + } + include($this->_getfontpath().$file.'.php'); + if (($this->isunicode AND !isset($ctg)) OR ((!$this->isunicode) AND (!isset($fpdf_charwidths[$fontkey]))) ) { + $this->Error("Could not include font metric file [".$fontkey."]: ".$this->_getfontpath().$file.".php"); + } + } + $i = count($this->fonts) + 1; + + if($this->isunicode) { + $this->fonts[$fontkey] = array('i'=>$i, 'type'=>$type, 'name'=>$name, 'desc'=>$desc, 'up'=>$up, 'ut'=>$ut, 'cw'=>$cw, 'enc'=>$enc, 'file'=>$file, 'ctg'=>$ctg); + $fpdf_charwidths[$fontkey] = $cw; + } else { + $this->fonts[$fontkey]=array('i'=>$i, 'type'=>'core', 'name'=>$this->CoreFonts[$fontkey], 'up'=>-100, 'ut'=>50, 'cw'=>$fpdf_charwidths[$fontkey]); + } + } + else { + $this->Error('Undefined font: '.$family.' '.$style); + } + } + //Select it + $this->FontFamily = $family; + $this->FontStyle = $style; + $this->FontSizePt = $size; + $this->FontSize = $size / $this->k; + $this->CurrentFont = &$this->fonts[$fontkey]; + if($this->page>0) { + $this->_out(sprintf('BT /F%d %.2f Tf ET', $this->CurrentFont['i'], $this->FontSizePt)); + } + } + + /** + * Defines the size of the current font. + * @param float $size The size (in points) + * @since 1.0 + * @see SetFont() + */ + function SetFontSize($size) { + //Set font size in points + if($this->FontSizePt==$size) { + return; + } + $this->FontSizePt = $size; + $this->FontSize = $size / $this->k; + if($this->page > 0) { + $this->_out(sprintf('BT /F%d %.2f Tf ET', $this->CurrentFont['i'], $this->FontSizePt)); + } + } + + /** + * Creates a new internal link and returns its identifier. An internal link is a clickable area which directs to another place within the document.
+ * The identifier can then be passed to Cell(), Write(), Image() or Link(). The destination is defined with SetLink(). + * @since 1.5 + * @see Cell(), Write(), Image(), Link(), SetLink() + */ + function AddLink() { + //Create a new internal link + $n=count($this->links)+1; + $this->links[$n]=array(0,0); + return $n; + } + + /** + * Defines the page and position a link points to + * @param int $link The link identifier returned by AddLink() + * @param float $y Ordinate of target position; -1 indicates the current position. The default value is 0 (top of page) + * @param int $page Number of target page; -1 indicates the current page. This is the default value + * @since 1.5 + * @see AddLink() + */ + function SetLink($link, $y=0, $page=-1) { + //Set destination of internal link + if($y==-1) { + $y=$this->y; + } + if($page==-1) { + $page=$this->page; + } + $this->links[$link]=array($page,$y); + } + + /** + * Puts a link on a rectangular area of the page. Text or image links are generally put via Cell(), Write() or Image(), but this method can be useful for instance to define a clickable area inside an image. + * @param float $x Abscissa of the upper-left corner of the rectangle (or upper-right for RTL languages) + * @param float $y Ordinate of the upper-left corner of the rectangle (or upper-right for RTL languages) + * @param float $w Width of the rectangle + * @param float $h Height of the rectangle + * @param mixed $link URL or identifier returned by AddLink() + * @since 1.5 + * @see AddLink(), Cell(), Write(), Image() + */ + function Link($x, $y, $w, $h, $link) { + $this->PageLinks[$this->page][] = array($x * $this->k, $this->hPt - $y * $this->k, $w * $this->k, $h*$this->k, $link); + } + + /** + * Prints a character string. The origin is on the left of the first charcter, on the baseline. This method allows to place a string precisely on the page, but it is usually easier to use Cell(), MultiCell() or Write() which are the standard methods to print text. + * @param float $x Abscissa of the origin + * @param float $y Ordinate of the origin + * @param string $txt String to print + * @since 1.0 + * @see SetFont(), SetTextColor(), Cell(), MultiCell(), Write() + */ + function Text($x, $y, $txt) { + //Output a string + if($this->rtl) { + // bidirectional algorithm (some chars may be changed affecting the line length) + $s = $this->utf8Bidi($this->UTF8StringToArray($txt), $this->tmprtl); + $l = $this->GetArrStringWidth($s); + $xr = $this->w - $x - $this->GetArrStringWidth($s); + } else { + $xr = $x; + } + $s = sprintf('BT %.2f %.2f Td (%s) Tj ET', $xr * $this->k, ($this->h-$y) * $this->k, $this->_escapetext($txt)); + if($this->underline AND ($txt!='')) { + $s .= ' '.$this->_dounderline($xr, $y, $txt); + } + if($this->ColorFlag) { + $s='q '.$this->TextColor.' '.$s.' Q'; + } + $this->_out($s); + } + + /** + * Whenever a page break condition is met, the method is called, and the break is issued or not depending on the returned value. The default implementation returns a value according to the mode selected by SetAutoPageBreak().
+ * This method is called automatically and should not be called directly by the application.
+ * Example:
+ * The method is overriden in an inherited class in order to obtain a 3 column layout:
+ *
+		* class PDF extends TCPDF {
+		* 	var $col=0;
+		*
+		* 	function SetCol($col) {
+		* 		//Move position to a column
+		* 		$this->col=$col;
+		* 		$x=10+$col*65;
+		* 		$this->SetLeftMargin($x);
+		* 		$this->SetX($x);
+		* 	}
+		*
+		* 	function AcceptPageBreak() {
+		* 		if($this->col<2) {
+		* 			//Go to next column
+		* 			$this->SetCol($this->col+1);
+		* 			$this->SetY(10);
+		* 			return false;
+		* 		}
+		* 		else {
+		* 			//Go back to first column and issue page break
+		* 			$this->SetCol(0);
+		* 			return true;
+		* 		}
+		* 	}
+		* }
+		*
+		* $pdf=new PDF();
+		* $pdf->Open();
+		* $pdf->AddPage();
+		* $pdf->SetFont('vera','',12);
+		* for($i=1;$i<=300;$i++) {
+		*     $pdf->Cell(0,5,"Line $i",0,1);
+		* }
+		* $pdf->Output();
+		* 
+ * @return boolean + * @since 1.4 + * @see SetAutoPageBreak() + */ + function AcceptPageBreak() { + //Accept automatic page break or not + return $this->AutoPageBreak; + } + + /** + * Prints a cell (rectangular area) with optional borders, background color and character string. The upper-left corner of the cell corresponds to the current position. The text can be aligned or centered. After the call, the current position moves to the right or to the next line. It is possible to put a link on the text.
+ * If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting. + * @param float $w Cell width. If 0, the cell extends up to the right margin. + * @param float $h Cell height. Default value: 0. + * @param string $txt String to print. Default value: empty string. + * @param mixed $border Indicates if borders must be drawn around the cell. The value can be either a number:
  • 0: no border (default)
  • 1: frame
or a string containing some or all of the following characters (in any order):
  • L: left
  • T: top
  • R: right
  • B: bottom
+ * @param int $ln Indicates where the current position should go after the call. Possible values are:
  • 0: to the right (or left for RTL languages)
  • 1: to the beginning of the next line
  • 2: below
+ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0. + * @param string $align Allows to center or align the text. Possible values are:
  • L or empty string: left align (default value)
  • C: center
  • R: right align
  • J: justify
+ * @param int $fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0. + * @param mixed $link URL or identifier returned by AddLink(). + * @param int $stretch stretch carachter mode:
  • 0 = disabled
  • 1 = horizontal scaling only if necessary
  • 2 = forced horizontal scaling
  • 3 = character spacing only if necessary
  • 4 = forced character spacing
+ * @since 1.0 + * @see SetFont(), SetDrawColor(), SetFillColor(), SetTextColor(), SetLineWidth(), AddLink(), Ln(), MultiCell(), Write(), SetAutoPageBreak() + */ + function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=0, $link='', $stretch=0) { + + $k = $this->k; + + if((($this->y + $h) > $this->PageBreakTrigger) AND empty($this->InFooter) AND $this->AcceptPageBreak()) { + //Automatic page break + $x = $this->x; + $ws = $this->ws; + if($ws > 0) { + $this->ws = 0; + $this->_out('0 Tw'); + } + $this->AddPage($this->CurOrientation); + if($ws > 0) { + $this->ws = $ws; + $this->_out(sprintf('%.3f Tw',$ws * $k)); + } + $this->x = $x; + } + if($w == 0) { + if ($this->rtl) { + $w = $this->x - $this->lMargin; + } else { + $w = $this->w - $this->rMargin - $this->x; + } + } + $s = ''; + if(($fill == 1) OR ($border == 1)) { + if($fill == 1) { + $op = ($border == 1) ? 'B' : 'f'; + } else { + $op = 'S'; + } + if ($this->rtl) { + $xk = ($this->x - $w) * $k; + } else { + $xk = $this->x * $k; + } + $s .= sprintf('%.2f %.2f %.2f %.2f re %s ', $xk, ($this->h - $this->y) * $k, $w * $k, -$h * $k, $op); + } + if(is_string($border)) { + $x=$this->x; + $y=$this->y; + if(strpos($border,'L')!==false) { + if ($this->rtl) { + $xk = ($x - $w) * $k; + } else { + $xk = $x * $k; + } + $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$xk,($this->h-$y)*$k,$xk,($this->h-($y+$h))*$k); + } + if(strpos($border,'T')!==false) { + if ($this->rtl) { + $xk = ($x - $w) * $k; + $xwk = $x * $k; + } else { + $xk = $x * $k; + $xwk = ($x + $w) * $k; + } + $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$xk,($this->h-$y)*$k,$xwk,($this->h-$y)*$k); + } + if(strpos($border,'R')!==false) { + if ($this->rtl) { + $xk = $x * $k; + } else { + $xk = ($x + $w) * $k; + } + $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$xk,($this->h-$y)*$k,$xk,($this->h-($y+$h))*$k); + } + if(strpos($border,'B')!==false) { + if ($this->rtl) { + $xk = ($x - $w) * $k; + $xwk = $x * $k; + } else { + $xk = $x * $k; + $xwk = ($x + $w) * $k; + } + $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$xk,($this->h-($y+$h))*$k,$xwk,($this->h-($y+$h))*$k); + } + } + if($txt != '') { + // text lenght + $width = $this->GetStringWidth($txt); + // ratio between cell lenght and text lenght + $ratio = ($w - (2 * $this->cMargin)) / $width; + + // stretch text if required + if (($stretch > 0) AND (($ratio < 1) OR (($ratio > 1) AND (($stretch % 2) == 0)))) { + if ($stretch > 2) { + // spacing + //Calculate character spacing in points + $char_space = ($w - $width - (2 * $this->cMargin)) / max($this->GetNumChars($s)-1,1) * $this->k; + //Set character spacing + $this->_out(sprintf('BT %.2f Tc ET', $char_space)); + } else { + // scaling + //Calculate horizontal scaling + $horiz_scale = $ratio*100.0; + //Set horizontal scaling + $this->_out(sprintf('BT %.2f Tz ET', $horiz_scale)); + } + $align = ''; + $width = $w - (2 * $this->cMargin); + } else { + $stretch == 0; + } + + if($align == 'L') { + if ($this->rtl) { + $dx = $w - $width - $this->cMargin; + } else { + $dx = $this->cMargin; + } + } elseif($align == 'R') { + if ($this->rtl) { + $dx = $this->cMargin; + } else { + $dx = $w - $width - $this->cMargin; + } + } elseif($align=='C') { + $dx = ($w - $width)/2; + } elseif($align=='J') { + if ($this->rtl) { + $dx = $w - $width - $this->cMargin; + } else { + $dx = $this->cMargin; + } + } else { + $dx = $this->cMargin; + } + if($this->ColorFlag) { + $s .= 'q '.$this->TextColor.' '; + } + $txt2 = $this->_escapetext($txt); + if ($this->rtl) { + $xdk = ($this->x - $dx - $width) * $k; + } else { + $xdk = ($this->x + $dx) * $k; + } + // 2008-02-16 Jacek Czekaj - multibyte justification + if ($align == 'J') { + // count number of spaces + $ns = substr_count($txt, ' '); + // get string width without spaces + $width = $this->GetStringWidth(str_replace(' ', '', $txt)); + // set word position to be used with TJ operator + $txt2 = str_replace(chr(0).' ', ') '. -2830*($w-$width-(2*$this->cMargin))/($ns?$ns:1)/$this->FontSize/$this->k . ' (', $txt2); + } + + $s.=sprintf('BT %.2f %.2f Td [(%s)] TJ ET', $xdk, ($this->h - ($this->y + 0.5 * $h + 0.3 * $this->FontSize)) * $k, $txt2); + + if($this->underline) { + if ($this->rtl) { + $xdx = $this->x - $dx - $width; + } else { + $xdx = $this->x + $dx; + } + $s.=' '.$this->_dounderline($xdx, $this->y + 0.5 * $h + 0.3 * $this->FontSize, $txt); + } + if($this->ColorFlag) { + $s.=' Q'; + } + if($link) { + if ($this->rtl) { + $xdx = $this->x - $dx - $width; + } else { + $xdx = $this->x + $dx; + } + $this->Link($xdx, $this->y + 0.5 * $h - 0.5 * $this->FontSize, $width, $this->FontSize, $link); + } + } + + // output cell + if($s) { + // output cell + $this->_out($s); + // reset text stretching + if($stretch > 2) { + //Reset character horizontal spacing + $this->_out('BT 0 Tc ET'); + } elseif($stretch > 0) { + //Reset character horizontal scaling + $this->_out('BT 100 Tz ET'); + } + } + + $this->lasth = $h; + + if($ln>0) { + //Go to the beginning of the next line + $this->y += $h; + if($ln == 1) { + if ($this->rtl) { + $this->x = $this->w - $this->rMargin; + } else { + $this->x = $this->lMargin; + } + } + } else { + // go left or right by case + if ($this->rtl) { + $this->x -= $w; + } else { + $this->x += $w; + } + } + } + + /** + * This method allows printing text with line breaks. They can be automatic (as soon as the text reaches the right border of the cell) or explicit (via the \n character). As many cells as necessary are output, one below the other.
+ * Text can be aligned, centered or justified. The cell block can be framed and the background painted. + * @param float $w Width of cells. If 0, they extend up to the right margin of the page. + * @param float $h Cell minimum height. The cell extends automatically if needed. + * @param string $txt String to print + * @param mixed $border Indicates if borders must be drawn around the cell block. The value can be either a number:
  • 0: no border (default)
  • 1: frame
or a string containing some or all of the following characters (in any order):
  • L: left
  • T: top
  • R: right
  • B: bottom
+ * @param string $align Allows to center or align the text. Possible values are:
  • L or empty string: left align
  • C: center
  • R: right align
  • J: justification (default value)
+ * @param int $fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0. + * @param int $ln Indicates where the current position should go after the call. Possible values are:
  • 0: to the right
  • 1: to the beginning of the next line [DEFAULT]
  • 2: below
+ * @param int $x x position in user units + * @param int $y y position in user units + * @param boolean $reseth if true reset the last cell height (default true). + * @param int $stretch stretch carachter mode:
  • 0 = disabled
  • 1 = horizontal scaling only if necessary
  • 2 = forced horizontal scaling
  • 3 = character spacing only if necessary
  • 4 = forced character spacing
+ * @return int Rerurn the number of lines. + * @since 1.3 + * @see SetFont(), SetDrawColor(), SetFillColor(), SetTextColor(), SetLineWidth(), Cell(), Write(), SetAutoPageBreak() + */ + function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0) { + if ((empty($this->lasth))OR ($reseth)) { + //set row height + $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO; + } + + // get current page number + $startpage = $this->page; + + if (!empty($y)) { + $this->SetY($y); + } else { + $y = $this->GetY(); + } + if (!empty($x)) { + $this->SetX($x); + } else { + $x = $this->GetX(); + } + + if(empty($w)) { + if ($this->rtl) { + $w = $this->x - $this->lMargin; + } else { + $w = $this->w - $this->rMargin - $this->x; + } + } + + // store original margin values + $lMargin = $this->lMargin; + $rMargin = $this->rMargin; + + // set new margin values + if ($this->rtl) { + $this->SetLeftMargin($this->x - $w); + $this->SetRightMargin($this->w - $this->x); + } else { + $this->SetLeftMargin($this->x); + $this->SetRightMargin($this->w - $this->x - $w); + } + + // calculate remaining vertical space on first page ($startpage) + $restspace = $this->getPageHeight() - $this->GetY() - $this->getBreakMargin(); + + // Write text + $nl = $this->Write($this->lasth, $txt, '', $fill, $align, true, $stretch); + + // Get end-of-text Y position + $currentY = $this->GetY(); + // get latest page number + $endpage = $this->page; + + if (!empty($border)) { + // check if a new page has been created + if ($endpage > $startpage) { + // design borders around HTML cells. + for ($page=$startpage; $page<=$endpage; $page++) { + $this->page = $page; + if ($page==$startpage) { + $this->SetY($this->getPageHeight() - $restspace - $this->getBreakMargin()); + $h = $restspace - 1; + } elseif ($page==$endpage) { + $this->SetY($this->tMargin); // put cursor at the beginning of text + $h = $currentY - $this->tMargin; + } else { + $this->SetY($this->tMargin); // put cursor at the beginning of text + $h = $this->getPageHeight() - $this->tMargin - $this->getBreakMargin(); + } + $this->SetX($x); + $this->Cell($w, $h, "", $border, 1, '', 0); + } + } else { + $h = max($h, ($currentY - $y)); + $this->SetY($y); // put cursor at the beginning of text + $this->SetX($x); + // design a cell around the text + $this->Cell($w, $h, "", $border, 1, '', 0); + } + } + + // restore original margin values + $this->SetLeftMargin($lMargin); + $this->SetRightMargin($rMargin); + + if($ln>0) { + //Go to the beginning of the next line + $this->SetY($currentY); + if($ln == 2) { + $this->SetX($x + $w); + } + } else { + // go left or right by case + $this->page = $startpage; + $this->y = $y; + $this->SetX($x + $w); + } + + return $nl; + } + + /** + * This method prints text from the current position.
+ * @param float $h Line height + * @param string $txt String to print + * @param mixed $link URL or identifier returned by AddLink() + * @param int $fill Indicates if the background must be painted (1) or transparent (0). Default value: 0. + * @param string $align Allows to center or align the text. Possible values are:
  • L or empty string: left align (default value)
  • C: center
  • R: right align
  • J: justify
+ * @param boolean $ln if true set cursor at the bottom of the line, otherwise set cursor at the top of the line. + * @param int $stretch stretch carachter mode:
  • 0 = disabled
  • 1 = horizontal scaling only if necessary
  • 2 = forced horizontal scaling
  • 3 = character spacing only if necessary
  • 4 = forced character spacing
+ * @return int Rerurn the number of lines. + * @since 1.5 + */ + function Write($h, $txt, $link='', $fill=0, $align='', $ln=false, $stretch=0) { + + // store current position + $prevx = $this->x; + $prevy = $this->y; + + // Adjust internal padding + if ($this->cMargin < ($this->LineWidth/2)) { + $this->cMargin = ($this->LineWidth/2); + } + + // Add top space if needed + if (($h - $this->FontSize) < $this->LineWidth) { + $this->y += $this->LineWidth/2; + } + + //if ($h < ($this->LineWidth)) { + // $h = ($this->LineWidth); + //} + + // calculating remaining line width ($w) + if ($this->rtl) { + $w = $this->x - $this->lMargin; + } else { + $w = $this->w - $this->rMargin - $this->x; + } + + // remove carriage returns + $s = str_replace("\r", '', $txt); + + // get array of chars + $chars = $this->UTF8StringToArray($s); + + // get the number of characters + $nb = count($chars); + + // handle single space character + if(($nb==1) AND preg_match("/[\s]/u", $s)) { + if ($this->rtl) { + $this->x -= $this->GetStringWidth($s); + } else { + $this->x += $this->GetStringWidth($s); + } + return; + } + + // max column width + $wmax = $w - (2 * $this->cMargin); + + $i = 0; // character position + $j = 0; // current srting starting position + $sep = -1; // position of the last blank space + $l = 0; // current string lenght + $nl = 0; //number of lines + + // for each character + while($i < $nb) { + //Get the current character + $c = $chars[$i]; + if ($c == 10) { + // 10 = "\n" = new line + //Explicit line break + if ($align == "J") { + if ($this->rtl) { + $talign = "R"; + } else { + $talign = "L"; + } + } else { + $talign = $align; + } + $this->Cell($w, $h, $this->UTF8ArrSubString($chars, $j, $i), 0, 2, $talign, $fill, $link, $stretch); + $nl++; + $j = $i + 1; + $l = 0; + $sep = -1; + if($nl == 1) { + // set the next line width and position + if ($this->rtl) { + $this->x = $this->w - $this->rMargin; + $w = $this->x - $this->lMargin; + } + else { + $this->x = $this->lMargin; + $w = $this->w - $this->rMargin - $this->x; + } + $wmax = $w - (2 * $this->cMargin); + } + } else { + if(preg_match("/[\s]/u", $this->unichr($c))) { + // update last blank space position + $sep = $i; + } + + // update string length + if($this->isunicode) { + // with bidirectional algorithm some chars may be changed affecting the line length + // *** very slow + $l = $this->GetArrStringWidth($this->utf8Bidi(array_slice($chars, $j, $i-$j+1), $this->tmprtl)); + } else { + $l += $this->GetCharWidth($c); + } + + if($l > $wmax) { + // we have reached the end of column + if($sep == -1) { + // truncate the word because do not fit on column + $this->Cell($w, $h, $this->UTF8ArrSubString($chars, $j, $i), 0, 2, $align, $fill, $link, $stretch); + $nl++; + if($nl == 1) { + // set the next line width and position + if ($this->rtl) { + $this->x = $this->w - $this->rMargin; + $w = $this->x - $this->lMargin; + } + else { + $this->x = $this->lMargin; + $w = $this->w - $this->rMargin - $this->x; + } + $wmax = $w - (2 * $this->cMargin); + } + } else { + // word wrapping + $this->Cell($w, $h, $this->UTF8ArrSubString($chars, $j, $sep), 0, 2, $align, $fill, $link, $stretch); + $nl++; + $i = $sep + 1; + if($nl == 1) { + // set the next line width and position + if ($this->rtl) { + $this->x = $this->w - $this->rMargin; + $w = $this->x - $this->lMargin; + } + else { + $this->x = $this->lMargin; + $w = $this->w - $this->rMargin - $this->x; + } + $wmax = $w - (2 * $this->cMargin); + } + } + $sep = -1; + $j = $i; + $l = 0; + } + } + $i++; + } // end while i < nb + // print last row + if($i != $j) { + $this->Cell($w, $h, $this->UTF8ArrSubString($chars, $j, $nb), 0, $ln, $align, $fill, $link, $stretch); + $nl++; + } + + $w = $this->GetStringWidth($this->UTF8ArrSubString($chars, $j, $nb)) + (2 * $this->cMargin); + if ($this->rtl) { + $this->x = $prevx - $w; + } else { + $this->x = $prevx + $w; + } + + // Add bottom space if needed + if (($ln > 0) AND (($h - $this->FontSize) < $this->LineWidth)) { + $this->y += $this->LineWidth/2; + } + + return $nl; + } + + /** + * Extract a slice of the $strarr array and return it as string. + * @param string $strarr The input array of characters. + * @param int $start the starting element of $strarr. + * @param int $end first element that will not be returned. + * @return Return part of a string + */ + function UTF8ArrSubString($strarr, $start='', $end='') { + if (strlen($start) == 0) { + $start = 0; + } + if (strlen($end) == 0) { + $end = count($strarr); + } + $string = ""; + for ($i=$start; $i < $end; $i++) { + $string .= $this->unichr($strarr[$i]); + } + return $string; + } + + /** + * Returns the unicode caracter specified by UTF-8 code + * @param int $c UTF-8 code + * @return Returns the specified character. + * @author Miguel Perez, Nicola Asuni + * @since 2.3.000 (2008-03-05) + */ + function unichr($c) { + if (!$this->isunicode) { + return chr($c); + } elseif ($c <= 0x7F) { + // one byte + return chr($c); + } else if ($c <= 0x7FF) { + // two bytes + return chr(0xC0 | $c >> 6).chr(0x80 | $c & 0x3F); + } else if ($c <= 0xFFFF) { + // three bytes + return chr(0xE0 | $c >> 12).chr(0x80 | $c >> 6 & 0x3F).chr(0x80 | $c & 0x3F); + } else if ($c <= 0x10FFFF) { + // four bytes + return chr(0xF0 | $c >> 18).chr(0x80 | $c >> 12 & 0x3F).chr(0x80 | $c >> 6 & 0x3F).chr(0x80 | $c & 0x3F); + } else { + return ""; + } + } + + /** + * Puts an image in the page. The upper-left corner must be given. The dimensions can be specified in different ways:
  • explicit width and height (expressed in user unit)
  • one explicit dimension, the other being calculated automatically in order to keep the original proportions
  • no explicit dimension, in which case the image is put at 72 dpi
+ * Supported formats are JPEG and PNG. + * For JPEG, all flavors are allowed:
  • gray scales
  • true colors (24 bits)
  • CMYK (32 bits)
+ * For PNG, are allowed:
  • gray scales on at most 8 bits (256 levels)
  • indexed colors
  • true colors (24 bits)
+ * If a transparent color is defined, it will be taken into account (but will be only interpreted by Acrobat 4 and above).
+ * The format can be specified explicitly or inferred from the file extension.
+ * It is possible to put a link on the image.
+ * Remark: if an image is used several times, only one copy will be embedded in the file.
+ * @param string $file Name of the file containing the image. + * @param float $x Abscissa of the upper-left corner. + * @param float $y Ordinate of the upper-left corner. + * @param float $w Width of the image in the page. If not specified or equal to zero, it is automatically calculated. + * @param float $h Height of the image in the page. If not specified or equal to zero, it is automatically calculated. + * @param string $type Image format. Possible values are (case insensitive): JPG, JPEG, PNG. If not specified, the type is inferred from the file extension. + * @param mixed $link URL or identifier returned by AddLink(). + * @param string $align Indicates the alignment of the pointer next to image insertion relative to image height. The value can be:
  • T: top-right for LTR or top-left for RTL
  • M: middle-right for LTR or middle-left for RTL
  • B: bottom-right for LTR or bottom-left for RTL
  • N: next line
+ * @since 1.1 + * @see AddLink() + */ + function Image($file, $x, $y, $w=0, $h=0, $type='', $link='', $align='') { + //Put an image on the page + if(!isset($this->images[$file])) { + //First use of image, get info + if($type == '') { + $pos = strrpos($file,'.'); + if(empty($pos)) { + $this->Error('Image file has no extension and no type was specified: '.$file); + } + $type = substr($file, $pos+1); + } + $type = strtolower($type); + $mqr = get_magic_quotes_runtime(); + set_magic_quotes_runtime(0); + if($type == 'jpg' or $type == 'jpeg') { + $info=$this->_parsejpg($file); + } elseif($type == 'gif') { + $info=$this->_parsegif($file); + } elseif($type == 'png') { + $info=$this->_parsepng($file); + }else { + //Allow for additional formats + $mtd='_parse'.$type; + if(!method_exists($this,$mtd)) { + $this->Error('Unsupported image type: '.$type); + } + $info=$this->$mtd($file); + } + if($info === false) { + //If false, we cannot process image + return; + } + set_magic_quotes_runtime($mqr); + $info['i']=count($this->images)+1; + $this->images[$file]=$info; + } + else { + $info=$this->images[$file]; + } + //Automatic width and height calculation if needed + if(($w == 0) and ($h == 0)) { + //Put image at 72 dpi + // 2004-06-14 :: Nicola Asuni, scale factor where added + $w = $info['w'] / ($this->imgscale * $this->k); + $h = $info['h'] / ($this->imgscale * $this->k); + } + if($w == 0) { + $w = $h * $info['w'] / $info['h']; + } + if($h == 0) { + $h = $w * $info['h'] / $info['w']; + } + + // 2007-10-19 Warren Sherliker + // Check whether we need a new page first as this does not fit + // Copied from Cell() + if((($this->y + $h) > $this->PageBreakTrigger) AND empty($this->InFooter) AND $this->AcceptPageBreak()) { + // Automatic page break + $this->AddPage($this->CurOrientation); + // Reset coordinates to top fo next page + $x = $this->GetX(); + $y = $this->GetY(); + } + // 2007-10-19 Warren Sherliker: End Edit + + // set bottomcoordinates + $this->img_rb_y = $y + $h; + if ($this->rtl) { + $ximg = ($this->w - $x -$w); + // set left side coordinate + $this->img_rb_x = $ximg; + } else { + $ximg = $x; + // set right side coordinate + $this->img_rb_x = $ximg + $w; + } + $xkimg = $ximg * $this->k; + $this->_out(sprintf('q %.2f 0 0 %.2f %.2f %.2f cm /I%d Do Q', $w*$this->k, $h*$this->k, $xkimg, ($this->h-($y+$h))*$this->k, $info['i'])); + + if($link) { + $this->Link($ximg, $y, $w, $h, $link); + } + + // set pointer to align the successive text/objects + switch($align) { + case 'T':{ + $this->y = $y; + $this->x = $this->img_rb_x; + break; + } + case 'M':{ + $this->y = $y + round($h/2); + $this->x = $this->img_rb_x; + break; + } + case 'B':{ + $this->y = $this->img_rb_y; + $this->x = $this->img_rb_x; + break; + } + case 'N':{ + $this->SetY($this->img_rb_y); + break; + } + default:{ + break; + } + } + } + + + /** + * Performs a line break. The current abscissa goes back to the left margin and the ordinate increases by the amount passed in parameter. + * @param float $h The height of the break. By default, the value equals the height of the last printed cell. + * @since 1.0 + * @see Cell() + */ + function Ln($h='') { + //Line feed; default value is last cell height + if ($this->rtl) { + $this->x = $this->w - $this->rMargin; + } else { + $this->x = $this->lMargin; + } + if(is_string($h)) { + $this->y += $this->lasth; + } else { + $this->y += $h; + } + } + + /** + * Returns the relative X value of current position. + * The value is relative to the left border for LTR languages and to the right border for RTL languages. + * @return float + * @since 1.2 + * @see SetX(), GetY(), SetY() + */ + function GetX() { + //Get x position + if ($this->rtl) { + return ($this->w - $this->x); + } else { + return $this->x; + } + } + + /** + * Returns the absolute X value of current position. + * @return float + * @since 1.2 + * @see SetX(), GetY(), SetY() + */ + function GetAbsX() { + return $this->x; + } + + /** + * Returns the ordinate of the current position. + * @return float + * @since 1.0 + * @see SetY(), GetX(), SetX() + */ + function GetY() { + //Get y position + return $this->y; + } + + /** + * Defines the abscissa of the current position. + * If the passed value is negative, it is relative to the right of the page (or left if language is RTL). + * @param float $x The value of the abscissa. + * @since 1.2 + * @see GetX(), GetY(), SetY(), SetXY() + */ + function SetX($x) { + //Set x position + if ($this->rtl) { + if($x >= 0) { + $this->x = $this->w - $x; + } else { + $this->x = abs($x); + } + } else { + if($x >= 0) { + $this->x = $x; + } else { + $this->x = $this->w + $x; + } + } + } + + /** + * Moves the current abscissa back to the left margin and sets the ordinate. + * If the passed value is negative, it is relative to the bottom of the page. + * @param float $y The value of the ordinate. + * @since 1.0 + * @see GetX(), GetY(), SetY(), SetXY() + */ + function SetY($y) { + //Set y position and reset x + if ($this->rtl) { + $this->x = $this->w - $this->rMargin; + } else { + $this->x = $this->lMargin; + } + if($y >= 0) { + $this->y = $y; + } else { + $this->y = $this->h + $y; + } + } + + + /** + * Defines the abscissa and ordinate of the current position. If the passed values are negative, they are relative respectively to the right and bottom of the page. + * @param float $x The value of the abscissa + * @param float $y The value of the ordinate + * @since 1.2 + * @see SetX(), SetY() + */ + function SetXY($x, $y) { + //Set x and y positions + $this->SetY($y); + $this->SetX($x); + } + + /** + * Send the document to a given destination: string, local file or browser. In the last case, the plug-in may be used (if present) or a download ("Save as" dialog box) may be forced.
+ * The method first calls Close() if necessary to terminate the document. + * @param string $name The name of the file. If not given, the document will be sent to the browser (destination I) with the name doc.pdf. + * @param string $dest Destination where to send the document. It can take one of the following values:
  • I: send the file inline to the browser. The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.
  • D: send to the browser and force a file download with the name given by name.
  • F: save to a local file with the name given by name.
  • S: return the document as a string. name is ignored.
If the parameter is not specified but a name is given, destination is F. If no parameter is specified at all, destination is I.
Note: for compatibility with previous versions, a boolean value is also accepted (false for F and true for D). + * @since 1.0 + * @see Close() + */ + function Output($name='',$dest='') { + //Output PDF to some destination + //Finish document if necessary + if($this->state < 3) { + $this->Close(); + } + //Normalize parameters + if(is_bool($dest)) { + $dest=$dest ? 'D' : 'F'; + } + $dest=strtoupper($dest); + if($dest=='') { + if($name=='') { + $name='doc.pdf'; + $dest='I'; + } else { + $dest='F'; + } + } + switch($dest) { + case 'I': { + //Send to standard output + if(ob_get_contents()) { + $this->Error('Some data has already been output, can\'t send PDF file'); + } + if(php_sapi_name()!='cli') { + //We send to a browser + header('Content-Type: application/pdf'); + if(headers_sent()) { + $this->Error('Some data has already been output to browser, can\'t send PDF file'); + } + header('Content-Length: '.strlen($this->buffer)); + header('Content-disposition: inline; filename="'.$name.'"'); + } + echo $this->buffer; + break; + } + case 'D': { + //Download file + if(ob_get_contents()) { + $this->Error('Some data has already been output, can\'t send PDF file'); + } + if(isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')) { + header('Content-Type: application/force-download'); + } else { + header('Content-Type: application/octet-stream'); + } + if(headers_sent()) { + $this->Error('Some data has already been output to browser, can\'t send PDF file'); + } + header('Content-Length: '.strlen($this->buffer)); + header('Content-disposition: attachment; filename="'.$name.'"'); + echo $this->buffer; + break; + } + case 'F': { + //Save to local file + $f=fopen($name,'wb'); + if(!$f) { + $this->Error('Unable to create output file: '.$name); + } + fwrite($f,$this->buffer,strlen($this->buffer)); + fclose($f); + break; + } + case 'S': { + //Return as a string + return $this->buffer; + } + default: { + $this->Error('Incorrect output destination: '.$dest); + } + } + return ''; + } + + // Protected methods + + /** + * Check for locale-related bug + * @access protected + */ + function _dochecks() { + //Check for locale-related bug + if(1.1==1) { + $this->Error('Don\'t alter the locale before including class file'); + } + //Check for decimal separator + if(sprintf('%.1f',1.0)!='1.0') { + setlocale(LC_NUMERIC,'C'); + } + } + + /** + * Return fonts path + * @access protected + */ + function _getfontpath() { + if(!defined('K_PATH_FONTS') AND is_dir(dirname(__FILE__).'/font')) { + define('K_PATH_FONTS', dirname(__FILE__).'/font/'); + } + return defined('K_PATH_FONTS') ? K_PATH_FONTS : ''; + } + + /** + * Start document + * @access protected + */ + function _begindoc() { + //Start document + $this->state=1; + $this->_out('%PDF-'.$this->PDFVersion); + } + + /** + * _putpages + * @access protected + */ + function _putpages() { + $nb = $this->page; + if(!empty($this->AliasNbPages)) { + $nbstr = $this->UTF8ToUTF16BE($nb, false); + //Replace number of pages + for($n=1;$n<=$nb;$n++) { + $this->pages[$n]=str_replace($this->AliasNbPages, $nbstr, $this->pages[$n]); + } + } + if($this->DefOrientation=='P') { + $wPt=$this->fwPt; + $hPt=$this->fhPt; + } + else { + $wPt=$this->fhPt; + $hPt=$this->fwPt; + } + $filter=($this->compress) ? '/Filter /FlateDecode ' : ''; + for($n=1;$n<=$nb;$n++) { + //Page + $this->_newobj(); + $this->_out('<_out('/Parent 1 0 R'); + if(isset($this->OrientationChanges[$n])) { + $this->_out(sprintf('/MediaBox [0 0 %.2f %.2f]',$hPt,$wPt)); + } + $this->_out('/Resources 2 0 R'); + if(isset($this->PageLinks[$n])) { + //Links + $annots='/Annots ['; + foreach($this->PageLinks[$n] as $pl) { + $rect=sprintf('%.2f %.2f %.2f %.2f',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]); + $annots.='<_uristring($pl[4]).'>>>>'; + } + else { + $l=$this->links[$pl[4]]; + $h=isset($this->OrientationChanges[$l[0]]) ? $wPt : $hPt; + $annots.=sprintf('/Dest [%d 0 R /XYZ 0 %.2f null]>>',1+2*$l[0],$h-$l[1]*$this->k); + } + } + $this->_out($annots.']'); + } + $this->_out('/Contents '.($this->n+1).' 0 R>>'); + $this->_out('endobj'); + //Page content + $p=($this->compress) ? gzcompress($this->pages[$n]) : $this->pages[$n]; + $this->_newobj(); + $this->_out('<<'.$filter.'/Length '.strlen($p).'>>'); + $this->_putstream($p); + $this->_out('endobj'); + } + //Pages root + $this->offsets[1]=strlen($this->buffer); + $this->_out('1 0 obj'); + $this->_out('<_out($kids.']'); + $this->_out('/Count '.$nb); + $this->_out(sprintf('/MediaBox [0 0 %.2f %.2f]',$wPt,$hPt)); + $this->_out('>>'); + $this->_out('endobj'); + } + + /** + * Adds fonts + * _putfonts + * @access protected + */ + function _putfonts() { + $nf=$this->n; + foreach($this->diffs as $diff) { + //Encodings + $this->_newobj(); + $this->_out('<>'); + $this->_out('endobj'); + } + $mqr=get_magic_quotes_runtime(); + set_magic_quotes_runtime(0); + foreach($this->FontFiles as $file=>$info) { + //Font file embedding + $this->_newobj(); + $this->FontFiles[$file]['n']=$this->n; + $font=''; + $f=fopen($this->_getfontpath().strtolower($file),'rb',1); + if(!$f) { + $this->Error('Font file not found: '.$file); + } + while(!feof($f)) { + $font .= fread($f, 8192); + } + fclose($f); + $compressed=(substr($file,-2)=='.z'); + if(!$compressed && isset($info['length2'])) { + $header=(ord($font{0})==128); + if($header) { + //Strip first binary header + $font=substr($font,6); + } + if($header && ord($font{$info['length1']})==128) { + //Strip second binary header + $font=substr($font,0,$info['length1']).substr($font,$info['length1']+6); + } + } + $this->_out('<_out('/Filter /FlateDecode'); + } + $this->_out('/Length1 '.$info['length1']); + if(isset($info['length2'])) { + $this->_out('/Length2 '.$info['length2'].' /Length3 0'); + } + $this->_out('>>'); + $this->_putstream($font); + $this->_out('endobj'); + } + set_magic_quotes_runtime($mqr); + foreach($this->fonts as $k=>$font) { + //Font objects + $this->fonts[$k]['n']=$this->n+1; + $type=$font['type']; + $name=$font['name']; + if($type=='core') { + //Standard font + $this->_newobj(); + $this->_out('<_out('/BaseFont /'.$name); + $this->_out('/Subtype /Type1'); + if($name!='Symbol' && $name!='ZapfDingbats') { + $this->_out('/Encoding /WinAnsiEncoding'); + } + $this->_out('>>'); + $this->_out('endobj'); + } elseif($type=='Type1' OR $type=='TrueType') { + //Additional Type1 or TrueType font + $this->_newobj(); + $this->_out('<_out('/BaseFont /'.$name); + $this->_out('/Subtype /'.$type); + $this->_out('/FirstChar 32 /LastChar 255'); + $this->_out('/Widths '.($this->n+1).' 0 R'); + $this->_out('/FontDescriptor '.($this->n+2).' 0 R'); + if($font['enc']) { + if(isset($font['diff'])) { + $this->_out('/Encoding '.($nf+$font['diff']).' 0 R'); + } else { + $this->_out('/Encoding /WinAnsiEncoding'); + } + } + $this->_out('>>'); + $this->_out('endobj'); + //Widths + $this->_newobj(); + $cw=&$font['cw']; + $s='['; + for($i=32;$i<=255;$i++) { + $s.=$cw[chr($i)].' '; + } + $this->_out($s.']'); + $this->_out('endobj'); + //Descriptor + $this->_newobj(); + $s='<$v) { + $s.=' /'.$k.' '.$v; + } + $file = $font['file']; + if($file) { + $s.=' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$file]['n'].' 0 R'; + } + $this->_out($s.'>>'); + $this->_out('endobj'); + } else { + //Allow for additional types + $mtd='_put'.strtolower($type); + if(!method_exists($this, $mtd)) { + $this->Error('Unsupported font type: '.$type); + } + $this->$mtd($font); + } + } + } + + /** + * _putimages + * @access protected + */ + function _putimages() { + $filter=($this->compress) ? '/Filter /FlateDecode ' : ''; + reset($this->images); + while(list($file,$info)=each($this->images)) { + $this->_newobj(); + $this->images[$file]['n']=$this->n; + $this->_out('<_out('/Subtype /Image'); + $this->_out('/Width '.$info['w']); + $this->_out('/Height '.$info['h']); + + if (isset($info["masked"])) { + $this->_out('/SMask '.($this->n-1).' 0 R'); + } + + if($info['cs']=='Indexed') { + $this->_out('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]'); + } + else { + $this->_out('/ColorSpace /'.$info['cs']); + if($info['cs']=='DeviceCMYK') { + $this->_out('/Decode [1 0 1 0 1 0 1 0]'); + } + } + $this->_out('/BitsPerComponent '.$info['bpc']); + if(isset($info['f'])) { + $this->_out('/Filter /'.$info['f']); + } + if(isset($info['parms'])) { + $this->_out($info['parms']); + } + if(isset($info['trns']) and is_array($info['trns'])) { + $trns=''; + for($i=0;$i_out('/Mask ['.$trns.']'); + } + $this->_out('/Length '.strlen($info['data']).'>>'); + $this->_putstream($info['data']); + unset($this->images[$file]['data']); + $this->_out('endobj'); + //Palette + if($info['cs']=='Indexed') { + $this->_newobj(); + $pal=($this->compress) ? gzcompress($info['pal']) : $info['pal']; + $this->_out('<<'.$filter.'/Length '.strlen($pal).'>>'); + $this->_putstream($pal); + $this->_out('endobj'); + } + } + } + + /** + * _putxobjectdict + * @access protected + */ + function _putxobjectdict() { + foreach($this->images as $image) { + $this->_out('/I'.$image['i'].' '.$image['n'].' 0 R'); + } + } + + /** + * _putresourcedict + * @access protected + */ + function _putresourcedict(){ + $this->_out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]'); + $this->_out('/Font <<'); + foreach($this->fonts as $font) { + $this->_out('/F'.$font['i'].' '.$font['n'].' 0 R'); + } + $this->_out('>>'); + $this->_out('/XObject <<'); + $this->_putxobjectdict(); + $this->_out('>>'); + } + + /** + * _putresources + * @access protected + */ + function _putresources() { + $this->_putfonts(); + $this->_putimages(); + //Resource dictionary + $this->offsets[2]=strlen($this->buffer); + $this->_out('2 0 obj'); + $this->_out('<<'); + $this->_putresourcedict(); + $this->_out('>>'); + $this->_out('endobj'); + $this->_putjavascript(); + $this->_putbookmarks(); + // encryption + if ($this->encrypted) { + $this->_newobj(); + $this->enc_obj_id = $this->n; + $this->_out('<<'); + $this->_putencryption(); + $this->_out('>>'); + $this->_out('endobj'); + } + } + + /** + * _putinfo + * Adds some meta information + * @access protected + */ + function _putinfo() { + $this->_out('/CreationDate ('.$this->_escape('D:'.date('YmdHis')).')'); + $this->_out('/ModDate ('.$this->_escape('D:'.date('YmdHis')).')'); + $this->_out('/Producer '.$this->_textstring(PDF_PRODUCER)); + if(!empty($this->title)) { + $this->_out('/Title '.$this->_textstring($this->title)); + } + if(!empty($this->subject)) { + $this->_out('/Subject '.$this->_textstring($this->subject)); + } + if(!empty($this->author)) { + $this->_out('/Author '.$this->_textstring($this->author)); + } + if(!empty($this->keywords)) { + $this->_out('/Keywords '.$this->_textstring($this->keywords)); + } + if(!empty($this->creator)) { + $this->_out('/Creator '.$this->_textstring($this->creator)); + } + } + + /** + * _putcatalog + * @access protected + */ + function _putcatalog() { + $this->_out('/Type /Catalog'); + $this->_out('/Pages 1 0 R'); + if($this->ZoomMode=='fullpage') { + $this->_out('/OpenAction [3 0 R /Fit]'); + } + elseif($this->ZoomMode=='fullwidth') { + $this->_out('/OpenAction [3 0 R /FitH null]'); + } + elseif($this->ZoomMode=='real') { + $this->_out('/OpenAction [3 0 R /XYZ null null 1]'); + } + elseif(!is_string($this->ZoomMode)) { + $this->_out('/OpenAction [3 0 R /XYZ null null '.($this->ZoomMode/100).']'); + } + if($this->LayoutMode=='single') { + $this->_out('/PageLayout /SinglePage'); + } + elseif($this->LayoutMode=='continuous') { + $this->_out('/PageLayout /OneColumn'); + } + elseif($this->LayoutMode=='two') { + $this->_out('/PageLayout /TwoColumnLeft'); + } + if (!empty($this->javascript)) { + $this->_out('/Names <n_js).' 0 R>>'); + } + if(count($this->outlines)>0) { + $this->_out('/Outlines '.$this->OutlineRoot.' 0 R'); + $this->_out('/PageMode /UseOutlines'); + } + if($this->rtl) { + $this->_out('/ViewerPreferences << /Direction /R2L >>'); + } + } + + /** + * _puttrailer + * @access protected + */ + function _puttrailer() { + $this->_out('/Size '.($this->n+1)); + $this->_out('/Root '.$this->n.' 0 R'); + $this->_out('/Info '.($this->n-1).' 0 R'); + if ($this->encrypted) { + $this->_out('/Encrypt '.$this->enc_obj_id.' 0 R'); + $this->_out('/ID [()()]'); + } + } + + /** + * _putheader + * @access protected + */ + function _putheader() { + $this->_out('%PDF-'.$this->PDFVersion); + } + + /** + * _enddoc + * @access protected + */ + function _enddoc() { + $this->_putheader(); + $this->_putpages(); + $this->_putresources(); + //Info + $this->_newobj(); + $this->_out('<<'); + $this->_putinfo(); + $this->_out('>>'); + $this->_out('endobj'); + //Catalog + $this->_newobj(); + $this->_out('<<'); + $this->_putcatalog(); + $this->_out('>>'); + $this->_out('endobj'); + //Cross-ref + $o=strlen($this->buffer); + $this->_out('xref'); + $this->_out('0 '.($this->n+1)); + $this->_out('0000000000 65535 f '); + for($i=1;$i<=$this->n;$i++) { + $this->_out(sprintf('%010d 00000 n ',$this->offsets[$i])); + } + //Trailer + $this->_out('trailer'); + $this->_out('<<'); + $this->_puttrailer(); + $this->_out('>>'); + $this->_out('startxref'); + $this->_out($o); + $this->_out('%%EOF'); + $this->state=3; + } + + /** + * _beginpage + * @access protected + */ + function _beginpage($orientation) { + $this->page++; + $this->pages[$this->page]=''; + $this->state=2; + if ($this->rtl) { + $this->x = $this->w - $this->rMargin; + } else { + $this->x = $this->lMargin; + } + $this->y = $this->tMargin; + $this->FontFamily=''; + //Page orientation + if(empty($orientation)) { + $orientation=$this->DefOrientation; + } + else { + $orientation=strtoupper($orientation{0}); + if($orientation!=$this->DefOrientation) { + $this->OrientationChanges[$this->page]=true; + } + } + if($orientation!=$this->CurOrientation) { + //Change orientation + if($orientation=='P') { + $this->wPt=$this->fwPt; + $this->hPt=$this->fhPt; + $this->w=$this->fw; + $this->h=$this->fh; + } + else { + $this->wPt=$this->fhPt; + $this->hPt=$this->fwPt; + $this->w=$this->fh; + $this->h=$this->fw; + } + $this->PageBreakTrigger=$this->h-$this->bMargin; + $this->CurOrientation=$orientation; + } + } + + /** + * End of page contents + * @access protected + */ + function _endpage() { + $this->state=1; + } + + /** + * Begin a new object + * @access protected + */ + function _newobj() { + $this->n++; + $this->offsets[$this->n]=strlen($this->buffer); + $this->_out($this->n.' 0 obj'); + } + + /** + * Underline text + * @param int $x X coordinate + * @param int $y Y coordinate + * @param string $txt text to underline + * @access protected + */ + function _dounderline($x, $y, $txt) { + $up = $this->CurrentFont['up']; + $ut = $this->CurrentFont['ut']; + $w = $this->GetStringWidth($txt) + $this->ws * substr_count($txt,' '); + return sprintf('%.2f %.2f %.2f %.2f re f', $x * $this->k, ($this->h - ($y - $up / 1000 * $this->FontSize)) * $this->k, $w * $this->k, -$ut / 1000 * $this->FontSizePt); + } + + + // REWRITTEN by Warren Sherliker wsherliker@gmail.com + // altered to allow compatibility with all sorts of image formats including gif. + // Can easily extend to work with others + // such as gd xbm etc. which are all supported by php 5+ + // (Requires GD library) + + /** + * Extract info from a JPEG file + * @param string $file image file to parse + * @return string + * @access protected + */ + function _parsejpg($file) { + if(!function_exists('imagecreatefromjpeg')) { + // GD is not installed, try legacy method + return $this->_legacyparsejpg($file); + } + $a=getimagesize($file); + if(empty($a)) { + $this->Error('Missing or incorrect image file: '.$file); + } + if($a[2]!=2) { + $this->Error('Not a JPEG file: '.$file); + } + $jpeg = imagecreatefromjpeg($file); + return $this->outputjpg($file, $jpeg); + } + + /** + * Extract info from a GIF file + * @param string $file image file to parse + * @return string + * @access protected + */ + function _parsegif($file) { + if(!function_exists('imagecreatefromgif')) { + // PDF doesn't support native GIF and GD is not installed + return false; + } + $a=getimagesize($file); + if(empty($a)) { + $this->Error('Missing or incorrect image file: '.$file); + } + if($a[2]!=1) { + $this->Error('Not a GIF file: '.$file); + } + // Temporary convert file to jpg and then delete this temp data file + $gif = imagecreatefromgif($file); + return $this->toJPEG($file, $gif); + } + + /** + * Extract info from a PNG file + * @param string $file image file to parse + * @return string + * @access protected + */ + function _parsepng($file) { + if(!function_exists('imagecreatefrompng')) { + // GD is not installed, try legacy method + return $this->_legacyparsepng($file); + } + $f=fopen($file,'rb'); + if(empty($f)) { + $this->Error('Can\'t open image file: '.$file); + } + //Check signature + if(fread($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10)) { + $this->Error('Not a PNG file: '.$file); + } + //Read header chunk + fread($f,4); + if(fread($f,4)!='IHDR') { + $this->Error('Incorrect PNG file: '.$file); + } + // Temporary convert file to jpg and then delete this temp data file + $a=getimagesize($file); + $png = imagecreatefrompng($file); + return $this->toJPEG($file, $png); + } + + /** + * Extract info from a JPEG file without using GD + * @param string $file image file to parse + * @return string + * @access protected + */ + function _legacyparsejpg($file) { + $a=GetImageSize($file); + if(empty($a)) { + $this->Error('Missing or incorrect image file: '.$file); + } + if($a[2]!=2) { + $this->Error('Not a JPEG file: '.$file); + } + if(!isset($a['channels']) or $a['channels']==3) { + $colspace='DeviceRGB'; + } + elseif($a['channels']==4) { + $colspace='DeviceCMYK'; + } + else { + $colspace='DeviceGray'; + } + $bpc=isset($a['bits']) ? $a['bits'] : 8; + //Read whole file + $f=fopen($file,'rb'); + $data=''; + while(!feof($f)) { + $data.=fread($f,4096); + } + fclose($f); + return array('w'=>$a[0],'h'=>$a[1],'cs'=>$colspace,'bpc'=>$bpc,'f'=>'DCTDecode','data'=>$data); + } + + /** + * Extract info from a PNG file without using GD + * @param string $file image file to parse + * @return string + * @access protected + */ + function _legacyparsepng($file) { + $f=fopen($file,'rb'); + if(empty($f)) { + $this->Error('Can\'t open image file: '.$file); + } + //Check signature + if(fread($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10)) { + $this->Error('Not a PNG file: '.$file); + } + //Read header chunk + fread($f,4); + if(fread($f,4)!='IHDR') { + $this->Error('Incorrect PNG file: '.$file); + } + $w=$this->_freadint($f); + $h=$this->_freadint($f); + $bpc=ord(fread($f,1)); + if($bpc>8) { + $this->Error('16-bit depth not supported: '.$file); + } + $ct=ord(fread($f,1)); + if($ct==0) { + $colspace='DeviceGray'; + } + elseif($ct==2) { + $colspace='DeviceRGB'; + } + elseif($ct==3) { + $colspace='Indexed'; + } + else { + $this->Error('Alpha channel not supported: '.$file); + } + if(ord(fread($f,1))!=0) { + $this->Error('Unknown compression method: '.$file); + } + if(ord(fread($f,1))!=0) { + $this->Error('Unknown filter method: '.$file); + } + if(ord(fread($f,1))!=0) { + $this->Error('Interlacing not supported: '.$file); + } + fread($f,4); + $parms='/DecodeParms <>'; + //Scan chunks looking for palette, transparency and image data + $pal=''; + $trns=''; + $data=''; + do { + $n=$this->_freadint($f); + $type=fread($f,4); + if($type=='PLTE') { + //Read palette + $pal=fread($f,$n); + fread($f,4); + } + elseif($type=='tRNS') { + //Read transparency info + $t=fread($f,$n); + if($ct==0) { + $trns=array(ord(substr($t,1,1))); + } + elseif($ct==2) { + $trns=array(ord(substr($t,1,1)),ord(substr($t,3,1)),ord(substr($t,5,1))); + } + else { + $pos=strpos($t,chr(0)); + if($pos!==false) { + $trns=array($pos); + } + } + fread($f,4); + } + elseif($type=='IDAT') { + //Read image data block + $data.=fread($f,$n); + fread($f,4); + } + elseif($type=='IEND') { + break; + } + else { + fread($f,$n+4); + } + } + while($n); + if($colspace=='Indexed' and empty($pal)) { + $this->Error('Missing palette in '.$file); + } + fclose($f); + return array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'parms'=>$parms, 'pal'=>$pal, 'trns'=>$trns, 'data'=>$data); + } + + /** + * Convert the loaded php image to a JPEG and then return a structure for the PDF creator. + * @param string $file Image file name. + * @param image $image Image object. + * return image JPEG image object. + * @access protected + */ + function toJPEG($file, $image) { + if ($image) { + // output + $tempname = tempnam(K_PATH_CACHE,'jpg'); + imagejpeg($image, $tempname, 100); + imagedestroy($image); + $retvars = $this->outputjpg($tempname); + // tidy up by removing temporary image + unlink($tempname); + return $retvars; + } else { + $this->Error('Can\'t open image file: '.$file); + } + } + + /** + * Get a JPEG filename and return a structure for the PDF creator. + * @param string $filename JPEG file name. + * @return array structure containing the image data + * @access protected + */ + function outputjpg($filename) { + $a=getimagesize($filename); + + if(!isset($a['channels']) or $a['channels']==3) { + $colspace='DeviceRGB'; + } + elseif($a['channels']==4) { + $colspace='DeviceCMYK'; + } + else { + $colspace='DeviceGray'; + } + $bpc=isset($a['bits']) ? $a['bits'] : 8; + //Read whole file + + $f=fopen($filename,'rb'); + $data=''; + while(!feof($f)) { + $data.=fread($f,4096); + } + fclose($f); + + return array('w'=>$a[0],'h'=>$a[1],'cs'=>$colspace,'bpc'=>$bpc,'f'=>'DCTDecode','data'=>$data); + } + + /// END OF REWRITE BY Warren Sherliker wsherliker@gmail.com + + /** + * Read a 4-byte integer from file + * @param string $f file name. + * @return 4-byte integer + * @access protected + */ + function _freadint($f) { + $a=unpack('Ni',fread($f,4)); + return $a['i']; + } + + /** + * Format a text string for meta information + * @param string $s string to escape. + * @return string escaped string. + * @access protected + */ + function _textstring($s) { + if($this->isunicode) { + //Convert string to UTF-16BE + $s = $this->UTF8ToUTF16BE($s, true); + } + if ($this->encrypted) { + $s = $this->_RC4($this->_objectkey($this->n), $s); + } + return '('. $this->_escape($s).')'; + } + + /** + * Format an URI string + * @param string $s string to escape. + * @return string escaped string. + * @access protected + */ + function _uristring($s) { + if ($this->encrypted) { + $s = $this->_RC4($this->_objectkey($this->n), $s); + } + return '('.$this->_escape($s).')'; + } + + /** + * Format a text string + * @param string $s string to escape. + * @return string escaped string. + * @access protected + */ + function _escapetext($s) { + if($this->isunicode) { + //Convert string to UTF-16BE and reverse RTL language + $s = $this->utf8StrRev($s, false, $this->tmprtl); + } + return $this->_escape($s); + } + + /** + * Add \ before \, ( and ) + * @param string $s string to escape. + * @return string escaped string. + * @access protected + */ + function _escape($s) { + // the chr(13) substitution fixes the Bugs item #1421290. + return strtr($s, array(')' => '\\)', '(' => '\\(', '\\' => '\\\\', chr(13) => '\r')); + } + + /** + * Output a stream. + * @param string $s string to output. + * @access protected + */ + function _putstream($s) { + if ($this->encrypted) { + $s = $this->_RC4($this->_objectkey($this->n), $s); + } + $this->_out('stream'); + $this->_out($s); + $this->_out('endstream'); + } + + /** + * Output a string to the document. + * @param string $s string to output. + * @access protected + */ + function _out($s) { + if($this->state==2) { + $this->pages[$this->page] .= $s."\n"; + } + else { + $this->buffer .= $s."\n"; + } + } + + /** + * Adds unicode fonts.
+ * Based on PDF Reference 1.3 (section 5) + * @access protected + * @author Nicola Asuni + * @since 1.52.0.TC005 (2005-01-05) + */ + function _puttruetypeunicode($font) { + // Type0 Font + // A composite font composed of other fonts, organized hierarchically + $this->_newobj(); + $this->_out('<_out('/Subtype /Type0'); + $this->_out('/BaseFont /'.$font['name'].''); + $this->_out('/Encoding /Identity-H'); //The horizontal identity mapping for 2-byte CIDs; may be used with CIDFonts using any Registry, Ordering, and Supplement values. + $this->_out('/DescendantFonts ['.($this->n + 1).' 0 R]'); + $this->_out('/ToUnicode '.($this->n + 2).' 0 R'); + $this->_out('>>'); + $this->_out('endobj'); + + // CIDFontType2 + // A CIDFont whose glyph descriptions are based on TrueType font technology + $this->_newobj(); + $this->_out('<_out('/Subtype /CIDFontType2'); + $this->_out('/BaseFont /'.$font['name'].''); + $this->_out('/CIDSystemInfo '.($this->n + 2).' 0 R'); + $this->_out('/FontDescriptor '.($this->n + 3).' 0 R'); + if (isset($font['desc']['MissingWidth'])){ + $this->_out('/DW '.$font['desc']['MissingWidth'].''); // The default width for glyphs in the CIDFont MissingWidth + } + $w = ""; + foreach ($font['cw'] as $cid => $width) { + $w .= ''.$cid.' ['.$width.'] '; // define a specific width for each individual CID + } + $this->_out('/W ['.$w.']'); // A description of the widths for the glyphs in the CIDFont + $this->_out('/CIDToGIDMap '.($this->n + 4).' 0 R'); + $this->_out('>>'); + $this->_out('endobj'); + + // ToUnicode + // is a stream object that contains the definition of the CMap + // (PDF Reference 1.3 chap. 5.9) + $this->_newobj(); + $this->_out('<>'); + $this->_out('stream'); + $this->_out('/CIDInit /ProcSet findresource begin'); + $this->_out('12 dict begin'); + $this->_out('begincmap'); + $this->_out('/CIDSystemInfo'); + $this->_out('<_out('/Ordering (UCS)'); + $this->_out('/Supplement 0'); + $this->_out('>> def'); + $this->_out('/CMapName /Adobe-Identity-UCS def'); + $this->_out('/CMapType 2 def'); + $this->_out('1 begincodespacerange'); + $this->_out('<0000> '); + $this->_out('endcodespacerange'); + $this->_out('1 beginbfrange'); + $this->_out('<0000> <0000>'); + $this->_out('endbfrange'); + $this->_out('endcmap'); + $this->_out('CMapName currentdict /CMap defineresource pop'); + $this->_out('end'); + $this->_out('end'); + $this->_out('endstream'); + $this->_out('endobj'); + + // CIDSystemInfo dictionary + // A dictionary containing entries that define the character collection of the CIDFont. + $this->_newobj(); + $this->_out('<_out('/Ordering (UCS)'); // A string that uniquely names a character collection issued by a specific registry + $this->_out('/Supplement 0'); // The supplement number of the character collection. + $this->_out('>>'); + $this->_out('endobj'); + + // Font descriptor + // A font descriptor describing the CIDFont default metrics other than its glyph widths + $this->_newobj(); + $this->_out('<_out('/FontName /'.$font['name']); + foreach ($font['desc'] as $key => $value) { + $this->_out('/'.$key.' '.$value); + } + if ($font['file']) { + // A stream containing a TrueType font program + $this->_out('/FontFile2 '.$this->FontFiles[$font['file']]['n'].' 0 R'); + } + $this->_out('>>'); + $this->_out('endobj'); + + // Embed CIDToGIDMap + // A specification of the mapping from CIDs to glyph indices + $this->_newobj(); + $ctgfile = $this->_getfontpath().strtolower($font['ctg']); + if(!file_exists($ctgfile)) { + $this->Error('Font file not found: '.$ctgfile); + } + $size = filesize($ctgfile); + $this->_out('<_out('/Filter /FlateDecode'); + } + $this->_out('>>'); + $this->_putstream(file_get_contents($ctgfile)); + $this->_out('endobj'); + } + + /** + * Converts UTF-8 strings to codepoints array.
+ * Invalid byte sequences will be replaced with 0xFFFD (replacement character)
+ * Based on: http://www.faqs.org/rfcs/rfc3629.html + *
+		 * 	  Char. number range  |        UTF-8 octet sequence
+		 *       (hexadecimal)    |              (binary)
+		 *    --------------------+-----------------------------------------------
+		 *    0000 0000-0000 007F | 0xxxxxxx
+		 *    0000 0080-0000 07FF | 110xxxxx 10xxxxxx
+		 *    0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
+		 *    0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+		 *    ---------------------------------------------------------------------
+		 *
+		 *   ABFN notation:
+		 *   ---------------------------------------------------------------------
+		 *   UTF8-octets = *( UTF8-char )
+		 *   UTF8-char   = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4
+		 *   UTF8-1      = %x00-7F
+		 *   UTF8-2      = %xC2-DF UTF8-tail
+		 *
+		 *   UTF8-3      = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) /
+		 *                 %xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail )
+		 *   UTF8-4      = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) /
+		 *                 %xF4 %x80-8F 2( UTF8-tail )
+		 *   UTF8-tail   = %x80-BF
+		 *   ---------------------------------------------------------------------
+		 * 
+ * @param string $str string to process. + * @return array containing codepoints (UTF-8 characters values) + * @access protected + * @author Nicola Asuni + * @since 1.53.0.TC005 (2005-01-05) + */ + function UTF8StringToArray($str) { + if(!$this->isunicode) { + // split string into array of chars + $strarr = str_split($str); + // convert chars to equivalent code + while(list($pos,$char)=each($strarr)) { + $strarr[$pos] = ord($char); + } + return $strarr; + } + $unicode = array(); // array containing unicode values + $bytes = array(); // array containing single character byte sequences + $numbytes = 1; // number of octetc needed to represent the UTF-8 character + + $str .= ""; // force $str to be a string + $length = strlen($str); + + for($i = 0; $i < $length; $i++) { + $char = ord($str{$i}); // get one string character at time + if(count($bytes) == 0) { // get starting octect + if ($char <= 0x7F) { + $unicode[] = $char; // use the character "as is" because is ASCII + $numbytes = 1; + } elseif (($char >> 0x05) == 0x06) { // 2 bytes character (0x06 = 110 BIN) + $bytes[] = ($char - 0xC0) << 0x06; + $numbytes = 2; + } elseif (($char >> 0x04) == 0x0E) { // 3 bytes character (0x0E = 1110 BIN) + $bytes[] = ($char - 0xE0) << 0x0C; + $numbytes = 3; + } elseif (($char >> 0x03) == 0x1E) { // 4 bytes character (0x1E = 11110 BIN) + $bytes[] = ($char - 0xF0) << 0x12; + $numbytes = 4; + } else { + // use replacement character for other invalid sequences + $unicode[] = 0xFFFD; + $bytes = array(); + $numbytes = 1; + } + } elseif (($char >> 0x06) == 0x02) { // bytes 2, 3 and 4 must start with 0x02 = 10 BIN + $bytes[] = $char - 0x80; + if (count($bytes) == $numbytes) { + // compose UTF-8 bytes to a single unicode value + $char = $bytes[0]; + for($j = 1; $j < $numbytes; $j++) { + $char += ($bytes[$j] << (($numbytes - $j - 1) * 0x06)); + } + if ((($char >= 0xD800) AND ($char <= 0xDFFF)) OR ($char >= 0x10FFFF)) { + /* The definition of UTF-8 prohibits encoding character numbers between + U+D800 and U+DFFF, which are reserved for use with the UTF-16 + encoding form (as surrogate pairs) and do not directly represent + characters. */ + $unicode[] = 0xFFFD; // use replacement character + } + else { + $unicode[] = $char; // add char to array + } + // reset data for next char + $bytes = array(); + $numbytes = 1; + } + } else { + // use replacement character for other invalid sequences + $unicode[] = 0xFFFD; + $bytes = array(); + $numbytes = 1; + } + } + return $unicode; + } + + /** + * Converts UTF-8 strings to UTF16-BE.
+ * @param string $str string to process. + * @param boolean $setbom if true set the Byte Order Mark (BOM = 0xFEFF) + * @return string + * @access protected + * @author Nicola Asuni + * @since 1.53.0.TC005 (2005-01-05) + * @uses UTF8StringToArray(), arrUTF8ToUTF16BE() + */ + function UTF8ToUTF16BE($str, $setbom=true) { + if(!$this->isunicode) { + return $str; // string is not in unicode + } + $unicode = $this->UTF8StringToArray($str); // array containing UTF-8 unicode values + return $this->arrUTF8ToUTF16BE($unicode, $setbom); + } + + /** + * Converts array of UTF-8 characters to UTF16-BE string.
+ * Based on: http://www.faqs.org/rfcs/rfc2781.html + *
+		 *   Encoding UTF-16:
+		 *
+ 		 *   Encoding of a single character from an ISO 10646 character value to
+		 *    UTF-16 proceeds as follows. Let U be the character number, no greater
+		 *    than 0x10FFFF.
+		 *
+		 *    1) If U < 0x10000, encode U as a 16-bit unsigned integer and
+		 *       terminate.
+		 *
+		 *    2) Let U' = U - 0x10000. Because U is less than or equal to 0x10FFFF,
+		 *       U' must be less than or equal to 0xFFFFF. That is, U' can be
+		 *       represented in 20 bits.
+		 *
+		 *    3) Initialize two 16-bit unsigned integers, W1 and W2, to 0xD800 and
+		 *       0xDC00, respectively. These integers each have 10 bits free to
+		 *       encode the character value, for a total of 20 bits.
+		 *
+		 *    4) Assign the 10 high-order bits of the 20-bit U' to the 10 low-order
+		 *       bits of W1 and the 10 low-order bits of U' to the 10 low-order
+		 *       bits of W2. Terminate.
+		 *
+		 *    Graphically, steps 2 through 4 look like:
+		 *    U' = yyyyyyyyyyxxxxxxxxxx
+		 *    W1 = 110110yyyyyyyyyy
+		 *    W2 = 110111xxxxxxxxxx
+		 * 
+ * @param array $unicode array containing UTF-8 unicode values + * @param boolean $setbom if true set the Byte Order Mark (BOM = 0xFEFF) + * @return string + * @access protected + * @author Nicola Asuni + * @since 2.1.000 (2008-01-08) + * @see UTF8ToUTF16BE() + */ + function arrUTF8ToUTF16BE($unicode, $setbom=true) { + $outstr = ""; // string to be returned + if ($setbom) { + $outstr .= "\xFE\xFF"; // Byte Order Mark (BOM) + } + foreach($unicode as $char) { + if($char == 0xFFFD) { + $outstr .= "\xFF\xFD"; // replacement character + } elseif ($char < 0x10000) { + $outstr .= chr($char >> 0x08); + $outstr .= chr($char & 0xFF); + } else { + $char -= 0x10000; + $w1 = 0xD800 | ($char >> 0x10); + $w2 = 0xDC00 | ($char & 0x3FF); + $outstr .= chr($w1 >> 0x08); + $outstr .= chr($w1 & 0xFF); + $outstr .= chr($w2 >> 0x08); + $outstr .= chr($w2 & 0xFF); + } + } + return $outstr; + } + // ==================================================== + + /** + * Set header font. + * @param array $font font + * @since 1.1 + */ + function setHeaderFont($font) { + $this->header_font = $font; + } + + /** + * Set footer font. + * @param array $font font + * @since 1.1 + */ + function setFooterFont($font) { + $this->footer_font = $font; + } + + /** + * Set language array. + * @param array $language + * @since 1.1 + */ + function setLanguageArray($language) { + $this->l = $language; + $this->rtl = $this->l['a_meta_dir']=='rtl' ? true : false; + } + + /** + * Set document barcode. + * @param string $bc barcode + */ + function setBarcode($bc="") { + $this->barcode = $bc; + } + + /** + * Print Barcode. + * @param int $x x position in user units + * @param int $y y position in user units + * @param int $w width in user units + * @param int $h height position in user units + * @param string $type type of barcode (I25, C128A, C128B, C128C, C39) + * @param string $style barcode style + * @param string $font font for text + * @param int $xres x resolution + * @param string $code code to print + */ + function writeBarcode($x, $y, $w, $h, $type, $style, $font, $xres, $code) { + require_once(dirname(__FILE__)."/barcode/barcode.php"); + require_once(dirname(__FILE__)."/barcode/i25object.php"); + require_once(dirname(__FILE__)."/barcode/c39object.php"); + require_once(dirname(__FILE__)."/barcode/c128aobject.php"); + require_once(dirname(__FILE__)."/barcode/c128bobject.php"); + require_once(dirname(__FILE__)."/barcode/c128cobject.php"); + + if (empty($code)) { + return; + } + + if (empty($style)) { + $style = BCS_ALIGN_LEFT; + $style |= BCS_IMAGE_PNG; + $style |= BCS_TRANSPARENT; + //$style |= BCS_BORDER; + //$style |= BCS_DRAW_TEXT; + //$style |= BCS_STRETCH_TEXT; + //$style |= BCS_REVERSE_COLOR; + } + if (empty($font)) {$font = BCD_DEFAULT_FONT;} + if (empty($xres)) {$xres = BCD_DEFAULT_XRES;} + + $scale_factor = 1.5 * $xres * $this->k; + $bc_w = round($w * $scale_factor); //width in points + $bc_h = round($h * $scale_factor); //height in points + + switch (strtoupper($type)) { + case "I25": { + $obj = new I25Object($bc_w, $bc_h, $style, $code); + break; + } + case "C128A": { + $obj = new C128AObject($bc_w, $bc_h, $style, $code); + break; + } + default: + case "C128B": { + $obj = new C128BObject($bc_w, $bc_h, $style, $code); + break; + } + case "C128C": { + $obj = new C128CObject($bc_w, $bc_h, $style, $code); + break; + } + case "C39": { + $obj = new C39Object($bc_w, $bc_h, $style, $code); + break; + } + } + + $obj->SetFont($font); + $obj->DrawObject($xres); + + //use a temporary file.... + $tmpName = tempnam(K_PATH_CACHE,'img'); + imagepng($obj->getImage(), $tmpName); + $this->Image($tmpName, $x, $y, $w, $h, 'png'); + $obj->DestroyObject(); + unset($obj); + unlink($tmpName); + } + + /** + * Returns the PDF data. + */ + function getPDFData() { + if($this->state < 3) { + $this->Close(); + } + return $this->buffer; + } + + // --- HTML PARSER FUNCTIONS --- + + /** + * Allows to preserve some HTML formatting.
+ * Supports: h1, h2, h3, h4, h5, h6, b, u, i, a, img, p, br, strong, em, font, blockquote, li, ul, ol, hr, td, th, tr, table, sup, sub, small + * @param string $html text to display + * @param boolean $ln if true add a new line after text (default = true) + * @param int $fill Indicates if the background must be painted (1) or transparent (0). Default value: 0. + * @param boolean $reseth if true reset the last cell height (default false). + * @param boolean $cell if true add the default cMargin space to each Write (default false). + */ + function writeHTML($html, $ln=true, $fill=0, $reseth=false, $cell=false) { + + // store some variables + $html=strip_tags($html,"




      1. "); //remove all unsupported tags + //replace carriage returns, newlines and tabs + $repTable = array("\t" => " ", "\n" => " ", "\r" => " ", "\0" => " ", "\x0B" => " "); + $html = strtr($html, $repTable); + $pattern = '/(<[^>]+>)/Uu'; + $a = preg_split($pattern, $html, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); //explodes the string + + if ((empty($this->lasth))OR ($reseth)) { + //set row height + $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO; + } + + foreach($a as $key=>$element) { + if (!preg_match($pattern, $element)) { + //Text + if($this->HREF) { + $this->addHtmlLink($this->HREF, $element, $fill); + } elseif($this->tdbegin) { + if((strlen(trim($element)) > 0) AND ($element != " ")) { + $this->Cell($this->tdwidth, $this->tdheight, $this->unhtmlentities($element), $this->tableborder, '', $this->tdalign, $this->tdbgcolor); + } elseif($element == " ") { + $this->Cell($this->tdwidth, $this->tdheight, '', $this->tableborder, '', $this->tdalign, $this->tdbgcolor); + } + } else { + + $ctmpmargin = $this->cMargin; + if(!$cell) { + $this->cMargin = 0; + } + + $this->Write($this->lasth, stripslashes($this->unhtmlentities($element)), '', $fill, '', false, 0); + + $this->cMargin = $ctmpmargin; + } + } else { + $element = substr($element, 1, -1); + //Tag + if($element{0}=='/') { + $this->closedHTMLTagHandler(strtolower(substr($element, 1))); + } + else { + //Extract attributes + // get tag name + preg_match('/([a-zA-Z0-9]*)/', $element, $tag); + $tag = strtolower($tag[0]); + // get attributes + preg_match_all('/([^=\s]*)=["\']?([^"\']*)["\']?/', $element, $attr_array, PREG_PATTERN_ORDER); + $attr = array(); // reset attribute array + while(list($id,$name)=each($attr_array[1])) { + $attr[strtolower($name)] = $attr_array[2][$id]; + } + $this->openHTMLTagHandler($tag, $attr, $fill); + } + } + } + if ($ln) { + $this->Ln($this->lasth); + } + } + + /** + * Prints a cell (rectangular area) with optional borders, background color and html text string. The upper-left corner of the cell corresponds to the current position. After the call, the current position moves to the right or to the next line.
        + * If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting. + * @param float $w Cell width. If 0, the cell extends up to the right margin. + * @param float $h Cell minimum height. The cell extends automatically if needed. + * @param float $x upper-left corner X coordinate + * @param float $y upper-left corner Y coordinate + * @param string $html html text to print. Default value: empty string. + * @param mixed $border Indicates if borders must be drawn around the cell. The value can be either a number:
        • 0: no border (default)
        • 1: frame
        or a string containing some or all of the following characters (in any order):
        • L: left
        • T: top
        • R: right
        • B: bottom
        + * @param int $ln Indicates where the current position should go after the call. Possible values are:
        • 0: to the right (or left for RTL language)
        • 1: to the beginning of the next line
        • 2: below
        + Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0. + * @param int $fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0. + * @param boolean $reseth if true reset the last cell height (default true). + * @see Cell() + */ + function writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true) { + + if ((empty($this->lasth))OR ($reseth)) { + //set row height + $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO; + } + + // get current page number + $startpage = $this->page; + + if (!empty($y)) { + $this->SetY($y); + } else { + $y = $this->GetY(); + } + if (!empty($x)) { + $this->SetX($x); + } else { + $x = $this->GetX(); + } + + if(empty($w)) { + if ($this->rtl) { + $w = $this->x - $this->lMargin; + } else { + $w = $this->w - $this->rMargin - $this->x; + } + } + + // store original margin values + $lMargin = $this->lMargin; + $rMargin = $this->rMargin; + + // set new margin values + if ($this->rtl) { + $this->SetLeftMargin($this->x - $w); + $this->SetRightMargin($this->w - $this->x); + } else { + $this->SetLeftMargin($this->x); + $this->SetRightMargin($this->w - $this->x - $w); + } + + // calculate remaining vertical space on first page ($startpage) + $restspace = $this->getPageHeight() - $this->GetY() - $this->getBreakMargin(); + + // Write HTML text + $this->writeHTML($html, true, $fill, $reseth, true); + + // Get end-of-text Y position + $currentY = $this->GetY(); + // get latest page number + $endpage = $this->page; + + if (!empty($border)) { + // check if a new page has been created + if ($endpage > $startpage) { + // design borders around HTML cells. + for ($page=$startpage; $page<=$endpage; $page++) { + $this->page = $page; + if ($page==$startpage) { + $this->SetY($this->getPageHeight() - $restspace - $this->getBreakMargin()); + $h = $restspace - 1; + } elseif ($page==$endpage) { + $this->SetY($this->tMargin); // put cursor at the beginning of text + $h = $currentY - $this->tMargin; + } else { + $this->SetY($this->tMargin); // put cursor at the beginning of text + $h = $this->getPageHeight() - $this->tMargin - $this->getBreakMargin(); + } + $this->SetX($x); + $this->Cell($w, $h, "", $border, 1, '', 0); + } + } else { + $h = max($h, ($currentY - $y)); + $this->SetY($y); // put cursor at the beginning of text + $this->SetX($x); + // design a cell around the text + $this->Cell($w, $h, "", $border, 1, '', 0); + } + } + + // restore original margin values + $this->SetLeftMargin($lMargin); + $this->SetRightMargin($rMargin); + + if($ln>0) { + //Go to the beginning of the next line + $this->SetY($currentY); + if($ln == 2) { + $this->SetX($x + $w); + } + } else { + // go left or right by case + $this->page = $startpage; + $this->y = $y; + $this->SetX($x + $w); + } + } + + /** + * Process opening tags. + * @param string $tag tag name (in uppercase) + * @param string $attr tag attribute (in uppercase) + * @param int $fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0. + * @access private + */ + function openHTMLTagHandler($tag, $attr, $fill=0) { + // check for text direction attribute + if (isset($attr['dir'])) { + $this->tmprtl = $attr['dir']=='rtl' ? 'R' : 'L'; + } else { + $this->tmprtl = false; + } + //Opening tag + switch($tag) { + case 'table': { + if ((isset($attr['border'])) AND ($attr['border'] != '')) { + $this->tableborder = $attr['border']; + } + else { + $this->tableborder = 0; + } + break; + } + case 'tr': { + break; + } + case 'td': + case 'th': { + if ((isset($attr['width'])) AND ($attr['width'] != '')) { + $this->tdwidth = ($attr['width']/4); + } + else { + $this->tdwidth = (($this->w - $this->lMargin - $this->rMargin) / $this->default_table_columns); + } + if ((isset($attr['height'])) AND ($attr['height'] != '')) { + $this->tdheight=($attr['height'] / $this->k); + } + else { + $this->tdheight = $this->lasth; + } + if ((isset($attr['align'])) AND ($attr['align'] != '')) { + switch ($attr['align']) { + case 'center': { + $this->tdalign = "C"; + break; + } + case 'right': { + $this->tdalign = "R"; + break; + } + default: + case 'left': { + $this->tdalign = "L"; + break; + } + } + } else { + if($this->rtl) { + $this->tdalign = "R"; + } else { + $this->tdalign = "L"; + } + } + if ((isset($attr['bgcolor'])) AND ($attr['bgcolor'] != '')) { + $coul = $this->convertColorHexToDec($attr['bgcolor']); + $this->SetFillColor($coul['R'], $coul['G'], $coul['B']); + $this->tdbgcolor=true; + } + $this->tdbegin=true; + break; + } + case 'hr': { + $this->Ln(); + if ((isset($attr['width'])) AND ($attr['width'] != '')) { + $hrWidth = $attr['width']; + } + else { + $hrWidth = $this->w - $this->lMargin - $this->rMargin; + } + $x = $this->GetX(); + $y = $this->GetY(); + $this->GetLineWidth(); + $prevlinewidth = $this->SetLineWidth(0.2); + $this->Line($x, $y, $x + $hrWidth, $y); + $this->SetLineWidth($prevlinewidth); + $this->Ln(); + break; + } + case 'strong': { + $this->setStyle('b', true); + break; + } + case 'em': { + $this->setStyle('i', true); + break; + } + case 'b': + case 'i': + case 'u': { + $this->setStyle($tag, true); + break; + } + case 'a': { + $this->HREF = $attr['href']; + break; + } + case 'img': { + if(isset($attr['src'])) { + // replace relative path with real server path + if ($attr['src'][0] == '/') { + $attr['src'] = $_SERVER['DOCUMENT_ROOT'].$attr['src']; + } + $attr['src'] = str_replace(K_PATH_URL, K_PATH_MAIN, $attr['src']); + if(!isset($attr['width'])) { + $attr['width'] = 0; + } + if(!isset($attr['height'])) { + $attr['height'] = 0; + } + if(!isset($attr['align'])) { + $align = 'N'; + } else { + switch($attr['align']) { + case 'top':{ + $align = 'T'; + break; + } + case 'middle':{ + $align = 'M'; + break; + } + case 'bottom':{ + $align = 'B'; + break; + } + default:{ + $align = 'N'; + break; + } + } + } + $this->Image($attr['src'], $this->GetX(),$this->GetY(), $this->pixelsToMillimeters($attr['width']), $this->pixelsToMillimeters($attr['height']), '', '', $align); + + } + break; + } + case 'ul': { + $this->listordered = false; + $this->listcount = 0; + break; + } + case 'ol': { + $this->listordered = true; + $this->listcount = 0; + break; + } + case 'li': { + $this->Ln(); + if ($this->listordered) { + if (isset($attr['value'])) { + $this->listcount = intval($attr['value']); + } + $this->lispacer = " ".(++$this->listcount).". "; + } else { + //unordered list simbol + $this->lispacer = " - "; + } + $rtldir = $this->tmprtl; + $this->tmprtl = false; + $this->Write($this->lasth, $this->lispacer, '', $fill, '', false, 0); + $this->tmprtl = $rtldir; + break; + } + case 'blockquote': + case 'br': { + $this->Ln(); + if(strlen($this->lispacer) > 0) { + if ($this->rtl) { + $this->x -= $this->GetStringWidth($this->lispacer); + } else { + $this->x += $this->GetStringWidth($this->lispacer); + } + } + break; + } + case 'p': { + $this->Ln(); + $this->Ln(); + break; + } + case 'sup': { + $currentFontSize = $this->FontSize; + $this->tempfontsize = $this->FontSizePt; + $this->SetFontSize($this->FontSizePt * K_SMALL_RATIO); + $this->SetXY($this->GetX(), $this->GetY() - (($currentFontSize - $this->FontSize)*(K_SMALL_RATIO))); + break; + } + case 'sub': { + $currentFontSize = $this->FontSize; + $this->tempfontsize = $this->FontSizePt; + $this->SetFontSize($this->FontSizePt * K_SMALL_RATIO); + $this->SetXY($this->GetX(), $this->GetY() + (($currentFontSize - $this->FontSize)*(K_SMALL_RATIO))); + break; + } + case 'small': { + $currentFontSize = $this->FontSize; + $this->tempfontsize = $this->FontSizePt; + $this->SetFontSize($this->FontSizePt * K_SMALL_RATIO); + $this->SetXY($this->GetX(), $this->GetY() + (($currentFontSize - $this->FontSize)/3)); + break; + } + case 'font': { + if (isset($attr['color']) AND $attr['color']!='') { + $coul = $this->convertColorHexToDec($attr['color']); + $this->SetTextColor($coul['R'],$coul['G'],$coul['B']); + $this->issetcolor=true; + } + if (isset($attr['face']) and in_array(strtolower($attr['face']), $this->fontlist)) { + $this->SetFont(strtolower($attr['face'])); + $this->issetfont=true; + } + if (isset($attr['size'])) { + $headsize = intval($attr['size']); + } else { + $headsize = 0; + } + $currentFontSize = $this->FontSize; + $this->tempfontsize = $this->FontSizePt; + $this->SetFontSize($this->FontSizePt + $headsize); + $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO; + break; + } + case 'h1': + case 'h2': + case 'h3': + case 'h4': + case 'h5': + case 'h6': { + $headsize = (4 - substr($tag, 1)) * 2; + $currentFontSize = $this->FontSize; + $this->tempfontsize = $this->FontSizePt; + $this->SetFontSize($this->FontSizePt + $headsize); + $this->setStyle('b', true); + $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO; + break; + } + } + } + + /** + * Process closing tags. + * @param string $tag tag name (in uppercase) + * @access private + */ + function closedHTMLTagHandler($tag) { + //Closing tag + switch($tag) { + case 'td': + case 'th': { + $this->tdbegin = false; + $this->tdwidth = 0; + $this->tdheight = 0; + if($this->rtl) { + $this->tdalign = "R"; + } else { + $this->tdalign = "L"; + } + $this->tdbgcolor = false; + $this->SetFillColor($this->prevFillColor[0], $this->prevFillColor[1], $this->prevFillColor[2]); + break; + } + case 'tr': { + $this->Ln(); + break; + } + case 'table': { + $this->tableborder=0; + break; + } + case 'strong': { + $this->setStyle('b', false); + break; + } + case 'em': { + $this->setStyle('i', false); + break; + } + case 'b': + case 'i': + case 'u': { + $this->setStyle($tag, false); + break; + } + case 'a': { + $this->HREF = ''; + break; + } + case 'sup': { + $currentFontSize = $this->FontSize; + $this->SetFontSize($this->tempfontsize); + $this->tempfontsize = $this->FontSizePt; + $this->SetXY($this->GetX(), $this->GetY() - (($currentFontSize - $this->FontSize)*(K_SMALL_RATIO))); + break; + } + case 'sub': { + $currentFontSize = $this->FontSize; + $this->SetFontSize($this->tempfontsize); + $this->tempfontsize = $this->FontSizePt; + $this->SetXY($this->GetX(), $this->GetY() + (($currentFontSize - $this->FontSize)*(K_SMALL_RATIO))); + break; + } + case 'small': { + $currentFontSize = $this->FontSize; + $this->SetFontSize($this->tempfontsize); + $this->tempfontsize = $this->FontSizePt; + $this->SetXY($this->GetX(), $this->GetY() - (($this->FontSize - $currentFontSize)/3)); + break; + } + case 'font': { + if ($this->issetcolor == true) { + $this->SetTextColor($this->prevTextColor[0], $this->prevTextColor[1], $this->prevTextColor[2]); + } + if ($this->issetfont) { + $this->FontFamily = $this->prevFontFamily; + $this->FontStyle = $this->prevFontStyle; + $this->SetFont($this->FontFamily); + $this->issetfont = false; + } + $currentFontSize = $this->FontSize; + $this->SetFontSize($this->tempfontsize); + $this->tempfontsize = $this->FontSizePt; + //$this->TextColor = $this->prevTextColor; + $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO; + break; + } + case 'p': { + $this->Ln(); + $this->Ln(); + break; + } + case 'ul': + case 'ol': { + $this->Ln(); + $this->Ln(); + break; + } + case 'li': { + $this->lispacer = ""; + break; + } + case 'h1': + case 'h2': + case 'h3': + case 'h4': + case 'h5': + case 'h6': { + $currentFontSize = $this->FontSize; + $this->SetFontSize($this->tempfontsize); + $this->tempfontsize = $this->FontSizePt; + $this->setStyle('b', false); + $this->Ln(); + $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO; + break; + } + default : { + break; + } + } + $this->tmprtl = false; + } + + /** + * Sets font style. + * @param string $tag tag name (in lowercase) + * @param boolean $enable + * @access private + */ + function setStyle($tag, $enable) { + //Modify style and select corresponding font + $this->$tag += ($enable ? 1 : -1); + $style=''; + foreach(array('b', 'i', 'u') as $s) { + if($this->$s > 0) { + $style .= $s; + } + } + $this->SetFont('', $style); + } + + /** + * Output anchor link. + * @param string $url link URL + * @param string $name link name + * @param int $fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0. + * @access public + */ + function addHtmlLink($url, $name, $fill=0) { + //Put a hyperlink + $this->SetTextColor(0, 0, 255); + $this->setStyle('u', true); + $this->Write($this->lasth, $name, $url, $fill, '', false, 0); + $this->setStyle('u', false); + $this->SetTextColor(0); + } + + /** + * Returns an associative array (keys: R,G,B) from + * a hex html code (e.g. #3FE5AA). + * @param string $color hexadecimal html color [#rrggbb] + * @return array + * @access private + */ + function convertColorHexToDec($color = "#000000"){ + $tbl_color = array(); + $tbl_color['R'] = hexdec(substr($color, 1, 2)); + $tbl_color['G'] = hexdec(substr($color, 3, 2)); + $tbl_color['B'] = hexdec(substr($color, 5, 2)); + return $tbl_color; + } + + /** + * Converts pixels to millimeters in 72 dpi. + * @param int $px pixels + * @return float millimeters + * @access private + */ + function pixelsToMillimeters($px){ + return $px * 25.4 / 72; + } + + /** + * Reverse function for htmlentities. + * Convert entities in UTF-8. + * + * @param $text_to_convert Text to convert. + * @return string converted + */ + function unhtmlentities($text_to_convert) { + if (!$this->isunicode) { + return html_entity_decode($text_to_convert); + } + require_once(dirname(__FILE__).'/html_entity_decode_php4.php'); + return html_entity_decode_php4($text_to_convert); + } + + // ENCRYPTION METHODS ---------------------------------- + // SINCE 2.0.000 (2008-01-02) + /** + * Compute encryption key depending on object number where the encrypted data is stored + * @param int $n object number + * @since 2.0.000 (2008-01-02) + */ + function _objectkey($n) { + return substr($this->_md5_16($this->encryption_key.pack('VXxx',$n)),0,10); + } + + /** + * Put encryption on PDF document + * @since 2.0.000 (2008-01-02) + */ + function _putencryption() { + $this->_out('/Filter /Standard'); + $this->_out('/V 1'); + $this->_out('/R 2'); + $this->_out('/O ('.$this->_escape($this->Ovalue).')'); + $this->_out('/U ('.$this->_escape($this->Uvalue).')'); + $this->_out('/P '.$this->Pvalue); + } + + /** + * Returns the input text exrypted using RC4 algorithm and the specified key. + * RC4 is the standard encryption algorithm used in PDF format + * @param string $key encryption key + * @param String $text input text to be encrypted + * @return String encrypted text + * @since 2.0.000 (2008-01-02) + * @author Klemen Vodopivec + */ + function _RC4($key, $text) { + if ($this->last_rc4_key != $key) { + $k = str_repeat($key, 256/strlen($key)+1); + $rc4 = range(0,255); + $j = 0; + for ($i=0; $i<256; $i++) { + $t = $rc4[$i]; + $j = ($j + $t + ord($k{$i})) % 256; + $rc4[$i] = $rc4[$j]; + $rc4[$j] = $t; + } + $this->last_rc4_key = $key; + $this->last_rc4_key_c = $rc4; + } else { + $rc4 = $this->last_rc4_key_c; + } + $len = strlen($text); + $a = 0; + $b = 0; + $out = ''; + for ($i=0; $i<$len; $i++) { + $a = ($a+1)%256; + $t= $rc4[$a]; + $b = ($b+$t)%256; + $rc4[$a] = $rc4[$b]; + $rc4[$b] = $t; + $k = $rc4[($rc4[$a]+$rc4[$b])%256]; + $out.=chr(ord($text{$i}) ^ $k); + } + return $out; + } + + /** + * Encrypts a string using MD5 and returns it's value as a binary string. + * @param string $str input string + * @return String MD5 encrypted binary string + * @since 2.0.000 (2008-01-02) + * @author Klemen Vodopivec + */ + function _md5_16($str) { + return pack('H*',md5($str)); + } + + /** + * Compute O value (used for RC4 encryption) + * @param String $user_pass user password + * @param String $owner_pass user password + * @return String O value + * @since 2.0.000 (2008-01-02) + * @author Klemen Vodopivec + */ + function _Ovalue($user_pass, $owner_pass) { + $tmp = $this->_md5_16($owner_pass); + $owner_RC4_key = substr($tmp,0,5); + return $this->_RC4($owner_RC4_key, $user_pass); + } + + /** + * Compute U value (used for RC4 encryption) + * @return String U value + * @since 2.0.000 (2008-01-02) + * @author Klemen Vodopivec + */ + function _Uvalue() { + return $this->_RC4($this->encryption_key, $this->padding); + } + + /** + * Compute encryption key + * @param String $user_pass user password + * @param String $owner_pass user password + * @param String $protection protection type + * @since 2.0.000 (2008-01-02) + * @author Klemen Vodopivec + */ + function _generateencryptionkey($user_pass, $owner_pass, $protection) { + // Pad passwords + $user_pass = substr($user_pass.$this->padding,0,32); + $owner_pass = substr($owner_pass.$this->padding,0,32); + // Compute O value + $this->Ovalue = $this->_Ovalue($user_pass,$owner_pass); + // Compute encyption key + $tmp = $this->_md5_16($user_pass.$this->Ovalue.chr($protection)."\xFF\xFF\xFF"); + $this->encryption_key = substr($tmp,0,5); + // Compute U value + $this->Uvalue = $this->_Uvalue(); + // Compute P value + $this->Pvalue = -(($protection^255)+1); + } + + /** + * Set document protection + * The permission array is composed of values taken from the following ones: + * - copy: copy text and images to the clipboard + * - print: print the document + * - modify: modify it (except for annotations and forms) + * - annot-forms: add annotations and forms + * Remark: the protection against modification is for people who have the full Acrobat product. + * If you don't set any password, the document will open as usual. If you set a user password, the PDF viewer will ask for it before displaying the document. The master password, if different from the user one, can be used to get full access. + * Note: protecting a document requires to encrypt it, which increases the processing time a lot. This can cause a PHP time-out in some cases, especially if the document contains images or fonts. + * @param Array $permissions the set of permissions. Empty by default (only viewing is allowed). (print, modify, copy, annot-forms) + * @param String $user_pass user password. Empty by default. + * @param String $owner_pass owner password. If not specified, a random value is used. + * @since 2.0.000 (2008-01-02) + * @author Klemen Vodopivec + */ + function SetProtection($permissions=array(),$user_pass='',$owner_pass=null) { + $options = array('print' => 4, 'modify' => 8, 'copy' => 16, 'annot-forms' => 32); + $protection = 192; + foreach($permissions as $permission) { + if (!isset($options[$permission])) { + $this->Error('Incorrect permission: '.$permission); + } + $protection += $options[$permission]; + } + if ($owner_pass === null) { + $owner_pass = uniqid(rand()); + } + $this->encrypted = true; + $this->_generateencryptionkey($user_pass, $owner_pass, $protection); + } + + // END OF ENCRYPTION FUNCTIONS ------------------------- + + // START TRANSFORMATIONS SECTION ----------------------- + // authors: Moritz Wagner, Andreas Wurmser, Nicola Asuni + + /** + * Starts a 2D tranformation saving current graphic state. + * This function must be called before scaling, mirroring, translation, rotation and skewing. + * Use StartTransform() before, and StopTransform() after the transformations to restore the normal behavior. + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function StartTransform() { + $this->_out('q'); + } + + /** + * Stops a 2D tranformation restoring previous graphic state. + * This function must be called after scaling, mirroring, translation, rotation and skewing. + * Use StartTransform() before, and StopTransform() after the transformations to restore the normal behavior. + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function StopTransform() { + $this->_out('Q'); + } + /** + * Horizontal Scaling. + * @param float $s_x scaling factor for width as percent. 0 is not allowed. + * @param int $x abscissa of the scaling center. Default is current x position + * @param int $y ordinate of the scaling center. Default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function ScaleX($s_x, $x='', $y=''){ + $this->Scale($s_x, 100, $x, $y); + } + + /** + * Vertical Scaling. + * @param float $s_y scaling factor for height as percent. 0 is not allowed. + * @param int $x abscissa of the scaling center. Default is current x position + * @param int $y ordinate of the scaling center. Default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function ScaleY($s_y, $x='', $y=''){ + $this->Scale(100, $s_y, $x, $y); + } + + /** + * Vertical and horizontal proportional Scaling. + * @param float $s scaling factor for width and height as percent. 0 is not allowed. + * @param int $x abscissa of the scaling center. Default is current x position + * @param int $y ordinate of the scaling center. Default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function ScaleXY($s, $x='', $y=''){ + $this->Scale($s, $s, $x, $y); + } + + /** + * Vertical and horizontal non-proportional Scaling. + * @param float $s_x scaling factor for width as percent. 0 is not allowed. + * @param float $s_y scaling factor for height as percent. 0 is not allowed. + * @param int $x abscissa of the scaling center. Default is current x position + * @param int $y ordinate of the scaling center. Default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function Scale($s_x, $s_y, $x='', $y=''){ + if($x === '') { + $x=$this->x; + } + if($y === '') { + $y=$this->y; + } + if($this->rtl) { + $x = $this->w - $x; + } + if($s_x == 0 OR $s_y == 0) + $this->Error('Please use values unequal to zero for Scaling'); + $y=($this->h-$y)*$this->k; + $x*=$this->k; + //calculate elements of transformation matrix + $s_x/=100; + $s_y/=100; + $tm[0]=$s_x; + $tm[1]=0; + $tm[2]=0; + $tm[3]=$s_y; + $tm[4]=$x*(1-$s_x); + $tm[5]=$y*(1-$s_y); + //scale the coordinate system + $this->Transform($tm); + } + + /** + * Horizontal Mirroring. + * @param int $x abscissa of the point. Default is current x position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function MirrorH($x=''){ + $this->Scale(-100, 100, $x); + } + + /** + * Verical Mirroring. + * @param int $y ordinate of the point. Default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function MirrorV($y=''){ + $this->Scale(100, -100, '', $y); + } + + /** + * Point reflection mirroring. + * @param int $x abscissa of the point. Default is current x position + * @param int $y ordinate of the point. Default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function MirrorP($x='',$y=''){ + $this->Scale(-100, -100, $x, $y); + } + + /** + * Reflection against a straight line through point (x, y) with the gradient angle (angle). + * @param float $angle gradient angle of the straight line. Default is 0 (horizontal line). + * @param int $x abscissa of the point. Default is current x position + * @param int $y ordinate of the point. Default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function MirrorL($angle=0, $x='',$y=''){ + $this->Scale(-100, 100, $x, $y); + $this->Rotate(-2*($angle-90),$x,$y); + } + + /** + * Translate graphic object horizontally. + * @param int $t_x movement to the right + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function TranslateX($t_x){ + $this->Translate($t_x, 0); + } + + /** + * Translate graphic object vertically. + * @param int $t_y movement to the bottom + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function TranslateY($t_y){ + $this->Translate(0, $t_y, $x, $y); + } + + /** + * Translate graphic object horizontally and vertically. + * @param int $t_x movement to the right + * @param int $t_y movement to the bottom + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function Translate($t_x, $t_y){ + if($this->rtl) { + $t_x = -$t_x; + } + //calculate elements of transformation matrix + $tm[0]=1; + $tm[1]=0; + $tm[2]=0; + $tm[3]=1; + $tm[4]=$t_x*$this->k; + $tm[5]=-$t_y*$this->k; + //translate the coordinate system + $this->Transform($tm); + } + + /** + * Rotate object. + * @param float $angle angle in degrees for counter-clockwise rotation + * @param int $x abscissa of the rotation center. Default is current x position + * @param int $y ordinate of the rotation center. Default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function Rotate($angle, $x='', $y=''){ + if($x === '') { + $x=$this->x; + } + if($y === '') { + $y=$this->y; + } + if($this->rtl) { + $x = $this->w - $x; + $angle = -$angle; + } + $y=($this->h-$y)*$this->k; + $x*=$this->k; + //calculate elements of transformation matrix + $tm[0]=cos(deg2rad($angle)); + $tm[1]=sin(deg2rad($angle)); + $tm[2]=-$tm[1]; + $tm[3]=$tm[0]; + $tm[4]=$x+$tm[1]*$y-$tm[0]*$x; + $tm[5]=$y-$tm[0]*$y-$tm[1]*$x; + //rotate the coordinate system around ($x,$y) + $this->Transform($tm); + } + + /** + * Skew horizontally. + * @param float $angle_x angle in degrees between -90 (skew to the left) and 90 (skew to the right) + * @param int $x abscissa of the skewing center. default is current x position + * @param int $y ordinate of the skewing center. default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function SkewX($angle_x, $x='', $y=''){ + $this->Skew($angle_x, 0, $x, $y); + } + + /** + * Skew vertically. + * @param float $angle_y angle in degrees between -90 (skew to the bottom) and 90 (skew to the top) + * @param int $x abscissa of the skewing center. default is current x position + * @param int $y ordinate of the skewing center. default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function SkewY($angle_y, $x='', $y=''){ + $this->Skew(0, $angle_y, $x, $y); + } + + /** + * Skew. + * @param float $angle_x angle in degrees between -90 (skew to the left) and 90 (skew to the right) + * @param float $angle_y angle in degrees between -90 (skew to the bottom) and 90 (skew to the top) + * @param int $x abscissa of the skewing center. default is current x position + * @param int $y ordinate of the skewing center. default is current y position + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function Skew($angle_x, $angle_y, $x='', $y=''){ + if($x === '') { + $x=$this->x; + } + if($y === '') { + $y=$this->y; + } + if($this->rtl) { + $x = $this->w - $x; + $angle_x = -$angle_x; + } + if($angle_x <= -90 OR $angle_x >= 90 OR $angle_y <= -90 OR $angle_y >= 90) + $this->Error('Please use values between -90� and 90� for skewing'); + $x*=$this->k; + $y=($this->h-$y)*$this->k; + //calculate elements of transformation matrix + $tm[0]=1; + $tm[1]=tan(deg2rad($angle_y)); + $tm[2]=tan(deg2rad($angle_x)); + $tm[3]=1; + $tm[4]=-$tm[2]*$y; + $tm[5]=-$tm[1]*$x; + //skew the coordinate system + $this->Transform($tm); + } + + /** + * Apply graphic transformations. + * @since 2.1.000 (2008-01-07) + * @see StartTransform(), StopTransform() + */ + function Transform($tm){ + $this->_out(sprintf('%.3f %.3f %.3f %.3f %.3f %.3f cm', $tm[0],$tm[1],$tm[2],$tm[3],$tm[4],$tm[5])); + } + + // END TRANSFORMATIONS SECTION ------------------------- + + + // START GRAPHIC FUNCTIONS SECTION --------------------- + // The following section is based on the code provided by David Hernandez Sanz + + /** + * Defines the line width. By default, the value equals 0.2 mm. The method can be called before the first page is created and the value is retained from page to page. + * @param float $width The width. + * @since 1.0 + * @see Line(), Rect(), Cell(), MultiCell() + */ + function SetLineWidth($width) { + //Set line width + $this->LineWidth=$width; + if($this->page>0) { + $this->_out(sprintf('%.2f w',$width*$this->k)); + } + } + + /** + * Returns the current the line width. + * @return int Line width + * @since 2.1.000 (2008-01-07) + * @see Line(), SetLineWidth() + */ + function GetLineWidth() { + return $this->LineWidth; + } + + /** + * Set line style. + * + * @param array $style Line style. Array with keys among the following: + *
          + *
        • width (float): Width of the line in user units.
        • + *
        • cap (string): Type of cap to put on the line. Possible values are: + * butt, round, square. The difference between "square" and "butt" is that + * "square" projects a flat end past the end of the line.
        • + *
        • join (string): Type of join. Possible values are: miter, round, + * bevel.
        • + *
        • dash (mixed): Dash pattern. Is 0 (without dash) or string with + * series of length values, which are the lengths of the on and off dashes. + * For example: "2" represents 2 on, 2 off, 2 on, 2 off, ...; "2,1" is 2 on, + * 1 off, 2 on, 1 off, ...
        • + *
        • phase (integer): Modifier on the dash pattern which is used to shift + * the point at which the pattern starts.
        • + *
        • color (array): Draw color. Format: array(red, green, blue).
        • + *
        + * @access public + * @since 2.1.000 (2008-01-08) + */ + function SetLineStyle($style) { + extract($style); + if (isset($width)) { + $width_prev = $this->LineWidth; + $this->SetLineWidth($width); + $this->LineWidth = $width_prev; + } + if (isset($cap)) { + $ca = array("butt" => 0, "round"=> 1, "square" => 2); + if (isset($ca[$cap])) { + $this->_out($ca[$cap] . " J"); + } + } + if (isset($join)) { + $ja = array("miter" => 0, "round" => 1, "bevel" => 2); + if (isset($ja[$join])) { + $this->_out($ja[$join] . " j"); + } + } + if (isset($dash)) { + $dash_string = ""; + if ($dash) { + if (ereg("^.+,", $dash)) { + $tab = explode(",", $dash); + } else { + $tab = array($dash); + } + $dash_string = ""; + foreach ($tab as $i => $v) { + if ($i) { + $dash_string .= " "; + } + $dash_string .= sprintf("%.2f", $v); + } + } + if (!isset($phase) OR !$dash) { + $phase = 0; + } + $this->_out(sprintf("[%s] %.2f d", $dash_string, $phase)); + } + if (isset($color)) { + list($r, $g, $b) = $color; + $this->SetDrawColor($r, $g, $b); + } + } + + /* + * Set a draw point. + * @param float $x Abscissa of point. + * @param float $y Ordinate of point. + * @access private + * @since 2.1.000 (2008-01-08) + */ + function _outPoint($x, $y) { + if($this->rtl) { + $x = $this->w - $x; + } + $this->_out(sprintf("%.2f %.2f m", $x * $this->k, ($this->h - $y) * $this->k)); + } + + /* + * Draws a line from last draw point. + * @param float $x Abscissa of end point. + * @param float $y Ordinate of end point. + * @access private + * @since 2.1.000 (2008-01-08) + */ + function _outLine($x, $y) { + if($this->rtl) { + $x = $this->w - $x; + } + $this->_out(sprintf("%.2f %.2f l", $x * $this->k, ($this->h - $y) * $this->k)); + } + + /** + * Draws a rectangle. + * @param float $x Abscissa of upper-left corner (or upper-right corner for RTL language). + * @param float $y Ordinate of upper-left corner (or upper-right corner for RTL language). + * @param float $w Width. + * @param float $h Height. + * @param string $op options + * @access protected + * @since 2.1.000 (2008-01-08) + */ + function _outRect($x, $y, $w, $h, $op) { + if($this->rtl) { + $x = $this->w - $x - $w; + } + $this->_out(sprintf('%.2f %.2f %.2f %.2f re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op)); + } + + /* + * Draws a Bezier curve from last draw point. + * The Bezier curve is a tangent to the line between the control points at either end of the curve. + * @param float $x1 Abscissa of control point 1. + * @param float $y1 Ordinate of control point 1. + * @param float $x2 Abscissa of control point 2. + * @param float $y2 Ordinate of control point 2. + * @param float $x3 Abscissa of end point. + * @param float $y3 Ordinate of end point. + * @access private + * @since 2.1.000 (2008-01-08) + */ + function _outCurve($x1, $y1, $x2, $y2, $x3, $y3) { + if($this->rtl) { + $x1 = $this->w - $x1; + $x2 = $this->w - $x2; + $x3 = $this->w - $x3; + } + $this->_out(sprintf("%.2f %.2f %.2f %.2f %.2f %.2f c", $x1 * $this->k, ($this->h - $y1) * $this->k, $x2 * $this->k, ($this->h - $y2) * $this->k, $x3 * $this->k, ($this->h - $y3) * $this->k)); + } + + /** + * Draws a line between two points. + * @param float $x1 Abscissa of first point. + * @param float $y1 Ordinate of first point. + * @param float $x2 Abscissa of second point. + * @param float $y2 Ordinate of second point. + * @param array $style Line style. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array). + * @access public + * @since 1.0 + * @see SetLineWidth(), SetDrawColor(), SetLineStyle() + */ + function Line($x1, $y1, $x2, $y2, $style = array()) { + if ($style) { + $this->SetLineStyle($style); + } + $this->_outPoint($x1, $y1); + $this->_outLine($x2, $y2); + $this->_out(" S"); + } + + /** + * Draws a rectangle. + * @param float $x Abscissa of upper-left corner (or upper-right corner for RTL language). + * @param float $y Ordinate of upper-left corner (or upper-right corner for RTL language). + * @param float $w Width. + * @param float $h Height. + * @param string $style Style of rendering. Possible values are: + *
          + *
        • D or empty string: Draw (default).
        • + *
        • F: Fill.
        • + *
        • DF or FD: Draw and fill.
        • + *
        + * @param array $border_style Border style of rectangle. Array with keys among the following: + *
          + *
        • all: Line style of all borders. Array like for {@link SetLineStyle SetLineStyle}.
        • + *
        • L, T, R, B or combinations: Line style of left, top, right or bottom border. Array like for {@link SetLineStyle SetLineStyle}.
        • + *
        + * If a key is not present or is null, not draws the border. Default value: default line style (empty array). + * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array). + * @access public + * @since 1.0 + * @see SetLineStyle() + */ + function Rect($x, $y, $w, $h, $style='', $border_style = array(), $fill_color = array()) { + if (!(false === strpos($style, "F")) AND $fill_color) { + list($r, $g, $b) = $fill_color; + $this->SetFillColor($r, $g, $b); + } + switch ($style) { + case "F": { + $op='f'; + $border_style = array(); + $this->_outRect($x, $y, $w, $h, $op); + break; + } + case "DF": + case "FD": { + if (!$border_style OR isset($border_style["all"])) { + $op='B'; + if (isset($border_style["all"])) { + $this->SetLineStyle($border_style["all"]); + $border_style = array(); + } + } else { + $op='f'; + } + $this->_outRect($x, $y, $w, $h, $op); + break; + } + default: { + $op='S'; + if (!$border_style OR isset($border_style["all"])) { + if (isset($border_style["all"]) && $border_style["all"]) { + $this->SetLineStyle($border_style["all"]); + $border_style = array(); + } + $this->_outRect($x, $y, $w, $h, $op); + } + break; + } + } + if ($border_style) { + $border_style2 = array(); + foreach ($border_style as $line => $value) { + $lenght = strlen($line); + for ($i = 0; $i < $lenght; $i++) { + $border_style2[$line[$i]] = $value; + } + } + $border_style = $border_style2; + if (isset($border_style["L"]) && $border_style["L"]) { + $this->Line($x, $y, $x, $y + $h, $border_style["L"]); + } + if (isset($border_style["T"]) && $border_style["T"]) { + $this->Line($x, $y, $x + $w, $y, $border_style["T"]); + } + if (isset($border_style["R"]) && $border_style["R"]) { + $this->Line($x + $w, $y, $x + $w, $y + $h, $border_style["R"]); + } + if (isset($border_style["B"]) && $border_style["B"]) { + $this->Line($x, $y + $h, $x + $w, $y + $h, $border_style["B"]); + } + } + } + + + /** + * Draws a Bezier curve. + * The Bezier curve is a tangent to the line between the control points at + * either end of the curve. + * @param float $x0 Abscissa of start point. + * @param float $y0 Ordinate of start point. + * @param float $x1 Abscissa of control point 1. + * @param float $y1 Ordinate of control point 1. + * @param float $x2 Abscissa of control point 2. + * @param float $y2 Ordinate of control point 2. + * @param float $x3 Abscissa of end point. + * @param float $y3 Ordinate of end point. + * @param string $style Style of rendering. Possible values are: + *
          + *
        • D or empty string: Draw (default).
        • + *
        • F: Fill.
        • + *
        • DF or FD: Draw and fill.
        • + *
        + * @param array $line_style Line style of curve. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array). + * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array). + * @access public + * @see SetLineStyle() + * @since 2.1.000 (2008-01-08) + */ + function Curve($x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3, $style = "", $line_style = array(), $fill_color = array()) { + if (!(false === strpos($style, "F")) AND $fill_color) { + list($r, $g, $b) = $fill_color; + $this->SetFillColor($r, $g, $b); + } + switch ($style) { + case "F": { + $op = "f"; + $line_style = array(); + break; + } + case "FD": + case "DF": { + $op = "B"; + break; + } + default: { + $op = "S"; + break; + } + } + if ($line_style) { + $this->SetLineStyle($line_style); + } + $this->_outPoint($x0, $y0); + $this->_outCurve($x1, $y1, $x2, $y2, $x3, $y3); + $this->_out($op); + } + + /** + * Draws an ellipse. + * An ellipse is formed from n Bezier curves. + * @param float $x0 Abscissa of center point. + * @param float $y0 Ordinate of center point. + * @param float $rx Horizontal radius. + * @param float $ry Vertical radius (if ry = 0 then is a circle, see {@link Circle Circle}). Default value: 0. + * @param float $angle: Angle oriented (anti-clockwise). Default value: 0. + * @param float $astart: Angle start of draw line. Default value: 0. + * @param float $afinish: Angle finish of draw line. Default value: 360. + * @param string $style Style of rendering. Possible values are: + *
          + *
        • D or empty string: Draw (default).
        • + *
        • F: Fill.
        • + *
        • DF or FD: Draw and fill.
        • + *
        • C: Draw close.
        • + *
        + * @param array $line_style Line style of ellipse. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array). + * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array). + * @param integer $nc Number of curves used in ellipse. Default value: 8. + * @access public + * @since 2.1.000 (2008-01-08) + */ + function Ellipse($x0, $y0, $rx, $ry = 0, $angle = 0, $astart = 0, $afinish = 360, $style = "", $line_style = array(), $fill_color = array(), $nc = 8) { + if ($angle) { + $this->StartTransform(); + $this->Rotate($angle, $x0, $y0); + $this->Ellipse($x0, $y0, $rx, $ry, 0, $astart, $afinish, $style, $line_style, $fill_color, $nc); + $this->StopTransform(); + return; + } + if ($rx) { + if (!(false === strpos($style, "F")) AND $fill_color) { + list($r, $g, $b) = $fill_color; + $this->SetFillColor($r, $g, $b); + } + switch ($style) { + case "F": { + $op = "f"; + $line_style = array(); + break; + } + case "FD": + case "DF": { + $op = "B"; + break; + } + case "C": { + $op = "s"; // Small "s" signifies closing the path as well + break; + } + default: { + $op = "S"; + break; + } + } + if ($line_style) { + $this->SetLineStyle($line_style); + } + if (!$ry) { + $ry = $rx; + } + $rx *= $this->k; + $ry *= $this->k; + if ($nc < 2){ + $nc = 2; + } + $astart = deg2rad((float) $astart); + $afinish = deg2rad((float) $afinish); + $total_angle = $afinish - $astart; + $dt = $total_angle / $nc; + $dtm = $dt/3; + $x0 *= $this->k; + $y0 = ($this->h - $y0) * $this->k; + $t1 = $astart; + $a0 = $x0 + ($rx * cos($t1)); + $b0 = $y0 + ($ry * sin($t1)); + $c0 = -$rx * sin($t1); + $d0 = $ry * cos($t1); + $this->_outPoint($a0 / $this->k, $this->h - ($b0 / $this->k)); + for ($i = 1; $i <= $nc; $i++) { + // Draw this bit of the total curve + $t1 = ($i * $dt) + $astart; + $a1 = $x0 + ($rx * cos($t1)); + $b1 = $y0 + ($ry * sin($t1)); + $c1 = -$rx * sin($t1); + $d1 = $ry * cos($t1); + $this->_outCurve(($a0 + ($c0 * $dtm)) / $this->k, $this->h - (($b0 + ($d0 * $dtm)) / $this->k), ($a1 - ($c1 * $dtm)) / $this->k, $this->h - (($b1 - ($d1 * $dtm)) / $this->k), $a1 / $this->k, $this->h - ($b1 / $this->k)); + $a0 = $a1; + $b0 = $b1; + $c0 = $c1; + $d0 = $d1; + } + $this->_out($op); + } + } + + /** + * Draws a circle. + * A circle is formed from n Bezier curves. + * @param float $x0 Abscissa of center point. + * @param float $y0 Ordinate of center point. + * @param float $r Radius. + * @param float $astart: Angle start of draw line. Default value: 0. + * @param float $afinish: Angle finish of draw line. Default value: 360. + * @param string $style Style of rendering. Possible values are: + *
          + *
        • D or empty string: Draw (default).
        • + *
        • F: Fill.
        • + *
        • DF or FD: Draw and fill.
        • + *
        • C: Draw close.
        • + *
        + * @param array $line_style Line style of circle. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array). + * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array). + * @param integer $nc Number of curves used in circle. Default value: 8. + * @access public + * @since 2.1.000 (2008-01-08) + */ + function Circle($x0, $y0, $r, $astart = 0, $afinish = 360, $style = "", $line_style = array(), $fill_color = array(), $nc = 8) { + $this->Ellipse($x0, $y0, $r, 0, 0, $astart, $afinish, $style, $line_style, $fill_color, $nc); + } + + /** + * Draws a polygon. + * @param array $p Points 0 to ($np - 1). Array with values (x0, y0, x1, y1,..., x(np-1), y(np - 1)) + * @param string $style Style of rendering. Possible values are: + *
          + *
        • D or empty string: Draw (default).
        • + *
        • F: Fill.
        • + *
        • DF or FD: Draw and fill.
        • + *
        + * @param array $line_style Line style of polygon. Array with keys among the following: + *
          + *
        • all: Line style of all lines. Array like for {@link SetLineStyle SetLineStyle}.
        • + *
        • 0 to ($np - 1): Line style of each line. Array like for {@link SetLineStyle SetLineStyle}.
        • + *
        + * If a key is not present or is null, not draws the line. Default value is default line style (empty array). + * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array). + * @access public + * @since 2.1.000 (2008-01-08) + */ + function Polygon($p, $style = "", $line_style = array(), $fill_color = array()) { + $np = count($p) / 2; + if (!(false === strpos($style, "F")) AND $fill_color) { + list($r, $g, $b) = $fill_color; + $this->SetFillColor($r, $g, $b); + } + switch ($style) { + case "F": { + $line_style = array(); + $op = "f"; + break; + } + case "FD": + case "DF": { + $op = "B"; + break; + } + default: { + $op = "S"; + break; + } + } + $draw = true; + if ($line_style) { + if (isset($line_style["all"])) { + $this->SetLineStyle($line_style["all"]); + } + else { // 0 .. (np - 1), op = {B, S} + $draw = false; + if ("B" == $op) { + $op = "f"; + $this->_outPoint($p[0], $p[1]); + for ($i = 2; $i < ($np * 2); $i = $i + 2) { + $this->_outLine($p[$i], $p[$i + 1]); + } + $this->_outLine($p[0], $p[1]); + $this->_out($op); + } + $p[$np * 2] = $p[0]; + $p[($np * 2) + 1] = $p[1]; + for ($i = 0; $i < $np; $i++) { + if (isset($line_style[$i])) { + $this->Line($p[$i * 2], $p[($i * 2) + 1], $p[($i * 2) + 2], $p[($i * 2) + 3], $line_style[$i]); + } + } + } + } + if ($draw) { + $this->_outPoint($p[0], $p[1]); + for ($i = 2; $i < ($np * 2); $i = $i + 2) { + $this->_outLine($p[$i], $p[$i + 1]); + } + $this->_outLine($p[0], $p[1]); + $this->_out($op); + } + } + + /** + * Draws a regular polygon. + * @param float $x0 Abscissa of center point. + * @param float $y0 Ordinate of center point. + * @param float $r: Radius of inscribed circle. + * @param integer $ns Number of sides. + * @param float $angle Angle oriented (anti-clockwise). Default value: 0. + * @param boolean $draw_circle Draw inscribed circle or not. Default value: false. + * @param string $style Style of rendering. Possible values are: + *
          + *
        • D or empty string: Draw (default).
        • + *
        • F: Fill.
        • + *
        • DF or FD: Draw and fill.
        • + *
        + * @param array $line_style Line style of polygon sides. Array with keys among the following: + *
          + *
        • all: Line style of all sides. Array like for {@link SetLineStyle SetLineStyle}.
        • + *
        • 0 to ($ns - 1): Line style of each side. Array like for {@link SetLineStyle SetLineStyle}.
        • + *
        + * If a key is not present or is null, not draws the side. Default value is default line style (empty array). + * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array). + * @param string $circle_style Style of rendering of inscribed circle (if draws). Possible values are: + *
          + *
        • D or empty string: Draw (default).
        • + *
        • F: Fill.
        • + *
        • DF or FD: Draw and fill.
        • + *
        + * @param array $circle_outLine_style Line style of inscribed circle (if draws). Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array). + * @param array $circle_fill_color Fill color of inscribed circle (if draws). Format: array(red, green, blue). Default value: default color (empty array). + * @access public + * @since 2.1.000 (2008-01-08) + */ + function RegularPolygon($x0, $y0, $r, $ns, $angle = 0, $draw_circle = false, $style = "", $line_style = array(), $fill_color = array(), $circle_style = "", $circle_outLine_style = array(), $circle_fill_color = array()) { + if (3 > $ns) { + $ns = 3; + } + if ($draw_circle) { + $this->Circle($x0, $y0, $r, 0, 360, $circle_style, $circle_outLine_style, $circle_fill_color); + } + $p = array(); + for ($i = 0; $i < $ns; $i++) { + $a = $angle + ($i * 360 / $ns); + $a_rad = deg2rad((float) $a); + $p[] = $x0 + ($r * sin($a_rad)); + $p[] = $y0 + ($r * cos($a_rad)); + } + $this->Polygon($p, $style, $line_style, $fill_color); + } + + /** + * Draws a star polygon + * @param float $x0 Abscissa of center point. + * @param float $y0 Ordinate of center point. + * @param float $r Radius of inscribed circle. + * @param integer $nv Number of vertices. + * @param integer $ng Number of gap (if ($ng % $nv = 1) then is a regular polygon). + * @param float $angle: Angle oriented (anti-clockwise). Default value: 0. + * @param boolean $draw_circle: Draw inscribed circle or not. Default value is false. + * @param string $style Style of rendering. Possible values are: + *
          + *
        • D or empty string: Draw (default).
        • + *
        • F: Fill.
        • + *
        • DF or FD: Draw and fill.
        • + *
        + * @param array $line_style Line style of polygon sides. Array with keys among the following: + *
          + *
        • all: Line style of all sides. Array like for + * {@link SetLineStyle SetLineStyle}.
        • + *
        • 0 to (n - 1): Line style of each side. Array like for {@link SetLineStyle SetLineStyle}.
        • + *
        + * If a key is not present or is null, not draws the side. Default value is default line style (empty array). + * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array). + * @param string $circle_style Style of rendering of inscribed circle (if draws). Possible values are: + *
          + *
        • D or empty string: Draw (default).
        • + *
        • F: Fill.
        • + *
        • DF or FD: Draw and fill.
        • + *
        + * @param array $circle_outLine_style Line style of inscribed circle (if draws). Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array). + * @param array $circle_fill_color Fill color of inscribed circle (if draws). Format: array(red, green, blue). Default value: default color (empty array). + * @access public + * @since 2.1.000 (2008-01-08) + */ + function StarPolygon($x0, $y0, $r, $nv, $ng, $angle = 0, $draw_circle = false, $style = "", $line_style = array(), $fill_color = array(), $circle_style = "", $circle_outLine_style = array(), $circle_fill_color = array()) { + if (2 > $nv) { + $nv = 2; + } + if ($draw_circle) { + $this->Circle($x0, $y0, $r, 0, 360, $circle_style, $circle_outLine_style, $circle_fill_color); + } + $p2 = array(); + $visited = array(); + for ($i = 0; $i < $nv; $i++) { + $a = $angle + ($i * 360 / $nv); + $a_rad = deg2rad((float) $a); + $p2[] = $x0 + ($r * sin($a_rad)); + $p2[] = $y0 + ($r * cos($a_rad)); + $visited[] = false; + } + $p = array(); + $i = 0; + do { + $p[] = $p2[$i * 2]; + $p[] = $p2[($i * 2) + 1]; + $visited[$i] = true; + $i += $ng; + $i %= $nv; + } while (!$visited[$i]); + $this->Polygon($p, $style, $line_style, $fill_color); + } + + /** + * Draws a rounded rectangle. + * @param float $x Abscissa of upper-left corner. + * @param float $y Ordinate of upper-left corner. + * @param float $w Width. + * @param float $h Height. + * @param float $r Radius of the rounded corners. + * @param string $round_corner Draws rounded corner or not. String with a 0 (not rounded i-corner) or 1 (rounded i-corner) in i-position. Positions are, in order and begin to 0: top left, top right, bottom right and bottom left. Default value: all rounded corner ("1111"). + * @param string $style Style of rendering. Possible values are: + *
          + *
        • D or empty string: Draw (default).
        • + *
        • F: Fill.
        • + *
        • DF or FD: Draw and fill.
        • + *
        + * @param array $border_style Border style of rectangle. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array). + * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array). + * @access public + * @since 2.1.000 (2008-01-08) + */ + function RoundedRect($x, $y, $w, $h, $r, $round_corner = "1111", $style = "", $border_style = array(), $fill_color = array()) { + if ("0000" == $round_corner) { // Not rounded + $this->Rect($x, $y, $w, $h, $style, $border_style, $fill_color); + } else { // Rounded + if (!(false === strpos($style, "F")) AND $fill_color) { + list($red, $g, $b) = $fill_color; + $this->SetFillColor($red, $g, $b); + } + switch ($style) { + case "F": { + $border_style = array(); + $op = "f"; + break; + } + case "FD": + case "DF": { + $op = "B"; + break; + } + default: { + $op = "S"; + break; + } + } + if ($border_style) { + $this->SetLineStyle($border_style); + } + $MyArc = 4 / 3 * (sqrt(2) - 1); + $this->_outPoint($x + $r, $y); + $xc = $x + $w - $r; + $yc = $y + $r; + $this->_outLine($xc, $y); + if ($round_corner[0]) { + $this->_outCurve($xc + ($r * $MyArc), $yc - $r, $xc + $r, $yc - ($r * $MyArc), $xc + $r, $yc); + } else { + $this->_outLine($x + $w, $y); + } + $xc = $x + $w - $r; + $yc = $y + $h - $r; + $this->_outLine($x + $w, $yc); + if ($round_corner[1]) { + $this->_outCurve($xc + $r, $yc + ($r * $MyArc), $xc + ($r * $MyArc), $yc + $r, $xc, $yc + $r); + } else { + $this->_outLine($x + $w, $y + $h); + } + $xc = $x + $r; + $yc = $y + $h - $r; + $this->_outLine($xc, $y + $h); + if ($round_corner[2]) { + $this->_outCurve($xc - ($r * $MyArc), $yc + $r, $xc - $r, $yc + ($r * $MyArc), $xc - $r, $yc); + } else { + $this->_outLine($x, $y + $h); + } + $xc = $x + $r; + $yc = $y + $r; + $this->_outLine($x, $yc); + if ($round_corner[3]) { + $this->_outCurve($xc - $r, $yc - ($r * $MyArc), $xc - ($r * $MyArc), $yc - $r, $xc, $yc - $r); + } else { + $this->_outLine($x, $y); + $this->_outLine($x + $r, $y); + } + $this->_out($op); + } + } + + // END GRAPHIC FUNCTIONS SECTION ----------------------- + + // BIDIRECTIONAL TEXT SECTION -------------------------- + /** + * Reverse the RLT substrings using the Bidirectional Algorithm (http://unicode.org/reports/tr9/). + * @param string $str string to manipulate. + * @param bool $forcertl if 'R' forces RTL, if 'L' forces LTR + * @return string + * @author Nicola Asuni + * @since 2.1.000 (2008-01-08) + */ + function utf8StrRev($str, $setbom=false, $forcertl=false) { + return $this->arrUTF8ToUTF16BE($this->utf8Bidi($this->UTF8StringToArray($str), $forcertl=false), $setbom); + } + + /** + * Reverse the RLT substrings using the Bidirectional Algorithm (http://unicode.org/reports/tr9/). + * @param array $ta array of characters composing the string. + * @param bool $forcertl if 'R' forces RTL, if 'L' forces LTR + * @return string + * @author Nicola Asuni + * @since 2.4.000 (2008-03-06) + */ + function utf8Bidi($ta, $forcertl=false) { + global $unicode,$unicode_mirror, $unicode_arlet; + require_once(dirname(__FILE__).'/unicode_data.php'); + + // paragraph embedding level + $pel = 0; + // max level + $maxlevel = 0; + + // create string from array + $str = $this->UTF8ArrSubString($ta); + + // check if string contains arabic text + if (preg_match(K_RE_PATTERN_ARABIC, $str)) { + $arabic = true; + } else { + $arabic = false; + } + + // check if string contains RTL text + if (!($forcertl OR $arabic OR preg_match(K_RE_PATTERN_RTL, $str))) { + return $ta; + } + + // get number of chars + $numchars = count($ta); + + if ($forcertl == 'R') { + $pel = 1; + } elseif ($forcertl == 'L') { + $pel = 0; + } else { + // P2. In each paragraph, find the first character of type L, AL, or R. + // P3. If a character is found in P2 and it is of type AL or R, then set the paragraph embedding level to one; otherwise, set it to zero. + for ($i=0; $i < $numchars; $i++) { + $type = $unicode[$ta[$i]]; + if ($type == 'L') { + $pel = 0; + break; + } elseif (($type == 'AL') OR ($type == 'R')) { + $pel = 1; + break; + } + } + } + + // Current Embedding Level + $cel = $pel; + // directional override status + $dos = 'N'; + $remember = array(); + // start-of-level-run + $sor = $pel % 2 ? 'R' : 'L'; + $eor = $sor; + + //$levels = array(array('level' => $cel, 'sor' => $sor, 'eor' => '', 'chars' => array())); + //$current_level = &$levels[count( $levels )-1]; + + // Array of characters data + $chardata = Array(); + + // X1. Begin by setting the current embedding level to the paragraph embedding level. Set the directional override status to neutral. Process each character iteratively, applying rules X2 through X9. Only embedding levels from 0 to 61 are valid in this phase. + // In the resolution of levels in rules I1 and I2, the maximum embedding level of 62 can be reached. + for ($i=0; $i < $numchars; $i++) { + if ($ta[$i] == K_RLE) { + // X2. With each RLE, compute the least greater odd embedding level. + // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to neutral. + // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status. + $next_level = $cel + ($cel % 2) + 1; + if ($next_level < 62) { + $remember[] = array('num' => K_RLE, 'cel' => $cel, 'dos' => $dos); + $cel = $next_level; + $dos = 'N'; + $sor = $eor; + $eor = $cel % 2 ? 'R' : 'L'; + } + } elseif ($ta[$i] == K_LRE) { + // X3. With each LRE, compute the least greater even embedding level. + // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to neutral. + // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status. + $next_level = $cel + 2 - ($cel % 2); + if ( $next_level < 62 ) { + $remember[] = array('num' => K_LRE, 'cel' => $cel, 'dos' => $dos); + $cel = $next_level; + $dos = 'N'; + $sor = $eor; + $eor = $cel % 2 ? 'R' : 'L'; + } + } elseif ($ta[$i] == K_RLO) { + // X4. With each RLO, compute the least greater odd embedding level. + // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to right-to-left. + // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status. + $next_level = $cel + ($cel % 2) + 1; + if ($next_level < 62) { + $remember[] = array('num' => K_RLO, 'cel' => $cel, 'dos' => $dos); + $cel = $next_level; + $dos = 'R'; + $sor = $eor; + $eor = $cel % 2 ? 'R' : 'L'; + } + } elseif ($ta[$i] == K_LRO) { + // X5. With each LRO, compute the least greater even embedding level. + // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to left-to-right. + // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status. + $next_level = $cel + 2 - ($cel % 2); + if ( $next_level < 62 ) { + $remember[] = array('num' => K_LRO, 'cel' => $cel, 'dos' => $dos); + $cel = $next_level; + $dos = 'L'; + $sor = $eor; + $eor = $cel % 2 ? 'R' : 'L'; + } + } elseif ($ta[$i] == K_PDF) { + // X7. With each PDF, determine the matching embedding or override code. If there was a valid matching code, restore (pop) the last remembered (pushed) embedding level and directional override. + if (count($remember)) { + $last = count($remember ) - 1; + if (($remember[$last]['num'] == K_RLE) OR + ($remember[$last]['num'] == K_LRE) OR + ($remember[$last]['num'] == K_RLO) OR + ($remember[$last]['num'] == K_LRO)) { + $match = array_pop($remember); + $cel = $match['cel']; + $dos = $match['dos']; + $sor = $eor; + $eor = ($cel > $match['cel'] ? $cel : $match['cel']) % 2 ? 'R' : 'L'; + } + } + } elseif (($ta[$i] != K_RLE) AND + ($ta[$i] != K_LRE) AND + ($ta[$i] != K_RLO) AND + ($ta[$i] != K_LRO) AND + ($ta[$i] != K_PDF)) { + // X6. For all types besides RLE, LRE, RLO, LRO, and PDF: + // a. Set the level of the current character to the current embedding level. + // b. Whenever the directional override status is not neutral, reset the current character type to the directional override status. + if ($dos != 'N') { + $chardir = $dos; + } else { + $chardir = $unicode[$ta[$i]]; + } + // stores string characters and other information + $chardata[] = array('char' => $ta[$i], 'level' => $cel, 'type' => $chardir, 'sor' => $sor, 'eor' => $eor); + } + } // end for each char + + // X8. All explicit directional embeddings and overrides are completely terminated at the end of each paragraph. Paragraph separators are not included in the embedding. + // X9. Remove all RLE, LRE, RLO, LRO, PDF, and BN codes. + // X10. The remaining rules are applied to each run of characters at the same level. For each run, determine the start-of-level-run (sor) and end-of-level-run (eor) type, either L or R. This depends on the higher of the two levels on either side of the boundary (at the start or end of the paragraph, the level of the �other� run is the base embedding level). If the higher level is odd, the type is R; otherwise, it is L. + + // 3.3.3 Resolving Weak Types + // Weak types are now resolved one level run at a time. At level run boundaries where the type of the character on the other side of the boundary is required, the type assigned to sor or eor is used. + // Nonspacing marks are now resolved based on the previous characters. + $numchars = count($chardata); + + // W1. Examine each nonspacing mark (NSM) in the level run, and change the type of the NSM to the type of the previous character. If the NSM is at the start of the level run, it will get the type of sor. + $prevlevel = -1; // track level changes + $levcount = 0; // counts consecutive chars at the same level + for ($i=0; $i < $numchars; $i++) { + if ($chardata[$i]['type'] == 'NSM') { + if ($levcount) { + $chardata[$i]['type'] = $chardata[$i]['sor']; + } elseif ($i > 0) { + $chardata[$i]['type'] = $chardata[($i-1)]['type']; + } + } + if ($chardata[$i]['level'] != $prevlevel) { + $levcount = 0; + } else { + $levcount++; + } + $prevlevel = $chardata[$i]['level']; + } + + // W2. Search backward from each instance of a European number until the first strong type (R, L, AL, or sor) is found. If an AL is found, change the type of the European number to Arabic number. + $prevlevel = -1; + $levcount = 0; + for ($i=0; $i < $numchars; $i++) { + if ($chardata[$i]['char'] == 'EN') { + for ($j=$levcount; $j >= 0; $j--) { + if ($chardata[$j]['type'] == 'AL') { + $chardata[$i]['type'] = 'AN'; + } elseif (($chardata[$j]['type'] == 'L') OR ($chardata[$j]['type'] == 'R')) { + break; + } + } + } + if ($chardata[$i]['level'] != $prevlevel) { + $levcount = 0; + } else { + $levcount++; + } + $prevlevel = $chardata[$i]['level']; + } + + // W3. Change all ALs to R. + for ($i=0; $i < $numchars; $i++) { + if ($chardata[$i]['type'] == 'AL') { + $chardata[$i]['type'] = 'R'; + } + } + + // W4. A single European separator between two European numbers changes to a European number. A single common separator between two numbers of the same type changes to that type. + $prevlevel = -1; + $levcount = 0; + for ($i=0; $i < $numchars; $i++) { + if (($levcount > 0) AND (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] == $prevlevel)) { + if (($chardata[$i]['type'] == 'ES') AND ($chardata[($i-1)]['type'] == 'EN') AND ($chardata[($i+1)]['type'] == 'EN')) { + $chardata[$i]['type'] = 'EN'; + } elseif (($chardata[$i]['type'] == 'CS') AND ($chardata[($i-1)]['type'] == 'EN') AND ($chardata[($i+1)]['type'] == 'EN')) { + $chardata[$i]['type'] = 'EN'; + } elseif (($chardata[$i]['type'] == 'CS') AND ($chardata[($i-1)]['type'] == 'AN') AND ($chardata[($i+1)]['type'] == 'AN')) { + $chardata[$i]['type'] = 'AN'; + } + } + if ($chardata[$i]['level'] != $prevlevel) { + $levcount = 0; + } else { + $levcount++; + } + $prevlevel = $chardata[$i]['level']; + } + + // W5. A sequence of European terminators adjacent to European numbers changes to all European numbers. + $prevlevel = -1; + $levcount = 0; + for ($i=0; $i < $numchars; $i++) { + if($chardata[$i]['type'] == 'ET') { + if (($levcount > 0) AND ($chardata[($i-1)]['type'] == 'EN')) { + $chardata[$i]['type'] = 'EN'; + } else { + $j = $i+1; + while (($j < $numchars) AND ($chardata[$j]['level'] == $prevlevel)) { + if ($chardata[$j]['type'] == 'EN') { + $chardata[$i]['type'] = 'EN'; + break; + } elseif ($chardata[$j]['type'] != 'ET') { + break; + } + $j++; + } + } + } + if ($chardata[$i]['level'] != $prevlevel) { + $levcount = 0; + } else { + $levcount++; + } + $prevlevel = $chardata[$i]['level']; + } + + // W6. Otherwise, separators and terminators change to Other Neutral. + $prevlevel = -1; + $levcount = 0; + for ($i=0; $i < $numchars; $i++) { + if (($chardata[$i]['type'] == 'ET') OR ($chardata[$i]['type'] == 'ES') OR ($chardata[$i]['type'] == 'CS')) { + $chardata[$i]['type'] = 'ON'; + } + if ($chardata[$i]['level'] != $prevlevel) { + $levcount = 0; + } else { + $levcount++; + } + $prevlevel = $chardata[$i]['level']; + } + + //W7. Search backward from each instance of a European number until the first strong type (R, L, or sor) is found. If an L is found, then change the type of the European number to L. + $prevlevel = -1; + $levcount = 0; + for ($i=0; $i < $numchars; $i++) { + if ($chardata[$i]['char'] == 'EN') { + for ($j=$levcount; $j >= 0; $j--) { + if ($chardata[$j]['type'] == 'L') { + $chardata[$i]['type'] = 'L'; + } elseif ($chardata[$j]['type'] == 'R') { + break; + } + } + } + if ($chardata[$i]['level'] != $prevlevel) { + $levcount = 0; + } else { + $levcount++; + } + $prevlevel = $chardata[$i]['level']; + } + + // N1. A sequence of neutrals takes the direction of the surrounding strong text if the text on both sides has the same direction. European and Arabic numbers act as if they were R in terms of their influence on neutrals. Start-of-level-run (sor) and end-of-level-run (eor) are used at level run boundaries. + $prevlevel = -1; + $levcount = 0; + for ($i=0; $i < $numchars; $i++) { + if (($levcount > 0) AND (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] == $prevlevel)) { + if (($chardata[$i]['type'] == 'N') AND ($chardata[($i-1)]['type'] == 'L') AND ($chardata[($i+1)]['type'] == 'L')) { + $chardata[$i]['type'] = 'L'; + } elseif (($chardata[$i]['type'] == 'N') AND + (($chardata[($i-1)]['type'] == 'R') OR ($chardata[($i-1)]['type'] == 'EN') OR ($chardata[($i-1)]['type'] == 'AN')) AND + (($chardata[($i+1)]['type'] == 'R') OR ($chardata[($i+1)]['type'] == 'EN') OR ($chardata[($i+1)]['type'] == 'AN'))) { + $chardata[$i]['type'] = 'R'; + } elseif ($chardata[$i]['type'] == 'N') { + // N2. Any remaining neutrals take the embedding direction + $chardata[$i]['type'] = $chardata[$i]['sor']; + } + } elseif (($levcount == 0) AND (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] == $prevlevel)) { + // first char + if (($chardata[$i]['type'] == 'N') AND ($chardata[$i]['sor'] == 'L') AND ($chardata[($i+1)]['type'] == 'L')) { + $chardata[$i]['type'] = 'L'; + } elseif (($chardata[$i]['type'] == 'N') AND + (($chardata[$i]['sor'] == 'R') OR ($chardata[$i]['sor'] == 'EN') OR ($chardata[$i]['sor'] == 'AN')) AND + (($chardata[($i+1)]['type'] == 'R') OR ($chardata[($i+1)]['type'] == 'EN') OR ($chardata[($i+1)]['type'] == 'AN'))) { + $chardata[$i]['type'] = 'R'; + } elseif ($chardata[$i]['type'] == 'N') { + // N2. Any remaining neutrals take the embedding direction + $chardata[$i]['type'] = $chardata[$i]['sor']; + } + } elseif (($levcount > 0) AND ((($i+1) == $numchars) OR (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] != $prevlevel))) { + //last char + if (($chardata[$i]['type'] == 'N') AND ($chardata[($i-1)]['type'] == 'L') AND ($chardata[$i]['eor'] == 'L')) { + $chardata[$i]['type'] = 'L'; + } elseif (($chardata[$i]['type'] == 'N') AND + (($chardata[($i-1)]['type'] == 'R') OR ($chardata[($i-1)]['type'] == 'EN') OR ($chardata[($i-1)]['type'] == 'AN')) AND + (($chardata[$i]['eor'] == 'R') OR ($chardata[$i]['eor'] == 'EN') OR ($chardata[$i]['eor'] == 'AN'))) { + $chardata[$i]['type'] = 'R'; + } elseif ($chardata[$i]['type'] == 'N') { + // N2. Any remaining neutrals take the embedding direction + $chardata[$i]['type'] = $chardata[$i]['sor']; + } + } elseif ($chardata[$i]['type'] == 'N') { + // N2. Any remaining neutrals take the embedding direction + $chardata[$i]['type'] = $chardata[$i]['sor']; + } + if ($chardata[$i]['level'] != $prevlevel) { + $levcount = 0; + } else { + $levcount++; + } + $prevlevel = $chardata[$i]['level']; + } + + // I1. For all characters with an even (left-to-right) embedding direction, those of type R go up one level and those of type AN or EN go up two levels. + // I2. For all characters with an odd (right-to-left) embedding direction, those of type L, EN or AN go up one level. + for ($i=0; $i < $numchars; $i++) { + $odd = $chardata[$i]['level'] % 2; + if ($odd) { + if (($chardata[$i]['type'] == 'L') OR ($chardata[$i]['type'] == 'AN') OR ($chardata[$i]['type'] == 'EN')){ + $chardata[$i]['level'] += 1; + } + } else { + if ($chardata[$i]['type'] == 'R') { + $chardata[$i]['level'] += 1; + } elseif (($chardata[$i]['type'] == 'AN') OR ($chardata[$i]['type'] == 'EN')){ + $chardata[$i]['level'] += 2; + } + } + $maxlevel = max($chardata[$i]['level'],$maxlevel); + } + + // L1. On each line, reset the embedding level of the following characters to the paragraph embedding level: + // 1. Segment separators, + // 2. Paragraph separators, + // 3. Any sequence of whitespace characters preceding a segment separator or paragraph separator, and + // 4. Any sequence of white space characters at the end of the line. + for ($i=0; $i < $numchars; $i++) { + if (($chardata[$i]['type'] == 'B') OR ($chardata[$i]['type'] == 'S')) { + $chardata[$i]['level'] = $pel; + } elseif ($chardata[$i]['type'] == 'WS') { + $j = $i+1; + while ($j < $numchars) { + if ((($chardata[$j]['type'] == 'B') OR ($chardata[$j]['type'] == 'S')) OR + (($j == ($numchars-1)) AND ($chardata[$j]['type'] == 'WS'))) { + $chardata[$i]['level'] = $pel;; + break; + } elseif ($chardata[$j]['type'] != 'WS') { + break; + } + $j++; + } + } + } + + // Arabic Shaping + // Cursively connected scripts, such as Arabic or Syriac, require the selection of positional character shapes that depend on adjacent characters. Shaping is logically applied after the Bidirectional Algorithm is used and is limited to characters within the same directional run. + if ($arabic) { + for ($i=0; $i < $numchars; $i++) { + if ($unicode[$chardata[$i]['char']] == 'AL') { + if (($i > 0) AND (($i+1) < $numchars) AND + ($unicode[$chardata[($i-1)]['char']] == 'AL') AND + ($unicode[$chardata[($i+1)]['char']] == 'AL') AND + ($chardata[($i-1)]['type'] == $chardata[$i]['type']) AND + ($chardata[($i+1)]['type'] == $chardata[$i]['type'])) { + // medial + if (isset($unicode_arlet[$chardata[$i]['char']][3])) { + $chardata[$i]['char'] = $unicode_arlet[$chardata[$i]['char']][3]; + } + } elseif ((($i+1) < $numchars) AND + ($unicode[$chardata[($i+1)]['char']] == 'AL') AND + ($chardata[($i+1)]['type'] == $chardata[$i]['type'])) { + // initial + if (isset($unicode_arlet[$chardata[$i]['char']][2])) { + $chardata[$i]['char'] = $unicode_arlet[$chardata[$i]['char']][2]; + } + } elseif (($i > 0) AND + ($unicode[$chardata[($i-1)]['char']] == 'AL') AND + ($chardata[($i-1)]['type'] == $chardata[$i]['type'])) { + // final + if (isset($unicode_arlet[$chardata[$i]['char']][1])) { + $chardata[$i]['char'] = $unicode_arlet[$chardata[$i]['char']][1]; + } + } elseif (isset($unicode_arlet[$chardata[$i]['char']][0])) { + // isolated + $chardata[$i]['char'] = $unicode_arlet[$chardata[$i]['char']][0]; + } + } + } + } + + // L2. From the highest level found in the text to the lowest odd level on each line, including intermediate levels not actually present in the text, reverse any contiguous sequence of characters that are at that level or higher. + for ($j=$maxlevel; $j > 0; $j--) { + $ordarray = Array(); + $revarr = Array(); + $onlevel = false; + for ($i=0; $i < $numchars; $i++) { + if ($chardata[$i]['level'] >= $j) { + $onlevel = true; + if (isset($unicode_mirror[$chardata[$i]['char']])) { + // L4. A character is depicted by a mirrored glyph if and only if (a) the resolved directionality of that character is R, and (b) the Bidi_Mirrored property value of that character is true. + $chardata[$i]['char'] = $unicode_mirror[$chardata[$i]['char']]; + } + $revarr[] = $chardata[$i]; + } else { + if($onlevel) { + $revarr = array_reverse($revarr); + $ordarray = array_merge($ordarray, $revarr); + $revarr = Array(); + $onlevel = false; + } + $ordarray[] = $chardata[$i]; + } + } + if($onlevel) { + $revarr = array_reverse($revarr); + $ordarray = array_merge($ordarray, $revarr); + } + $chardata = $ordarray; + } + + $ordarray = array(); + for ($i=0; $i < $numchars; $i++) { + $ordarray[] = $chardata[$i]['char']; + } + + return $ordarray; + } + + // END OF BIDIRECTIONAL TEXT SECTION ------------------- + + /* + * Adds a bookmark. + * @param string $txt bookmark description. + * @param int $level bookmark level. + * @param float $y Ordinate of the boorkmark position (default = -1 = current position). + * @access public + * @author Olivier Plathey, Nicola Asuni + * @since 2.1.002 (2008-02-12) + */ + function Bookmark($txt, $level=0, $y=-1) { + if($y == -1) { + $y = $this->GetY(); + } + $this->outlines[]=array('t'=>$txt,'l'=>$level,'y'=>$y,'p'=>$this->PageNo()); + } + + /* + * Create a bookmark PDF string. + * @access private + * @author Olivier Plathey, Nicola Asuni + * @since 2.1.002 (2008-02-12) + */ + function _putbookmarks() { + $nb = count($this->outlines); + if($nb == 0) { + return; + } + $lru = array(); + $level = 0; + foreach($this->outlines as $i=>$o) { + if($o['l'] > 0) { + $parent = $lru[$o['l'] - 1]; + //Set parent and last pointers + $this->outlines[$i]['parent'] = $parent; + $this->outlines[$parent]['last'] = $i; + if($o['l'] > $level) { + //Level increasing: set first pointer + $this->outlines[$parent]['first'] = $i; + } + } else { + $this->outlines[$i]['parent']=$nb; + } + if($o['l']<=$level and $i>0) { + //Set prev and next pointers + $prev = $lru[$o['l']]; + $this->outlines[$prev]['next'] = $i; + $this->outlines[$i]['prev'] = $prev; + } + $lru[$o['l']] = $i; + $level = $o['l']; + } + //Outline items + $n = $this->n+1; + foreach($this->outlines as $i=>$o) { + $this->_newobj(); + $this->_out('<_textstring($o['t'])); + $this->_out('/Parent '.($n+$o['parent']).' 0 R'); + if(isset($o['prev'])) + $this->_out('/Prev '.($n+$o['prev']).' 0 R'); + if(isset($o['next'])) + $this->_out('/Next '.($n+$o['next']).' 0 R'); + if(isset($o['first'])) + $this->_out('/First '.($n+$o['first']).' 0 R'); + if(isset($o['last'])) + $this->_out('/Last '.($n+$o['last']).' 0 R'); + $this->_out(sprintf('/Dest [%d 0 R /XYZ 0 %.2f null]',1+2*$o['p'],($this->h-$o['y'])*$this->k)); + $this->_out('/Count 0>>'); + $this->_out('endobj'); + } + //Outline root + $this->_newobj(); + $this->OutlineRoot=$this->n; + $this->_out('<_out('/Last '.($n+$lru[0]).' 0 R>>'); + $this->_out('endobj'); + } + + + // --- JAVASCRIPT - FORMS ------------------------------ + + /* + * Adds a javascript + * @access public + * @author Johannes G�ntert, Nicola Asuni + * @since 2.1.002 (2008-02-12) + */ + function IncludeJS($script) { + $this->javascript .= $script; + } + + /* + * Create a javascript PDF string. + * @access private + * @author Johannes G�ntert, Nicola Asuni + * @since 2.1.002 (2008-02-12) + */ + function _putjavascript() { + if (empty($this->javascript)) { + return; + } + $this->_newobj(); + $this->n_js = $this->n; + $this->_out('<<'); + $this->_out('/Names [(EmbeddedJS) '.($this->n+1).' 0 R ]'); + $this->_out('>>'); + $this->_out('endobj'); + $this->_newobj(); + $this->_out('<<'); + $this->_out('/S /JavaScript'); + $this->_out('/JS '.$this->_textstring($this->javascript)); + $this->_out('>>'); + $this->_out('endobj'); + } + + /* + * Convert color to javascript color. + * @param string $color color name or #RRGGBB + * @access private + * @author Denis Van Nuffelen, Nicola Asuni + * @since 2.1.002 (2008-02-12) + */ + function _JScolor($color) { + static $aColors = array('transparent','black','white','red','green','blue','cyan','magenta','yellow','dkGray','gray','ltGray'); + if(substr($color,0,1) == '#') { + return sprintf("['RGB',%.3f,%.3f,%.3f]", hexdec(substr($color,1,2))/255, hexdec(substr($color,3,2))/255, hexdec(substr($color,5,2))/255); + } + if(!in_array($color,$aColors)) { + $this->Error('Invalid color: '.$color); + } + return 'color.'.$color; + } + + /* + * Adds a javascript form field. + * @param string $type field type + * @param string $name field name + * @param int $x horizontal position + * @param int $y vertical position + * @param int $w width + * @param int $h height + * @param array $prop array of properties. Possible values are (http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf):
        • rect: Position and size of field on page.
        • borderStyle: Rectangle border appearance.
        • strokeColor: Color of bounding rectangle.
        • lineWidth: Width of the edge of the surrounding rectangle.
        • rotation: Rotation of field in 90-degree increments.
        • fillColor: Background color of field (gray, transparent, RGB, or CMYK).
        • userName: Short description of field that appears on mouse-over.
        • readonly: Whether the user may change the field contents.
        • doNotScroll: Whether text fields may scroll.
        • display: Whether visible or hidden on screen or in print.
        • textFont: Text font.
        • textColor: Text color.
        • textSize: Text size.
        • richText: Rich text.
        • richValue: Text.
        • comb: Text comb format.
        • multiline: Text multiline.
        • charLimit: Text limit to number of characters.
        • fileSelect: Text file selection format.
        • password: Text password format.
        • alignment: Text layout in text fields.
        • buttonAlignX: X alignment of icon on button face.
        • buttonAlignY: Y alignment of icon on button face.
        • buttonFitBounds: Relative scaling of an icon to fit inside a button face.
        • buttonScaleHow: Relative scaling of an icon to fit inside a button face.
        • buttonScaleWhen: Relative scaling of an icon to fit inside a button face.
        • highlight: Appearance of a button when pushed.
        • style: Glyph style for checkbox and radio buttons.
        • numItems: Number of items in a combo box or list box.
        • editable: Whether the user can type in a combo box.
        • multipleSelection: Whether multiple list box items may be selected.
        + * @access private + * @author Denis Van Nuffelen, Nicola Asuni + * @since 2.1.002 (2008-02-12) + */ + function _addfield($type, $name, $x, $y, $w, $h, $prop) { + $k = $this->k; + $this->javascript .= sprintf("f=addField('%s','%s',%d,[%.2f,%.2f,%.2f,%.2f]);",$name,$type,$this->PageNo()-1,$x*$k,($this->h-$y)*$k+1,($x+$w)*$k,($this->h-$y-$h)*$k+1); + $this->javascript .= 'f.textSize='.$this->FontSizePt.';'; + while(list($key, $val) = each($prop)) { + if (strcmp(substr($key,-5),"Color") == 0) { + $val = $this->_JScolor($val); + } else { + $val = "'".$val."'"; + } + $this->javascript .= "f.".$key."=".$val.";"; + } + $this->x+=$w; + } + + /* + * Creates a text field + * @param string $name field name + * @param int $w width + * @param int $h height + * @param string $prop properties. The value property allows to set the initial value. The multiline property allows to define the field as multiline. Possible values are (http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf):
        • rect: Position and size of field on page.
        • borderStyle: Rectangle border appearance.
        • strokeColor: Color of bounding rectangle.
        • lineWidth: Width of the edge of the surrounding rectangle.
        • rotation: Rotation of field in 90-degree increments.
        • fillColor: Background color of field (gray, transparent, RGB, or CMYK).
        • userName: Short description of field that appears on mouse-over.
        • readonly: Whether the user may change the field contents.
        • doNotScroll: Whether text fields may scroll.
        • display: Whether visible or hidden on screen or in print.
        • textFont: Text font.
        • textColor: Text color.
        • textSize: Text size.
        • richText: Rich text.
        • richValue: Text.
        • comb: Text comb format.
        • multiline: Text multiline.
        • charLimit: Text limit to number of characters.
        • fileSelect: Text file selection format.
        • password: Text password format.
        • alignment: Text layout in text fields.
        • buttonAlignX: X alignment of icon on button face.
        • buttonAlignY: Y alignment of icon on button face.
        • buttonFitBounds: Relative scaling of an icon to fit inside a button face.
        • buttonScaleHow: Relative scaling of an icon to fit inside a button face.
        • buttonScaleWhen: Relative scaling of an icon to fit inside a button face.
        • highlight: Appearance of a button when pushed.
        • style: Glyph style for checkbox and radio buttons.
        • numItems: Number of items in a combo box or list box.
        • editable: Whether the user can type in a combo box.
        • multipleSelection: Whether multiple list box items may be selected.
        + * @access public + * @author Denis Van Nuffelen, Nicola Asuni + * @since 2.1.002 (2008-02-12) + */ + function TextField($name, $w, $h, $prop=array()) { + $this->_addfield('text',$name,$this->x,$this->y,$w,$h,$prop); + } + + /* + * Creates a RadioButton field + * @param string $name field name + * @param int $w width + * @param string $prop properties. Possible values are (http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf):
        • rect: Position and size of field on page.
        • borderStyle: Rectangle border appearance.
        • strokeColor: Color of bounding rectangle.
        • lineWidth: Width of the edge of the surrounding rectangle.
        • rotation: Rotation of field in 90-degree increments.
        • fillColor: Background color of field (gray, transparent, RGB, or CMYK).
        • userName: Short description of field that appears on mouse-over.
        • readonly: Whether the user may change the field contents.
        • doNotScroll: Whether text fields may scroll.
        • display: Whether visible or hidden on screen or in print.
        • textFont: Text font.
        • textColor: Text color.
        • textSize: Text size.
        • richText: Rich text.
        • richValue: Text.
        • comb: Text comb format.
        • multiline: Text multiline.
        • charLimit: Text limit to number of characters.
        • fileSelect: Text file selection format.
        • password: Text password format.
        • alignment: Text layout in text fields.
        • buttonAlignX: X alignment of icon on button face.
        • buttonAlignY: Y alignment of icon on button face.
        • buttonFitBounds: Relative scaling of an icon to fit inside a button face.
        • buttonScaleHow: Relative scaling of an icon to fit inside a button face.
        • buttonScaleWhen: Relative scaling of an icon to fit inside a button face.
        • highlight: Appearance of a button when pushed.
        • style: Glyph style for checkbox and radio buttons.
        • numItems: Number of items in a combo box or list box.
        • editable: Whether the user can type in a combo box.
        • multipleSelection: Whether multiple list box items may be selected.
        + * @access public + * @author Nicola Asuni + * @since 2.2.003 (2008-03-03) + */ + function RadioButton($name, $w, $prop=array()) { + if(!isset($prop['strokeColor'])) { + $prop['strokeColor']='black'; + } + $this->_addfield('radiobutton',$name,$this->x,$this->y,$w,$w,$prop); + } + + /* + * Creates a List-box field + * @param string $name field name + * @param int $w width + * @param int $h height + * @param array $values array containing the list of values. + * @param string $prop properties. Possible values are (http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf):
        • rect: Position and size of field on page.
        • borderStyle: Rectangle border appearance.
        • strokeColor: Color of bounding rectangle.
        • lineWidth: Width of the edge of the surrounding rectangle.
        • rotation: Rotation of field in 90-degree increments.
        • fillColor: Background color of field (gray, transparent, RGB, or CMYK).
        • userName: Short description of field that appears on mouse-over.
        • readonly: Whether the user may change the field contents.
        • doNotScroll: Whether text fields may scroll.
        • display: Whether visible or hidden on screen or in print.
        • textFont: Text font.
        • textColor: Text color.
        • textSize: Text size.
        • richText: Rich text.
        • richValue: Text.
        • comb: Text comb format.
        • multiline: Text multiline.
        • charLimit: Text limit to number of characters.
        • fileSelect: Text file selection format.
        • password: Text password format.
        • alignment: Text layout in text fields.
        • buttonAlignX: X alignment of icon on button face.
        • buttonAlignY: Y alignment of icon on button face.
        • buttonFitBounds: Relative scaling of an icon to fit inside a button face.
        • buttonScaleHow: Relative scaling of an icon to fit inside a button face.
        • buttonScaleWhen: Relative scaling of an icon to fit inside a button face.
        • highlight: Appearance of a button when pushed.
        • style: Glyph style for checkbox and radio buttons.
        • numItems: Number of items in a combo box or list box.
        • editable: Whether the user can type in a combo box.
        • multipleSelection: Whether multiple list box items may be selected.
        + * @access public + * @author Nicola Asuni + * @since 2.2.003 (2008-03-03) + */ + function ListBox($name, $w, $h, $values, $prop=array()) { + if(!isset($prop['strokeColor'])) { + $prop['strokeColor']='ltGray'; + } + $this->_addfield('listbox',$name,$this->x,$this->y,$w,$h,$prop); + $s = ''; + foreach($values as $value) { + $s .= "'".addslashes($value)."',"; + } + $this->javascript .= 'f.setItems(['.substr($s,0,-1).']);'; + } + + /* + * Creates a Combo-box field + * @param string $name field name + * @param int $w width + * @param int $h height + * @param array $values array containing the list of values. + * @param string $prop properties. Possible values are (http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf):
        • rect: Position and size of field on page.
        • borderStyle: Rectangle border appearance.
        • strokeColor: Color of bounding rectangle.
        • lineWidth: Width of the edge of the surrounding rectangle.
        • rotation: Rotation of field in 90-degree increments.
        • fillColor: Background color of field (gray, transparent, RGB, or CMYK).
        • userName: Short description of field that appears on mouse-over.
        • readonly: Whether the user may change the field contents.
        • doNotScroll: Whether text fields may scroll.
        • display: Whether visible or hidden on screen or in print.
        • textFont: Text font.
        • textColor: Text color.
        • textSize: Text size.
        • richText: Rich text.
        • richValue: Text.
        • comb: Text comb format.
        • multiline: Text multiline.
        • charLimit: Text limit to number of characters.
        • fileSelect: Text file selection format.
        • password: Text password format.
        • alignment: Text layout in text fields.
        • buttonAlignX: X alignment of icon on button face.
        • buttonAlignY: Y alignment of icon on button face.
        • buttonFitBounds: Relative scaling of an icon to fit inside a button face.
        • buttonScaleHow: Relative scaling of an icon to fit inside a button face.
        • buttonScaleWhen: Relative scaling of an icon to fit inside a button face.
        • highlight: Appearance of a button when pushed.
        • style: Glyph style for checkbox and radio buttons.
        • numItems: Number of items in a combo box or list box.
        • editable: Whether the user can type in a combo box.
        • multipleSelection: Whether multiple list box items may be selected.
        + * @access public + * @author Denis Van Nuffelen, Nicola Asuni + * @since 2.1.002 (2008-02-12) + */ + function ComboBox($name, $w, $h, $values, $prop=array()) { + $this->_addfield('combobox',$name,$this->x,$this->y,$w,$h,$prop); + $s = ''; + foreach($values as $value) { + $s .= "'".addslashes($value)."',"; + } + $this->javascript .= 'f.setItems(['.substr($s,0,-1).']);'; + } + + /* + * Creates a CheckBox field + * @param string $name field name + * @param int $w width + * @param boolean $checked define the initial state (default = false). + * @param string $prop properties. Possible values are (http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf):
        • rect: Position and size of field on page.
        • borderStyle: Rectangle border appearance.
        • strokeColor: Color of bounding rectangle.
        • lineWidth: Width of the edge of the surrounding rectangle.
        • rotation: Rotation of field in 90-degree increments.
        • fillColor: Background color of field (gray, transparent, RGB, or CMYK).
        • userName: Short description of field that appears on mouse-over.
        • readonly: Whether the user may change the field contents.
        • doNotScroll: Whether text fields may scroll.
        • display: Whether visible or hidden on screen or in print.
        • textFont: Text font.
        • textColor: Text color.
        • textSize: Text size.
        • richText: Rich text.
        • richValue: Text.
        • comb: Text comb format.
        • multiline: Text multiline.
        • charLimit: Text limit to number of characters.
        • fileSelect: Text file selection format.
        • password: Text password format.
        • alignment: Text layout in text fields.
        • buttonAlignX: X alignment of icon on button face.
        • buttonAlignY: Y alignment of icon on button face.
        • buttonFitBounds: Relative scaling of an icon to fit inside a button face.
        • buttonScaleHow: Relative scaling of an icon to fit inside a button face.
        • buttonScaleWhen: Relative scaling of an icon to fit inside a button face.
        • highlight: Appearance of a button when pushed.
        • style: Glyph style for checkbox and radio buttons.
        • numItems: Number of items in a combo box or list box.
        • editable: Whether the user can type in a combo box.
        • multipleSelection: Whether multiple list box items may be selected.
        + * @access public + * @author Denis Van Nuffelen, Nicola Asuni + * @since 2.1.002 (2008-02-12) + */ + function CheckBox($name, $w, $checked=false, $prop=array()) { + $prop['value'] = ($checked ? 'Yes' : 'Off'); + if(!isset($prop['strokeColor'])) { + $prop['strokeColor']='black'; + } + $this->_addfield('checkbox',$name,$this->x,$this->y,$w,$w,$prop); + } + + /* + * Creates a button field + * @param string $name field name + * @param int $w width + * @param int $h height + * @param string $caption caption. + * @param string $action action triggered by the button (JavaScript code). + * @param string $prop properties. Possible values are (http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf):
        • rect: Position and size of field on page.
        • borderStyle: Rectangle border appearance.
        • strokeColor: Color of bounding rectangle.
        • lineWidth: Width of the edge of the surrounding rectangle.
        • rotation: Rotation of field in 90-degree increments.
        • fillColor: Background color of field (gray, transparent, RGB, or CMYK).
        • userName: Short description of field that appears on mouse-over.
        • readonly: Whether the user may change the field contents.
        • doNotScroll: Whether text fields may scroll.
        • display: Whether visible or hidden on screen or in print.
        • textFont: Text font.
        • textColor: Text color.
        • textSize: Text size.
        • richText: Rich text.
        • richValue: Text.
        • comb: Text comb format.
        • multiline: Text multiline.
        • charLimit: Text limit to number of characters.
        • fileSelect: Text file selection format.
        • password: Text password format.
        • alignment: Text layout in text fields.
        • buttonAlignX: X alignment of icon on button face.
        • buttonAlignY: Y alignment of icon on button face.
        • buttonFitBounds: Relative scaling of an icon to fit inside a button face.
        • buttonScaleHow: Relative scaling of an icon to fit inside a button face.
        • buttonScaleWhen: Relative scaling of an icon to fit inside a button face.
        • highlight: Appearance of a button when pushed.
        • style: Glyph style for checkbox and radio buttons.
        • numItems: Number of items in a combo box or list box.
        • editable: Whether the user can type in a combo box.
        • multipleSelection: Whether multiple list box items may be selected.
        + * @access public + * @author Denis Van Nuffelen, Nicola Asuni + * @since 2.1.002 (2008-02-12) + */ + function Button($name, $w, $h, $caption, $action, $prop=array()) { + if(!isset($prop['strokeColor'])) { + $prop['strokeColor']='black'; + } + if(!isset($prop['borderStyle'])) { + $prop['borderStyle']='beveled'; + } + $this->_addfield('button',$name,$this->x,$this->y,$w,$h,$prop); + $this->javascript .= "f.buttonSetCaption('".addslashes($caption)."');"; + $this->javascript .= "f.setAction('MouseUp','".addslashes($action)."');"; + $this->javascript .= "f.highlight='push';"; + $this->javascript .= 'f.print=false;'; + } + + // END JAVASCRIPT - FORMS ------------------------------ + + } // END OF TCPDF CLASS + + //Handle special IE contype request + if(isset($_SERVER['HTTP_USER_AGENT']) AND ($_SERVER['HTTP_USER_AGENT']=='contype')) { + header('Content-Type: application/pdf'); + exit; + } + +} +//============================================================+ +// END OF FILE +//============================================================+ +?> diff --git a/libraries/tcpdf/unicode_data.php b/libraries/tcpdf/unicode_data.php new file mode 100644 --- /dev/null +++ b/libraries/tcpdf/unicode_data.php @@ -0,0 +1,18278 @@ + 'BN', + 1 => 'BN', + 2 => 'BN', + 3 => 'BN', + 4 => 'BN', + 5 => 'BN', + 6 => 'BN', + 7 => 'BN', + 8 => 'BN', + 9 => 'S', + 10 => 'B', + 11 => 'S', + 12 => 'WS', + 13 => 'B', + 14 => 'BN', + 15 => 'BN', + 16 => 'BN', + 17 => 'BN', + 18 => 'BN', + 19 => 'BN', + 20 => 'BN', + 21 => 'BN', + 22 => 'BN', + 23 => 'BN', + 24 => 'BN', + 25 => 'BN', + 26 => 'BN', + 27 => 'BN', + 28 => 'B', + 29 => 'B', + 30 => 'B', + 31 => 'S', + 32 => 'WS', + 33 => 'ON', + 34 => 'ON', + 35 => 'ET', + 36 => 'ET', + 37 => 'ET', + 38 => 'ON', + 39 => 'ON', + 40 => 'ON', + 41 => 'ON', + 42 => 'ON', + 43 => 'ES', + 44 => 'CS', + 45 => 'ES', + 46 => 'CS', + 47 => 'CS', + 48 => 'EN', + 49 => 'EN', + 50 => 'EN', + 51 => 'EN', + 52 => 'EN', + 53 => 'EN', + 54 => 'EN', + 55 => 'EN', + 56 => 'EN', + 57 => 'EN', + 58 => 'CS', + 59 => 'ON', + 60 => 'ON', + 61 => 'ON', + 62 => 'ON', + 63 => 'ON', + 64 => 'ON', + 65 => 'L', + 66 => 'L', + 67 => 'L', + 68 => 'L', + 69 => 'L', + 70 => 'L', + 71 => 'L', + 72 => 'L', + 73 => 'L', + 74 => 'L', + 75 => 'L', + 76 => 'L', + 77 => 'L', + 78 => 'L', + 79 => 'L', + 80 => 'L', + 81 => 'L', + 82 => 'L', + 83 => 'L', + 84 => 'L', + 85 => 'L', + 86 => 'L', + 87 => 'L', + 88 => 'L', + 89 => 'L', + 90 => 'L', + 91 => 'ON', + 92 => 'ON', + 93 => 'ON', + 94 => 'ON', + 95 => 'ON', + 96 => 'ON', + 97 => 'L', + 98 => 'L', + 99 => 'L', + 100 => 'L', + 101 => 'L', + 102 => 'L', + 103 => 'L', + 104 => 'L', + 105 => 'L', + 106 => 'L', + 107 => 'L', + 108 => 'L', + 109 => 'L', + 110 => 'L', + 111 => 'L', + 112 => 'L', + 113 => 'L', + 114 => 'L', + 115 => 'L', + 116 => 'L', + 117 => 'L', + 118 => 'L', + 119 => 'L', + 120 => 'L', + 121 => 'L', + 122 => 'L', + 123 => 'ON', + 124 => 'ON', + 125 => 'ON', + 126 => 'ON', + 127 => 'BN', + 128 => 'BN', + 129 => 'BN', + 130 => 'BN', + 131 => 'BN', + 132 => 'BN', + 133 => 'B', + 134 => 'BN', + 135 => 'BN', + 136 => 'BN', + 137 => 'BN', + 138 => 'BN', + 139 => 'BN', + 140 => 'BN', + 141 => 'BN', + 142 => 'BN', + 143 => 'BN', + 144 => 'BN', + 145 => 'BN', + 146 => 'BN', + 147 => 'BN', + 148 => 'BN', + 149 => 'BN', + 150 => 'BN', + 151 => 'BN', + 152 => 'BN', + 153 => 'BN', + 154 => 'BN', + 155 => 'BN', + 156 => 'BN', + 157 => 'BN', + 158 => 'BN', + 159 => 'BN', + 160 => 'CS', + 161 => 'ON', + 162 => 'ET', + 163 => 'ET', + 164 => 'ET', + 165 => 'ET', + 166 => 'ON', + 167 => 'ON', + 168 => 'ON', + 169 => 'ON', + 170 => 'L', + 171 => 'ON', + 172 => 'ON', + 173 => 'BN', + 174 => 'ON', + 175 => 'ON', + 176 => 'ET', + 177 => 'ET', + 178 => 'EN', + 179 => 'EN', + 180 => 'ON', + 181 => 'L', + 182 => 'ON', + 183 => 'ON', + 184 => 'ON', + 185 => 'EN', + 186 => 'L', + 187 => 'ON', + 188 => 'ON', + 189 => 'ON', + 190 => 'ON', + 191 => 'ON', + 192 => 'L', + 193 => 'L', + 194 => 'L', + 195 => 'L', + 196 => 'L', + 197 => 'L', + 198 => 'L', + 199 => 'L', + 200 => 'L', + 201 => 'L', + 202 => 'L', + 203 => 'L', + 204 => 'L', + 205 => 'L', + 206 => 'L', + 207 => 'L', + 208 => 'L', + 209 => 'L', + 210 => 'L', + 211 => 'L', + 212 => 'L', + 213 => 'L', + 214 => 'L', + 215 => 'ON', + 216 => 'L', + 217 => 'L', + 218 => 'L', + 219 => 'L', + 220 => 'L', + 221 => 'L', + 222 => 'L', + 223 => 'L', + 224 => 'L', + 225 => 'L', + 226 => 'L', + 227 => 'L', + 228 => 'L', + 229 => 'L', + 230 => 'L', + 231 => 'L', + 232 => 'L', + 233 => 'L', + 234 => 'L', + 235 => 'L', + 236 => 'L', + 237 => 'L', + 238 => 'L', + 239 => 'L', + 240 => 'L', + 241 => 'L', + 242 => 'L', + 243 => 'L', + 244 => 'L', + 245 => 'L', + 246 => 'L', + 247 => 'ON', + 248 => 'L', + 249 => 'L', + 250 => 'L', + 251 => 'L', + 252 => 'L', + 253 => 'L', + 254 => 'L', + 255 => 'L', + 256 => 'L', + 257 => 'L', + 258 => 'L', + 259 => 'L', + 260 => 'L', + 261 => 'L', + 262 => 'L', + 263 => 'L', + 264 => 'L', + 265 => 'L', + 266 => 'L', + 267 => 'L', + 268 => 'L', + 269 => 'L', + 270 => 'L', + 271 => 'L', + 272 => 'L', + 273 => 'L', + 274 => 'L', + 275 => 'L', + 276 => 'L', + 277 => 'L', + 278 => 'L', + 279 => 'L', + 280 => 'L', + 281 => 'L', + 282 => 'L', + 283 => 'L', + 284 => 'L', + 285 => 'L', + 286 => 'L', + 287 => 'L', + 288 => 'L', + 289 => 'L', + 290 => 'L', + 291 => 'L', + 292 => 'L', + 293 => 'L', + 294 => 'L', + 295 => 'L', + 296 => 'L', + 297 => 'L', + 298 => 'L', + 299 => 'L', + 300 => 'L', + 301 => 'L', + 302 => 'L', + 303 => 'L', + 304 => 'L', + 305 => 'L', + 306 => 'L', + 307 => 'L', + 308 => 'L', + 309 => 'L', + 310 => 'L', + 311 => 'L', + 312 => 'L', + 313 => 'L', + 314 => 'L', + 315 => 'L', + 316 => 'L', + 317 => 'L', + 318 => 'L', + 319 => 'L', + 320 => 'L', + 321 => 'L', + 322 => 'L', + 323 => 'L', + 324 => 'L', + 325 => 'L', + 326 => 'L', + 327 => 'L', + 328 => 'L', + 329 => 'L', + 330 => 'L', + 331 => 'L', + 332 => 'L', + 333 => 'L', + 334 => 'L', + 335 => 'L', + 336 => 'L', + 337 => 'L', + 338 => 'L', + 339 => 'L', + 340 => 'L', + 341 => 'L', + 342 => 'L', + 343 => 'L', + 344 => 'L', + 345 => 'L', + 346 => 'L', + 347 => 'L', + 348 => 'L', + 349 => 'L', + 350 => 'L', + 351 => 'L', + 352 => 'L', + 353 => 'L', + 354 => 'L', + 355 => 'L', + 356 => 'L', + 357 => 'L', + 358 => 'L', + 359 => 'L', + 360 => 'L', + 361 => 'L', + 362 => 'L', + 363 => 'L', + 364 => 'L', + 365 => 'L', + 366 => 'L', + 367 => 'L', + 368 => 'L', + 369 => 'L', + 370 => 'L', + 371 => 'L', + 372 => 'L', + 373 => 'L', + 374 => 'L', + 375 => 'L', + 376 => 'L', + 377 => 'L', + 378 => 'L', + 379 => 'L', + 380 => 'L', + 381 => 'L', + 382 => 'L', + 383 => 'L', + 384 => 'L', + 385 => 'L', + 386 => 'L', + 387 => 'L', + 388 => 'L', + 389 => 'L', + 390 => 'L', + 391 => 'L', + 392 => 'L', + 393 => 'L', + 394 => 'L', + 395 => 'L', + 396 => 'L', + 397 => 'L', + 398 => 'L', + 399 => 'L', + 400 => 'L', + 401 => 'L', + 402 => 'L', + 403 => 'L', + 404 => 'L', + 405 => 'L', + 406 => 'L', + 407 => 'L', + 408 => 'L', + 409 => 'L', + 410 => 'L', + 411 => 'L', + 412 => 'L', + 413 => 'L', + 414 => 'L', + 415 => 'L', + 416 => 'L', + 417 => 'L', + 418 => 'L', + 419 => 'L', + 420 => 'L', + 421 => 'L', + 422 => 'L', + 423 => 'L', + 424 => 'L', + 425 => 'L', + 426 => 'L', + 427 => 'L', + 428 => 'L', + 429 => 'L', + 430 => 'L', + 431 => 'L', + 432 => 'L', + 433 => 'L', + 434 => 'L', + 435 => 'L', + 436 => 'L', + 437 => 'L', + 438 => 'L', + 439 => 'L', + 440 => 'L', + 441 => 'L', + 442 => 'L', + 443 => 'L', + 444 => 'L', + 445 => 'L', + 446 => 'L', + 447 => 'L', + 448 => 'L', + 449 => 'L', + 450 => 'L', + 451 => 'L', + 452 => 'L', + 453 => 'L', + 454 => 'L', + 455 => 'L', + 456 => 'L', + 457 => 'L', + 458 => 'L', + 459 => 'L', + 460 => 'L', + 461 => 'L', + 462 => 'L', + 463 => 'L', + 464 => 'L', + 465 => 'L', + 466 => 'L', + 467 => 'L', + 468 => 'L', + 469 => 'L', + 470 => 'L', + 471 => 'L', + 472 => 'L', + 473 => 'L', + 474 => 'L', + 475 => 'L', + 476 => 'L', + 477 => 'L', + 478 => 'L', + 479 => 'L', + 480 => 'L', + 481 => 'L', + 482 => 'L', + 483 => 'L', + 484 => 'L', + 485 => 'L', + 486 => 'L', + 487 => 'L', + 488 => 'L', + 489 => 'L', + 490 => 'L', + 491 => 'L', + 492 => 'L', + 493 => 'L', + 494 => 'L', + 495 => 'L', + 496 => 'L', + 497 => 'L', + 498 => 'L', + 499 => 'L', + 500 => 'L', + 501 => 'L', + 502 => 'L', + 503 => 'L', + 504 => 'L', + 505 => 'L', + 506 => 'L', + 507 => 'L', + 508 => 'L', + 509 => 'L', + 510 => 'L', + 511 => 'L', + 512 => 'L', + 513 => 'L', + 514 => 'L', + 515 => 'L', + 516 => 'L', + 517 => 'L', + 518 => 'L', + 519 => 'L', + 520 => 'L', + 521 => 'L', + 522 => 'L', + 523 => 'L', + 524 => 'L', + 525 => 'L', + 526 => 'L', + 527 => 'L', + 528 => 'L', + 529 => 'L', + 530 => 'L', + 531 => 'L', + 532 => 'L', + 533 => 'L', + 534 => 'L', + 535 => 'L', + 536 => 'L', + 537 => 'L', + 538 => 'L', + 539 => 'L', + 540 => 'L', + 541 => 'L', + 542 => 'L', + 543 => 'L', + 544 => 'L', + 545 => 'L', + 546 => 'L', + 547 => 'L', + 548 => 'L', + 549 => 'L', + 550 => 'L', + 551 => 'L', + 552 => 'L', + 553 => 'L', + 554 => 'L', + 555 => 'L', + 556 => 'L', + 557 => 'L', + 558 => 'L', + 559 => 'L', + 560 => 'L', + 561 => 'L', + 562 => 'L', + 563 => 'L', + 564 => 'L', + 565 => 'L', + 566 => 'L', + 567 => 'L', + 568 => 'L', + 569 => 'L', + 570 => 'L', + 571 => 'L', + 572 => 'L', + 573 => 'L', + 574 => 'L', + 575 => 'L', + 576 => 'L', + 577 => 'L', + 578 => 'L', + 579 => 'L', + 580 => 'L', + 581 => 'L', + 582 => 'L', + 583 => 'L', + 584 => 'L', + 585 => 'L', + 586 => 'L', + 587 => 'L', + 588 => 'L', + 589 => 'L', + 590 => 'L', + 591 => 'L', + 592 => 'L', + 593 => 'L', + 594 => 'L', + 595 => 'L', + 596 => 'L', + 597 => 'L', + 598 => 'L', + 599 => 'L', + 600 => 'L', + 601 => 'L', + 602 => 'L', + 603 => 'L', + 604 => 'L', + 605 => 'L', + 606 => 'L', + 607 => 'L', + 608 => 'L', + 609 => 'L', + 610 => 'L', + 611 => 'L', + 612 => 'L', + 613 => 'L', + 614 => 'L', + 615 => 'L', + 616 => 'L', + 617 => 'L', + 618 => 'L', + 619 => 'L', + 620 => 'L', + 621 => 'L', + 622 => 'L', + 623 => 'L', + 624 => 'L', + 625 => 'L', + 626 => 'L', + 627 => 'L', + 628 => 'L', + 629 => 'L', + 630 => 'L', + 631 => 'L', + 632 => 'L', + 633 => 'L', + 634 => 'L', + 635 => 'L', + 636 => 'L', + 637 => 'L', + 638 => 'L', + 639 => 'L', + 640 => 'L', + 641 => 'L', + 642 => 'L', + 643 => 'L', + 644 => 'L', + 645 => 'L', + 646 => 'L', + 647 => 'L', + 648 => 'L', + 649 => 'L', + 650 => 'L', + 651 => 'L', + 652 => 'L', + 653 => 'L', + 654 => 'L', + 655 => 'L', + 656 => 'L', + 657 => 'L', + 658 => 'L', + 659 => 'L', + 660 => 'L', + 661 => 'L', + 662 => 'L', + 663 => 'L', + 664 => 'L', + 665 => 'L', + 666 => 'L', + 667 => 'L', + 668 => 'L', + 669 => 'L', + 670 => 'L', + 671 => 'L', + 672 => 'L', + 673 => 'L', + 674 => 'L', + 675 => 'L', + 676 => 'L', + 677 => 'L', + 678 => 'L', + 679 => 'L', + 680 => 'L', + 681 => 'L', + 682 => 'L', + 683 => 'L', + 684 => 'L', + 685 => 'L', + 686 => 'L', + 687 => 'L', + 688 => 'L', + 689 => 'L', + 690 => 'L', + 691 => 'L', + 692 => 'L', + 693 => 'L', + 694 => 'L', + 695 => 'L', + 696 => 'L', + 697 => 'ON', + 698 => 'ON', + 699 => 'L', + 700 => 'L', + 701 => 'L', + 702 => 'L', + 703 => 'L', + 704 => 'L', + 705 => 'L', + 706 => 'ON', + 707 => 'ON', + 708 => 'ON', + 709 => 'ON', + 710 => 'ON', + 711 => 'ON', + 712 => 'ON', + 713 => 'ON', + 714 => 'ON', + 715 => 'ON', + 716 => 'ON', + 717 => 'ON', + 718 => 'ON', + 719 => 'ON', + 720 => 'L', + 721 => 'L', + 722 => 'ON', + 723 => 'ON', + 724 => 'ON', + 725 => 'ON', + 726 => 'ON', + 727 => 'ON', + 728 => 'ON', + 729 => 'ON', + 730 => 'ON', + 731 => 'ON', + 732 => 'ON', + 733 => 'ON', + 734 => 'ON', + 735 => 'ON', + 736 => 'L', + 737 => 'L', + 738 => 'L', + 739 => 'L', + 740 => 'L', + 741 => 'ON', + 742 => 'ON', + 743 => 'ON', + 744 => 'ON', + 745 => 'ON', + 746 => 'ON', + 747 => 'ON', + 748 => 'ON', + 749 => 'ON', + 750 => 'L', + 751 => 'ON', + 752 => 'ON', + 753 => 'ON', + 754 => 'ON', + 755 => 'ON', + 756 => 'ON', + 757 => 'ON', + 758 => 'ON', + 759 => 'ON', + 760 => 'ON', + 761 => 'ON', + 762 => 'ON', + 763 => 'ON', + 764 => 'ON', + 765 => 'ON', + 766 => 'ON', + 767 => 'ON', + 768 => 'NSM', + 769 => 'NSM', + 770 => 'NSM', + 771 => 'NSM', + 772 => 'NSM', + 773 => 'NSM', + 774 => 'NSM', + 775 => 'NSM', + 776 => 'NSM', + 777 => 'NSM', + 778 => 'NSM', + 779 => 'NSM', + 780 => 'NSM', + 781 => 'NSM', + 782 => 'NSM', + 783 => 'NSM', + 784 => 'NSM', + 785 => 'NSM', + 786 => 'NSM', + 787 => 'NSM', + 788 => 'NSM', + 789 => 'NSM', + 790 => 'NSM', + 791 => 'NSM', + 792 => 'NSM', + 793 => 'NSM', + 794 => 'NSM', + 795 => 'NSM', + 796 => 'NSM', + 797 => 'NSM', + 798 => 'NSM', + 799 => 'NSM', + 800 => 'NSM', + 801 => 'NSM', + 802 => 'NSM', + 803 => 'NSM', + 804 => 'NSM', + 805 => 'NSM', + 806 => 'NSM', + 807 => 'NSM', + 808 => 'NSM', + 809 => 'NSM', + 810 => 'NSM', + 811 => 'NSM', + 812 => 'NSM', + 813 => 'NSM', + 814 => 'NSM', + 815 => 'NSM', + 816 => 'NSM', + 817 => 'NSM', + 818 => 'NSM', + 819 => 'NSM', + 820 => 'NSM', + 821 => 'NSM', + 822 => 'NSM', + 823 => 'NSM', + 824 => 'NSM', + 825 => 'NSM', + 826 => 'NSM', + 827 => 'NSM', + 828 => 'NSM', + 829 => 'NSM', + 830 => 'NSM', + 831 => 'NSM', + 832 => 'NSM', + 833 => 'NSM', + 834 => 'NSM', + 835 => 'NSM', + 836 => 'NSM', + 837 => 'NSM', + 838 => 'NSM', + 839 => 'NSM', + 840 => 'NSM', + 841 => 'NSM', + 842 => 'NSM', + 843 => 'NSM', + 844 => 'NSM', + 845 => 'NSM', + 846 => 'NSM', + 847 => 'NSM', + 848 => 'NSM', + 849 => 'NSM', + 850 => 'NSM', + 851 => 'NSM', + 852 => 'NSM', + 853 => 'NSM', + 854 => 'NSM', + 855 => 'NSM', + 856 => 'NSM', + 857 => 'NSM', + 858 => 'NSM', + 859 => 'NSM', + 860 => 'NSM', + 861 => 'NSM', + 862 => 'NSM', + 863 => 'NSM', + 864 => 'NSM', + 865 => 'NSM', + 866 => 'NSM', + 867 => 'NSM', + 868 => 'NSM', + 869 => 'NSM', + 870 => 'NSM', + 871 => 'NSM', + 872 => 'NSM', + 873 => 'NSM', + 874 => 'NSM', + 875 => 'NSM', + 876 => 'NSM', + 877 => 'NSM', + 878 => 'NSM', + 879 => 'NSM', + 884 => 'ON', + 885 => 'ON', + 890 => 'L', + 891 => 'L', + 892 => 'L', + 893 => 'L', + 894 => 'ON', + 900 => 'ON', + 901 => 'ON', + 902 => 'L', + 903 => 'ON', + 904 => 'L', + 905 => 'L', + 906 => 'L', + 908 => 'L', + 910 => 'L', + 911 => 'L', + 912 => 'L', + 913 => 'L', + 914 => 'L', + 915 => 'L', + 916 => 'L', + 917 => 'L', + 918 => 'L', + 919 => 'L', + 920 => 'L', + 921 => 'L', + 922 => 'L', + 923 => 'L', + 924 => 'L', + 925 => 'L', + 926 => 'L', + 927 => 'L', + 928 => 'L', + 929 => 'L', + 931 => 'L', + 932 => 'L', + 933 => 'L', + 934 => 'L', + 935 => 'L', + 936 => 'L', + 937 => 'L', + 938 => 'L', + 939 => 'L', + 940 => 'L', + 941 => 'L', + 942 => 'L', + 943 => 'L', + 944 => 'L', + 945 => 'L', + 946 => 'L', + 947 => 'L', + 948 => 'L', + 949 => 'L', + 950 => 'L', + 951 => 'L', + 952 => 'L', + 953 => 'L', + 954 => 'L', + 955 => 'L', + 956 => 'L', + 957 => 'L', + 958 => 'L', + 959 => 'L', + 960 => 'L', + 961 => 'L', + 962 => 'L', + 963 => 'L', + 964 => 'L', + 965 => 'L', + 966 => 'L', + 967 => 'L', + 968 => 'L', + 969 => 'L', + 970 => 'L', + 971 => 'L', + 972 => 'L', + 973 => 'L', + 974 => 'L', + 976 => 'L', + 977 => 'L', + 978 => 'L', + 979 => 'L', + 980 => 'L', + 981 => 'L', + 982 => 'L', + 983 => 'L', + 984 => 'L', + 985 => 'L', + 986 => 'L', + 987 => 'L', + 988 => 'L', + 989 => 'L', + 990 => 'L', + 991 => 'L', + 992 => 'L', + 993 => 'L', + 994 => 'L', + 995 => 'L', + 996 => 'L', + 997 => 'L', + 998 => 'L', + 999 => 'L', + 1000 => 'L', + 1001 => 'L', + 1002 => 'L', + 1003 => 'L', + 1004 => 'L', + 1005 => 'L', + 1006 => 'L', + 1007 => 'L', + 1008 => 'L', + 1009 => 'L', + 1010 => 'L', + 1011 => 'L', + 1012 => 'L', + 1013 => 'L', + 1014 => 'ON', + 1015 => 'L', + 1016 => 'L', + 1017 => 'L', + 1018 => 'L', + 1019 => 'L', + 1020 => 'L', + 1021 => 'L', + 1022 => 'L', + 1023 => 'L', + 1024 => 'L', + 1025 => 'L', + 1026 => 'L', + 1027 => 'L', + 1028 => 'L', + 1029 => 'L', + 1030 => 'L', + 1031 => 'L', + 1032 => 'L', + 1033 => 'L', + 1034 => 'L', + 1035 => 'L', + 1036 => 'L', + 1037 => 'L', + 1038 => 'L', + 1039 => 'L', + 1040 => 'L', + 1041 => 'L', + 1042 => 'L', + 1043 => 'L', + 1044 => 'L', + 1045 => 'L', + 1046 => 'L', + 1047 => 'L', + 1048 => 'L', + 1049 => 'L', + 1050 => 'L', + 1051 => 'L', + 1052 => 'L', + 1053 => 'L', + 1054 => 'L', + 1055 => 'L', + 1056 => 'L', + 1057 => 'L', + 1058 => 'L', + 1059 => 'L', + 1060 => 'L', + 1061 => 'L', + 1062 => 'L', + 1063 => 'L', + 1064 => 'L', + 1065 => 'L', + 1066 => 'L', + 1067 => 'L', + 1068 => 'L', + 1069 => 'L', + 1070 => 'L', + 1071 => 'L', + 1072 => 'L', + 1073 => 'L', + 1074 => 'L', + 1075 => 'L', + 1076 => 'L', + 1077 => 'L', + 1078 => 'L', + 1079 => 'L', + 1080 => 'L', + 1081 => 'L', + 1082 => 'L', + 1083 => 'L', + 1084 => 'L', + 1085 => 'L', + 1086 => 'L', + 1087 => 'L', + 1088 => 'L', + 1089 => 'L', + 1090 => 'L', + 1091 => 'L', + 1092 => 'L', + 1093 => 'L', + 1094 => 'L', + 1095 => 'L', + 1096 => 'L', + 1097 => 'L', + 1098 => 'L', + 1099 => 'L', + 1100 => 'L', + 1101 => 'L', + 1102 => 'L', + 1103 => 'L', + 1104 => 'L', + 1105 => 'L', + 1106 => 'L', + 1107 => 'L', + 1108 => 'L', + 1109 => 'L', + 1110 => 'L', + 1111 => 'L', + 1112 => 'L', + 1113 => 'L', + 1114 => 'L', + 1115 => 'L', + 1116 => 'L', + 1117 => 'L', + 1118 => 'L', + 1119 => 'L', + 1120 => 'L', + 1121 => 'L', + 1122 => 'L', + 1123 => 'L', + 1124 => 'L', + 1125 => 'L', + 1126 => 'L', + 1127 => 'L', + 1128 => 'L', + 1129 => 'L', + 1130 => 'L', + 1131 => 'L', + 1132 => 'L', + 1133 => 'L', + 1134 => 'L', + 1135 => 'L', + 1136 => 'L', + 1137 => 'L', + 1138 => 'L', + 1139 => 'L', + 1140 => 'L', + 1141 => 'L', + 1142 => 'L', + 1143 => 'L', + 1144 => 'L', + 1145 => 'L', + 1146 => 'L', + 1147 => 'L', + 1148 => 'L', + 1149 => 'L', + 1150 => 'L', + 1151 => 'L', + 1152 => 'L', + 1153 => 'L', + 1154 => 'L', + 1155 => 'NSM', + 1156 => 'NSM', + 1157 => 'NSM', + 1158 => 'NSM', + 1160 => 'NSM', + 1161 => 'NSM', + 1162 => 'L', + 1163 => 'L', + 1164 => 'L', + 1165 => 'L', + 1166 => 'L', + 1167 => 'L', + 1168 => 'L', + 1169 => 'L', + 1170 => 'L', + 1171 => 'L', + 1172 => 'L', + 1173 => 'L', + 1174 => 'L', + 1175 => 'L', + 1176 => 'L', + 1177 => 'L', + 1178 => 'L', + 1179 => 'L', + 1180 => 'L', + 1181 => 'L', + 1182 => 'L', + 1183 => 'L', + 1184 => 'L', + 1185 => 'L', + 1186 => 'L', + 1187 => 'L', + 1188 => 'L', + 1189 => 'L', + 1190 => 'L', + 1191 => 'L', + 1192 => 'L', + 1193 => 'L', + 1194 => 'L', + 1195 => 'L', + 1196 => 'L', + 1197 => 'L', + 1198 => 'L', + 1199 => 'L', + 1200 => 'L', + 1201 => 'L', + 1202 => 'L', + 1203 => 'L', + 1204 => 'L', + 1205 => 'L', + 1206 => 'L', + 1207 => 'L', + 1208 => 'L', + 1209 => 'L', + 1210 => 'L', + 1211 => 'L', + 1212 => 'L', + 1213 => 'L', + 1214 => 'L', + 1215 => 'L', + 1216 => 'L', + 1217 => 'L', + 1218 => 'L', + 1219 => 'L', + 1220 => 'L', + 1221 => 'L', + 1222 => 'L', + 1223 => 'L', + 1224 => 'L', + 1225 => 'L', + 1226 => 'L', + 1227 => 'L', + 1228 => 'L', + 1229 => 'L', + 1230 => 'L', + 1231 => 'L', + 1232 => 'L', + 1233 => 'L', + 1234 => 'L', + 1235 => 'L', + 1236 => 'L', + 1237 => 'L', + 1238 => 'L', + 1239 => 'L', + 1240 => 'L', + 1241 => 'L', + 1242 => 'L', + 1243 => 'L', + 1244 => 'L', + 1245 => 'L', + 1246 => 'L', + 1247 => 'L', + 1248 => 'L', + 1249 => 'L', + 1250 => 'L', + 1251 => 'L', + 1252 => 'L', + 1253 => 'L', + 1254 => 'L', + 1255 => 'L', + 1256 => 'L', + 1257 => 'L', + 1258 => 'L', + 1259 => 'L', + 1260 => 'L', + 1261 => 'L', + 1262 => 'L', + 1263 => 'L', + 1264 => 'L', + 1265 => 'L', + 1266 => 'L', + 1267 => 'L', + 1268 => 'L', + 1269 => 'L', + 1270 => 'L', + 1271 => 'L', + 1272 => 'L', + 1273 => 'L', + 1274 => 'L', + 1275 => 'L', + 1276 => 'L', + 1277 => 'L', + 1278 => 'L', + 1279 => 'L', + 1280 => 'L', + 1281 => 'L', + 1282 => 'L', + 1283 => 'L', + 1284 => 'L', + 1285 => 'L', + 1286 => 'L', + 1287 => 'L', + 1288 => 'L', + 1289 => 'L', + 1290 => 'L', + 1291 => 'L', + 1292 => 'L', + 1293 => 'L', + 1294 => 'L', + 1295 => 'L', + 1296 => 'L', + 1297 => 'L', + 1298 => 'L', + 1299 => 'L', + 1329 => 'L', + 1330 => 'L', + 1331 => 'L', + 1332 => 'L', + 1333 => 'L', + 1334 => 'L', + 1335 => 'L', + 1336 => 'L', + 1337 => 'L', + 1338 => 'L', + 1339 => 'L', + 1340 => 'L', + 1341 => 'L', + 1342 => 'L', + 1343 => 'L', + 1344 => 'L', + 1345 => 'L', + 1346 => 'L', + 1347 => 'L', + 1348 => 'L', + 1349 => 'L', + 1350 => 'L', + 1351 => 'L', + 1352 => 'L', + 1353 => 'L', + 1354 => 'L', + 1355 => 'L', + 1356 => 'L', + 1357 => 'L', + 1358 => 'L', + 1359 => 'L', + 1360 => 'L', + 1361 => 'L', + 1362 => 'L', + 1363 => 'L', + 1364 => 'L', + 1365 => 'L', + 1366 => 'L', + 1369 => 'L', + 1370 => 'L', + 1371 => 'L', + 1372 => 'L', + 1373 => 'L', + 1374 => 'L', + 1375 => 'L', + 1377 => 'L', + 1378 => 'L', + 1379 => 'L', + 1380 => 'L', + 1381 => 'L', + 1382 => 'L', + 1383 => 'L', + 1384 => 'L', + 1385 => 'L', + 1386 => 'L', + 1387 => 'L', + 1388 => 'L', + 1389 => 'L', + 1390 => 'L', + 1391 => 'L', + 1392 => 'L', + 1393 => 'L', + 1394 => 'L', + 1395 => 'L', + 1396 => 'L', + 1397 => 'L', + 1398 => 'L', + 1399 => 'L', + 1400 => 'L', + 1401 => 'L', + 1402 => 'L', + 1403 => 'L', + 1404 => 'L', + 1405 => 'L', + 1406 => 'L', + 1407 => 'L', + 1408 => 'L', + 1409 => 'L', + 1410 => 'L', + 1411 => 'L', + 1412 => 'L', + 1413 => 'L', + 1414 => 'L', + 1415 => 'L', + 1417 => 'L', + 1418 => 'ON', + 1425 => 'NSM', + 1426 => 'NSM', + 1427 => 'NSM', + 1428 => 'NSM', + 1429 => 'NSM', + 1430 => 'NSM', + 1431 => 'NSM', + 1432 => 'NSM', + 1433 => 'NSM', + 1434 => 'NSM', + 1435 => 'NSM', + 1436 => 'NSM', + 1437 => 'NSM', + 1438 => 'NSM', + 1439 => 'NSM', + 1440 => 'NSM', + 1441 => 'NSM', + 1442 => 'NSM', + 1443 => 'NSM', + 1444 => 'NSM', + 1445 => 'NSM', + 1446 => 'NSM', + 1447 => 'NSM', + 1448 => 'NSM', + 1449 => 'NSM', + 1450 => 'NSM', + 1451 => 'NSM', + 1452 => 'NSM', + 1453 => 'NSM', + 1454 => 'NSM', + 1455 => 'NSM', + 1456 => 'NSM', + 1457 => 'NSM', + 1458 => 'NSM', + 1459 => 'NSM', + 1460 => 'NSM', + 1461 => 'NSM', + 1462 => 'NSM', + 1463 => 'NSM', + 1464 => 'NSM', + 1465 => 'NSM', + 1466 => 'NSM', + 1467 => 'NSM', + 1468 => 'NSM', + 1469 => 'NSM', + 1470 => 'R', + 1471 => 'NSM', + 1472 => 'R', + 1473 => 'NSM', + 1474 => 'NSM', + 1475 => 'R', + 1476 => 'NSM', + 1477 => 'NSM', + 1478 => 'R', + 1479 => 'NSM', + 1488 => 'R', + 1489 => 'R', + 1490 => 'R', + 1491 => 'R', + 1492 => 'R', + 1493 => 'R', + 1494 => 'R', + 1495 => 'R', + 1496 => 'R', + 1497 => 'R', + 1498 => 'R', + 1499 => 'R', + 1500 => 'R', + 1501 => 'R', + 1502 => 'R', + 1503 => 'R', + 1504 => 'R', + 1505 => 'R', + 1506 => 'R', + 1507 => 'R', + 1508 => 'R', + 1509 => 'R', + 1510 => 'R', + 1511 => 'R', + 1512 => 'R', + 1513 => 'R', + 1514 => 'R', + 1520 => 'R', + 1521 => 'R', + 1522 => 'R', + 1523 => 'R', + 1524 => 'R', + 1536 => 'AL', + 1537 => 'AL', + 1538 => 'AL', + 1539 => 'AL', + 1547 => 'AL', + 1548 => 'CS', + 1549 => 'AL', + 1550 => 'ON', + 1551 => 'ON', + 1552 => 'NSM', + 1553 => 'NSM', + 1554 => 'NSM', + 1555 => 'NSM', + 1556 => 'NSM', + 1557 => 'NSM', + 1563 => 'AL', + 1566 => 'AL', + 1567 => 'AL', + 1569 => 'AL', + 1570 => 'AL', + 1571 => 'AL', + 1572 => 'AL', + 1573 => 'AL', + 1574 => 'AL', + 1575 => 'AL', + 1576 => 'AL', + 1577 => 'AL', + 1578 => 'AL', + 1579 => 'AL', + 1580 => 'AL', + 1581 => 'AL', + 1582 => 'AL', + 1583 => 'AL', + 1584 => 'AL', + 1585 => 'AL', + 1586 => 'AL', + 1587 => 'AL', + 1588 => 'AL', + 1589 => 'AL', + 1590 => 'AL', + 1591 => 'AL', + 1592 => 'AL', + 1593 => 'AL', + 1594 => 'AL', + 1600 => 'AL', + 1601 => 'AL', + 1602 => 'AL', + 1603 => 'AL', + 1604 => 'AL', + 1605 => 'AL', + 1606 => 'AL', + 1607 => 'AL', + 1608 => 'AL', + 1609 => 'AL', + 1610 => 'AL', + 1611 => 'NSM', + 1612 => 'NSM', + 1613 => 'NSM', + 1614 => 'NSM', + 1615 => 'NSM', + 1616 => 'NSM', + 1617 => 'NSM', + 1618 => 'NSM', + 1619 => 'NSM', + 1620 => 'NSM', + 1621 => 'NSM', + 1622 => 'NSM', + 1623 => 'NSM', + 1624 => 'NSM', + 1625 => 'NSM', + 1626 => 'NSM', + 1627 => 'NSM', + 1628 => 'NSM', + 1629 => 'NSM', + 1630 => 'NSM', + 1632 => 'AN', + 1633 => 'AN', + 1634 => 'AN', + 1635 => 'AN', + 1636 => 'AN', + 1637 => 'AN', + 1638 => 'AN', + 1639 => 'AN', + 1640 => 'AN', + 1641 => 'AN', + 1642 => 'ET', + 1643 => 'AN', + 1644 => 'AN', + 1645 => 'AL', + 1646 => 'AL', + 1647 => 'AL', + 1648 => 'NSM', + 1649 => 'AL', + 1650 => 'AL', + 1651 => 'AL', + 1652 => 'AL', + 1653 => 'AL', + 1654 => 'AL', + 1655 => 'AL', + 1656 => 'AL', + 1657 => 'AL', + 1658 => 'AL', + 1659 => 'AL', + 1660 => 'AL', + 1661 => 'AL', + 1662 => 'AL', + 1663 => 'AL', + 1664 => 'AL', + 1665 => 'AL', + 1666 => 'AL', + 1667 => 'AL', + 1668 => 'AL', + 1669 => 'AL', + 1670 => 'AL', + 1671 => 'AL', + 1672 => 'AL', + 1673 => 'AL', + 1674 => 'AL', + 1675 => 'AL', + 1676 => 'AL', + 1677 => 'AL', + 1678 => 'AL', + 1679 => 'AL', + 1680 => 'AL', + 1681 => 'AL', + 1682 => 'AL', + 1683 => 'AL', + 1684 => 'AL', + 1685 => 'AL', + 1686 => 'AL', + 1687 => 'AL', + 1688 => 'AL', + 1689 => 'AL', + 1690 => 'AL', + 1691 => 'AL', + 1692 => 'AL', + 1693 => 'AL', + 1694 => 'AL', + 1695 => 'AL', + 1696 => 'AL', + 1697 => 'AL', + 1698 => 'AL', + 1699 => 'AL', + 1700 => 'AL', + 1701 => 'AL', + 1702 => 'AL', + 1703 => 'AL', + 1704 => 'AL', + 1705 => 'AL', + 1706 => 'AL', + 1707 => 'AL', + 1708 => 'AL', + 1709 => 'AL', + 1710 => 'AL', + 1711 => 'AL', + 1712 => 'AL', + 1713 => 'AL', + 1714 => 'AL', + 1715 => 'AL', + 1716 => 'AL', + 1717 => 'AL', + 1718 => 'AL', + 1719 => 'AL', + 1720 => 'AL', + 1721 => 'AL', + 1722 => 'AL', + 1723 => 'AL', + 1724 => 'AL', + 1725 => 'AL', + 1726 => 'AL', + 1727 => 'AL', + 1728 => 'AL', + 1729 => 'AL', + 1730 => 'AL', + 1731 => 'AL', + 1732 => 'AL', + 1733 => 'AL', + 1734 => 'AL', + 1735 => 'AL', + 1736 => 'AL', + 1737 => 'AL', + 1738 => 'AL', + 1739 => 'AL', + 1740 => 'AL', + 1741 => 'AL', + 1742 => 'AL', + 1743 => 'AL', + 1744 => 'AL', + 1745 => 'AL', + 1746 => 'AL', + 1747 => 'AL', + 1748 => 'AL', + 1749 => 'AL', + 1750 => 'NSM', + 1751 => 'NSM', + 1752 => 'NSM', + 1753 => 'NSM', + 1754 => 'NSM', + 1755 => 'NSM', + 1756 => 'NSM', + 1757 => 'AL', + 1758 => 'NSM', + 1759 => 'NSM', + 1760 => 'NSM', + 1761 => 'NSM', + 1762 => 'NSM', + 1763 => 'NSM', + 1764 => 'NSM', + 1765 => 'AL', + 1766 => 'AL', + 1767 => 'NSM', + 1768 => 'NSM', + 1769 => 'ON', + 1770 => 'NSM', + 1771 => 'NSM', + 1772 => 'NSM', + 1773 => 'NSM', + 1774 => 'AL', + 1775 => 'AL', + 1776 => 'EN', + 1777 => 'EN', + 1778 => 'EN', + 1779 => 'EN', + 1780 => 'EN', + 1781 => 'EN', + 1782 => 'EN', + 1783 => 'EN', + 1784 => 'EN', + 1785 => 'EN', + 1786 => 'AL', + 1787 => 'AL', + 1788 => 'AL', + 1789 => 'AL', + 1790 => 'AL', + 1791 => 'AL', + 1792 => 'AL', + 1793 => 'AL', + 1794 => 'AL', + 1795 => 'AL', + 1796 => 'AL', + 1797 => 'AL', + 1798 => 'AL', + 1799 => 'AL', + 1800 => 'AL', + 1801 => 'AL', + 1802 => 'AL', + 1803 => 'AL', + 1804 => 'AL', + 1805 => 'AL', + 1807 => 'BN', + 1808 => 'AL', + 1809 => 'NSM', + 1810 => 'AL', + 1811 => 'AL', + 1812 => 'AL', + 1813 => 'AL', + 1814 => 'AL', + 1815 => 'AL', + 1816 => 'AL', + 1817 => 'AL', + 1818 => 'AL', + 1819 => 'AL', + 1820 => 'AL', + 1821 => 'AL', + 1822 => 'AL', + 1823 => 'AL', + 1824 => 'AL', + 1825 => 'AL', + 1826 => 'AL', + 1827 => 'AL', + 1828 => 'AL', + 1829 => 'AL', + 1830 => 'AL', + 1831 => 'AL', + 1832 => 'AL', + 1833 => 'AL', + 1834 => 'AL', + 1835 => 'AL', + 1836 => 'AL', + 1837 => 'AL', + 1838 => 'AL', + 1839 => 'AL', + 1840 => 'NSM', + 1841 => 'NSM', + 1842 => 'NSM', + 1843 => 'NSM', + 1844 => 'NSM', + 1845 => 'NSM', + 1846 => 'NSM', + 1847 => 'NSM', + 1848 => 'NSM', + 1849 => 'NSM', + 1850 => 'NSM', + 1851 => 'NSM', + 1852 => 'NSM', + 1853 => 'NSM', + 1854 => 'NSM', + 1855 => 'NSM', + 1856 => 'NSM', + 1857 => 'NSM', + 1858 => 'NSM', + 1859 => 'NSM', + 1860 => 'NSM', + 1861 => 'NSM', + 1862 => 'NSM', + 1863 => 'NSM', + 1864 => 'NSM', + 1865 => 'NSM', + 1866 => 'NSM', + 1869 => 'AL', + 1870 => 'AL', + 1871 => 'AL', + 1872 => 'AL', + 1873 => 'AL', + 1874 => 'AL', + 1875 => 'AL', + 1876 => 'AL', + 1877 => 'AL', + 1878 => 'AL', + 1879 => 'AL', + 1880 => 'AL', + 1881 => 'AL', + 1882 => 'AL', + 1883 => 'AL', + 1884 => 'AL', + 1885 => 'AL', + 1886 => 'AL', + 1887 => 'AL', + 1888 => 'AL', + 1889 => 'AL', + 1890 => 'AL', + 1891 => 'AL', + 1892 => 'AL', + 1893 => 'AL', + 1894 => 'AL', + 1895 => 'AL', + 1896 => 'AL', + 1897 => 'AL', + 1898 => 'AL', + 1899 => 'AL', + 1900 => 'AL', + 1901 => 'AL', + 1920 => 'AL', + 1921 => 'AL', + 1922 => 'AL', + 1923 => 'AL', + 1924 => 'AL', + 1925 => 'AL', + 1926 => 'AL', + 1927 => 'AL', + 1928 => 'AL', + 1929 => 'AL', + 1930 => 'AL', + 1931 => 'AL', + 1932 => 'AL', + 1933 => 'AL', + 1934 => 'AL', + 1935 => 'AL', + 1936 => 'AL', + 1937 => 'AL', + 1938 => 'AL', + 1939 => 'AL', + 1940 => 'AL', + 1941 => 'AL', + 1942 => 'AL', + 1943 => 'AL', + 1944 => 'AL', + 1945 => 'AL', + 1946 => 'AL', + 1947 => 'AL', + 1948 => 'AL', + 1949 => 'AL', + 1950 => 'AL', + 1951 => 'AL', + 1952 => 'AL', + 1953 => 'AL', + 1954 => 'AL', + 1955 => 'AL', + 1956 => 'AL', + 1957 => 'AL', + 1958 => 'NSM', + 1959 => 'NSM', + 1960 => 'NSM', + 1961 => 'NSM', + 1962 => 'NSM', + 1963 => 'NSM', + 1964 => 'NSM', + 1965 => 'NSM', + 1966 => 'NSM', + 1967 => 'NSM', + 1968 => 'NSM', + 1969 => 'AL', + 1984 => 'R', + 1985 => 'R', + 1986 => 'R', + 1987 => 'R', + 1988 => 'R', + 1989 => 'R', + 1990 => 'R', + 1991 => 'R', + 1992 => 'R', + 1993 => 'R', + 1994 => 'R', + 1995 => 'R', + 1996 => 'R', + 1997 => 'R', + 1998 => 'R', + 1999 => 'R', + 2000 => 'R', + 2001 => 'R', + 2002 => 'R', + 2003 => 'R', + 2004 => 'R', + 2005 => 'R', + 2006 => 'R', + 2007 => 'R', + 2008 => 'R', + 2009 => 'R', + 2010 => 'R', + 2011 => 'R', + 2012 => 'R', + 2013 => 'R', + 2014 => 'R', + 2015 => 'R', + 2016 => 'R', + 2017 => 'R', + 2018 => 'R', + 2019 => 'R', + 2020 => 'R', + 2021 => 'R', + 2022 => 'R', + 2023 => 'R', + 2024 => 'R', + 2025 => 'R', + 2026 => 'R', + 2027 => 'NSM', + 2028 => 'NSM', + 2029 => 'NSM', + 2030 => 'NSM', + 2031 => 'NSM', + 2032 => 'NSM', + 2033 => 'NSM', + 2034 => 'NSM', + 2035 => 'NSM', + 2036 => 'R', + 2037 => 'R', + 2038 => 'ON', + 2039 => 'ON', + 2040 => 'ON', + 2041 => 'ON', + 2042 => 'R', + 2305 => 'NSM', + 2306 => 'NSM', + 2307 => 'L', + 2308 => 'L', + 2309 => 'L', + 2310 => 'L', + 2311 => 'L', + 2312 => 'L', + 2313 => 'L', + 2314 => 'L', + 2315 => 'L', + 2316 => 'L', + 2317 => 'L', + 2318 => 'L', + 2319 => 'L', + 2320 => 'L', + 2321 => 'L', + 2322 => 'L', + 2323 => 'L', + 2324 => 'L', + 2325 => 'L', + 2326 => 'L', + 2327 => 'L', + 2328 => 'L', + 2329 => 'L', + 2330 => 'L', + 2331 => 'L', + 2332 => 'L', + 2333 => 'L', + 2334 => 'L', + 2335 => 'L', + 2336 => 'L', + 2337 => 'L', + 2338 => 'L', + 2339 => 'L', + 2340 => 'L', + 2341 => 'L', + 2342 => 'L', + 2343 => 'L', + 2344 => 'L', + 2345 => 'L', + 2346 => 'L', + 2347 => 'L', + 2348 => 'L', + 2349 => 'L', + 2350 => 'L', + 2351 => 'L', + 2352 => 'L', + 2353 => 'L', + 2354 => 'L', + 2355 => 'L', + 2356 => 'L', + 2357 => 'L', + 2358 => 'L', + 2359 => 'L', + 2360 => 'L', + 2361 => 'L', + 2364 => 'NSM', + 2365 => 'L', + 2366 => 'L', + 2367 => 'L', + 2368 => 'L', + 2369 => 'NSM', + 2370 => 'NSM', + 2371 => 'NSM', + 2372 => 'NSM', + 2373 => 'NSM', + 2374 => 'NSM', + 2375 => 'NSM', + 2376 => 'NSM', + 2377 => 'L', + 2378 => 'L', + 2379 => 'L', + 2380 => 'L', + 2381 => 'NSM', + 2384 => 'L', + 2385 => 'NSM', + 2386 => 'NSM', + 2387 => 'NSM', + 2388 => 'NSM', + 2392 => 'L', + 2393 => 'L', + 2394 => 'L', + 2395 => 'L', + 2396 => 'L', + 2397 => 'L', + 2398 => 'L', + 2399 => 'L', + 2400 => 'L', + 2401 => 'L', + 2402 => 'NSM', + 2403 => 'NSM', + 2404 => 'L', + 2405 => 'L', + 2406 => 'L', + 2407 => 'L', + 2408 => 'L', + 2409 => 'L', + 2410 => 'L', + 2411 => 'L', + 2412 => 'L', + 2413 => 'L', + 2414 => 'L', + 2415 => 'L', + 2416 => 'L', + 2427 => 'L', + 2428 => 'L', + 2429 => 'L', + 2430 => 'L', + 2431 => 'L', + 2433 => 'NSM', + 2434 => 'L', + 2435 => 'L', + 2437 => 'L', + 2438 => 'L', + 2439 => 'L', + 2440 => 'L', + 2441 => 'L', + 2442 => 'L', + 2443 => 'L', + 2444 => 'L', + 2447 => 'L', + 2448 => 'L', + 2451 => 'L', + 2452 => 'L', + 2453 => 'L', + 2454 => 'L', + 2455 => 'L', + 2456 => 'L', + 2457 => 'L', + 2458 => 'L', + 2459 => 'L', + 2460 => 'L', + 2461 => 'L', + 2462 => 'L', + 2463 => 'L', + 2464 => 'L', + 2465 => 'L', + 2466 => 'L', + 2467 => 'L', + 2468 => 'L', + 2469 => 'L', + 2470 => 'L', + 2471 => 'L', + 2472 => 'L', + 2474 => 'L', + 2475 => 'L', + 2476 => 'L', + 2477 => 'L', + 2478 => 'L', + 2479 => 'L', + 2480 => 'L', + 2482 => 'L', + 2486 => 'L', + 2487 => 'L', + 2488 => 'L', + 2489 => 'L', + 2492 => 'NSM', + 2493 => 'L', + 2494 => 'L', + 2495 => 'L', + 2496 => 'L', + 2497 => 'NSM', + 2498 => 'NSM', + 2499 => 'NSM', + 2500 => 'NSM', + 2503 => 'L', + 2504 => 'L', + 2507 => 'L', + 2508 => 'L', + 2509 => 'NSM', + 2510 => 'L', + 2519 => 'L', + 2524 => 'L', + 2525 => 'L', + 2527 => 'L', + 2528 => 'L', + 2529 => 'L', + 2530 => 'NSM', + 2531 => 'NSM', + 2534 => 'L', + 2535 => 'L', + 2536 => 'L', + 2537 => 'L', + 2538 => 'L', + 2539 => 'L', + 2540 => 'L', + 2541 => 'L', + 2542 => 'L', + 2543 => 'L', + 2544 => 'L', + 2545 => 'L', + 2546 => 'ET', + 2547 => 'ET', + 2548 => 'L', + 2549 => 'L', + 2550 => 'L', + 2551 => 'L', + 2552 => 'L', + 2553 => 'L', + 2554 => 'L', + 2561 => 'NSM', + 2562 => 'NSM', + 2563 => 'L', + 2565 => 'L', + 2566 => 'L', + 2567 => 'L', + 2568 => 'L', + 2569 => 'L', + 2570 => 'L', + 2575 => 'L', + 2576 => 'L', + 2579 => 'L', + 2580 => 'L', + 2581 => 'L', + 2582 => 'L', + 2583 => 'L', + 2584 => 'L', + 2585 => 'L', + 2586 => 'L', + 2587 => 'L', + 2588 => 'L', + 2589 => 'L', + 2590 => 'L', + 2591 => 'L', + 2592 => 'L', + 2593 => 'L', + 2594 => 'L', + 2595 => 'L', + 2596 => 'L', + 2597 => 'L', + 2598 => 'L', + 2599 => 'L', + 2600 => 'L', + 2602 => 'L', + 2603 => 'L', + 2604 => 'L', + 2605 => 'L', + 2606 => 'L', + 2607 => 'L', + 2608 => 'L', + 2610 => 'L', + 2611 => 'L', + 2613 => 'L', + 2614 => 'L', + 2616 => 'L', + 2617 => 'L', + 2620 => 'NSM', + 2622 => 'L', + 2623 => 'L', + 2624 => 'L', + 2625 => 'NSM', + 2626 => 'NSM', + 2631 => 'NSM', + 2632 => 'NSM', + 2635 => 'NSM', + 2636 => 'NSM', + 2637 => 'NSM', + 2649 => 'L', + 2650 => 'L', + 2651 => 'L', + 2652 => 'L', + 2654 => 'L', + 2662 => 'L', + 2663 => 'L', + 2664 => 'L', + 2665 => 'L', + 2666 => 'L', + 2667 => 'L', + 2668 => 'L', + 2669 => 'L', + 2670 => 'L', + 2671 => 'L', + 2672 => 'NSM', + 2673 => 'NSM', + 2674 => 'L', + 2675 => 'L', + 2676 => 'L', + 2689 => 'NSM', + 2690 => 'NSM', + 2691 => 'L', + 2693 => 'L', + 2694 => 'L', + 2695 => 'L', + 2696 => 'L', + 2697 => 'L', + 2698 => 'L', + 2699 => 'L', + 2700 => 'L', + 2701 => 'L', + 2703 => 'L', + 2704 => 'L', + 2705 => 'L', + 2707 => 'L', + 2708 => 'L', + 2709 => 'L', + 2710 => 'L', + 2711 => 'L', + 2712 => 'L', + 2713 => 'L', + 2714 => 'L', + 2715 => 'L', + 2716 => 'L', + 2717 => 'L', + 2718 => 'L', + 2719 => 'L', + 2720 => 'L', + 2721 => 'L', + 2722 => 'L', + 2723 => 'L', + 2724 => 'L', + 2725 => 'L', + 2726 => 'L', + 2727 => 'L', + 2728 => 'L', + 2730 => 'L', + 2731 => 'L', + 2732 => 'L', + 2733 => 'L', + 2734 => 'L', + 2735 => 'L', + 2736 => 'L', + 2738 => 'L', + 2739 => 'L', + 2741 => 'L', + 2742 => 'L', + 2743 => 'L', + 2744 => 'L', + 2745 => 'L', + 2748 => 'NSM', + 2749 => 'L', + 2750 => 'L', + 2751 => 'L', + 2752 => 'L', + 2753 => 'NSM', + 2754 => 'NSM', + 2755 => 'NSM', + 2756 => 'NSM', + 2757 => 'NSM', + 2759 => 'NSM', + 2760 => 'NSM', + 2761 => 'L', + 2763 => 'L', + 2764 => 'L', + 2765 => 'NSM', + 2768 => 'L', + 2784 => 'L', + 2785 => 'L', + 2786 => 'NSM', + 2787 => 'NSM', + 2790 => 'L', + 2791 => 'L', + 2792 => 'L', + 2793 => 'L', + 2794 => 'L', + 2795 => 'L', + 2796 => 'L', + 2797 => 'L', + 2798 => 'L', + 2799 => 'L', + 2801 => 'ET', + 2817 => 'NSM', + 2818 => 'L', + 2819 => 'L', + 2821 => 'L', + 2822 => 'L', + 2823 => 'L', + 2824 => 'L', + 2825 => 'L', + 2826 => 'L', + 2827 => 'L', + 2828 => 'L', + 2831 => 'L', + 2832 => 'L', + 2835 => 'L', + 2836 => 'L', + 2837 => 'L', + 2838 => 'L', + 2839 => 'L', + 2840 => 'L', + 2841 => 'L', + 2842 => 'L', + 2843 => 'L', + 2844 => 'L', + 2845 => 'L', + 2846 => 'L', + 2847 => 'L', + 2848 => 'L', + 2849 => 'L', + 2850 => 'L', + 2851 => 'L', + 2852 => 'L', + 2853 => 'L', + 2854 => 'L', + 2855 => 'L', + 2856 => 'L', + 2858 => 'L', + 2859 => 'L', + 2860 => 'L', + 2861 => 'L', + 2862 => 'L', + 2863 => 'L', + 2864 => 'L', + 2866 => 'L', + 2867 => 'L', + 2869 => 'L', + 2870 => 'L', + 2871 => 'L', + 2872 => 'L', + 2873 => 'L', + 2876 => 'NSM', + 2877 => 'L', + 2878 => 'L', + 2879 => 'NSM', + 2880 => 'L', + 2881 => 'NSM', + 2882 => 'NSM', + 2883 => 'NSM', + 2887 => 'L', + 2888 => 'L', + 2891 => 'L', + 2892 => 'L', + 2893 => 'NSM', + 2902 => 'NSM', + 2903 => 'L', + 2908 => 'L', + 2909 => 'L', + 2911 => 'L', + 2912 => 'L', + 2913 => 'L', + 2918 => 'L', + 2919 => 'L', + 2920 => 'L', + 2921 => 'L', + 2922 => 'L', + 2923 => 'L', + 2924 => 'L', + 2925 => 'L', + 2926 => 'L', + 2927 => 'L', + 2928 => 'L', + 2929 => 'L', + 2946 => 'NSM', + 2947 => 'L', + 2949 => 'L', + 2950 => 'L', + 2951 => 'L', + 2952 => 'L', + 2953 => 'L', + 2954 => 'L', + 2958 => 'L', + 2959 => 'L', + 2960 => 'L', + 2962 => 'L', + 2963 => 'L', + 2964 => 'L', + 2965 => 'L', + 2969 => 'L', + 2970 => 'L', + 2972 => 'L', + 2974 => 'L', + 2975 => 'L', + 2979 => 'L', + 2980 => 'L', + 2984 => 'L', + 2985 => 'L', + 2986 => 'L', + 2990 => 'L', + 2991 => 'L', + 2992 => 'L', + 2993 => 'L', + 2994 => 'L', + 2995 => 'L', + 2996 => 'L', + 2997 => 'L', + 2998 => 'L', + 2999 => 'L', + 3000 => 'L', + 3001 => 'L', + 3006 => 'L', + 3007 => 'L', + 3008 => 'NSM', + 3009 => 'L', + 3010 => 'L', + 3014 => 'L', + 3015 => 'L', + 3016 => 'L', + 3018 => 'L', + 3019 => 'L', + 3020 => 'L', + 3021 => 'NSM', + 3031 => 'L', + 3046 => 'L', + 3047 => 'L', + 3048 => 'L', + 3049 => 'L', + 3050 => 'L', + 3051 => 'L', + 3052 => 'L', + 3053 => 'L', + 3054 => 'L', + 3055 => 'L', + 3056 => 'L', + 3057 => 'L', + 3058 => 'L', + 3059 => 'ON', + 3060 => 'ON', + 3061 => 'ON', + 3062 => 'ON', + 3063 => 'ON', + 3064 => 'ON', + 3065 => 'ET', + 3066 => 'ON', + 3073 => 'L', + 3074 => 'L', + 3075 => 'L', + 3077 => 'L', + 3078 => 'L', + 3079 => 'L', + 3080 => 'L', + 3081 => 'L', + 3082 => 'L', + 3083 => 'L', + 3084 => 'L', + 3086 => 'L', + 3087 => 'L', + 3088 => 'L', + 3090 => 'L', + 3091 => 'L', + 3092 => 'L', + 3093 => 'L', + 3094 => 'L', + 3095 => 'L', + 3096 => 'L', + 3097 => 'L', + 3098 => 'L', + 3099 => 'L', + 3100 => 'L', + 3101 => 'L', + 3102 => 'L', + 3103 => 'L', + 3104 => 'L', + 3105 => 'L', + 3106 => 'L', + 3107 => 'L', + 3108 => 'L', + 3109 => 'L', + 3110 => 'L', + 3111 => 'L', + 3112 => 'L', + 3114 => 'L', + 3115 => 'L', + 3116 => 'L', + 3117 => 'L', + 3118 => 'L', + 3119 => 'L', + 3120 => 'L', + 3121 => 'L', + 3122 => 'L', + 3123 => 'L', + 3125 => 'L', + 3126 => 'L', + 3127 => 'L', + 3128 => 'L', + 3129 => 'L', + 3134 => 'NSM', + 3135 => 'NSM', + 3136 => 'NSM', + 3137 => 'L', + 3138 => 'L', + 3139 => 'L', + 3140 => 'L', + 3142 => 'NSM', + 3143 => 'NSM', + 3144 => 'NSM', + 3146 => 'NSM', + 3147 => 'NSM', + 3148 => 'NSM', + 3149 => 'NSM', + 3157 => 'NSM', + 3158 => 'NSM', + 3168 => 'L', + 3169 => 'L', + 3174 => 'L', + 3175 => 'L', + 3176 => 'L', + 3177 => 'L', + 3178 => 'L', + 3179 => 'L', + 3180 => 'L', + 3181 => 'L', + 3182 => 'L', + 3183 => 'L', + 3202 => 'L', + 3203 => 'L', + 3205 => 'L', + 3206 => 'L', + 3207 => 'L', + 3208 => 'L', + 3209 => 'L', + 3210 => 'L', + 3211 => 'L', + 3212 => 'L', + 3214 => 'L', + 3215 => 'L', + 3216 => 'L', + 3218 => 'L', + 3219 => 'L', + 3220 => 'L', + 3221 => 'L', + 3222 => 'L', + 3223 => 'L', + 3224 => 'L', + 3225 => 'L', + 3226 => 'L', + 3227 => 'L', + 3228 => 'L', + 3229 => 'L', + 3230 => 'L', + 3231 => 'L', + 3232 => 'L', + 3233 => 'L', + 3234 => 'L', + 3235 => 'L', + 3236 => 'L', + 3237 => 'L', + 3238 => 'L', + 3239 => 'L', + 3240 => 'L', + 3242 => 'L', + 3243 => 'L', + 3244 => 'L', + 3245 => 'L', + 3246 => 'L', + 3247 => 'L', + 3248 => 'L', + 3249 => 'L', + 3250 => 'L', + 3251 => 'L', + 3253 => 'L', + 3254 => 'L', + 3255 => 'L', + 3256 => 'L', + 3257 => 'L', + 3260 => 'NSM', + 3261 => 'L', + 3262 => 'L', + 3263 => 'L', + 3264 => 'L', + 3265 => 'L', + 3266 => 'L', + 3267 => 'L', + 3268 => 'L', + 3270 => 'L', + 3271 => 'L', + 3272 => 'L', + 3274 => 'L', + 3275 => 'L', + 3276 => 'NSM', + 3277 => 'NSM', + 3285 => 'L', + 3286 => 'L', + 3294 => 'L', + 3296 => 'L', + 3297 => 'L', + 3298 => 'NSM', + 3299 => 'NSM', + 3302 => 'L', + 3303 => 'L', + 3304 => 'L', + 3305 => 'L', + 3306 => 'L', + 3307 => 'L', + 3308 => 'L', + 3309 => 'L', + 3310 => 'L', + 3311 => 'L', + 3313 => 'ON', + 3314 => 'ON', + 3330 => 'L', + 3331 => 'L', + 3333 => 'L', + 3334 => 'L', + 3335 => 'L', + 3336 => 'L', + 3337 => 'L', + 3338 => 'L', + 3339 => 'L', + 3340 => 'L', + 3342 => 'L', + 3343 => 'L', + 3344 => 'L', + 3346 => 'L', + 3347 => 'L', + 3348 => 'L', + 3349 => 'L', + 3350 => 'L', + 3351 => 'L', + 3352 => 'L', + 3353 => 'L', + 3354 => 'L', + 3355 => 'L', + 3356 => 'L', + 3357 => 'L', + 3358 => 'L', + 3359 => 'L', + 3360 => 'L', + 3361 => 'L', + 3362 => 'L', + 3363 => 'L', + 3364 => 'L', + 3365 => 'L', + 3366 => 'L', + 3367 => 'L', + 3368 => 'L', + 3370 => 'L', + 3371 => 'L', + 3372 => 'L', + 3373 => 'L', + 3374 => 'L', + 3375 => 'L', + 3376 => 'L', + 3377 => 'L', + 3378 => 'L', + 3379 => 'L', + 3380 => 'L', + 3381 => 'L', + 3382 => 'L', + 3383 => 'L', + 3384 => 'L', + 3385 => 'L', + 3390 => 'L', + 3391 => 'L', + 3392 => 'L', + 3393 => 'NSM', + 3394 => 'NSM', + 3395 => 'NSM', + 3398 => 'L', + 3399 => 'L', + 3400 => 'L', + 3402 => 'L', + 3403 => 'L', + 3404 => 'L', + 3405 => 'NSM', + 3415 => 'L', + 3424 => 'L', + 3425 => 'L', + 3430 => 'L', + 3431 => 'L', + 3432 => 'L', + 3433 => 'L', + 3434 => 'L', + 3435 => 'L', + 3436 => 'L', + 3437 => 'L', + 3438 => 'L', + 3439 => 'L', + 3458 => 'L', + 3459 => 'L', + 3461 => 'L', + 3462 => 'L', + 3463 => 'L', + 3464 => 'L', + 3465 => 'L', + 3466 => 'L', + 3467 => 'L', + 3468 => 'L', + 3469 => 'L', + 3470 => 'L', + 3471 => 'L', + 3472 => 'L', + 3473 => 'L', + 3474 => 'L', + 3475 => 'L', + 3476 => 'L', + 3477 => 'L', + 3478 => 'L', + 3482 => 'L', + 3483 => 'L', + 3484 => 'L', + 3485 => 'L', + 3486 => 'L', + 3487 => 'L', + 3488 => 'L', + 3489 => 'L', + 3490 => 'L', + 3491 => 'L', + 3492 => 'L', + 3493 => 'L', + 3494 => 'L', + 3495 => 'L', + 3496 => 'L', + 3497 => 'L', + 3498 => 'L', + 3499 => 'L', + 3500 => 'L', + 3501 => 'L', + 3502 => 'L', + 3503 => 'L', + 3504 => 'L', + 3505 => 'L', + 3507 => 'L', + 3508 => 'L', + 3509 => 'L', + 3510 => 'L', + 3511 => 'L', + 3512 => 'L', + 3513 => 'L', + 3514 => 'L', + 3515 => 'L', + 3517 => 'L', + 3520 => 'L', + 3521 => 'L', + 3522 => 'L', + 3523 => 'L', + 3524 => 'L', + 3525 => 'L', + 3526 => 'L', + 3530 => 'NSM', + 3535 => 'L', + 3536 => 'L', + 3537 => 'L', + 3538 => 'NSM', + 3539 => 'NSM', + 3540 => 'NSM', + 3542 => 'NSM', + 3544 => 'L', + 3545 => 'L', + 3546 => 'L', + 3547 => 'L', + 3548 => 'L', + 3549 => 'L', + 3550 => 'L', + 3551 => 'L', + 3570 => 'L', + 3571 => 'L', + 3572 => 'L', + 3585 => 'L', + 3586 => 'L', + 3587 => 'L', + 3588 => 'L', + 3589 => 'L', + 3590 => 'L', + 3591 => 'L', + 3592 => 'L', + 3593 => 'L', + 3594 => 'L', + 3595 => 'L', + 3596 => 'L', + 3597 => 'L', + 3598 => 'L', + 3599 => 'L', + 3600 => 'L', + 3601 => 'L', + 3602 => 'L', + 3603 => 'L', + 3604 => 'L', + 3605 => 'L', + 3606 => 'L', + 3607 => 'L', + 3608 => 'L', + 3609 => 'L', + 3610 => 'L', + 3611 => 'L', + 3612 => 'L', + 3613 => 'L', + 3614 => 'L', + 3615 => 'L', + 3616 => 'L', + 3617 => 'L', + 3618 => 'L', + 3619 => 'L', + 3620 => 'L', + 3621 => 'L', + 3622 => 'L', + 3623 => 'L', + 3624 => 'L', + 3625 => 'L', + 3626 => 'L', + 3627 => 'L', + 3628 => 'L', + 3629 => 'L', + 3630 => 'L', + 3631 => 'L', + 3632 => 'L', + 3633 => 'NSM', + 3634 => 'L', + 3635 => 'L', + 3636 => 'NSM', + 3637 => 'NSM', + 3638 => 'NSM', + 3639 => 'NSM', + 3640 => 'NSM', + 3641 => 'NSM', + 3642 => 'NSM', + 3647 => 'ET', + 3648 => 'L', + 3649 => 'L', + 3650 => 'L', + 3651 => 'L', + 3652 => 'L', + 3653 => 'L', + 3654 => 'L', + 3655 => 'NSM', + 3656 => 'NSM', + 3657 => 'NSM', + 3658 => 'NSM', + 3659 => 'NSM', + 3660 => 'NSM', + 3661 => 'NSM', + 3662 => 'NSM', + 3663 => 'L', + 3664 => 'L', + 3665 => 'L', + 3666 => 'L', + 3667 => 'L', + 3668 => 'L', + 3669 => 'L', + 3670 => 'L', + 3671 => 'L', + 3672 => 'L', + 3673 => 'L', + 3674 => 'L', + 3675 => 'L', + 3713 => 'L', + 3714 => 'L', + 3716 => 'L', + 3719 => 'L', + 3720 => 'L', + 3722 => 'L', + 3725 => 'L', + 3732 => 'L', + 3733 => 'L', + 3734 => 'L', + 3735 => 'L', + 3737 => 'L', + 3738 => 'L', + 3739 => 'L', + 3740 => 'L', + 3741 => 'L', + 3742 => 'L', + 3743 => 'L', + 3745 => 'L', + 3746 => 'L', + 3747 => 'L', + 3749 => 'L', + 3751 => 'L', + 3754 => 'L', + 3755 => 'L', + 3757 => 'L', + 3758 => 'L', + 3759 => 'L', + 3760 => 'L', + 3761 => 'NSM', + 3762 => 'L', + 3763 => 'L', + 3764 => 'NSM', + 3765 => 'NSM', + 3766 => 'NSM', + 3767 => 'NSM', + 3768 => 'NSM', + 3769 => 'NSM', + 3771 => 'NSM', + 3772 => 'NSM', + 3773 => 'L', + 3776 => 'L', + 3777 => 'L', + 3778 => 'L', + 3779 => 'L', + 3780 => 'L', + 3782 => 'L', + 3784 => 'NSM', + 3785 => 'NSM', + 3786 => 'NSM', + 3787 => 'NSM', + 3788 => 'NSM', + 3789 => 'NSM', + 3792 => 'L', + 3793 => 'L', + 3794 => 'L', + 3795 => 'L', + 3796 => 'L', + 3797 => 'L', + 3798 => 'L', + 3799 => 'L', + 3800 => 'L', + 3801 => 'L', + 3804 => 'L', + 3805 => 'L', + 3840 => 'L', + 3841 => 'L', + 3842 => 'L', + 3843 => 'L', + 3844 => 'L', + 3845 => 'L', + 3846 => 'L', + 3847 => 'L', + 3848 => 'L', + 3849 => 'L', + 3850 => 'L', + 3851 => 'L', + 3852 => 'L', + 3853 => 'L', + 3854 => 'L', + 3855 => 'L', + 3856 => 'L', + 3857 => 'L', + 3858 => 'L', + 3859 => 'L', + 3860 => 'L', + 3861 => 'L', + 3862 => 'L', + 3863 => 'L', + 3864 => 'NSM', + 3865 => 'NSM', + 3866 => 'L', + 3867 => 'L', + 3868 => 'L', + 3869 => 'L', + 3870 => 'L', + 3871 => 'L', + 3872 => 'L', + 3873 => 'L', + 3874 => 'L', + 3875 => 'L', + 3876 => 'L', + 3877 => 'L', + 3878 => 'L', + 3879 => 'L', + 3880 => 'L', + 3881 => 'L', + 3882 => 'L', + 3883 => 'L', + 3884 => 'L', + 3885 => 'L', + 3886 => 'L', + 3887 => 'L', + 3888 => 'L', + 3889 => 'L', + 3890 => 'L', + 3891 => 'L', + 3892 => 'L', + 3893 => 'NSM', + 3894 => 'L', + 3895 => 'NSM', + 3896 => 'L', + 3897 => 'NSM', + 3898 => 'ON', + 3899 => 'ON', + 3900 => 'ON', + 3901 => 'ON', + 3902 => 'L', + 3903 => 'L', + 3904 => 'L', + 3905 => 'L', + 3906 => 'L', + 3907 => 'L', + 3908 => 'L', + 3909 => 'L', + 3910 => 'L', + 3911 => 'L', + 3913 => 'L', + 3914 => 'L', + 3915 => 'L', + 3916 => 'L', + 3917 => 'L', + 3918 => 'L', + 3919 => 'L', + 3920 => 'L', + 3921 => 'L', + 3922 => 'L', + 3923 => 'L', + 3924 => 'L', + 3925 => 'L', + 3926 => 'L', + 3927 => 'L', + 3928 => 'L', + 3929 => 'L', + 3930 => 'L', + 3931 => 'L', + 3932 => 'L', + 3933 => 'L', + 3934 => 'L', + 3935 => 'L', + 3936 => 'L', + 3937 => 'L', + 3938 => 'L', + 3939 => 'L', + 3940 => 'L', + 3941 => 'L', + 3942 => 'L', + 3943 => 'L', + 3944 => 'L', + 3945 => 'L', + 3946 => 'L', + 3953 => 'NSM', + 3954 => 'NSM', + 3955 => 'NSM', + 3956 => 'NSM', + 3957 => 'NSM', + 3958 => 'NSM', + 3959 => 'NSM', + 3960 => 'NSM', + 3961 => 'NSM', + 3962 => 'NSM', + 3963 => 'NSM', + 3964 => 'NSM', + 3965 => 'NSM', + 3966 => 'NSM', + 3967 => 'L', + 3968 => 'NSM', + 3969 => 'NSM', + 3970 => 'NSM', + 3971 => 'NSM', + 3972 => 'NSM', + 3973 => 'L', + 3974 => 'NSM', + 3975 => 'NSM', + 3976 => 'L', + 3977 => 'L', + 3978 => 'L', + 3979 => 'L', + 3984 => 'NSM', + 3985 => 'NSM', + 3986 => 'NSM', + 3987 => 'NSM', + 3988 => 'NSM', + 3989 => 'NSM', + 3990 => 'NSM', + 3991 => 'NSM', + 3993 => 'NSM', + 3994 => 'NSM', + 3995 => 'NSM', + 3996 => 'NSM', + 3997 => 'NSM', + 3998 => 'NSM', + 3999 => 'NSM', + 4000 => 'NSM', + 4001 => 'NSM', + 4002 => 'NSM', + 4003 => 'NSM', + 4004 => 'NSM', + 4005 => 'NSM', + 4006 => 'NSM', + 4007 => 'NSM', + 4008 => 'NSM', + 4009 => 'NSM', + 4010 => 'NSM', + 4011 => 'NSM', + 4012 => 'NSM', + 4013 => 'NSM', + 4014 => 'NSM', + 4015 => 'NSM', + 4016 => 'NSM', + 4017 => 'NSM', + 4018 => 'NSM', + 4019 => 'NSM', + 4020 => 'NSM', + 4021 => 'NSM', + 4022 => 'NSM', + 4023 => 'NSM', + 4024 => 'NSM', + 4025 => 'NSM', + 4026 => 'NSM', + 4027 => 'NSM', + 4028 => 'NSM', + 4030 => 'L', + 4031 => 'L', + 4032 => 'L', + 4033 => 'L', + 4034 => 'L', + 4035 => 'L', + 4036 => 'L', + 4037 => 'L', + 4038 => 'NSM', + 4039 => 'L', + 4040 => 'L', + 4041 => 'L', + 4042 => 'L', + 4043 => 'L', + 4044 => 'L', + 4047 => 'L', + 4048 => 'L', + 4049 => 'L', + 4096 => 'L', + 4097 => 'L', + 4098 => 'L', + 4099 => 'L', + 4100 => 'L', + 4101 => 'L', + 4102 => 'L', + 4103 => 'L', + 4104 => 'L', + 4105 => 'L', + 4106 => 'L', + 4107 => 'L', + 4108 => 'L', + 4109 => 'L', + 4110 => 'L', + 4111 => 'L', + 4112 => 'L', + 4113 => 'L', + 4114 => 'L', + 4115 => 'L', + 4116 => 'L', + 4117 => 'L', + 4118 => 'L', + 4119 => 'L', + 4120 => 'L', + 4121 => 'L', + 4122 => 'L', + 4123 => 'L', + 4124 => 'L', + 4125 => 'L', + 4126 => 'L', + 4127 => 'L', + 4128 => 'L', + 4129 => 'L', + 4131 => 'L', + 4132 => 'L', + 4133 => 'L', + 4134 => 'L', + 4135 => 'L', + 4137 => 'L', + 4138 => 'L', + 4140 => 'L', + 4141 => 'NSM', + 4142 => 'NSM', + 4143 => 'NSM', + 4144 => 'NSM', + 4145 => 'L', + 4146 => 'NSM', + 4150 => 'NSM', + 4151 => 'NSM', + 4152 => 'L', + 4153 => 'NSM', + 4160 => 'L', + 4161 => 'L', + 4162 => 'L', + 4163 => 'L', + 4164 => 'L', + 4165 => 'L', + 4166 => 'L', + 4167 => 'L', + 4168 => 'L', + 4169 => 'L', + 4170 => 'L', + 4171 => 'L', + 4172 => 'L', + 4173 => 'L', + 4174 => 'L', + 4175 => 'L', + 4176 => 'L', + 4177 => 'L', + 4178 => 'L', + 4179 => 'L', + 4180 => 'L', + 4181 => 'L', + 4182 => 'L', + 4183 => 'L', + 4184 => 'NSM', + 4185 => 'NSM', + 4256 => 'L', + 4257 => 'L', + 4258 => 'L', + 4259 => 'L', + 4260 => 'L', + 4261 => 'L', + 4262 => 'L', + 4263 => 'L', + 4264 => 'L', + 4265 => 'L', + 4266 => 'L', + 4267 => 'L', + 4268 => 'L', + 4269 => 'L', + 4270 => 'L', + 4271 => 'L', + 4272 => 'L', + 4273 => 'L', + 4274 => 'L', + 4275 => 'L', + 4276 => 'L', + 4277 => 'L', + 4278 => 'L', + 4279 => 'L', + 4280 => 'L', + 4281 => 'L', + 4282 => 'L', + 4283 => 'L', + 4284 => 'L', + 4285 => 'L', + 4286 => 'L', + 4287 => 'L', + 4288 => 'L', + 4289 => 'L', + 4290 => 'L', + 4291 => 'L', + 4292 => 'L', + 4293 => 'L', + 4304 => 'L', + 4305 => 'L', + 4306 => 'L', + 4307 => 'L', + 4308 => 'L', + 4309 => 'L', + 4310 => 'L', + 4311 => 'L', + 4312 => 'L', + 4313 => 'L', + 4314 => 'L', + 4315 => 'L', + 4316 => 'L', + 4317 => 'L', + 4318 => 'L', + 4319 => 'L', + 4320 => 'L', + 4321 => 'L', + 4322 => 'L', + 4323 => 'L', + 4324 => 'L', + 4325 => 'L', + 4326 => 'L', + 4327 => 'L', + 4328 => 'L', + 4329 => 'L', + 4330 => 'L', + 4331 => 'L', + 4332 => 'L', + 4333 => 'L', + 4334 => 'L', + 4335 => 'L', + 4336 => 'L', + 4337 => 'L', + 4338 => 'L', + 4339 => 'L', + 4340 => 'L', + 4341 => 'L', + 4342 => 'L', + 4343 => 'L', + 4344 => 'L', + 4345 => 'L', + 4346 => 'L', + 4347 => 'L', + 4348 => 'L', + 4352 => 'L', + 4353 => 'L', + 4354 => 'L', + 4355 => 'L', + 4356 => 'L', + 4357 => 'L', + 4358 => 'L', + 4359 => 'L', + 4360 => 'L', + 4361 => 'L', + 4362 => 'L', + 4363 => 'L', + 4364 => 'L', + 4365 => 'L', + 4366 => 'L', + 4367 => 'L', + 4368 => 'L', + 4369 => 'L', + 4370 => 'L', + 4371 => 'L', + 4372 => 'L', + 4373 => 'L', + 4374 => 'L', + 4375 => 'L', + 4376 => 'L', + 4377 => 'L', + 4378 => 'L', + 4379 => 'L', + 4380 => 'L', + 4381 => 'L', + 4382 => 'L', + 4383 => 'L', + 4384 => 'L', + 4385 => 'L', + 4386 => 'L', + 4387 => 'L', + 4388 => 'L', + 4389 => 'L', + 4390 => 'L', + 4391 => 'L', + 4392 => 'L', + 4393 => 'L', + 4394 => 'L', + 4395 => 'L', + 4396 => 'L', + 4397 => 'L', + 4398 => 'L', + 4399 => 'L', + 4400 => 'L', + 4401 => 'L', + 4402 => 'L', + 4403 => 'L', + 4404 => 'L', + 4405 => 'L', + 4406 => 'L', + 4407 => 'L', + 4408 => 'L', + 4409 => 'L', + 4410 => 'L', + 4411 => 'L', + 4412 => 'L', + 4413 => 'L', + 4414 => 'L', + 4415 => 'L', + 4416 => 'L', + 4417 => 'L', + 4418 => 'L', + 4419 => 'L', + 4420 => 'L', + 4421 => 'L', + 4422 => 'L', + 4423 => 'L', + 4424 => 'L', + 4425 => 'L', + 4426 => 'L', + 4427 => 'L', + 4428 => 'L', + 4429 => 'L', + 4430 => 'L', + 4431 => 'L', + 4432 => 'L', + 4433 => 'L', + 4434 => 'L', + 4435 => 'L', + 4436 => 'L', + 4437 => 'L', + 4438 => 'L', + 4439 => 'L', + 4440 => 'L', + 4441 => 'L', + 4447 => 'L', + 4448 => 'L', + 4449 => 'L', + 4450 => 'L', + 4451 => 'L', + 4452 => 'L', + 4453 => 'L', + 4454 => 'L', + 4455 => 'L', + 4456 => 'L', + 4457 => 'L', + 4458 => 'L', + 4459 => 'L', + 4460 => 'L', + 4461 => 'L', + 4462 => 'L', + 4463 => 'L', + 4464 => 'L', + 4465 => 'L', + 4466 => 'L', + 4467 => 'L', + 4468 => 'L', + 4469 => 'L', + 4470 => 'L', + 4471 => 'L', + 4472 => 'L', + 4473 => 'L', + 4474 => 'L', + 4475 => 'L', + 4476 => 'L', + 4477 => 'L', + 4478 => 'L', + 4479 => 'L', + 4480 => 'L', + 4481 => 'L', + 4482 => 'L', + 4483 => 'L', + 4484 => 'L', + 4485 => 'L', + 4486 => 'L', + 4487 => 'L', + 4488 => 'L', + 4489 => 'L', + 4490 => 'L', + 4491 => 'L', + 4492 => 'L', + 4493 => 'L', + 4494 => 'L', + 4495 => 'L', + 4496 => 'L', + 4497 => 'L', + 4498 => 'L', + 4499 => 'L', + 4500 => 'L', + 4501 => 'L', + 4502 => 'L', + 4503 => 'L', + 4504 => 'L', + 4505 => 'L', + 4506 => 'L', + 4507 => 'L', + 4508 => 'L', + 4509 => 'L', + 4510 => 'L', + 4511 => 'L', + 4512 => 'L', + 4513 => 'L', + 4514 => 'L', + 4520 => 'L', + 4521 => 'L', + 4522 => 'L', + 4523 => 'L', + 4524 => 'L', + 4525 => 'L', + 4526 => 'L', + 4527 => 'L', + 4528 => 'L', + 4529 => 'L', + 4530 => 'L', + 4531 => 'L', + 4532 => 'L', + 4533 => 'L', + 4534 => 'L', + 4535 => 'L', + 4536 => 'L', + 4537 => 'L', + 4538 => 'L', + 4539 => 'L', + 4540 => 'L', + 4541 => 'L', + 4542 => 'L', + 4543 => 'L', + 4544 => 'L', + 4545 => 'L', + 4546 => 'L', + 4547 => 'L', + 4548 => 'L', + 4549 => 'L', + 4550 => 'L', + 4551 => 'L', + 4552 => 'L', + 4553 => 'L', + 4554 => 'L', + 4555 => 'L', + 4556 => 'L', + 4557 => 'L', + 4558 => 'L', + 4559 => 'L', + 4560 => 'L', + 4561 => 'L', + 4562 => 'L', + 4563 => 'L', + 4564 => 'L', + 4565 => 'L', + 4566 => 'L', + 4567 => 'L', + 4568 => 'L', + 4569 => 'L', + 4570 => 'L', + 4571 => 'L', + 4572 => 'L', + 4573 => 'L', + 4574 => 'L', + 4575 => 'L', + 4576 => 'L', + 4577 => 'L', + 4578 => 'L', + 4579 => 'L', + 4580 => 'L', + 4581 => 'L', + 4582 => 'L', + 4583 => 'L', + 4584 => 'L', + 4585 => 'L', + 4586 => 'L', + 4587 => 'L', + 4588 => 'L', + 4589 => 'L', + 4590 => 'L', + 4591 => 'L', + 4592 => 'L', + 4593 => 'L', + 4594 => 'L', + 4595 => 'L', + 4596 => 'L', + 4597 => 'L', + 4598 => 'L', + 4599 => 'L', + 4600 => 'L', + 4601 => 'L', + 4608 => 'L', + 4609 => 'L', + 4610 => 'L', + 4611 => 'L', + 4612 => 'L', + 4613 => 'L', + 4614 => 'L', + 4615 => 'L', + 4616 => 'L', + 4617 => 'L', + 4618 => 'L', + 4619 => 'L', + 4620 => 'L', + 4621 => 'L', + 4622 => 'L', + 4623 => 'L', + 4624 => 'L', + 4625 => 'L', + 4626 => 'L', + 4627 => 'L', + 4628 => 'L', + 4629 => 'L', + 4630 => 'L', + 4631 => 'L', + 4632 => 'L', + 4633 => 'L', + 4634 => 'L', + 4635 => 'L', + 4636 => 'L', + 4637 => 'L', + 4638 => 'L', + 4639 => 'L', + 4640 => 'L', + 4641 => 'L', + 4642 => 'L', + 4643 => 'L', + 4644 => 'L', + 4645 => 'L', + 4646 => 'L', + 4647 => 'L', + 4648 => 'L', + 4649 => 'L', + 4650 => 'L', + 4651 => 'L', + 4652 => 'L', + 4653 => 'L', + 4654 => 'L', + 4655 => 'L', + 4656 => 'L', + 4657 => 'L', + 4658 => 'L', + 4659 => 'L', + 4660 => 'L', + 4661 => 'L', + 4662 => 'L', + 4663 => 'L', + 4664 => 'L', + 4665 => 'L', + 4666 => 'L', + 4667 => 'L', + 4668 => 'L', + 4669 => 'L', + 4670 => 'L', + 4671 => 'L', + 4672 => 'L', + 4673 => 'L', + 4674 => 'L', + 4675 => 'L', + 4676 => 'L', + 4677 => 'L', + 4678 => 'L', + 4679 => 'L', + 4680 => 'L', + 4682 => 'L', + 4683 => 'L', + 4684 => 'L', + 4685 => 'L', + 4688 => 'L', + 4689 => 'L', + 4690 => 'L', + 4691 => 'L', + 4692 => 'L', + 4693 => 'L', + 4694 => 'L', + 4696 => 'L', + 4698 => 'L', + 4699 => 'L', + 4700 => 'L', + 4701 => 'L', + 4704 => 'L', + 4705 => 'L', + 4706 => 'L', + 4707 => 'L', + 4708 => 'L', + 4709 => 'L', + 4710 => 'L', + 4711 => 'L', + 4712 => 'L', + 4713 => 'L', + 4714 => 'L', + 4715 => 'L', + 4716 => 'L', + 4717 => 'L', + 4718 => 'L', + 4719 => 'L', + 4720 => 'L', + 4721 => 'L', + 4722 => 'L', + 4723 => 'L', + 4724 => 'L', + 4725 => 'L', + 4726 => 'L', + 4727 => 'L', + 4728 => 'L', + 4729 => 'L', + 4730 => 'L', + 4731 => 'L', + 4732 => 'L', + 4733 => 'L', + 4734 => 'L', + 4735 => 'L', + 4736 => 'L', + 4737 => 'L', + 4738 => 'L', + 4739 => 'L', + 4740 => 'L', + 4741 => 'L', + 4742 => 'L', + 4743 => 'L', + 4744 => 'L', + 4746 => 'L', + 4747 => 'L', + 4748 => 'L', + 4749 => 'L', + 4752 => 'L', + 4753 => 'L', + 4754 => 'L', + 4755 => 'L', + 4756 => 'L', + 4757 => 'L', + 4758 => 'L', + 4759 => 'L', + 4760 => 'L', + 4761 => 'L', + 4762 => 'L', + 4763 => 'L', + 4764 => 'L', + 4765 => 'L', + 4766 => 'L', + 4767 => 'L', + 4768 => 'L', + 4769 => 'L', + 4770 => 'L', + 4771 => 'L', + 4772 => 'L', + 4773 => 'L', + 4774 => 'L', + 4775 => 'L', + 4776 => 'L', + 4777 => 'L', + 4778 => 'L', + 4779 => 'L', + 4780 => 'L', + 4781 => 'L', + 4782 => 'L', + 4783 => 'L', + 4784 => 'L', + 4786 => 'L', + 4787 => 'L', + 4788 => 'L', + 4789 => 'L', + 4792 => 'L', + 4793 => 'L', + 4794 => 'L', + 4795 => 'L', + 4796 => 'L', + 4797 => 'L', + 4798 => 'L', + 4800 => 'L', + 4802 => 'L', + 4803 => 'L', + 4804 => 'L', + 4805 => 'L', + 4808 => 'L', + 4809 => 'L', + 4810 => 'L', + 4811 => 'L', + 4812 => 'L', + 4813 => 'L', + 4814 => 'L', + 4815 => 'L', + 4816 => 'L', + 4817 => 'L', + 4818 => 'L', + 4819 => 'L', + 4820 => 'L', + 4821 => 'L', + 4822 => 'L', + 4824 => 'L', + 4825 => 'L', + 4826 => 'L', + 4827 => 'L', + 4828 => 'L', + 4829 => 'L', + 4830 => 'L', + 4831 => 'L', + 4832 => 'L', + 4833 => 'L', + 4834 => 'L', + 4835 => 'L', + 4836 => 'L', + 4837 => 'L', + 4838 => 'L', + 4839 => 'L', + 4840 => 'L', + 4841 => 'L', + 4842 => 'L', + 4843 => 'L', + 4844 => 'L', + 4845 => 'L', + 4846 => 'L', + 4847 => 'L', + 4848 => 'L', + 4849 => 'L', + 4850 => 'L', + 4851 => 'L', + 4852 => 'L', + 4853 => 'L', + 4854 => 'L', + 4855 => 'L', + 4856 => 'L', + 4857 => 'L', + 4858 => 'L', + 4859 => 'L', + 4860 => 'L', + 4861 => 'L', + 4862 => 'L', + 4863 => 'L', + 4864 => 'L', + 4865 => 'L', + 4866 => 'L', + 4867 => 'L', + 4868 => 'L', + 4869 => 'L', + 4870 => 'L', + 4871 => 'L', + 4872 => 'L', + 4873 => 'L', + 4874 => 'L', + 4875 => 'L', + 4876 => 'L', + 4877 => 'L', + 4878 => 'L', + 4879 => 'L', + 4880 => 'L', + 4882 => 'L', + 4883 => 'L', + 4884 => 'L', + 4885 => 'L', + 4888 => 'L', + 4889 => 'L', + 4890 => 'L', + 4891 => 'L', + 4892 => 'L', + 4893 => 'L', + 4894 => 'L', + 4895 => 'L', + 4896 => 'L', + 4897 => 'L', + 4898 => 'L', + 4899 => 'L', + 4900 => 'L', + 4901 => 'L', + 4902 => 'L', + 4903 => 'L', + 4904 => 'L', + 4905 => 'L', + 4906 => 'L', + 4907 => 'L', + 4908 => 'L', + 4909 => 'L', + 4910 => 'L', + 4911 => 'L', + 4912 => 'L', + 4913 => 'L', + 4914 => 'L', + 4915 => 'L', + 4916 => 'L', + 4917 => 'L', + 4918 => 'L', + 4919 => 'L', + 4920 => 'L', + 4921 => 'L', + 4922 => 'L', + 4923 => 'L', + 4924 => 'L', + 4925 => 'L', + 4926 => 'L', + 4927 => 'L', + 4928 => 'L', + 4929 => 'L', + 4930 => 'L', + 4931 => 'L', + 4932 => 'L', + 4933 => 'L', + 4934 => 'L', + 4935 => 'L', + 4936 => 'L', + 4937 => 'L', + 4938 => 'L', + 4939 => 'L', + 4940 => 'L', + 4941 => 'L', + 4942 => 'L', + 4943 => 'L', + 4944 => 'L', + 4945 => 'L', + 4946 => 'L', + 4947 => 'L', + 4948 => 'L', + 4949 => 'L', + 4950 => 'L', + 4951 => 'L', + 4952 => 'L', + 4953 => 'L', + 4954 => 'L', + 4959 => 'NSM', + 4960 => 'L', + 4961 => 'L', + 4962 => 'L', + 4963 => 'L', + 4964 => 'L', + 4965 => 'L', + 4966 => 'L', + 4967 => 'L', + 4968 => 'L', + 4969 => 'L', + 4970 => 'L', + 4971 => 'L', + 4972 => 'L', + 4973 => 'L', + 4974 => 'L', + 4975 => 'L', + 4976 => 'L', + 4977 => 'L', + 4978 => 'L', + 4979 => 'L', + 4980 => 'L', + 4981 => 'L', + 4982 => 'L', + 4983 => 'L', + 4984 => 'L', + 4985 => 'L', + 4986 => 'L', + 4987 => 'L', + 4988 => 'L', + 4992 => 'L', + 4993 => 'L', + 4994 => 'L', + 4995 => 'L', + 4996 => 'L', + 4997 => 'L', + 4998 => 'L', + 4999 => 'L', + 5000 => 'L', + 5001 => 'L', + 5002 => 'L', + 5003 => 'L', + 5004 => 'L', + 5005 => 'L', + 5006 => 'L', + 5007 => 'L', + 5008 => 'ON', + 5009 => 'ON', + 5010 => 'ON', + 5011 => 'ON', + 5012 => 'ON', + 5013 => 'ON', + 5014 => 'ON', + 5015 => 'ON', + 5016 => 'ON', + 5017 => 'ON', + 5024 => 'L', + 5025 => 'L', + 5026 => 'L', + 5027 => 'L', + 5028 => 'L', + 5029 => 'L', + 5030 => 'L', + 5031 => 'L', + 5032 => 'L', + 5033 => 'L', + 5034 => 'L', + 5035 => 'L', + 5036 => 'L', + 5037 => 'L', + 5038 => 'L', + 5039 => 'L', + 5040 => 'L', + 5041 => 'L', + 5042 => 'L', + 5043 => 'L', + 5044 => 'L', + 5045 => 'L', + 5046 => 'L', + 5047 => 'L', + 5048 => 'L', + 5049 => 'L', + 5050 => 'L', + 5051 => 'L', + 5052 => 'L', + 5053 => 'L', + 5054 => 'L', + 5055 => 'L', + 5056 => 'L', + 5057 => 'L', + 5058 => 'L', + 5059 => 'L', + 5060 => 'L', + 5061 => 'L', + 5062 => 'L', + 5063 => 'L', + 5064 => 'L', + 5065 => 'L', + 5066 => 'L', + 5067 => 'L', + 5068 => 'L', + 5069 => 'L', + 5070 => 'L', + 5071 => 'L', + 5072 => 'L', + 5073 => 'L', + 5074 => 'L', + 5075 => 'L', + 5076 => 'L', + 5077 => 'L', + 5078 => 'L', + 5079 => 'L', + 5080 => 'L', + 5081 => 'L', + 5082 => 'L', + 5083 => 'L', + 5084 => 'L', + 5085 => 'L', + 5086 => 'L', + 5087 => 'L', + 5088 => 'L', + 5089 => 'L', + 5090 => 'L', + 5091 => 'L', + 5092 => 'L', + 5093 => 'L', + 5094 => 'L', + 5095 => 'L', + 5096 => 'L', + 5097 => 'L', + 5098 => 'L', + 5099 => 'L', + 5100 => 'L', + 5101 => 'L', + 5102 => 'L', + 5103 => 'L', + 5104 => 'L', + 5105 => 'L', + 5106 => 'L', + 5107 => 'L', + 5108 => 'L', + 5121 => 'L', + 5122 => 'L', + 5123 => 'L', + 5124 => 'L', + 5125 => 'L', + 5126 => 'L', + 5127 => 'L', + 5128 => 'L', + 5129 => 'L', + 5130 => 'L', + 5131 => 'L', + 5132 => 'L', + 5133 => 'L', + 5134 => 'L', + 5135 => 'L', + 5136 => 'L', + 5137 => 'L', + 5138 => 'L', + 5139 => 'L', + 5140 => 'L', + 5141 => 'L', + 5142 => 'L', + 5143 => 'L', + 5144 => 'L', + 5145 => 'L', + 5146 => 'L', + 5147 => 'L', + 5148 => 'L', + 5149 => 'L', + 5150 => 'L', + 5151 => 'L', + 5152 => 'L', + 5153 => 'L', + 5154 => 'L', + 5155 => 'L', + 5156 => 'L', + 5157 => 'L', + 5158 => 'L', + 5159 => 'L', + 5160 => 'L', + 5161 => 'L', + 5162 => 'L', + 5163 => 'L', + 5164 => 'L', + 5165 => 'L', + 5166 => 'L', + 5167 => 'L', + 5168 => 'L', + 5169 => 'L', + 5170 => 'L', + 5171 => 'L', + 5172 => 'L', + 5173 => 'L', + 5174 => 'L', + 5175 => 'L', + 5176 => 'L', + 5177 => 'L', + 5178 => 'L', + 5179 => 'L', + 5180 => 'L', + 5181 => 'L', + 5182 => 'L', + 5183 => 'L', + 5184 => 'L', + 5185 => 'L', + 5186 => 'L', + 5187 => 'L', + 5188 => 'L', + 5189 => 'L', + 5190 => 'L', + 5191 => 'L', + 5192 => 'L', + 5193 => 'L', + 5194 => 'L', + 5195 => 'L', + 5196 => 'L', + 5197 => 'L', + 5198 => 'L', + 5199 => 'L', + 5200 => 'L', + 5201 => 'L', + 5202 => 'L', + 5203 => 'L', + 5204 => 'L', + 5205 => 'L', + 5206 => 'L', + 5207 => 'L', + 5208 => 'L', + 5209 => 'L', + 5210 => 'L', + 5211 => 'L', + 5212 => 'L', + 5213 => 'L', + 5214 => 'L', + 5215 => 'L', + 5216 => 'L', + 5217 => 'L', + 5218 => 'L', + 5219 => 'L', + 5220 => 'L', + 5221 => 'L', + 5222 => 'L', + 5223 => 'L', + 5224 => 'L', + 5225 => 'L', + 5226 => 'L', + 5227 => 'L', + 5228 => 'L', + 5229 => 'L', + 5230 => 'L', + 5231 => 'L', + 5232 => 'L', + 5233 => 'L', + 5234 => 'L', + 5235 => 'L', + 5236 => 'L', + 5237 => 'L', + 5238 => 'L', + 5239 => 'L', + 5240 => 'L', + 5241 => 'L', + 5242 => 'L', + 5243 => 'L', + 5244 => 'L', + 5245 => 'L', + 5246 => 'L', + 5247 => 'L', + 5248 => 'L', + 5249 => 'L', + 5250 => 'L', + 5251 => 'L', + 5252 => 'L', + 5253 => 'L', + 5254 => 'L', + 5255 => 'L', + 5256 => 'L', + 5257 => 'L', + 5258 => 'L', + 5259 => 'L', + 5260 => 'L', + 5261 => 'L', + 5262 => 'L', + 5263 => 'L', + 5264 => 'L', + 5265 => 'L', + 5266 => 'L', + 5267 => 'L', + 5268 => 'L', + 5269 => 'L', + 5270 => 'L', + 5271 => 'L', + 5272 => 'L', + 5273 => 'L', + 5274 => 'L', + 5275 => 'L', + 5276 => 'L', + 5277 => 'L', + 5278 => 'L', + 5279 => 'L', + 5280 => 'L', + 5281 => 'L', + 5282 => 'L', + 5283 => 'L', + 5284 => 'L', + 5285 => 'L', + 5286 => 'L', + 5287 => 'L', + 5288 => 'L', + 5289 => 'L', + 5290 => 'L', + 5291 => 'L', + 5292 => 'L', + 5293 => 'L', + 5294 => 'L', + 5295 => 'L', + 5296 => 'L', + 5297 => 'L', + 5298 => 'L', + 5299 => 'L', + 5300 => 'L', + 5301 => 'L', + 5302 => 'L', + 5303 => 'L', + 5304 => 'L', + 5305 => 'L', + 5306 => 'L', + 5307 => 'L', + 5308 => 'L', + 5309 => 'L', + 5310 => 'L', + 5311 => 'L', + 5312 => 'L', + 5313 => 'L', + 5314 => 'L', + 5315 => 'L', + 5316 => 'L', + 5317 => 'L', + 5318 => 'L', + 5319 => 'L', + 5320 => 'L', + 5321 => 'L', + 5322 => 'L', + 5323 => 'L', + 5324 => 'L', + 5325 => 'L', + 5326 => 'L', + 5327 => 'L', + 5328 => 'L', + 5329 => 'L', + 5330 => 'L', + 5331 => 'L', + 5332 => 'L', + 5333 => 'L', + 5334 => 'L', + 5335 => 'L', + 5336 => 'L', + 5337 => 'L', + 5338 => 'L', + 5339 => 'L', + 5340 => 'L', + 5341 => 'L', + 5342 => 'L', + 5343 => 'L', + 5344 => 'L', + 5345 => 'L', + 5346 => 'L', + 5347 => 'L', + 5348 => 'L', + 5349 => 'L', + 5350 => 'L', + 5351 => 'L', + 5352 => 'L', + 5353 => 'L', + 5354 => 'L', + 5355 => 'L', + 5356 => 'L', + 5357 => 'L', + 5358 => 'L', + 5359 => 'L', + 5360 => 'L', + 5361 => 'L', + 5362 => 'L', + 5363 => 'L', + 5364 => 'L', + 5365 => 'L', + 5366 => 'L', + 5367 => 'L', + 5368 => 'L', + 5369 => 'L', + 5370 => 'L', + 5371 => 'L', + 5372 => 'L', + 5373 => 'L', + 5374 => 'L', + 5375 => 'L', + 5376 => 'L', + 5377 => 'L', + 5378 => 'L', + 5379 => 'L', + 5380 => 'L', + 5381 => 'L', + 5382 => 'L', + 5383 => 'L', + 5384 => 'L', + 5385 => 'L', + 5386 => 'L', + 5387 => 'L', + 5388 => 'L', + 5389 => 'L', + 5390 => 'L', + 5391 => 'L', + 5392 => 'L', + 5393 => 'L', + 5394 => 'L', + 5395 => 'L', + 5396 => 'L', + 5397 => 'L', + 5398 => 'L', + 5399 => 'L', + 5400 => 'L', + 5401 => 'L', + 5402 => 'L', + 5403 => 'L', + 5404 => 'L', + 5405 => 'L', + 5406 => 'L', + 5407 => 'L', + 5408 => 'L', + 5409 => 'L', + 5410 => 'L', + 5411 => 'L', + 5412 => 'L', + 5413 => 'L', + 5414 => 'L', + 5415 => 'L', + 5416 => 'L', + 5417 => 'L', + 5418 => 'L', + 5419 => 'L', + 5420 => 'L', + 5421 => 'L', + 5422 => 'L', + 5423 => 'L', + 5424 => 'L', + 5425 => 'L', + 5426 => 'L', + 5427 => 'L', + 5428 => 'L', + 5429 => 'L', + 5430 => 'L', + 5431 => 'L', + 5432 => 'L', + 5433 => 'L', + 5434 => 'L', + 5435 => 'L', + 5436 => 'L', + 5437 => 'L', + 5438 => 'L', + 5439 => 'L', + 5440 => 'L', + 5441 => 'L', + 5442 => 'L', + 5443 => 'L', + 5444 => 'L', + 5445 => 'L', + 5446 => 'L', + 5447 => 'L', + 5448 => 'L', + 5449 => 'L', + 5450 => 'L', + 5451 => 'L', + 5452 => 'L', + 5453 => 'L', + 5454 => 'L', + 5455 => 'L', + 5456 => 'L', + 5457 => 'L', + 5458 => 'L', + 5459 => 'L', + 5460 => 'L', + 5461 => 'L', + 5462 => 'L', + 5463 => 'L', + 5464 => 'L', + 5465 => 'L', + 5466 => 'L', + 5467 => 'L', + 5468 => 'L', + 5469 => 'L', + 5470 => 'L', + 5471 => 'L', + 5472 => 'L', + 5473 => 'L', + 5474 => 'L', + 5475 => 'L', + 5476 => 'L', + 5477 => 'L', + 5478 => 'L', + 5479 => 'L', + 5480 => 'L', + 5481 => 'L', + 5482 => 'L', + 5483 => 'L', + 5484 => 'L', + 5485 => 'L', + 5486 => 'L', + 5487 => 'L', + 5488 => 'L', + 5489 => 'L', + 5490 => 'L', + 5491 => 'L', + 5492 => 'L', + 5493 => 'L', + 5494 => 'L', + 5495 => 'L', + 5496 => 'L', + 5497 => 'L', + 5498 => 'L', + 5499 => 'L', + 5500 => 'L', + 5501 => 'L', + 5502 => 'L', + 5503 => 'L', + 5504 => 'L', + 5505 => 'L', + 5506 => 'L', + 5507 => 'L', + 5508 => 'L', + 5509 => 'L', + 5510 => 'L', + 5511 => 'L', + 5512 => 'L', + 5513 => 'L', + 5514 => 'L', + 5515 => 'L', + 5516 => 'L', + 5517 => 'L', + 5518 => 'L', + 5519 => 'L', + 5520 => 'L', + 5521 => 'L', + 5522 => 'L', + 5523 => 'L', + 5524 => 'L', + 5525 => 'L', + 5526 => 'L', + 5527 => 'L', + 5528 => 'L', + 5529 => 'L', + 5530 => 'L', + 5531 => 'L', + 5532 => 'L', + 5533 => 'L', + 5534 => 'L', + 5535 => 'L', + 5536 => 'L', + 5537 => 'L', + 5538 => 'L', + 5539 => 'L', + 5540 => 'L', + 5541 => 'L', + 5542 => 'L', + 5543 => 'L', + 5544 => 'L', + 5545 => 'L', + 5546 => 'L', + 5547 => 'L', + 5548 => 'L', + 5549 => 'L', + 5550 => 'L', + 5551 => 'L', + 5552 => 'L', + 5553 => 'L', + 5554 => 'L', + 5555 => 'L', + 5556 => 'L', + 5557 => 'L', + 5558 => 'L', + 5559 => 'L', + 5560 => 'L', + 5561 => 'L', + 5562 => 'L', + 5563 => 'L', + 5564 => 'L', + 5565 => 'L', + 5566 => 'L', + 5567 => 'L', + 5568 => 'L', + 5569 => 'L', + 5570 => 'L', + 5571 => 'L', + 5572 => 'L', + 5573 => 'L', + 5574 => 'L', + 5575 => 'L', + 5576 => 'L', + 5577 => 'L', + 5578 => 'L', + 5579 => 'L', + 5580 => 'L', + 5581 => 'L', + 5582 => 'L', + 5583 => 'L', + 5584 => 'L', + 5585 => 'L', + 5586 => 'L', + 5587 => 'L', + 5588 => 'L', + 5589 => 'L', + 5590 => 'L', + 5591 => 'L', + 5592 => 'L', + 5593 => 'L', + 5594 => 'L', + 5595 => 'L', + 5596 => 'L', + 5597 => 'L', + 5598 => 'L', + 5599 => 'L', + 5600 => 'L', + 5601 => 'L', + 5602 => 'L', + 5603 => 'L', + 5604 => 'L', + 5605 => 'L', + 5606 => 'L', + 5607 => 'L', + 5608 => 'L', + 5609 => 'L', + 5610 => 'L', + 5611 => 'L', + 5612 => 'L', + 5613 => 'L', + 5614 => 'L', + 5615 => 'L', + 5616 => 'L', + 5617 => 'L', + 5618 => 'L', + 5619 => 'L', + 5620 => 'L', + 5621 => 'L', + 5622 => 'L', + 5623 => 'L', + 5624 => 'L', + 5625 => 'L', + 5626 => 'L', + 5627 => 'L', + 5628 => 'L', + 5629 => 'L', + 5630 => 'L', + 5631 => 'L', + 5632 => 'L', + 5633 => 'L', + 5634 => 'L', + 5635 => 'L', + 5636 => 'L', + 5637 => 'L', + 5638 => 'L', + 5639 => 'L', + 5640 => 'L', + 5641 => 'L', + 5642 => 'L', + 5643 => 'L', + 5644 => 'L', + 5645 => 'L', + 5646 => 'L', + 5647 => 'L', + 5648 => 'L', + 5649 => 'L', + 5650 => 'L', + 5651 => 'L', + 5652 => 'L', + 5653 => 'L', + 5654 => 'L', + 5655 => 'L', + 5656 => 'L', + 5657 => 'L', + 5658 => 'L', + 5659 => 'L', + 5660 => 'L', + 5661 => 'L', + 5662 => 'L', + 5663 => 'L', + 5664 => 'L', + 5665 => 'L', + 5666 => 'L', + 5667 => 'L', + 5668 => 'L', + 5669 => 'L', + 5670 => 'L', + 5671 => 'L', + 5672 => 'L', + 5673 => 'L', + 5674 => 'L', + 5675 => 'L', + 5676 => 'L', + 5677 => 'L', + 5678 => 'L', + 5679 => 'L', + 5680 => 'L', + 5681 => 'L', + 5682 => 'L', + 5683 => 'L', + 5684 => 'L', + 5685 => 'L', + 5686 => 'L', + 5687 => 'L', + 5688 => 'L', + 5689 => 'L', + 5690 => 'L', + 5691 => 'L', + 5692 => 'L', + 5693 => 'L', + 5694 => 'L', + 5695 => 'L', + 5696 => 'L', + 5697 => 'L', + 5698 => 'L', + 5699 => 'L', + 5700 => 'L', + 5701 => 'L', + 5702 => 'L', + 5703 => 'L', + 5704 => 'L', + 5705 => 'L', + 5706 => 'L', + 5707 => 'L', + 5708 => 'L', + 5709 => 'L', + 5710 => 'L', + 5711 => 'L', + 5712 => 'L', + 5713 => 'L', + 5714 => 'L', + 5715 => 'L', + 5716 => 'L', + 5717 => 'L', + 5718 => 'L', + 5719 => 'L', + 5720 => 'L', + 5721 => 'L', + 5722 => 'L', + 5723 => 'L', + 5724 => 'L', + 5725 => 'L', + 5726 => 'L', + 5727 => 'L', + 5728 => 'L', + 5729 => 'L', + 5730 => 'L', + 5731 => 'L', + 5732 => 'L', + 5733 => 'L', + 5734 => 'L', + 5735 => 'L', + 5736 => 'L', + 5737 => 'L', + 5738 => 'L', + 5739 => 'L', + 5740 => 'L', + 5741 => 'L', + 5742 => 'L', + 5743 => 'L', + 5744 => 'L', + 5745 => 'L', + 5746 => 'L', + 5747 => 'L', + 5748 => 'L', + 5749 => 'L', + 5750 => 'L', + 5760 => 'WS', + 5761 => 'L', + 5762 => 'L', + 5763 => 'L', + 5764 => 'L', + 5765 => 'L', + 5766 => 'L', + 5767 => 'L', + 5768 => 'L', + 5769 => 'L', + 5770 => 'L', + 5771 => 'L', + 5772 => 'L', + 5773 => 'L', + 5774 => 'L', + 5775 => 'L', + 5776 => 'L', + 5777 => 'L', + 5778 => 'L', + 5779 => 'L', + 5780 => 'L', + 5781 => 'L', + 5782 => 'L', + 5783 => 'L', + 5784 => 'L', + 5785 => 'L', + 5786 => 'L', + 5787 => 'ON', + 5788 => 'ON', + 5792 => 'L', + 5793 => 'L', + 5794 => 'L', + 5795 => 'L', + 5796 => 'L', + 5797 => 'L', + 5798 => 'L', + 5799 => 'L', + 5800 => 'L', + 5801 => 'L', + 5802 => 'L', + 5803 => 'L', + 5804 => 'L', + 5805 => 'L', + 5806 => 'L', + 5807 => 'L', + 5808 => 'L', + 5809 => 'L', + 5810 => 'L', + 5811 => 'L', + 5812 => 'L', + 5813 => 'L', + 5814 => 'L', + 5815 => 'L', + 5816 => 'L', + 5817 => 'L', + 5818 => 'L', + 5819 => 'L', + 5820 => 'L', + 5821 => 'L', + 5822 => 'L', + 5823 => 'L', + 5824 => 'L', + 5825 => 'L', + 5826 => 'L', + 5827 => 'L', + 5828 => 'L', + 5829 => 'L', + 5830 => 'L', + 5831 => 'L', + 5832 => 'L', + 5833 => 'L', + 5834 => 'L', + 5835 => 'L', + 5836 => 'L', + 5837 => 'L', + 5838 => 'L', + 5839 => 'L', + 5840 => 'L', + 5841 => 'L', + 5842 => 'L', + 5843 => 'L', + 5844 => 'L', + 5845 => 'L', + 5846 => 'L', + 5847 => 'L', + 5848 => 'L', + 5849 => 'L', + 5850 => 'L', + 5851 => 'L', + 5852 => 'L', + 5853 => 'L', + 5854 => 'L', + 5855 => 'L', + 5856 => 'L', + 5857 => 'L', + 5858 => 'L', + 5859 => 'L', + 5860 => 'L', + 5861 => 'L', + 5862 => 'L', + 5863 => 'L', + 5864 => 'L', + 5865 => 'L', + 5866 => 'L', + 5867 => 'L', + 5868 => 'L', + 5869 => 'L', + 5870 => 'L', + 5871 => 'L', + 5872 => 'L', + 5888 => 'L', + 5889 => 'L', + 5890 => 'L', + 5891 => 'L', + 5892 => 'L', + 5893 => 'L', + 5894 => 'L', + 5895 => 'L', + 5896 => 'L', + 5897 => 'L', + 5898 => 'L', + 5899 => 'L', + 5900 => 'L', + 5902 => 'L', + 5903 => 'L', + 5904 => 'L', + 5905 => 'L', + 5906 => 'NSM', + 5907 => 'NSM', + 5908 => 'NSM', + 5920 => 'L', + 5921 => 'L', + 5922 => 'L', + 5923 => 'L', + 5924 => 'L', + 5925 => 'L', + 5926 => 'L', + 5927 => 'L', + 5928 => 'L', + 5929 => 'L', + 5930 => 'L', + 5931 => 'L', + 5932 => 'L', + 5933 => 'L', + 5934 => 'L', + 5935 => 'L', + 5936 => 'L', + 5937 => 'L', + 5938 => 'NSM', + 5939 => 'NSM', + 5940 => 'NSM', + 5941 => 'L', + 5942 => 'L', + 5952 => 'L', + 5953 => 'L', + 5954 => 'L', + 5955 => 'L', + 5956 => 'L', + 5957 => 'L', + 5958 => 'L', + 5959 => 'L', + 5960 => 'L', + 5961 => 'L', + 5962 => 'L', + 5963 => 'L', + 5964 => 'L', + 5965 => 'L', + 5966 => 'L', + 5967 => 'L', + 5968 => 'L', + 5969 => 'L', + 5970 => 'NSM', + 5971 => 'NSM', + 5984 => 'L', + 5985 => 'L', + 5986 => 'L', + 5987 => 'L', + 5988 => 'L', + 5989 => 'L', + 5990 => 'L', + 5991 => 'L', + 5992 => 'L', + 5993 => 'L', + 5994 => 'L', + 5995 => 'L', + 5996 => 'L', + 5998 => 'L', + 5999 => 'L', + 6000 => 'L', + 6002 => 'NSM', + 6003 => 'NSM', + 6016 => 'L', + 6017 => 'L', + 6018 => 'L', + 6019 => 'L', + 6020 => 'L', + 6021 => 'L', + 6022 => 'L', + 6023 => 'L', + 6024 => 'L', + 6025 => 'L', + 6026 => 'L', + 6027 => 'L', + 6028 => 'L', + 6029 => 'L', + 6030 => 'L', + 6031 => 'L', + 6032 => 'L', + 6033 => 'L', + 6034 => 'L', + 6035 => 'L', + 6036 => 'L', + 6037 => 'L', + 6038 => 'L', + 6039 => 'L', + 6040 => 'L', + 6041 => 'L', + 6042 => 'L', + 6043 => 'L', + 6044 => 'L', + 6045 => 'L', + 6046 => 'L', + 6047 => 'L', + 6048 => 'L', + 6049 => 'L', + 6050 => 'L', + 6051 => 'L', + 6052 => 'L', + 6053 => 'L', + 6054 => 'L', + 6055 => 'L', + 6056 => 'L', + 6057 => 'L', + 6058 => 'L', + 6059 => 'L', + 6060 => 'L', + 6061 => 'L', + 6062 => 'L', + 6063 => 'L', + 6064 => 'L', + 6065 => 'L', + 6066 => 'L', + 6067 => 'L', + 6068 => 'L', + 6069 => 'L', + 6070 => 'L', + 6071 => 'NSM', + 6072 => 'NSM', + 6073 => 'NSM', + 6074 => 'NSM', + 6075 => 'NSM', + 6076 => 'NSM', + 6077 => 'NSM', + 6078 => 'L', + 6079 => 'L', + 6080 => 'L', + 6081 => 'L', + 6082 => 'L', + 6083 => 'L', + 6084 => 'L', + 6085 => 'L', + 6086 => 'NSM', + 6087 => 'L', + 6088 => 'L', + 6089 => 'NSM', + 6090 => 'NSM', + 6091 => 'NSM', + 6092 => 'NSM', + 6093 => 'NSM', + 6094 => 'NSM', + 6095 => 'NSM', + 6096 => 'NSM', + 6097 => 'NSM', + 6098 => 'NSM', + 6099 => 'NSM', + 6100 => 'L', + 6101 => 'L', + 6102 => 'L', + 6103 => 'L', + 6104 => 'L', + 6105 => 'L', + 6106 => 'L', + 6107 => 'ET', + 6108 => 'L', + 6109 => 'NSM', + 6112 => 'L', + 6113 => 'L', + 6114 => 'L', + 6115 => 'L', + 6116 => 'L', + 6117 => 'L', + 6118 => 'L', + 6119 => 'L', + 6120 => 'L', + 6121 => 'L', + 6128 => 'ON', + 6129 => 'ON', + 6130 => 'ON', + 6131 => 'ON', + 6132 => 'ON', + 6133 => 'ON', + 6134 => 'ON', + 6135 => 'ON', + 6136 => 'ON', + 6137 => 'ON', + 6144 => 'ON', + 6145 => 'ON', + 6146 => 'ON', + 6147 => 'ON', + 6148 => 'ON', + 6149 => 'ON', + 6150 => 'ON', + 6151 => 'ON', + 6152 => 'ON', + 6153 => 'ON', + 6154 => 'ON', + 6155 => 'NSM', + 6156 => 'NSM', + 6157 => 'NSM', + 6158 => 'WS', + 6160 => 'L', + 6161 => 'L', + 6162 => 'L', + 6163 => 'L', + 6164 => 'L', + 6165 => 'L', + 6166 => 'L', + 6167 => 'L', + 6168 => 'L', + 6169 => 'L', + 6176 => 'L', + 6177 => 'L', + 6178 => 'L', + 6179 => 'L', + 6180 => 'L', + 6181 => 'L', + 6182 => 'L', + 6183 => 'L', + 6184 => 'L', + 6185 => 'L', + 6186 => 'L', + 6187 => 'L', + 6188 => 'L', + 6189 => 'L', + 6190 => 'L', + 6191 => 'L', + 6192 => 'L', + 6193 => 'L', + 6194 => 'L', + 6195 => 'L', + 6196 => 'L', + 6197 => 'L', + 6198 => 'L', + 6199 => 'L', + 6200 => 'L', + 6201 => 'L', + 6202 => 'L', + 6203 => 'L', + 6204 => 'L', + 6205 => 'L', + 6206 => 'L', + 6207 => 'L', + 6208 => 'L', + 6209 => 'L', + 6210 => 'L', + 6211 => 'L', + 6212 => 'L', + 6213 => 'L', + 6214 => 'L', + 6215 => 'L', + 6216 => 'L', + 6217 => 'L', + 6218 => 'L', + 6219 => 'L', + 6220 => 'L', + 6221 => 'L', + 6222 => 'L', + 6223 => 'L', + 6224 => 'L', + 6225 => 'L', + 6226 => 'L', + 6227 => 'L', + 6228 => 'L', + 6229 => 'L', + 6230 => 'L', + 6231 => 'L', + 6232 => 'L', + 6233 => 'L', + 6234 => 'L', + 6235 => 'L', + 6236 => 'L', + 6237 => 'L', + 6238 => 'L', + 6239 => 'L', + 6240 => 'L', + 6241 => 'L', + 6242 => 'L', + 6243 => 'L', + 6244 => 'L', + 6245 => 'L', + 6246 => 'L', + 6247 => 'L', + 6248 => 'L', + 6249 => 'L', + 6250 => 'L', + 6251 => 'L', + 6252 => 'L', + 6253 => 'L', + 6254 => 'L', + 6255 => 'L', + 6256 => 'L', + 6257 => 'L', + 6258 => 'L', + 6259 => 'L', + 6260 => 'L', + 6261 => 'L', + 6262 => 'L', + 6263 => 'L', + 6272 => 'L', + 6273 => 'L', + 6274 => 'L', + 6275 => 'L', + 6276 => 'L', + 6277 => 'L', + 6278 => 'L', + 6279 => 'L', + 6280 => 'L', + 6281 => 'L', + 6282 => 'L', + 6283 => 'L', + 6284 => 'L', + 6285 => 'L', + 6286 => 'L', + 6287 => 'L', + 6288 => 'L', + 6289 => 'L', + 6290 => 'L', + 6291 => 'L', + 6292 => 'L', + 6293 => 'L', + 6294 => 'L', + 6295 => 'L', + 6296 => 'L', + 6297 => 'L', + 6298 => 'L', + 6299 => 'L', + 6300 => 'L', + 6301 => 'L', + 6302 => 'L', + 6303 => 'L', + 6304 => 'L', + 6305 => 'L', + 6306 => 'L', + 6307 => 'L', + 6308 => 'L', + 6309 => 'L', + 6310 => 'L', + 6311 => 'L', + 6312 => 'L', + 6313 => 'NSM', + 6400 => 'L', + 6401 => 'L', + 6402 => 'L', + 6403 => 'L', + 6404 => 'L', + 6405 => 'L', + 6406 => 'L', + 6407 => 'L', + 6408 => 'L', + 6409 => 'L', + 6410 => 'L', + 6411 => 'L', + 6412 => 'L', + 6413 => 'L', + 6414 => 'L', + 6415 => 'L', + 6416 => 'L', + 6417 => 'L', + 6418 => 'L', + 6419 => 'L', + 6420 => 'L', + 6421 => 'L', + 6422 => 'L', + 6423 => 'L', + 6424 => 'L', + 6425 => 'L', + 6426 => 'L', + 6427 => 'L', + 6428 => 'L', + 6432 => 'NSM', + 6433 => 'NSM', + 6434 => 'NSM', + 6435 => 'L', + 6436 => 'L', + 6437 => 'L', + 6438 => 'L', + 6439 => 'NSM', + 6440 => 'NSM', + 6441 => 'NSM', + 6442 => 'NSM', + 6443 => 'NSM', + 6448 => 'L', + 6449 => 'L', + 6450 => 'NSM', + 6451 => 'L', + 6452 => 'L', + 6453 => 'L', + 6454 => 'L', + 6455 => 'L', + 6456 => 'L', + 6457 => 'NSM', + 6458 => 'NSM', + 6459 => 'NSM', + 6464 => 'ON', + 6468 => 'ON', + 6469 => 'ON', + 6470 => 'L', + 6471 => 'L', + 6472 => 'L', + 6473 => 'L', + 6474 => 'L', + 6475 => 'L', + 6476 => 'L', + 6477 => 'L', + 6478 => 'L', + 6479 => 'L', + 6480 => 'L', + 6481 => 'L', + 6482 => 'L', + 6483 => 'L', + 6484 => 'L', + 6485 => 'L', + 6486 => 'L', + 6487 => 'L', + 6488 => 'L', + 6489 => 'L', + 6490 => 'L', + 6491 => 'L', + 6492 => 'L', + 6493 => 'L', + 6494 => 'L', + 6495 => 'L', + 6496 => 'L', + 6497 => 'L', + 6498 => 'L', + 6499 => 'L', + 6500 => 'L', + 6501 => 'L', + 6502 => 'L', + 6503 => 'L', + 6504 => 'L', + 6505 => 'L', + 6506 => 'L', + 6507 => 'L', + 6508 => 'L', + 6509 => 'L', + 6512 => 'L', + 6513 => 'L', + 6514 => 'L', + 6515 => 'L', + 6516 => 'L', + 6528 => 'L', + 6529 => 'L', + 6530 => 'L', + 6531 => 'L', + 6532 => 'L', + 6533 => 'L', + 6534 => 'L', + 6535 => 'L', + 6536 => 'L', + 6537 => 'L', + 6538 => 'L', + 6539 => 'L', + 6540 => 'L', + 6541 => 'L', + 6542 => 'L', + 6543 => 'L', + 6544 => 'L', + 6545 => 'L', + 6546 => 'L', + 6547 => 'L', + 6548 => 'L', + 6549 => 'L', + 6550 => 'L', + 6551 => 'L', + 6552 => 'L', + 6553 => 'L', + 6554 => 'L', + 6555 => 'L', + 6556 => 'L', + 6557 => 'L', + 6558 => 'L', + 6559 => 'L', + 6560 => 'L', + 6561 => 'L', + 6562 => 'L', + 6563 => 'L', + 6564 => 'L', + 6565 => 'L', + 6566 => 'L', + 6567 => 'L', + 6568 => 'L', + 6569 => 'L', + 6576 => 'L', + 6577 => 'L', + 6578 => 'L', + 6579 => 'L', + 6580 => 'L', + 6581 => 'L', + 6582 => 'L', + 6583 => 'L', + 6584 => 'L', + 6585 => 'L', + 6586 => 'L', + 6587 => 'L', + 6588 => 'L', + 6589 => 'L', + 6590 => 'L', + 6591 => 'L', + 6592 => 'L', + 6593 => 'L', + 6594 => 'L', + 6595 => 'L', + 6596 => 'L', + 6597 => 'L', + 6598 => 'L', + 6599 => 'L', + 6600 => 'L', + 6601 => 'L', + 6608 => 'L', + 6609 => 'L', + 6610 => 'L', + 6611 => 'L', + 6612 => 'L', + 6613 => 'L', + 6614 => 'L', + 6615 => 'L', + 6616 => 'L', + 6617 => 'L', + 6622 => 'ON', + 6623 => 'ON', + 6624 => 'ON', + 6625 => 'ON', + 6626 => 'ON', + 6627 => 'ON', + 6628 => 'ON', + 6629 => 'ON', + 6630 => 'ON', + 6631 => 'ON', + 6632 => 'ON', + 6633 => 'ON', + 6634 => 'ON', + 6635 => 'ON', + 6636 => 'ON', + 6637 => 'ON', + 6638 => 'ON', + 6639 => 'ON', + 6640 => 'ON', + 6641 => 'ON', + 6642 => 'ON', + 6643 => 'ON', + 6644 => 'ON', + 6645 => 'ON', + 6646 => 'ON', + 6647 => 'ON', + 6648 => 'ON', + 6649 => 'ON', + 6650 => 'ON', + 6651 => 'ON', + 6652 => 'ON', + 6653 => 'ON', + 6654 => 'ON', + 6655 => 'ON', + 6656 => 'L', + 6657 => 'L', + 6658 => 'L', + 6659 => 'L', + 6660 => 'L', + 6661 => 'L', + 6662 => 'L', + 6663 => 'L', + 6664 => 'L', + 6665 => 'L', + 6666 => 'L', + 6667 => 'L', + 6668 => 'L', + 6669 => 'L', + 6670 => 'L', + 6671 => 'L', + 6672 => 'L', + 6673 => 'L', + 6674 => 'L', + 6675 => 'L', + 6676 => 'L', + 6677 => 'L', + 6678 => 'L', + 6679 => 'NSM', + 6680 => 'NSM', + 6681 => 'L', + 6682 => 'L', + 6683 => 'L', + 6686 => 'L', + 6687 => 'L', + 6912 => 'NSM', + 6913 => 'NSM', + 6914 => 'NSM', + 6915 => 'NSM', + 6916 => 'L', + 6917 => 'L', + 6918 => 'L', + 6919 => 'L', + 6920 => 'L', + 6921 => 'L', + 6922 => 'L', + 6923 => 'L', + 6924 => 'L', + 6925 => 'L', + 6926 => 'L', + 6927 => 'L', + 6928 => 'L', + 6929 => 'L', + 6930 => 'L', + 6931 => 'L', + 6932 => 'L', + 6933 => 'L', + 6934 => 'L', + 6935 => 'L', + 6936 => 'L', + 6937 => 'L', + 6938 => 'L', + 6939 => 'L', + 6940 => 'L', + 6941 => 'L', + 6942 => 'L', + 6943 => 'L', + 6944 => 'L', + 6945 => 'L', + 6946 => 'L', + 6947 => 'L', + 6948 => 'L', + 6949 => 'L', + 6950 => 'L', + 6951 => 'L', + 6952 => 'L', + 6953 => 'L', + 6954 => 'L', + 6955 => 'L', + 6956 => 'L', + 6957 => 'L', + 6958 => 'L', + 6959 => 'L', + 6960 => 'L', + 6961 => 'L', + 6962 => 'L', + 6963 => 'L', + 6964 => 'NSM', + 6965 => 'L', + 6966 => 'NSM', + 6967 => 'NSM', + 6968 => 'NSM', + 6969 => 'NSM', + 6970 => 'NSM', + 6971 => 'L', + 6972 => 'NSM', + 6973 => 'L', + 6974 => 'L', + 6975 => 'L', + 6976 => 'L', + 6977 => 'L', + 6978 => 'NSM', + 6979 => 'L', + 6980 => 'L', + 6981 => 'L', + 6982 => 'L', + 6983 => 'L', + 6984 => 'L', + 6985 => 'L', + 6986 => 'L', + 6987 => 'L', + 6992 => 'L', + 6993 => 'L', + 6994 => 'L', + 6995 => 'L', + 6996 => 'L', + 6997 => 'L', + 6998 => 'L', + 6999 => 'L', + 7000 => 'L', + 7001 => 'L', + 7002 => 'L', + 7003 => 'L', + 7004 => 'L', + 7005 => 'L', + 7006 => 'L', + 7007 => 'L', + 7008 => 'L', + 7009 => 'L', + 7010 => 'L', + 7011 => 'L', + 7012 => 'L', + 7013 => 'L', + 7014 => 'L', + 7015 => 'L', + 7016 => 'L', + 7017 => 'L', + 7018 => 'L', + 7019 => 'NSM', + 7020 => 'NSM', + 7021 => 'NSM', + 7022 => 'NSM', + 7023 => 'NSM', + 7024 => 'NSM', + 7025 => 'NSM', + 7026 => 'NSM', + 7027 => 'NSM', + 7028 => 'L', + 7029 => 'L', + 7030 => 'L', + 7031 => 'L', + 7032 => 'L', + 7033 => 'L', + 7034 => 'L', + 7035 => 'L', + 7036 => 'L', + 7424 => 'L', + 7425 => 'L', + 7426 => 'L', + 7427 => 'L', + 7428 => 'L', + 7429 => 'L', + 7430 => 'L', + 7431 => 'L', + 7432 => 'L', + 7433 => 'L', + 7434 => 'L', + 7435 => 'L', + 7436 => 'L', + 7437 => 'L', + 7438 => 'L', + 7439 => 'L', + 7440 => 'L', + 7441 => 'L', + 7442 => 'L', + 7443 => 'L', + 7444 => 'L', + 7445 => 'L', + 7446 => 'L', + 7447 => 'L', + 7448 => 'L', + 7449 => 'L', + 7450 => 'L', + 7451 => 'L', + 7452 => 'L', + 7453 => 'L', + 7454 => 'L', + 7455 => 'L', + 7456 => 'L', + 7457 => 'L', + 7458 => 'L', + 7459 => 'L', + 7460 => 'L', + 7461 => 'L', + 7462 => 'L', + 7463 => 'L', + 7464 => 'L', + 7465 => 'L', + 7466 => 'L', + 7467 => 'L', + 7468 => 'L', + 7469 => 'L', + 7470 => 'L', + 7471 => 'L', + 7472 => 'L', + 7473 => 'L', + 7474 => 'L', + 7475 => 'L', + 7476 => 'L', + 7477 => 'L', + 7478 => 'L', + 7479 => 'L', + 7480 => 'L', + 7481 => 'L', + 7482 => 'L', + 7483 => 'L', + 7484 => 'L', + 7485 => 'L', + 7486 => 'L', + 7487 => 'L', + 7488 => 'L', + 7489 => 'L', + 7490 => 'L', + 7491 => 'L', + 7492 => 'L', + 7493 => 'L', + 7494 => 'L', + 7495 => 'L', + 7496 => 'L', + 7497 => 'L', + 7498 => 'L', + 7499 => 'L', + 7500 => 'L', + 7501 => 'L', + 7502 => 'L', + 7503 => 'L', + 7504 => 'L', + 7505 => 'L', + 7506 => 'L', + 7507 => 'L', + 7508 => 'L', + 7509 => 'L', + 7510 => 'L', + 7511 => 'L', + 7512 => 'L', + 7513 => 'L', + 7514 => 'L', + 7515 => 'L', + 7516 => 'L', + 7517 => 'L', + 7518 => 'L', + 7519 => 'L', + 7520 => 'L', + 7521 => 'L', + 7522 => 'L', + 7523 => 'L', + 7524 => 'L', + 7525 => 'L', + 7526 => 'L', + 7527 => 'L', + 7528 => 'L', + 7529 => 'L', + 7530 => 'L', + 7531 => 'L', + 7532 => 'L', + 7533 => 'L', + 7534 => 'L', + 7535 => 'L', + 7536 => 'L', + 7537 => 'L', + 7538 => 'L', + 7539 => 'L', + 7540 => 'L', + 7541 => 'L', + 7542 => 'L', + 7543 => 'L', + 7544 => 'L', + 7545 => 'L', + 7546 => 'L', + 7547 => 'L', + 7548 => 'L', + 7549 => 'L', + 7550 => 'L', + 7551 => 'L', + 7552 => 'L', + 7553 => 'L', + 7554 => 'L', + 7555 => 'L', + 7556 => 'L', + 7557 => 'L', + 7558 => 'L', + 7559 => 'L', + 7560 => 'L', + 7561 => 'L', + 7562 => 'L', + 7563 => 'L', + 7564 => 'L', + 7565 => 'L', + 7566 => 'L', + 7567 => 'L', + 7568 => 'L', + 7569 => 'L', + 7570 => 'L', + 7571 => 'L', + 7572 => 'L', + 7573 => 'L', + 7574 => 'L', + 7575 => 'L', + 7576 => 'L', + 7577 => 'L', + 7578 => 'L', + 7579 => 'L', + 7580 => 'L', + 7581 => 'L', + 7582 => 'L', + 7583 => 'L', + 7584 => 'L', + 7585 => 'L', + 7586 => 'L', + 7587 => 'L', + 7588 => 'L', + 7589 => 'L', + 7590 => 'L', + 7591 => 'L', + 7592 => 'L', + 7593 => 'L', + 7594 => 'L', + 7595 => 'L', + 7596 => 'L', + 7597 => 'L', + 7598 => 'L', + 7599 => 'L', + 7600 => 'L', + 7601 => 'L', + 7602 => 'L', + 7603 => 'L', + 7604 => 'L', + 7605 => 'L', + 7606 => 'L', + 7607 => 'L', + 7608 => 'L', + 7609 => 'L', + 7610 => 'L', + 7611 => 'L', + 7612 => 'L', + 7613 => 'L', + 7614 => 'L', + 7615 => 'L', + 7616 => 'NSM', + 7617 => 'NSM', + 7618 => 'NSM', + 7619 => 'NSM', + 7620 => 'NSM', + 7621 => 'NSM', + 7622 => 'NSM', + 7623 => 'NSM', + 7624 => 'NSM', + 7625 => 'NSM', + 7626 => 'NSM', + 7678 => 'NSM', + 7679 => 'NSM', + 7680 => 'L', + 7681 => 'L', + 7682 => 'L', + 7683 => 'L', + 7684 => 'L', + 7685 => 'L', + 7686 => 'L', + 7687 => 'L', + 7688 => 'L', + 7689 => 'L', + 7690 => 'L', + 7691 => 'L', + 7692 => 'L', + 7693 => 'L', + 7694 => 'L', + 7695 => 'L', + 7696 => 'L', + 7697 => 'L', + 7698 => 'L', + 7699 => 'L', + 7700 => 'L', + 7701 => 'L', + 7702 => 'L', + 7703 => 'L', + 7704 => 'L', + 7705 => 'L', + 7706 => 'L', + 7707 => 'L', + 7708 => 'L', + 7709 => 'L', + 7710 => 'L', + 7711 => 'L', + 7712 => 'L', + 7713 => 'L', + 7714 => 'L', + 7715 => 'L', + 7716 => 'L', + 7717 => 'L', + 7718 => 'L', + 7719 => 'L', + 7720 => 'L', + 7721 => 'L', + 7722 => 'L', + 7723 => 'L', + 7724 => 'L', + 7725 => 'L', + 7726 => 'L', + 7727 => 'L', + 7728 => 'L', + 7729 => 'L', + 7730 => 'L', + 7731 => 'L', + 7732 => 'L', + 7733 => 'L', + 7734 => 'L', + 7735 => 'L', + 7736 => 'L', + 7737 => 'L', + 7738 => 'L', + 7739 => 'L', + 7740 => 'L', + 7741 => 'L', + 7742 => 'L', + 7743 => 'L', + 7744 => 'L', + 7745 => 'L', + 7746 => 'L', + 7747 => 'L', + 7748 => 'L', + 7749 => 'L', + 7750 => 'L', + 7751 => 'L', + 7752 => 'L', + 7753 => 'L', + 7754 => 'L', + 7755 => 'L', + 7756 => 'L', + 7757 => 'L', + 7758 => 'L', + 7759 => 'L', + 7760 => 'L', + 7761 => 'L', + 7762 => 'L', + 7763 => 'L', + 7764 => 'L', + 7765 => 'L', + 7766 => 'L', + 7767 => 'L', + 7768 => 'L', + 7769 => 'L', + 7770 => 'L', + 7771 => 'L', + 7772 => 'L', + 7773 => 'L', + 7774 => 'L', + 7775 => 'L', + 7776 => 'L', + 7777 => 'L', + 7778 => 'L', + 7779 => 'L', + 7780 => 'L', + 7781 => 'L', + 7782 => 'L', + 7783 => 'L', + 7784 => 'L', + 7785 => 'L', + 7786 => 'L', + 7787 => 'L', + 7788 => 'L', + 7789 => 'L', + 7790 => 'L', + 7791 => 'L', + 7792 => 'L', + 7793 => 'L', + 7794 => 'L', + 7795 => 'L', + 7796 => 'L', + 7797 => 'L', + 7798 => 'L', + 7799 => 'L', + 7800 => 'L', + 7801 => 'L', + 7802 => 'L', + 7803 => 'L', + 7804 => 'L', + 7805 => 'L', + 7806 => 'L', + 7807 => 'L', + 7808 => 'L', + 7809 => 'L', + 7810 => 'L', + 7811 => 'L', + 7812 => 'L', + 7813 => 'L', + 7814 => 'L', + 7815 => 'L', + 7816 => 'L', + 7817 => 'L', + 7818 => 'L', + 7819 => 'L', + 7820 => 'L', + 7821 => 'L', + 7822 => 'L', + 7823 => 'L', + 7824 => 'L', + 7825 => 'L', + 7826 => 'L', + 7827 => 'L', + 7828 => 'L', + 7829 => 'L', + 7830 => 'L', + 7831 => 'L', + 7832 => 'L', + 7833 => 'L', + 7834 => 'L', + 7835 => 'L', + 7840 => 'L', + 7841 => 'L', + 7842 => 'L', + 7843 => 'L', + 7844 => 'L', + 7845 => 'L', + 7846 => 'L', + 7847 => 'L', + 7848 => 'L', + 7849 => 'L', + 7850 => 'L', + 7851 => 'L', + 7852 => 'L', + 7853 => 'L', + 7854 => 'L', + 7855 => 'L', + 7856 => 'L', + 7857 => 'L', + 7858 => 'L', + 7859 => 'L', + 7860 => 'L', + 7861 => 'L', + 7862 => 'L', + 7863 => 'L', + 7864 => 'L', + 7865 => 'L', + 7866 => 'L', + 7867 => 'L', + 7868 => 'L', + 7869 => 'L', + 7870 => 'L', + 7871 => 'L', + 7872 => 'L', + 7873 => 'L', + 7874 => 'L', + 7875 => 'L', + 7876 => 'L', + 7877 => 'L', + 7878 => 'L', + 7879 => 'L', + 7880 => 'L', + 7881 => 'L', + 7882 => 'L', + 7883 => 'L', + 7884 => 'L', + 7885 => 'L', + 7886 => 'L', + 7887 => 'L', + 7888 => 'L', + 7889 => 'L', + 7890 => 'L', + 7891 => 'L', + 7892 => 'L', + 7893 => 'L', + 7894 => 'L', + 7895 => 'L', + 7896 => 'L', + 7897 => 'L', + 7898 => 'L', + 7899 => 'L', + 7900 => 'L', + 7901 => 'L', + 7902 => 'L', + 7903 => 'L', + 7904 => 'L', + 7905 => 'L', + 7906 => 'L', + 7907 => 'L', + 7908 => 'L', + 7909 => 'L', + 7910 => 'L', + 7911 => 'L', + 7912 => 'L', + 7913 => 'L', + 7914 => 'L', + 7915 => 'L', + 7916 => 'L', + 7917 => 'L', + 7918 => 'L', + 7919 => 'L', + 7920 => 'L', + 7921 => 'L', + 7922 => 'L', + 7923 => 'L', + 7924 => 'L', + 7925 => 'L', + 7926 => 'L', + 7927 => 'L', + 7928 => 'L', + 7929 => 'L', + 7936 => 'L', + 7937 => 'L', + 7938 => 'L', + 7939 => 'L', + 7940 => 'L', + 7941 => 'L', + 7942 => 'L', + 7943 => 'L', + 7944 => 'L', + 7945 => 'L', + 7946 => 'L', + 7947 => 'L', + 7948 => 'L', + 7949 => 'L', + 7950 => 'L', + 7951 => 'L', + 7952 => 'L', + 7953 => 'L', + 7954 => 'L', + 7955 => 'L', + 7956 => 'L', + 7957 => 'L', + 7960 => 'L', + 7961 => 'L', + 7962 => 'L', + 7963 => 'L', + 7964 => 'L', + 7965 => 'L', + 7968 => 'L', + 7969 => 'L', + 7970 => 'L', + 7971 => 'L', + 7972 => 'L', + 7973 => 'L', + 7974 => 'L', + 7975 => 'L', + 7976 => 'L', + 7977 => 'L', + 7978 => 'L', + 7979 => 'L', + 7980 => 'L', + 7981 => 'L', + 7982 => 'L', + 7983 => 'L', + 7984 => 'L', + 7985 => 'L', + 7986 => 'L', + 7987 => 'L', + 7988 => 'L', + 7989 => 'L', + 7990 => 'L', + 7991 => 'L', + 7992 => 'L', + 7993 => 'L', + 7994 => 'L', + 7995 => 'L', + 7996 => 'L', + 7997 => 'L', + 7998 => 'L', + 7999 => 'L', + 8000 => 'L', + 8001 => 'L', + 8002 => 'L', + 8003 => 'L', + 8004 => 'L', + 8005 => 'L', + 8008 => 'L', + 8009 => 'L', + 8010 => 'L', + 8011 => 'L', + 8012 => 'L', + 8013 => 'L', + 8016 => 'L', + 8017 => 'L', + 8018 => 'L', + 8019 => 'L', + 8020 => 'L', + 8021 => 'L', + 8022 => 'L', + 8023 => 'L', + 8025 => 'L', + 8027 => 'L', + 8029 => 'L', + 8031 => 'L', + 8032 => 'L', + 8033 => 'L', + 8034 => 'L', + 8035 => 'L', + 8036 => 'L', + 8037 => 'L', + 8038 => 'L', + 8039 => 'L', + 8040 => 'L', + 8041 => 'L', + 8042 => 'L', + 8043 => 'L', + 8044 => 'L', + 8045 => 'L', + 8046 => 'L', + 8047 => 'L', + 8048 => 'L', + 8049 => 'L', + 8050 => 'L', + 8051 => 'L', + 8052 => 'L', + 8053 => 'L', + 8054 => 'L', + 8055 => 'L', + 8056 => 'L', + 8057 => 'L', + 8058 => 'L', + 8059 => 'L', + 8060 => 'L', + 8061 => 'L', + 8064 => 'L', + 8065 => 'L', + 8066 => 'L', + 8067 => 'L', + 8068 => 'L', + 8069 => 'L', + 8070 => 'L', + 8071 => 'L', + 8072 => 'L', + 8073 => 'L', + 8074 => 'L', + 8075 => 'L', + 8076 => 'L', + 8077 => 'L', + 8078 => 'L', + 8079 => 'L', + 8080 => 'L', + 8081 => 'L', + 8082 => 'L', + 8083 => 'L', + 8084 => 'L', + 8085 => 'L', + 8086 => 'L', + 8087 => 'L', + 8088 => 'L', + 8089 => 'L', + 8090 => 'L', + 8091 => 'L', + 8092 => 'L', + 8093 => 'L', + 8094 => 'L', + 8095 => 'L', + 8096 => 'L', + 8097 => 'L', + 8098 => 'L', + 8099 => 'L', + 8100 => 'L', + 8101 => 'L', + 8102 => 'L', + 8103 => 'L', + 8104 => 'L', + 8105 => 'L', + 8106 => 'L', + 8107 => 'L', + 8108 => 'L', + 8109 => 'L', + 8110 => 'L', + 8111 => 'L', + 8112 => 'L', + 8113 => 'L', + 8114 => 'L', + 8115 => 'L', + 8116 => 'L', + 8118 => 'L', + 8119 => 'L', + 8120 => 'L', + 8121 => 'L', + 8122 => 'L', + 8123 => 'L', + 8124 => 'L', + 8125 => 'ON', + 8126 => 'L', + 8127 => 'ON', + 8128 => 'ON', + 8129 => 'ON', + 8130 => 'L', + 8131 => 'L', + 8132 => 'L', + 8134 => 'L', + 8135 => 'L', + 8136 => 'L', + 8137 => 'L', + 8138 => 'L', + 8139 => 'L', + 8140 => 'L', + 8141 => 'ON', + 8142 => 'ON', + 8143 => 'ON', + 8144 => 'L', + 8145 => 'L', + 8146 => 'L', + 8147 => 'L', + 8150 => 'L', + 8151 => 'L', + 8152 => 'L', + 8153 => 'L', + 8154 => 'L', + 8155 => 'L', + 8157 => 'ON', + 8158 => 'ON', + 8159 => 'ON', + 8160 => 'L', + 8161 => 'L', + 8162 => 'L', + 8163 => 'L', + 8164 => 'L', + 8165 => 'L', + 8166 => 'L', + 8167 => 'L', + 8168 => 'L', + 8169 => 'L', + 8170 => 'L', + 8171 => 'L', + 8172 => 'L', + 8173 => 'ON', + 8174 => 'ON', + 8175 => 'ON', + 8178 => 'L', + 8179 => 'L', + 8180 => 'L', + 8182 => 'L', + 8183 => 'L', + 8184 => 'L', + 8185 => 'L', + 8186 => 'L', + 8187 => 'L', + 8188 => 'L', + 8189 => 'ON', + 8190 => 'ON', + 8192 => 'WS', + 8193 => 'WS', + 8194 => 'WS', + 8195 => 'WS', + 8196 => 'WS', + 8197 => 'WS', + 8198 => 'WS', + 8199 => 'WS', + 8200 => 'WS', + 8201 => 'WS', + 8202 => 'WS', + 8203 => 'BN', + 8204 => 'BN', + 8205 => 'BN', + 8206 => 'L', + 8207 => 'R', + 8208 => 'ON', + 8209 => 'ON', + 8210 => 'ON', + 8211 => 'ON', + 8212 => 'ON', + 8213 => 'ON', + 8214 => 'ON', + 8215 => 'ON', + 8216 => 'ON', + 8217 => 'ON', + 8218 => 'ON', + 8219 => 'ON', + 8220 => 'ON', + 8221 => 'ON', + 8222 => 'ON', + 8223 => 'ON', + 8224 => 'ON', + 8225 => 'ON', + 8226 => 'ON', + 8227 => 'ON', + 8228 => 'ON', + 8229 => 'ON', + 8230 => 'ON', + 8231 => 'ON', + 8232 => 'WS', + 8233 => 'B', + 8234 => 'LRE', + 8235 => 'RLE', + 8236 => 'PDF', + 8237 => 'LRO', + 8238 => 'RLO', + 8239 => 'CS', + 8240 => 'ET', + 8241 => 'ET', + 8242 => 'ET', + 8243 => 'ET', + 8244 => 'ET', + 8245 => 'ON', + 8246 => 'ON', + 8247 => 'ON', + 8248 => 'ON', + 8249 => 'ON', + 8250 => 'ON', + 8251 => 'ON', + 8252 => 'ON', + 8253 => 'ON', + 8254 => 'ON', + 8255 => 'ON', + 8256 => 'ON', + 8257 => 'ON', + 8258 => 'ON', + 8259 => 'ON', + 8260 => 'CS', + 8261 => 'ON', + 8262 => 'ON', + 8263 => 'ON', + 8264 => 'ON', + 8265 => 'ON', + 8266 => 'ON', + 8267 => 'ON', + 8268 => 'ON', + 8269 => 'ON', + 8270 => 'ON', + 8271 => 'ON', + 8272 => 'ON', + 8273 => 'ON', + 8274 => 'ON', + 8275 => 'ON', + 8276 => 'ON', + 8277 => 'ON', + 8278 => 'ON', + 8279 => 'ON', + 8280 => 'ON', + 8281 => 'ON', + 8282 => 'ON', + 8283 => 'ON', + 8284 => 'ON', + 8285 => 'ON', + 8286 => 'ON', + 8287 => 'WS', + 8288 => 'BN', + 8289 => 'BN', + 8290 => 'BN', + 8291 => 'BN', + 8298 => 'BN', + 8299 => 'BN', + 8300 => 'BN', + 8301 => 'BN', + 8302 => 'BN', + 8303 => 'BN', + 8304 => 'EN', + 8305 => 'L', + 8308 => 'EN', + 8309 => 'EN', + 8310 => 'EN', + 8311 => 'EN', + 8312 => 'EN', + 8313 => 'EN', + 8314 => 'ES', + 8315 => 'ES', + 8316 => 'ON', + 8317 => 'ON', + 8318 => 'ON', + 8319 => 'L', + 8320 => 'EN', + 8321 => 'EN', + 8322 => 'EN', + 8323 => 'EN', + 8324 => 'EN', + 8325 => 'EN', + 8326 => 'EN', + 8327 => 'EN', + 8328 => 'EN', + 8329 => 'EN', + 8330 => 'ES', + 8331 => 'ES', + 8332 => 'ON', + 8333 => 'ON', + 8334 => 'ON', + 8336 => 'L', + 8337 => 'L', + 8338 => 'L', + 8339 => 'L', + 8340 => 'L', + 8352 => 'ET', + 8353 => 'ET', + 8354 => 'ET', + 8355 => 'ET', + 8356 => 'ET', + 8357 => 'ET', + 8358 => 'ET', + 8359 => 'ET', + 8360 => 'ET', + 8361 => 'ET', + 8362 => 'ET', + 8363 => 'ET', + 8364 => 'ET', + 8365 => 'ET', + 8366 => 'ET', + 8367 => 'ET', + 8368 => 'ET', + 8369 => 'ET', + 8370 => 'ET', + 8371 => 'ET', + 8372 => 'ET', + 8373 => 'ET', + 8400 => 'NSM', + 8401 => 'NSM', + 8402 => 'NSM', + 8403 => 'NSM', + 8404 => 'NSM', + 8405 => 'NSM', + 8406 => 'NSM', + 8407 => 'NSM', + 8408 => 'NSM', + 8409 => 'NSM', + 8410 => 'NSM', + 8411 => 'NSM', + 8412 => 'NSM', + 8413 => 'NSM', + 8414 => 'NSM', + 8415 => 'NSM', + 8416 => 'NSM', + 8417 => 'NSM', + 8418 => 'NSM', + 8419 => 'NSM', + 8420 => 'NSM', + 8421 => 'NSM', + 8422 => 'NSM', + 8423 => 'NSM', + 8424 => 'NSM', + 8425 => 'NSM', + 8426 => 'NSM', + 8427 => 'NSM', + 8428 => 'NSM', + 8429 => 'NSM', + 8430 => 'NSM', + 8431 => 'NSM', + 8448 => 'ON', + 8449 => 'ON', + 8450 => 'L', + 8451 => 'ON', + 8452 => 'ON', + 8453 => 'ON', + 8454 => 'ON', + 8455 => 'L', + 8456 => 'ON', + 8457 => 'ON', + 8458 => 'L', + 8459 => 'L', + 8460 => 'L', + 8461 => 'L', + 8462 => 'L', + 8463 => 'L', + 8464 => 'L', + 8465 => 'L', + 8466 => 'L', + 8467 => 'L', + 8468 => 'ON', + 8469 => 'L', + 8470 => 'ON', + 8471 => 'ON', + 8472 => 'ON', + 8473 => 'L', + 8474 => 'L', + 8475 => 'L', + 8476 => 'L', + 8477 => 'L', + 8478 => 'ON', + 8479 => 'ON', + 8480 => 'ON', + 8481 => 'ON', + 8482 => 'ON', + 8483 => 'ON', + 8484 => 'L', + 8485 => 'ON', + 8486 => 'L', + 8487 => 'ON', + 8488 => 'L', + 8489 => 'ON', + 8490 => 'L', + 8491 => 'L', + 8492 => 'L', + 8493 => 'L', + 8494 => 'ET', + 8495 => 'L', + 8496 => 'L', + 8497 => 'L', + 8498 => 'L', + 8499 => 'L', + 8500 => 'L', + 8501 => 'L', + 8502 => 'L', + 8503 => 'L', + 8504 => 'L', + 8505 => 'L', + 8506 => 'ON', + 8507 => 'ON', + 8508 => 'L', + 8509 => 'L', + 8510 => 'L', + 8511 => 'L', + 8512 => 'ON', + 8513 => 'ON', + 8514 => 'ON', + 8515 => 'ON', + 8516 => 'ON', + 8517 => 'L', + 8518 => 'L', + 8519 => 'L', + 8520 => 'L', + 8521 => 'L', + 8522 => 'ON', + 8523 => 'ON', + 8524 => 'ON', + 8525 => 'ON', + 8526 => 'L', + 8531 => 'ON', + 8532 => 'ON', + 8533 => 'ON', + 8534 => 'ON', + 8535 => 'ON', + 8536 => 'ON', + 8537 => 'ON', + 8538 => 'ON', + 8539 => 'ON', + 8540 => 'ON', + 8541 => 'ON', + 8542 => 'ON', + 8543 => 'ON', + 8544 => 'L', + 8545 => 'L', + 8546 => 'L', + 8547 => 'L', + 8548 => 'L', + 8549 => 'L', + 8550 => 'L', + 8551 => 'L', + 8552 => 'L', + 8553 => 'L', + 8554 => 'L', + 8555 => 'L', + 8556 => 'L', + 8557 => 'L', + 8558 => 'L', + 8559 => 'L', + 8560 => 'L', + 8561 => 'L', + 8562 => 'L', + 8563 => 'L', + 8564 => 'L', + 8565 => 'L', + 8566 => 'L', + 8567 => 'L', + 8568 => 'L', + 8569 => 'L', + 8570 => 'L', + 8571 => 'L', + 8572 => 'L', + 8573 => 'L', + 8574 => 'L', + 8575 => 'L', + 8576 => 'L', + 8577 => 'L', + 8578 => 'L', + 8579 => 'L', + 8580 => 'L', + 8592 => 'ON', + 8593 => 'ON', + 8594 => 'ON', + 8595 => 'ON', + 8596 => 'ON', + 8597 => 'ON', + 8598 => 'ON', + 8599 => 'ON', + 8600 => 'ON', + 8601 => 'ON', + 8602 => 'ON', + 8603 => 'ON', + 8604 => 'ON', + 8605 => 'ON', + 8606 => 'ON', + 8607 => 'ON', + 8608 => 'ON', + 8609 => 'ON', + 8610 => 'ON', + 8611 => 'ON', + 8612 => 'ON', + 8613 => 'ON', + 8614 => 'ON', + 8615 => 'ON', + 8616 => 'ON', + 8617 => 'ON', + 8618 => 'ON', + 8619 => 'ON', + 8620 => 'ON', + 8621 => 'ON', + 8622 => 'ON', + 8623 => 'ON', + 8624 => 'ON', + 8625 => 'ON', + 8626 => 'ON', + 8627 => 'ON', + 8628 => 'ON', + 8629 => 'ON', + 8630 => 'ON', + 8631 => 'ON', + 8632 => 'ON', + 8633 => 'ON', + 8634 => 'ON', + 8635 => 'ON', + 8636 => 'ON', + 8637 => 'ON', + 8638 => 'ON', + 8639 => 'ON', + 8640 => 'ON', + 8641 => 'ON', + 8642 => 'ON', + 8643 => 'ON', + 8644 => 'ON', + 8645 => 'ON', + 8646 => 'ON', + 8647 => 'ON', + 8648 => 'ON', + 8649 => 'ON', + 8650 => 'ON', + 8651 => 'ON', + 8652 => 'ON', + 8653 => 'ON', + 8654 => 'ON', + 8655 => 'ON', + 8656 => 'ON', + 8657 => 'ON', + 8658 => 'ON', + 8659 => 'ON', + 8660 => 'ON', + 8661 => 'ON', + 8662 => 'ON', + 8663 => 'ON', + 8664 => 'ON', + 8665 => 'ON', + 8666 => 'ON', + 8667 => 'ON', + 8668 => 'ON', + 8669 => 'ON', + 8670 => 'ON', + 8671 => 'ON', + 8672 => 'ON', + 8673 => 'ON', + 8674 => 'ON', + 8675 => 'ON', + 8676 => 'ON', + 8677 => 'ON', + 8678 => 'ON', + 8679 => 'ON', + 8680 => 'ON', + 8681 => 'ON', + 8682 => 'ON', + 8683 => 'ON', + 8684 => 'ON', + 8685 => 'ON', + 8686 => 'ON', + 8687 => 'ON', + 8688 => 'ON', + 8689 => 'ON', + 8690 => 'ON', + 8691 => 'ON', + 8692 => 'ON', + 8693 => 'ON', + 8694 => 'ON', + 8695 => 'ON', + 8696 => 'ON', + 8697 => 'ON', + 8698 => 'ON', + 8699 => 'ON', + 8700 => 'ON', + 8701 => 'ON', + 8702 => 'ON', + 8703 => 'ON', + 8704 => 'ON', + 8705 => 'ON', + 8706 => 'ON', + 8707 => 'ON', + 8708 => 'ON', + 8709 => 'ON', + 8710 => 'ON', + 8711 => 'ON', + 8712 => 'ON', + 8713 => 'ON', + 8714 => 'ON', + 8715 => 'ON', + 8716 => 'ON', + 8717 => 'ON', + 8718 => 'ON', + 8719 => 'ON', + 8720 => 'ON', + 8721 => 'ON', + 8722 => 'ES', + 8723 => 'ET', + 8724 => 'ON', + 8725 => 'ON', + 8726 => 'ON', + 8727 => 'ON', + 8728 => 'ON', + 8729 => 'ON', + 8730 => 'ON', + 8731 => 'ON', + 8732 => 'ON', + 8733 => 'ON', + 8734 => 'ON', + 8735 => 'ON', + 8736 => 'ON', + 8737 => 'ON', + 8738 => 'ON', + 8739 => 'ON', + 8740 => 'ON', + 8741 => 'ON', + 8742 => 'ON', + 8743 => 'ON', + 8744 => 'ON', + 8745 => 'ON', + 8746 => 'ON', + 8747 => 'ON', + 8748 => 'ON', + 8749 => 'ON', + 8750 => 'ON', + 8751 => 'ON', + 8752 => 'ON', + 8753 => 'ON', + 8754 => 'ON', + 8755 => 'ON', + 8756 => 'ON', + 8757 => 'ON', + 8758 => 'ON', + 8759 => 'ON', + 8760 => 'ON', + 8761 => 'ON', + 8762 => 'ON', + 8763 => 'ON', + 8764 => 'ON', + 8765 => 'ON', + 8766 => 'ON', + 8767 => 'ON', + 8768 => 'ON', + 8769 => 'ON', + 8770 => 'ON', + 8771 => 'ON', + 8772 => 'ON', + 8773 => 'ON', + 8774 => 'ON', + 8775 => 'ON', + 8776 => 'ON', + 8777 => 'ON', + 8778 => 'ON', + 8779 => 'ON', + 8780 => 'ON', + 8781 => 'ON', + 8782 => 'ON', + 8783 => 'ON', + 8784 => 'ON', + 8785 => 'ON', + 8786 => 'ON', + 8787 => 'ON', + 8788 => 'ON', + 8789 => 'ON', + 8790 => 'ON', + 8791 => 'ON', + 8792 => 'ON', + 8793 => 'ON', + 8794 => 'ON', + 8795 => 'ON', + 8796 => 'ON', + 8797 => 'ON', + 8798 => 'ON', + 8799 => 'ON', + 8800 => 'ON', + 8801 => 'ON', + 8802 => 'ON', + 8803 => 'ON', + 8804 => 'ON', + 8805 => 'ON', + 8806 => 'ON', + 8807 => 'ON', + 8808 => 'ON', + 8809 => 'ON', + 8810 => 'ON', + 8811 => 'ON', + 8812 => 'ON', + 8813 => 'ON', + 8814 => 'ON', + 8815 => 'ON', + 8816 => 'ON', + 8817 => 'ON', + 8818 => 'ON', + 8819 => 'ON', + 8820 => 'ON', + 8821 => 'ON', + 8822 => 'ON', + 8823 => 'ON', + 8824 => 'ON', + 8825 => 'ON', + 8826 => 'ON', + 8827 => 'ON', + 8828 => 'ON', + 8829 => 'ON', + 8830 => 'ON', + 8831 => 'ON', + 8832 => 'ON', + 8833 => 'ON', + 8834 => 'ON', + 8835 => 'ON', + 8836 => 'ON', + 8837 => 'ON', + 8838 => 'ON', + 8839 => 'ON', + 8840 => 'ON', + 8841 => 'ON', + 8842 => 'ON', + 8843 => 'ON', + 8844 => 'ON', + 8845 => 'ON', + 8846 => 'ON', + 8847 => 'ON', + 8848 => 'ON', + 8849 => 'ON', + 8850 => 'ON', + 8851 => 'ON', + 8852 => 'ON', + 8853 => 'ON', + 8854 => 'ON', + 8855 => 'ON', + 8856 => 'ON', + 8857 => 'ON', + 8858 => 'ON', + 8859 => 'ON', + 8860 => 'ON', + 8861 => 'ON', + 8862 => 'ON', + 8863 => 'ON', + 8864 => 'ON', + 8865 => 'ON', + 8866 => 'ON', + 8867 => 'ON', + 8868 => 'ON', + 8869 => 'ON', + 8870 => 'ON', + 8871 => 'ON', + 8872 => 'ON', + 8873 => 'ON', + 8874 => 'ON', + 8875 => 'ON', + 8876 => 'ON', + 8877 => 'ON', + 8878 => 'ON', + 8879 => 'ON', + 8880 => 'ON', + 8881 => 'ON', + 8882 => 'ON', + 8883 => 'ON', + 8884 => 'ON', + 8885 => 'ON', + 8886 => 'ON', + 8887 => 'ON', + 8888 => 'ON', + 8889 => 'ON', + 8890 => 'ON', + 8891 => 'ON', + 8892 => 'ON', + 8893 => 'ON', + 8894 => 'ON', + 8895 => 'ON', + 8896 => 'ON', + 8897 => 'ON', + 8898 => 'ON', + 8899 => 'ON', + 8900 => 'ON', + 8901 => 'ON', + 8902 => 'ON', + 8903 => 'ON', + 8904 => 'ON', + 8905 => 'ON', + 8906 => 'ON', + 8907 => 'ON', + 8908 => 'ON', + 8909 => 'ON', + 8910 => 'ON', + 8911 => 'ON', + 8912 => 'ON', + 8913 => 'ON', + 8914 => 'ON', + 8915 => 'ON', + 8916 => 'ON', + 8917 => 'ON', + 8918 => 'ON', + 8919 => 'ON', + 8920 => 'ON', + 8921 => 'ON', + 8922 => 'ON', + 8923 => 'ON', + 8924 => 'ON', + 8925 => 'ON', + 8926 => 'ON', + 8927 => 'ON', + 8928 => 'ON', + 8929 => 'ON', + 8930 => 'ON', + 8931 => 'ON', + 8932 => 'ON', + 8933 => 'ON', + 8934 => 'ON', + 8935 => 'ON', + 8936 => 'ON', + 8937 => 'ON', + 8938 => 'ON', + 8939 => 'ON', + 8940 => 'ON', + 8941 => 'ON', + 8942 => 'ON', + 8943 => 'ON', + 8944 => 'ON', + 8945 => 'ON', + 8946 => 'ON', + 8947 => 'ON', + 8948 => 'ON', + 8949 => 'ON', + 8950 => 'ON', + 8951 => 'ON', + 8952 => 'ON', + 8953 => 'ON', + 8954 => 'ON', + 8955 => 'ON', + 8956 => 'ON', + 8957 => 'ON', + 8958 => 'ON', + 8959 => 'ON', + 8960 => 'ON', + 8961 => 'ON', + 8962 => 'ON', + 8963 => 'ON', + 8964 => 'ON', + 8965 => 'ON', + 8966 => 'ON', + 8967 => 'ON', + 8968 => 'ON', + 8969 => 'ON', + 8970 => 'ON', + 8971 => 'ON', + 8972 => 'ON', + 8973 => 'ON', + 8974 => 'ON', + 8975 => 'ON', + 8976 => 'ON', + 8977 => 'ON', + 8978 => 'ON', + 8979 => 'ON', + 8980 => 'ON', + 8981 => 'ON', + 8982 => 'ON', + 8983 => 'ON', + 8984 => 'ON', + 8985 => 'ON', + 8986 => 'ON', + 8987 => 'ON', + 8988 => 'ON', + 8989 => 'ON', + 8990 => 'ON', + 8991 => 'ON', + 8992 => 'ON', + 8993 => 'ON', + 8994 => 'ON', + 8995 => 'ON', + 8996 => 'ON', + 8997 => 'ON', + 8998 => 'ON', + 8999 => 'ON', + 9000 => 'ON', + 9001 => 'ON', + 9002 => 'ON', + 9003 => 'ON', + 9004 => 'ON', + 9005 => 'ON', + 9006 => 'ON', + 9007 => 'ON', + 9008 => 'ON', + 9009 => 'ON', + 9010 => 'ON', + 9011 => 'ON', + 9012 => 'ON', + 9013 => 'ON', + 9014 => 'L', + 9015 => 'L', + 9016 => 'L', + 9017 => 'L', + 9018 => 'L', + 9019 => 'L', + 9020 => 'L', + 9021 => 'L', + 9022 => 'L', + 9023 => 'L', + 9024 => 'L', + 9025 => 'L', + 9026 => 'L', + 9027 => 'L', + 9028 => 'L', + 9029 => 'L', + 9030 => 'L', + 9031 => 'L', + 9032 => 'L', + 9033 => 'L', + 9034 => 'L', + 9035 => 'L', + 9036 => 'L', + 9037 => 'L', + 9038 => 'L', + 9039 => 'L', + 9040 => 'L', + 9041 => 'L', + 9042 => 'L', + 9043 => 'L', + 9044 => 'L', + 9045 => 'L', + 9046 => 'L', + 9047 => 'L', + 9048 => 'L', + 9049 => 'L', + 9050 => 'L', + 9051 => 'L', + 9052 => 'L', + 9053 => 'L', + 9054 => 'L', + 9055 => 'L', + 9056 => 'L', + 9057 => 'L', + 9058 => 'L', + 9059 => 'L', + 9060 => 'L', + 9061 => 'L', + 9062 => 'L', + 9063 => 'L', + 9064 => 'L', + 9065 => 'L', + 9066 => 'L', + 9067 => 'L', + 9068 => 'L', + 9069 => 'L', + 9070 => 'L', + 9071 => 'L', + 9072 => 'L', + 9073 => 'L', + 9074 => 'L', + 9075 => 'L', + 9076 => 'L', + 9077 => 'L', + 9078 => 'L', + 9079 => 'L', + 9080 => 'L', + 9081 => 'L', + 9082 => 'L', + 9083 => 'ON', + 9084 => 'ON', + 9085 => 'ON', + 9086 => 'ON', + 9087 => 'ON', + 9088 => 'ON', + 9089 => 'ON', + 9090 => 'ON', + 9091 => 'ON', + 9092 => 'ON', + 9093 => 'ON', + 9094 => 'ON', + 9095 => 'ON', + 9096 => 'ON', + 9097 => 'ON', + 9098 => 'ON', + 9099 => 'ON', + 9100 => 'ON', + 9101 => 'ON', + 9102 => 'ON', + 9103 => 'ON', + 9104 => 'ON', + 9105 => 'ON', + 9106 => 'ON', + 9107 => 'ON', + 9108 => 'ON', + 9109 => 'L', + 9110 => 'ON', + 9111 => 'ON', + 9112 => 'ON', + 9113 => 'ON', + 9114 => 'ON', + 9115 => 'ON', + 9116 => 'ON', + 9117 => 'ON', + 9118 => 'ON', + 9119 => 'ON', + 9120 => 'ON', + 9121 => 'ON', + 9122 => 'ON', + 9123 => 'ON', + 9124 => 'ON', + 9125 => 'ON', + 9126 => 'ON', + 9127 => 'ON', + 9128 => 'ON', + 9129 => 'ON', + 9130 => 'ON', + 9131 => 'ON', + 9132 => 'ON', + 9133 => 'ON', + 9134 => 'ON', + 9135 => 'ON', + 9136 => 'ON', + 9137 => 'ON', + 9138 => 'ON', + 9139 => 'ON', + 9140 => 'ON', + 9141 => 'ON', + 9142 => 'ON', + 9143 => 'ON', + 9144 => 'ON', + 9145 => 'ON', + 9146 => 'ON', + 9147 => 'ON', + 9148 => 'ON', + 9149 => 'ON', + 9150 => 'ON', + 9151 => 'ON', + 9152 => 'ON', + 9153 => 'ON', + 9154 => 'ON', + 9155 => 'ON', + 9156 => 'ON', + 9157 => 'ON', + 9158 => 'ON', + 9159 => 'ON', + 9160 => 'ON', + 9161 => 'ON', + 9162 => 'ON', + 9163 => 'ON', + 9164 => 'ON', + 9165 => 'ON', + 9166 => 'ON', + 9167 => 'ON', + 9168 => 'ON', + 9169 => 'ON', + 9170 => 'ON', + 9171 => 'ON', + 9172 => 'ON', + 9173 => 'ON', + 9174 => 'ON', + 9175 => 'ON', + 9176 => 'ON', + 9177 => 'ON', + 9178 => 'ON', + 9179 => 'ON', + 9180 => 'ON', + 9181 => 'ON', + 9182 => 'ON', + 9183 => 'ON', + 9184 => 'ON', + 9185 => 'ON', + 9186 => 'ON', + 9187 => 'ON', + 9188 => 'ON', + 9189 => 'ON', + 9190 => 'ON', + 9191 => 'ON', + 9216 => 'ON', + 9217 => 'ON', + 9218 => 'ON', + 9219 => 'ON', + 9220 => 'ON', + 9221 => 'ON', + 9222 => 'ON', + 9223 => 'ON', + 9224 => 'ON', + 9225 => 'ON', + 9226 => 'ON', + 9227 => 'ON', + 9228 => 'ON', + 9229 => 'ON', + 9230 => 'ON', + 9231 => 'ON', + 9232 => 'ON', + 9233 => 'ON', + 9234 => 'ON', + 9235 => 'ON', + 9236 => 'ON', + 9237 => 'ON', + 9238 => 'ON', + 9239 => 'ON', + 9240 => 'ON', + 9241 => 'ON', + 9242 => 'ON', + 9243 => 'ON', + 9244 => 'ON', + 9245 => 'ON', + 9246 => 'ON', + 9247 => 'ON', + 9248 => 'ON', + 9249 => 'ON', + 9250 => 'ON', + 9251 => 'ON', + 9252 => 'ON', + 9253 => 'ON', + 9254 => 'ON', + 9280 => 'ON', + 9281 => 'ON', + 9282 => 'ON', + 9283 => 'ON', + 9284 => 'ON', + 9285 => 'ON', + 9286 => 'ON', + 9287 => 'ON', + 9288 => 'ON', + 9289 => 'ON', + 9290 => 'ON', + 9312 => 'ON', + 9313 => 'ON', + 9314 => 'ON', + 9315 => 'ON', + 9316 => 'ON', + 9317 => 'ON', + 9318 => 'ON', + 9319 => 'ON', + 9320 => 'ON', + 9321 => 'ON', + 9322 => 'ON', + 9323 => 'ON', + 9324 => 'ON', + 9325 => 'ON', + 9326 => 'ON', + 9327 => 'ON', + 9328 => 'ON', + 9329 => 'ON', + 9330 => 'ON', + 9331 => 'ON', + 9332 => 'ON', + 9333 => 'ON', + 9334 => 'ON', + 9335 => 'ON', + 9336 => 'ON', + 9337 => 'ON', + 9338 => 'ON', + 9339 => 'ON', + 9340 => 'ON', + 9341 => 'ON', + 9342 => 'ON', + 9343 => 'ON', + 9344 => 'ON', + 9345 => 'ON', + 9346 => 'ON', + 9347 => 'ON', + 9348 => 'ON', + 9349 => 'ON', + 9350 => 'ON', + 9351 => 'ON', + 9352 => 'EN', + 9353 => 'EN', + 9354 => 'EN', + 9355 => 'EN', + 9356 => 'EN', + 9357 => 'EN', + 9358 => 'EN', + 9359 => 'EN', + 9360 => 'EN', + 9361 => 'EN', + 9362 => 'EN', + 9363 => 'EN', + 9364 => 'EN', + 9365 => 'EN', + 9366 => 'EN', + 9367 => 'EN', + 9368 => 'EN', + 9369 => 'EN', + 9370 => 'EN', + 9371 => 'EN', + 9372 => 'L', + 9373 => 'L', + 9374 => 'L', + 9375 => 'L', + 9376 => 'L', + 9377 => 'L', + 9378 => 'L', + 9379 => 'L', + 9380 => 'L', + 9381 => 'L', + 9382 => 'L', + 9383 => 'L', + 9384 => 'L', + 9385 => 'L', + 9386 => 'L', + 9387 => 'L', + 9388 => 'L', + 9389 => 'L', + 9390 => 'L', + 9391 => 'L', + 9392 => 'L', + 9393 => 'L', + 9394 => 'L', + 9395 => 'L', + 9396 => 'L', + 9397 => 'L', + 9398 => 'L', + 9399 => 'L', + 9400 => 'L', + 9401 => 'L', + 9402 => 'L', + 9403 => 'L', + 9404 => 'L', + 9405 => 'L', + 9406 => 'L', + 9407 => 'L', + 9408 => 'L', + 9409 => 'L', + 9410 => 'L', + 9411 => 'L', + 9412 => 'L', + 9413 => 'L', + 9414 => 'L', + 9415 => 'L', + 9416 => 'L', + 9417 => 'L', + 9418 => 'L', + 9419 => 'L', + 9420 => 'L', + 9421 => 'L', + 9422 => 'L', + 9423 => 'L', + 9424 => 'L', + 9425 => 'L', + 9426 => 'L', + 9427 => 'L', + 9428 => 'L', + 9429 => 'L', + 9430 => 'L', + 9431 => 'L', + 9432 => 'L', + 9433 => 'L', + 9434 => 'L', + 9435 => 'L', + 9436 => 'L', + 9437 => 'L', + 9438 => 'L', + 9439 => 'L', + 9440 => 'L', + 9441 => 'L', + 9442 => 'L', + 9443 => 'L', + 9444 => 'L', + 9445 => 'L', + 9446 => 'L', + 9447 => 'L', + 9448 => 'L', + 9449 => 'L', + 9450 => 'ON', + 9451 => 'ON', + 9452 => 'ON', + 9453 => 'ON', + 9454 => 'ON', + 9455 => 'ON', + 9456 => 'ON', + 9457 => 'ON', + 9458 => 'ON', + 9459 => 'ON', + 9460 => 'ON', + 9461 => 'ON', + 9462 => 'ON', + 9463 => 'ON', + 9464 => 'ON', + 9465 => 'ON', + 9466 => 'ON', + 9467 => 'ON', + 9468 => 'ON', + 9469 => 'ON', + 9470 => 'ON', + 9471 => 'ON', + 9472 => 'ON', + 9473 => 'ON', + 9474 => 'ON', + 9475 => 'ON', + 9476 => 'ON', + 9477 => 'ON', + 9478 => 'ON', + 9479 => 'ON', + 9480 => 'ON', + 9481 => 'ON', + 9482 => 'ON', + 9483 => 'ON', + 9484 => 'ON', + 9485 => 'ON', + 9486 => 'ON', + 9487 => 'ON', + 9488 => 'ON', + 9489 => 'ON', + 9490 => 'ON', + 9491 => 'ON', + 9492 => 'ON', + 9493 => 'ON', + 9494 => 'ON', + 9495 => 'ON', + 9496 => 'ON', + 9497 => 'ON', + 9498 => 'ON', + 9499 => 'ON', + 9500 => 'ON', + 9501 => 'ON', + 9502 => 'ON', + 9503 => 'ON', + 9504 => 'ON', + 9505 => 'ON', + 9506 => 'ON', + 9507 => 'ON', + 9508 => 'ON', + 9509 => 'ON', + 9510 => 'ON', + 9511 => 'ON', + 9512 => 'ON', + 9513 => 'ON', + 9514 => 'ON', + 9515 => 'ON', + 9516 => 'ON', + 9517 => 'ON', + 9518 => 'ON', + 9519 => 'ON', + 9520 => 'ON', + 9521 => 'ON', + 9522 => 'ON', + 9523 => 'ON', + 9524 => 'ON', + 9525 => 'ON', + 9526 => 'ON', + 9527 => 'ON', + 9528 => 'ON', + 9529 => 'ON', + 9530 => 'ON', + 9531 => 'ON', + 9532 => 'ON', + 9533 => 'ON', + 9534 => 'ON', + 9535 => 'ON', + 9536 => 'ON', + 9537 => 'ON', + 9538 => 'ON', + 9539 => 'ON', + 9540 => 'ON', + 9541 => 'ON', + 9542 => 'ON', + 9543 => 'ON', + 9544 => 'ON', + 9545 => 'ON', + 9546 => 'ON', + 9547 => 'ON', + 9548 => 'ON', + 9549 => 'ON', + 9550 => 'ON', + 9551 => 'ON', + 9552 => 'ON', + 9553 => 'ON', + 9554 => 'ON', + 9555 => 'ON', + 9556 => 'ON', + 9557 => 'ON', + 9558 => 'ON', + 9559 => 'ON', + 9560 => 'ON', + 9561 => 'ON', + 9562 => 'ON', + 9563 => 'ON', + 9564 => 'ON', + 9565 => 'ON', + 9566 => 'ON', + 9567 => 'ON', + 9568 => 'ON', + 9569 => 'ON', + 9570 => 'ON', + 9571 => 'ON', + 9572 => 'ON', + 9573 => 'ON', + 9574 => 'ON', + 9575 => 'ON', + 9576 => 'ON', + 9577 => 'ON', + 9578 => 'ON', + 9579 => 'ON', + 9580 => 'ON', + 9581 => 'ON', + 9582 => 'ON', + 9583 => 'ON', + 9584 => 'ON', + 9585 => 'ON', + 9586 => 'ON', + 9587 => 'ON', + 9588 => 'ON', + 9589 => 'ON', + 9590 => 'ON', + 9591 => 'ON', + 9592 => 'ON', + 9593 => 'ON', + 9594 => 'ON', + 9595 => 'ON', + 9596 => 'ON', + 9597 => 'ON', + 9598 => 'ON', + 9599 => 'ON', + 9600 => 'ON', + 9601 => 'ON', + 9602 => 'ON', + 9603 => 'ON', + 9604 => 'ON', + 9605 => 'ON', + 9606 => 'ON', + 9607 => 'ON', + 9608 => 'ON', + 9609 => 'ON', + 9610 => 'ON', + 9611 => 'ON', + 9612 => 'ON', + 9613 => 'ON', + 9614 => 'ON', + 9615 => 'ON', + 9616 => 'ON', + 9617 => 'ON', + 9618 => 'ON', + 9619 => 'ON', + 9620 => 'ON', + 9621 => 'ON', + 9622 => 'ON', + 9623 => 'ON', + 9624 => 'ON', + 9625 => 'ON', + 9626 => 'ON', + 9627 => 'ON', + 9628 => 'ON', + 9629 => 'ON', + 9630 => 'ON', + 9631 => 'ON', + 9632 => 'ON', + 9633 => 'ON', + 9634 => 'ON', + 9635 => 'ON', + 9636 => 'ON', + 9637 => 'ON', + 9638 => 'ON', + 9639 => 'ON', + 9640 => 'ON', + 9641 => 'ON', + 9642 => 'ON', + 9643 => 'ON', + 9644 => 'ON', + 9645 => 'ON', + 9646 => 'ON', + 9647 => 'ON', + 9648 => 'ON', + 9649 => 'ON', + 9650 => 'ON', + 9651 => 'ON', + 9652 => 'ON', + 9653 => 'ON', + 9654 => 'ON', + 9655 => 'ON', + 9656 => 'ON', + 9657 => 'ON', + 9658 => 'ON', + 9659 => 'ON', + 9660 => 'ON', + 9661 => 'ON', + 9662 => 'ON', + 9663 => 'ON', + 9664 => 'ON', + 9665 => 'ON', + 9666 => 'ON', + 9667 => 'ON', + 9668 => 'ON', + 9669 => 'ON', + 9670 => 'ON', + 9671 => 'ON', + 9672 => 'ON', + 9673 => 'ON', + 9674 => 'ON', + 9675 => 'ON', + 9676 => 'ON', + 9677 => 'ON', + 9678 => 'ON', + 9679 => 'ON', + 9680 => 'ON', + 9681 => 'ON', + 9682 => 'ON', + 9683 => 'ON', + 9684 => 'ON', + 9685 => 'ON', + 9686 => 'ON', + 9687 => 'ON', + 9688 => 'ON', + 9689 => 'ON', + 9690 => 'ON', + 9691 => 'ON', + 9692 => 'ON', + 9693 => 'ON', + 9694 => 'ON', + 9695 => 'ON', + 9696 => 'ON', + 9697 => 'ON', + 9698 => 'ON', + 9699 => 'ON', + 9700 => 'ON', + 9701 => 'ON', + 9702 => 'ON', + 9703 => 'ON', + 9704 => 'ON', + 9705 => 'ON', + 9706 => 'ON', + 9707 => 'ON', + 9708 => 'ON', + 9709 => 'ON', + 9710 => 'ON', + 9711 => 'ON', + 9712 => 'ON', + 9713 => 'ON', + 9714 => 'ON', + 9715 => 'ON', + 9716 => 'ON', + 9717 => 'ON', + 9718 => 'ON', + 9719 => 'ON', + 9720 => 'ON', + 9721 => 'ON', + 9722 => 'ON', + 9723 => 'ON', + 9724 => 'ON', + 9725 => 'ON', + 9726 => 'ON', + 9727 => 'ON', + 9728 => 'ON', + 9729 => 'ON', + 9730 => 'ON', + 9731 => 'ON', + 9732 => 'ON', + 9733 => 'ON', + 9734 => 'ON', + 9735 => 'ON', + 9736 => 'ON', + 9737 => 'ON', + 9738 => 'ON', + 9739 => 'ON', + 9740 => 'ON', + 9741 => 'ON', + 9742 => 'ON', + 9743 => 'ON', + 9744 => 'ON', + 9745 => 'ON', + 9746 => 'ON', + 9747 => 'ON', + 9748 => 'ON', + 9749 => 'ON', + 9750 => 'ON', + 9751 => 'ON', + 9752 => 'ON', + 9753 => 'ON', + 9754 => 'ON', + 9755 => 'ON', + 9756 => 'ON', + 9757 => 'ON', + 9758 => 'ON', + 9759 => 'ON', + 9760 => 'ON', + 9761 => 'ON', + 9762 => 'ON', + 9763 => 'ON', + 9764 => 'ON', + 9765 => 'ON', + 9766 => 'ON', + 9767 => 'ON', + 9768 => 'ON', + 9769 => 'ON', + 9770 => 'ON', + 9771 => 'ON', + 9772 => 'ON', + 9773 => 'ON', + 9774 => 'ON', + 9775 => 'ON', + 9776 => 'ON', + 9777 => 'ON', + 9778 => 'ON', + 9779 => 'ON', + 9780 => 'ON', + 9781 => 'ON', + 9782 => 'ON', + 9783 => 'ON', + 9784 => 'ON', + 9785 => 'ON', + 9786 => 'ON', + 9787 => 'ON', + 9788 => 'ON', + 9789 => 'ON', + 9790 => 'ON', + 9791 => 'ON', + 9792 => 'ON', + 9793 => 'ON', + 9794 => 'ON', + 9795 => 'ON', + 9796 => 'ON', + 9797 => 'ON', + 9798 => 'ON', + 9799 => 'ON', + 9800 => 'ON', + 9801 => 'ON', + 9802 => 'ON', + 9803 => 'ON', + 9804 => 'ON', + 9805 => 'ON', + 9806 => 'ON', + 9807 => 'ON', + 9808 => 'ON', + 9809 => 'ON', + 9810 => 'ON', + 9811 => 'ON', + 9812 => 'ON', + 9813 => 'ON', + 9814 => 'ON', + 9815 => 'ON', + 9816 => 'ON', + 9817 => 'ON', + 9818 => 'ON', + 9819 => 'ON', + 9820 => 'ON', + 9821 => 'ON', + 9822 => 'ON', + 9823 => 'ON', + 9824 => 'ON', + 9825 => 'ON', + 9826 => 'ON', + 9827 => 'ON', + 9828 => 'ON', + 9829 => 'ON', + 9830 => 'ON', + 9831 => 'ON', + 9832 => 'ON', + 9833 => 'ON', + 9834 => 'ON', + 9835 => 'ON', + 9836 => 'ON', + 9837 => 'ON', + 9838 => 'ON', + 9839 => 'ON', + 9840 => 'ON', + 9841 => 'ON', + 9842 => 'ON', + 9843 => 'ON', + 9844 => 'ON', + 9845 => 'ON', + 9846 => 'ON', + 9847 => 'ON', + 9848 => 'ON', + 9849 => 'ON', + 9850 => 'ON', + 9851 => 'ON', + 9852 => 'ON', + 9853 => 'ON', + 9854 => 'ON', + 9855 => 'ON', + 9856 => 'ON', + 9857 => 'ON', + 9858 => 'ON', + 9859 => 'ON', + 9860 => 'ON', + 9861 => 'ON', + 9862 => 'ON', + 9863 => 'ON', + 9864 => 'ON', + 9865 => 'ON', + 9866 => 'ON', + 9867 => 'ON', + 9868 => 'ON', + 9869 => 'ON', + 9870 => 'ON', + 9871 => 'ON', + 9872 => 'ON', + 9873 => 'ON', + 9874 => 'ON', + 9875 => 'ON', + 9876 => 'ON', + 9877 => 'ON', + 9878 => 'ON', + 9879 => 'ON', + 9880 => 'ON', + 9881 => 'ON', + 9882 => 'ON', + 9883 => 'ON', + 9884 => 'ON', + 9888 => 'ON', + 9889 => 'ON', + 9890 => 'ON', + 9891 => 'ON', + 9892 => 'ON', + 9893 => 'ON', + 9894 => 'ON', + 9895 => 'ON', + 9896 => 'ON', + 9897 => 'ON', + 9898 => 'ON', + 9899 => 'ON', + 9900 => 'L', + 9901 => 'ON', + 9902 => 'ON', + 9903 => 'ON', + 9904 => 'ON', + 9905 => 'ON', + 9906 => 'ON', + 9985 => 'ON', + 9986 => 'ON', + 9987 => 'ON', + 9988 => 'ON', + 9990 => 'ON', + 9991 => 'ON', + 9992 => 'ON', + 9993 => 'ON', + 9996 => 'ON', + 9997 => 'ON', + 9998 => 'ON', + 9999 => 'ON', + 10000 => 'ON', + 10001 => 'ON', + 10002 => 'ON', + 10003 => 'ON', + 10004 => 'ON', + 10005 => 'ON', + 10006 => 'ON', + 10007 => 'ON', + 10008 => 'ON', + 10009 => 'ON', + 10010 => 'ON', + 10011 => 'ON', + 10012 => 'ON', + 10013 => 'ON', + 10014 => 'ON', + 10015 => 'ON', + 10016 => 'ON', + 10017 => 'ON', + 10018 => 'ON', + 10019 => 'ON', + 10020 => 'ON', + 10021 => 'ON', + 10022 => 'ON', + 10023 => 'ON', + 10025 => 'ON', + 10026 => 'ON', + 10027 => 'ON', + 10028 => 'ON', + 10029 => 'ON', + 10030 => 'ON', + 10031 => 'ON', + 10032 => 'ON', + 10033 => 'ON', + 10034 => 'ON', + 10035 => 'ON', + 10036 => 'ON', + 10037 => 'ON', + 10038 => 'ON', + 10039 => 'ON', + 10040 => 'ON', + 10041 => 'ON', + 10042 => 'ON', + 10043 => 'ON', + 10044 => 'ON', + 10045 => 'ON', + 10046 => 'ON', + 10047 => 'ON', + 10048 => 'ON', + 10049 => 'ON', + 10050 => 'ON', + 10051 => 'ON', + 10052 => 'ON', + 10053 => 'ON', + 10054 => 'ON', + 10055 => 'ON', + 10056 => 'ON', + 10057 => 'ON', + 10058 => 'ON', + 10059 => 'ON', + 10061 => 'ON', + 10063 => 'ON', + 10064 => 'ON', + 10065 => 'ON', + 10066 => 'ON', + 10070 => 'ON', + 10072 => 'ON', + 10073 => 'ON', + 10074 => 'ON', + 10075 => 'ON', + 10076 => 'ON', + 10077 => 'ON', + 10078 => 'ON', + 10081 => 'ON', + 10082 => 'ON', + 10083 => 'ON', + 10084 => 'ON', + 10085 => 'ON', + 10086 => 'ON', + 10087 => 'ON', + 10088 => 'ON', + 10089 => 'ON', + 10090 => 'ON', + 10091 => 'ON', + 10092 => 'ON', + 10093 => 'ON', + 10094 => 'ON', + 10095 => 'ON', + 10096 => 'ON', + 10097 => 'ON', + 10098 => 'ON', + 10099 => 'ON', + 10100 => 'ON', + 10101 => 'ON', + 10102 => 'ON', + 10103 => 'ON', + 10104 => 'ON', + 10105 => 'ON', + 10106 => 'ON', + 10107 => 'ON', + 10108 => 'ON', + 10109 => 'ON', + 10110 => 'ON', + 10111 => 'ON', + 10112 => 'ON', + 10113 => 'ON', + 10114 => 'ON', + 10115 => 'ON', + 10116 => 'ON', + 10117 => 'ON', + 10118 => 'ON', + 10119 => 'ON', + 10120 => 'ON', + 10121 => 'ON', + 10122 => 'ON', + 10123 => 'ON', + 10124 => 'ON', + 10125 => 'ON', + 10126 => 'ON', + 10127 => 'ON', + 10128 => 'ON', + 10129 => 'ON', + 10130 => 'ON', + 10131 => 'ON', + 10132 => 'ON', + 10136 => 'ON', + 10137 => 'ON', + 10138 => 'ON', + 10139 => 'ON', + 10140 => 'ON', + 10141 => 'ON', + 10142 => 'ON', + 10143 => 'ON', + 10144 => 'ON', + 10145 => 'ON', + 10146 => 'ON', + 10147 => 'ON', + 10148 => 'ON', + 10149 => 'ON', + 10150 => 'ON', + 10151 => 'ON', + 10152 => 'ON', + 10153 => 'ON', + 10154 => 'ON', + 10155 => 'ON', + 10156 => 'ON', + 10157 => 'ON', + 10158 => 'ON', + 10159 => 'ON', + 10161 => 'ON', + 10162 => 'ON', + 10163 => 'ON', + 10164 => 'ON', + 10165 => 'ON', + 10166 => 'ON', + 10167 => 'ON', + 10168 => 'ON', + 10169 => 'ON', + 10170 => 'ON', + 10171 => 'ON', + 10172 => 'ON', + 10173 => 'ON', + 10174 => 'ON', + 10176 => 'ON', + 10177 => 'ON', + 10178 => 'ON', + 10179 => 'ON', + 10180 => 'ON', + 10181 => 'ON', + 10182 => 'ON', + 10183 => 'ON', + 10184 => 'ON', + 10185 => 'ON', + 10186 => 'ON', + 10192 => 'ON', + 10193 => 'ON', + 10194 => 'ON', + 10195 => 'ON', + 10196 => 'ON', + 10197 => 'ON', + 10198 => 'ON', + 10199 => 'ON', + 10200 => 'ON', + 10201 => 'ON', + 10202 => 'ON', + 10203 => 'ON', + 10204 => 'ON', + 10205 => 'ON', + 10206 => 'ON', + 10207 => 'ON', + 10208 => 'ON', + 10209 => 'ON', + 10210 => 'ON', + 10211 => 'ON', + 10212 => 'ON', + 10213 => 'ON', + 10214 => 'ON', + 10215 => 'ON', + 10216 => 'ON', + 10217 => 'ON', + 10218 => 'ON', + 10219 => 'ON', + 10224 => 'ON', + 10225 => 'ON', + 10226 => 'ON', + 10227 => 'ON', + 10228 => 'ON', + 10229 => 'ON', + 10230 => 'ON', + 10231 => 'ON', + 10232 => 'ON', + 10233 => 'ON', + 10234 => 'ON', + 10235 => 'ON', + 10236 => 'ON', + 10237 => 'ON', + 10238 => 'ON', + 10239 => 'ON', + 10240 => 'L', + 10241 => 'L', + 10242 => 'L', + 10243 => 'L', + 10244 => 'L', + 10245 => 'L', + 10246 => 'L', + 10247 => 'L', + 10248 => 'L', + 10249 => 'L', + 10250 => 'L', + 10251 => 'L', + 10252 => 'L', + 10253 => 'L', + 10254 => 'L', + 10255 => 'L', + 10256 => 'L', + 10257 => 'L', + 10258 => 'L', + 10259 => 'L', + 10260 => 'L', + 10261 => 'L', + 10262 => 'L', + 10263 => 'L', + 10264 => 'L', + 10265 => 'L', + 10266 => 'L', + 10267 => 'L', + 10268 => 'L', + 10269 => 'L', + 10270 => 'L', + 10271 => 'L', + 10272 => 'L', + 10273 => 'L', + 10274 => 'L', + 10275 => 'L', + 10276 => 'L', + 10277 => 'L', + 10278 => 'L', + 10279 => 'L', + 10280 => 'L', + 10281 => 'L', + 10282 => 'L', + 10283 => 'L', + 10284 => 'L', + 10285 => 'L', + 10286 => 'L', + 10287 => 'L', + 10288 => 'L', + 10289 => 'L', + 10290 => 'L', + 10291 => 'L', + 10292 => 'L', + 10293 => 'L', + 10294 => 'L', + 10295 => 'L', + 10296 => 'L', + 10297 => 'L', + 10298 => 'L', + 10299 => 'L', + 10300 => 'L', + 10301 => 'L', + 10302 => 'L', + 10303 => 'L', + 10304 => 'L', + 10305 => 'L', + 10306 => 'L', + 10307 => 'L', + 10308 => 'L', + 10309 => 'L', + 10310 => 'L', + 10311 => 'L', + 10312 => 'L', + 10313 => 'L', + 10314 => 'L', + 10315 => 'L', + 10316 => 'L', + 10317 => 'L', + 10318 => 'L', + 10319 => 'L', + 10320 => 'L', + 10321 => 'L', + 10322 => 'L', + 10323 => 'L', + 10324 => 'L', + 10325 => 'L', + 10326 => 'L', + 10327 => 'L', + 10328 => 'L', + 10329 => 'L', + 10330 => 'L', + 10331 => 'L', + 10332 => 'L', + 10333 => 'L', + 10334 => 'L', + 10335 => 'L', + 10336 => 'L', + 10337 => 'L', + 10338 => 'L', + 10339 => 'L', + 10340 => 'L', + 10341 => 'L', + 10342 => 'L', + 10343 => 'L', + 10344 => 'L', + 10345 => 'L', + 10346 => 'L', + 10347 => 'L', + 10348 => 'L', + 10349 => 'L', + 10350 => 'L', + 10351 => 'L', + 10352 => 'L', + 10353 => 'L', + 10354 => 'L', + 10355 => 'L', + 10356 => 'L', + 10357 => 'L', + 10358 => 'L', + 10359 => 'L', + 10360 => 'L', + 10361 => 'L', + 10362 => 'L', + 10363 => 'L', + 10364 => 'L', + 10365 => 'L', + 10366 => 'L', + 10367 => 'L', + 10368 => 'L', + 10369 => 'L', + 10370 => 'L', + 10371 => 'L', + 10372 => 'L', + 10373 => 'L', + 10374 => 'L', + 10375 => 'L', + 10376 => 'L', + 10377 => 'L', + 10378 => 'L', + 10379 => 'L', + 10380 => 'L', + 10381 => 'L', + 10382 => 'L', + 10383 => 'L', + 10384 => 'L', + 10385 => 'L', + 10386 => 'L', + 10387 => 'L', + 10388 => 'L', + 10389 => 'L', + 10390 => 'L', + 10391 => 'L', + 10392 => 'L', + 10393 => 'L', + 10394 => 'L', + 10395 => 'L', + 10396 => 'L', + 10397 => 'L', + 10398 => 'L', + 10399 => 'L', + 10400 => 'L', + 10401 => 'L', + 10402 => 'L', + 10403 => 'L', + 10404 => 'L', + 10405 => 'L', + 10406 => 'L', + 10407 => 'L', + 10408 => 'L', + 10409 => 'L', + 10410 => 'L', + 10411 => 'L', + 10412 => 'L', + 10413 => 'L', + 10414 => 'L', + 10415 => 'L', + 10416 => 'L', + 10417 => 'L', + 10418 => 'L', + 10419 => 'L', + 10420 => 'L', + 10421 => 'L', + 10422 => 'L', + 10423 => 'L', + 10424 => 'L', + 10425 => 'L', + 10426 => 'L', + 10427 => 'L', + 10428 => 'L', + 10429 => 'L', + 10430 => 'L', + 10431 => 'L', + 10432 => 'L', + 10433 => 'L', + 10434 => 'L', + 10435 => 'L', + 10436 => 'L', + 10437 => 'L', + 10438 => 'L', + 10439 => 'L', + 10440 => 'L', + 10441 => 'L', + 10442 => 'L', + 10443 => 'L', + 10444 => 'L', + 10445 => 'L', + 10446 => 'L', + 10447 => 'L', + 10448 => 'L', + 10449 => 'L', + 10450 => 'L', + 10451 => 'L', + 10452 => 'L', + 10453 => 'L', + 10454 => 'L', + 10455 => 'L', + 10456 => 'L', + 10457 => 'L', + 10458 => 'L', + 10459 => 'L', + 10460 => 'L', + 10461 => 'L', + 10462 => 'L', + 10463 => 'L', + 10464 => 'L', + 10465 => 'L', + 10466 => 'L', + 10467 => 'L', + 10468 => 'L', + 10469 => 'L', + 10470 => 'L', + 10471 => 'L', + 10472 => 'L', + 10473 => 'L', + 10474 => 'L', + 10475 => 'L', + 10476 => 'L', + 10477 => 'L', + 10478 => 'L', + 10479 => 'L', + 10480 => 'L', + 10481 => 'L', + 10482 => 'L', + 10483 => 'L', + 10484 => 'L', + 10485 => 'L', + 10486 => 'L', + 10487 => 'L', + 10488 => 'L', + 10489 => 'L', + 10490 => 'L', + 10491 => 'L', + 10492 => 'L', + 10493 => 'L', + 10494 => 'L', + 10495 => 'L', + 10496 => 'ON', + 10497 => 'ON', + 10498 => 'ON', + 10499 => 'ON', + 10500 => 'ON', + 10501 => 'ON', + 10502 => 'ON', + 10503 => 'ON', + 10504 => 'ON', + 10505 => 'ON', + 10506 => 'ON', + 10507 => 'ON', + 10508 => 'ON', + 10509 => 'ON', + 10510 => 'ON', + 10511 => 'ON', + 10512 => 'ON', + 10513 => 'ON', + 10514 => 'ON', + 10515 => 'ON', + 10516 => 'ON', + 10517 => 'ON', + 10518 => 'ON', + 10519 => 'ON', + 10520 => 'ON', + 10521 => 'ON', + 10522 => 'ON', + 10523 => 'ON', + 10524 => 'ON', + 10525 => 'ON', + 10526 => 'ON', + 10527 => 'ON', + 10528 => 'ON', + 10529 => 'ON', + 10530 => 'ON', + 10531 => 'ON', + 10532 => 'ON', + 10533 => 'ON', + 10534 => 'ON', + 10535 => 'ON', + 10536 => 'ON', + 10537 => 'ON', + 10538 => 'ON', + 10539 => 'ON', + 10540 => 'ON', + 10541 => 'ON', + 10542 => 'ON', + 10543 => 'ON', + 10544 => 'ON', + 10545 => 'ON', + 10546 => 'ON', + 10547 => 'ON', + 10548 => 'ON', + 10549 => 'ON', + 10550 => 'ON', + 10551 => 'ON', + 10552 => 'ON', + 10553 => 'ON', + 10554 => 'ON', + 10555 => 'ON', + 10556 => 'ON', + 10557 => 'ON', + 10558 => 'ON', + 10559 => 'ON', + 10560 => 'ON', + 10561 => 'ON', + 10562 => 'ON', + 10563 => 'ON', + 10564 => 'ON', + 10565 => 'ON', + 10566 => 'ON', + 10567 => 'ON', + 10568 => 'ON', + 10569 => 'ON', + 10570 => 'ON', + 10571 => 'ON', + 10572 => 'ON', + 10573 => 'ON', + 10574 => 'ON', + 10575 => 'ON', + 10576 => 'ON', + 10577 => 'ON', + 10578 => 'ON', + 10579 => 'ON', + 10580 => 'ON', + 10581 => 'ON', + 10582 => 'ON', + 10583 => 'ON', + 10584 => 'ON', + 10585 => 'ON', + 10586 => 'ON', + 10587 => 'ON', + 10588 => 'ON', + 10589 => 'ON', + 10590 => 'ON', + 10591 => 'ON', + 10592 => 'ON', + 10593 => 'ON', + 10594 => 'ON', + 10595 => 'ON', + 10596 => 'ON', + 10597 => 'ON', + 10598 => 'ON', + 10599 => 'ON', + 10600 => 'ON', + 10601 => 'ON', + 10602 => 'ON', + 10603 => 'ON', + 10604 => 'ON', + 10605 => 'ON', + 10606 => 'ON', + 10607 => 'ON', + 10608 => 'ON', + 10609 => 'ON', + 10610 => 'ON', + 10611 => 'ON', + 10612 => 'ON', + 10613 => 'ON', + 10614 => 'ON', + 10615 => 'ON', + 10616 => 'ON', + 10617 => 'ON', + 10618 => 'ON', + 10619 => 'ON', + 10620 => 'ON', + 10621 => 'ON', + 10622 => 'ON', + 10623 => 'ON', + 10624 => 'ON', + 10625 => 'ON', + 10626 => 'ON', + 10627 => 'ON', + 10628 => 'ON', + 10629 => 'ON', + 10630 => 'ON', + 10631 => 'ON', + 10632 => 'ON', + 10633 => 'ON', + 10634 => 'ON', + 10635 => 'ON', + 10636 => 'ON', + 10637 => 'ON', + 10638 => 'ON', + 10639 => 'ON', + 10640 => 'ON', + 10641 => 'ON', + 10642 => 'ON', + 10643 => 'ON', + 10644 => 'ON', + 10645 => 'ON', + 10646 => 'ON', + 10647 => 'ON', + 10648 => 'ON', + 10649 => 'ON', + 10650 => 'ON', + 10651 => 'ON', + 10652 => 'ON', + 10653 => 'ON', + 10654 => 'ON', + 10655 => 'ON', + 10656 => 'ON', + 10657 => 'ON', + 10658 => 'ON', + 10659 => 'ON', + 10660 => 'ON', + 10661 => 'ON', + 10662 => 'ON', + 10663 => 'ON', + 10664 => 'ON', + 10665 => 'ON', + 10666 => 'ON', + 10667 => 'ON', + 10668 => 'ON', + 10669 => 'ON', + 10670 => 'ON', + 10671 => 'ON', + 10672 => 'ON', + 10673 => 'ON', + 10674 => 'ON', + 10675 => 'ON', + 10676 => 'ON', + 10677 => 'ON', + 10678 => 'ON', + 10679 => 'ON', + 10680 => 'ON', + 10681 => 'ON', + 10682 => 'ON', + 10683 => 'ON', + 10684 => 'ON', + 10685 => 'ON', + 10686 => 'ON', + 10687 => 'ON', + 10688 => 'ON', + 10689 => 'ON', + 10690 => 'ON', + 10691 => 'ON', + 10692 => 'ON', + 10693 => 'ON', + 10694 => 'ON', + 10695 => 'ON', + 10696 => 'ON', + 10697 => 'ON', + 10698 => 'ON', + 10699 => 'ON', + 10700 => 'ON', + 10701 => 'ON', + 10702 => 'ON', + 10703 => 'ON', + 10704 => 'ON', + 10705 => 'ON', + 10706 => 'ON', + 10707 => 'ON', + 10708 => 'ON', + 10709 => 'ON', + 10710 => 'ON', + 10711 => 'ON', + 10712 => 'ON', + 10713 => 'ON', + 10714 => 'ON', + 10715 => 'ON', + 10716 => 'ON', + 10717 => 'ON', + 10718 => 'ON', + 10719 => 'ON', + 10720 => 'ON', + 10721 => 'ON', + 10722 => 'ON', + 10723 => 'ON', + 10724 => 'ON', + 10725 => 'ON', + 10726 => 'ON', + 10727 => 'ON', + 10728 => 'ON', + 10729 => 'ON', + 10730 => 'ON', + 10731 => 'ON', + 10732 => 'ON', + 10733 => 'ON', + 10734 => 'ON', + 10735 => 'ON', + 10736 => 'ON', + 10737 => 'ON', + 10738 => 'ON', + 10739 => 'ON', + 10740 => 'ON', + 10741 => 'ON', + 10742 => 'ON', + 10743 => 'ON', + 10744 => 'ON', + 10745 => 'ON', + 10746 => 'ON', + 10747 => 'ON', + 10748 => 'ON', + 10749 => 'ON', + 10750 => 'ON', + 10751 => 'ON', + 10752 => 'ON', + 10753 => 'ON', + 10754 => 'ON', + 10755 => 'ON', + 10756 => 'ON', + 10757 => 'ON', + 10758 => 'ON', + 10759 => 'ON', + 10760 => 'ON', + 10761 => 'ON', + 10762 => 'ON', + 10763 => 'ON', + 10764 => 'ON', + 10765 => 'ON', + 10766 => 'ON', + 10767 => 'ON', + 10768 => 'ON', + 10769 => 'ON', + 10770 => 'ON', + 10771 => 'ON', + 10772 => 'ON', + 10773 => 'ON', + 10774 => 'ON', + 10775 => 'ON', + 10776 => 'ON', + 10777 => 'ON', + 10778 => 'ON', + 10779 => 'ON', + 10780 => 'ON', + 10781 => 'ON', + 10782 => 'ON', + 10783 => 'ON', + 10784 => 'ON', + 10785 => 'ON', + 10786 => 'ON', + 10787 => 'ON', + 10788 => 'ON', + 10789 => 'ON', + 10790 => 'ON', + 10791 => 'ON', + 10792 => 'ON', + 10793 => 'ON', + 10794 => 'ON', + 10795 => 'ON', + 10796 => 'ON', + 10797 => 'ON', + 10798 => 'ON', + 10799 => 'ON', + 10800 => 'ON', + 10801 => 'ON', + 10802 => 'ON', + 10803 => 'ON', + 10804 => 'ON', + 10805 => 'ON', + 10806 => 'ON', + 10807 => 'ON', + 10808 => 'ON', + 10809 => 'ON', + 10810 => 'ON', + 10811 => 'ON', + 10812 => 'ON', + 10813 => 'ON', + 10814 => 'ON', + 10815 => 'ON', + 10816 => 'ON', + 10817 => 'ON', + 10818 => 'ON', + 10819 => 'ON', + 10820 => 'ON', + 10821 => 'ON', + 10822 => 'ON', + 10823 => 'ON', + 10824 => 'ON', + 10825 => 'ON', + 10826 => 'ON', + 10827 => 'ON', + 10828 => 'ON', + 10829 => 'ON', + 10830 => 'ON', + 10831 => 'ON', + 10832 => 'ON', + 10833 => 'ON', + 10834 => 'ON', + 10835 => 'ON', + 10836 => 'ON', + 10837 => 'ON', + 10838 => 'ON', + 10839 => 'ON', + 10840 => 'ON', + 10841 => 'ON', + 10842 => 'ON', + 10843 => 'ON', + 10844 => 'ON', + 10845 => 'ON', + 10846 => 'ON', + 10847 => 'ON', + 10848 => 'ON', + 10849 => 'ON', + 10850 => 'ON', + 10851 => 'ON', + 10852 => 'ON', + 10853 => 'ON', + 10854 => 'ON', + 10855 => 'ON', + 10856 => 'ON', + 10857 => 'ON', + 10858 => 'ON', + 10859 => 'ON', + 10860 => 'ON', + 10861 => 'ON', + 10862 => 'ON', + 10863 => 'ON', + 10864 => 'ON', + 10865 => 'ON', + 10866 => 'ON', + 10867 => 'ON', + 10868 => 'ON', + 10869 => 'ON', + 10870 => 'ON', + 10871 => 'ON', + 10872 => 'ON', + 10873 => 'ON', + 10874 => 'ON', + 10875 => 'ON', + 10876 => 'ON', + 10877 => 'ON', + 10878 => 'ON', + 10879 => 'ON', + 10880 => 'ON', + 10881 => 'ON', + 10882 => 'ON', + 10883 => 'ON', + 10884 => 'ON', + 10885 => 'ON', + 10886 => 'ON', + 10887 => 'ON', + 10888 => 'ON', + 10889 => 'ON', + 10890 => 'ON', + 10891 => 'ON', + 10892 => 'ON', + 10893 => 'ON', + 10894 => 'ON', + 10895 => 'ON', + 10896 => 'ON', + 10897 => 'ON', + 10898 => 'ON', + 10899 => 'ON', + 10900 => 'ON', + 10901 => 'ON', + 10902 => 'ON', + 10903 => 'ON', + 10904 => 'ON', + 10905 => 'ON', + 10906 => 'ON', + 10907 => 'ON', + 10908 => 'ON', + 10909 => 'ON', + 10910 => 'ON', + 10911 => 'ON', + 10912 => 'ON', + 10913 => 'ON', + 10914 => 'ON', + 10915 => 'ON', + 10916 => 'ON', + 10917 => 'ON', + 10918 => 'ON', + 10919 => 'ON', + 10920 => 'ON', + 10921 => 'ON', + 10922 => 'ON', + 10923 => 'ON', + 10924 => 'ON', + 10925 => 'ON', + 10926 => 'ON', + 10927 => 'ON', + 10928 => 'ON', + 10929 => 'ON', + 10930 => 'ON', + 10931 => 'ON', + 10932 => 'ON', + 10933 => 'ON', + 10934 => 'ON', + 10935 => 'ON', + 10936 => 'ON', + 10937 => 'ON', + 10938 => 'ON', + 10939 => 'ON', + 10940 => 'ON', + 10941 => 'ON', + 10942 => 'ON', + 10943 => 'ON', + 10944 => 'ON', + 10945 => 'ON', + 10946 => 'ON', + 10947 => 'ON', + 10948 => 'ON', + 10949 => 'ON', + 10950 => 'ON', + 10951 => 'ON', + 10952 => 'ON', + 10953 => 'ON', + 10954 => 'ON', + 10955 => 'ON', + 10956 => 'ON', + 10957 => 'ON', + 10958 => 'ON', + 10959 => 'ON', + 10960 => 'ON', + 10961 => 'ON', + 10962 => 'ON', + 10963 => 'ON', + 10964 => 'ON', + 10965 => 'ON', + 10966 => 'ON', + 10967 => 'ON', + 10968 => 'ON', + 10969 => 'ON', + 10970 => 'ON', + 10971 => 'ON', + 10972 => 'ON', + 10973 => 'ON', + 10974 => 'ON', + 10975 => 'ON', + 10976 => 'ON', + 10977 => 'ON', + 10978 => 'ON', + 10979 => 'ON', + 10980 => 'ON', + 10981 => 'ON', + 10982 => 'ON', + 10983 => 'ON', + 10984 => 'ON', + 10985 => 'ON', + 10986 => 'ON', + 10987 => 'ON', + 10988 => 'ON', + 10989 => 'ON', + 10990 => 'ON', + 10991 => 'ON', + 10992 => 'ON', + 10993 => 'ON', + 10994 => 'ON', + 10995 => 'ON', + 10996 => 'ON', + 10997 => 'ON', + 10998 => 'ON', + 10999 => 'ON', + 11000 => 'ON', + 11001 => 'ON', + 11002 => 'ON', + 11003 => 'ON', + 11004 => 'ON', + 11005 => 'ON', + 11006 => 'ON', + 11007 => 'ON', + 11008 => 'ON', + 11009 => 'ON', + 11010 => 'ON', + 11011 => 'ON', + 11012 => 'ON', + 11013 => 'ON', + 11014 => 'ON', + 11015 => 'ON', + 11016 => 'ON', + 11017 => 'ON', + 11018 => 'ON', + 11019 => 'ON', + 11020 => 'ON', + 11021 => 'ON', + 11022 => 'ON', + 11023 => 'ON', + 11024 => 'ON', + 11025 => 'ON', + 11026 => 'ON', + 11027 => 'ON', + 11028 => 'ON', + 11029 => 'ON', + 11030 => 'ON', + 11031 => 'ON', + 11032 => 'ON', + 11033 => 'ON', + 11034 => 'ON', + 11040 => 'ON', + 11041 => 'ON', + 11042 => 'ON', + 11043 => 'ON', + 11264 => 'L', + 11265 => 'L', + 11266 => 'L', + 11267 => 'L', + 11268 => 'L', + 11269 => 'L', + 11270 => 'L', + 11271 => 'L', + 11272 => 'L', + 11273 => 'L', + 11274 => 'L', + 11275 => 'L', + 11276 => 'L', + 11277 => 'L', + 11278 => 'L', + 11279 => 'L', + 11280 => 'L', + 11281 => 'L', + 11282 => 'L', + 11283 => 'L', + 11284 => 'L', + 11285 => 'L', + 11286 => 'L', + 11287 => 'L', + 11288 => 'L', + 11289 => 'L', + 11290 => 'L', + 11291 => 'L', + 11292 => 'L', + 11293 => 'L', + 11294 => 'L', + 11295 => 'L', + 11296 => 'L', + 11297 => 'L', + 11298 => 'L', + 11299 => 'L', + 11300 => 'L', + 11301 => 'L', + 11302 => 'L', + 11303 => 'L', + 11304 => 'L', + 11305 => 'L', + 11306 => 'L', + 11307 => 'L', + 11308 => 'L', + 11309 => 'L', + 11310 => 'L', + 11312 => 'L', + 11313 => 'L', + 11314 => 'L', + 11315 => 'L', + 11316 => 'L', + 11317 => 'L', + 11318 => 'L', + 11319 => 'L', + 11320 => 'L', + 11321 => 'L', + 11322 => 'L', + 11323 => 'L', + 11324 => 'L', + 11325 => 'L', + 11326 => 'L', + 11327 => 'L', + 11328 => 'L', + 11329 => 'L', + 11330 => 'L', + 11331 => 'L', + 11332 => 'L', + 11333 => 'L', + 11334 => 'L', + 11335 => 'L', + 11336 => 'L', + 11337 => 'L', + 11338 => 'L', + 11339 => 'L', + 11340 => 'L', + 11341 => 'L', + 11342 => 'L', + 11343 => 'L', + 11344 => 'L', + 11345 => 'L', + 11346 => 'L', + 11347 => 'L', + 11348 => 'L', + 11349 => 'L', + 11350 => 'L', + 11351 => 'L', + 11352 => 'L', + 11353 => 'L', + 11354 => 'L', + 11355 => 'L', + 11356 => 'L', + 11357 => 'L', + 11358 => 'L', + 11360 => 'L', + 11361 => 'L', + 11362 => 'L', + 11363 => 'L', + 11364 => 'L', + 11365 => 'L', + 11366 => 'L', + 11367 => 'L', + 11368 => 'L', + 11369 => 'L', + 11370 => 'L', + 11371 => 'L', + 11372 => 'L', + 11380 => 'L', + 11381 => 'L', + 11382 => 'L', + 11383 => 'L', + 11392 => 'L', + 11393 => 'L', + 11394 => 'L', + 11395 => 'L', + 11396 => 'L', + 11397 => 'L', + 11398 => 'L', + 11399 => 'L', + 11400 => 'L', + 11401 => 'L', + 11402 => 'L', + 11403 => 'L', + 11404 => 'L', + 11405 => 'L', + 11406 => 'L', + 11407 => 'L', + 11408 => 'L', + 11409 => 'L', + 11410 => 'L', + 11411 => 'L', + 11412 => 'L', + 11413 => 'L', + 11414 => 'L', + 11415 => 'L', + 11416 => 'L', + 11417 => 'L', + 11418 => 'L', + 11419 => 'L', + 11420 => 'L', + 11421 => 'L', + 11422 => 'L', + 11423 => 'L', + 11424 => 'L', + 11425 => 'L', + 11426 => 'L', + 11427 => 'L', + 11428 => 'L', + 11429 => 'L', + 11430 => 'L', + 11431 => 'L', + 11432 => 'L', + 11433 => 'L', + 11434 => 'L', + 11435 => 'L', + 11436 => 'L', + 11437 => 'L', + 11438 => 'L', + 11439 => 'L', + 11440 => 'L', + 11441 => 'L', + 11442 => 'L', + 11443 => 'L', + 11444 => 'L', + 11445 => 'L', + 11446 => 'L', + 11447 => 'L', + 11448 => 'L', + 11449 => 'L', + 11450 => 'L', + 11451 => 'L', + 11452 => 'L', + 11453 => 'L', + 11454 => 'L', + 11455 => 'L', + 11456 => 'L', + 11457 => 'L', + 11458 => 'L', + 11459 => 'L', + 11460 => 'L', + 11461 => 'L', + 11462 => 'L', + 11463 => 'L', + 11464 => 'L', + 11465 => 'L', + 11466 => 'L', + 11467 => 'L', + 11468 => 'L', + 11469 => 'L', + 11470 => 'L', + 11471 => 'L', + 11472 => 'L', + 11473 => 'L', + 11474 => 'L', + 11475 => 'L', + 11476 => 'L', + 11477 => 'L', + 11478 => 'L', + 11479 => 'L', + 11480 => 'L', + 11481 => 'L', + 11482 => 'L', + 11483 => 'L', + 11484 => 'L', + 11485 => 'L', + 11486 => 'L', + 11487 => 'L', + 11488 => 'L', + 11489 => 'L', + 11490 => 'L', + 11491 => 'L', + 11492 => 'L', + 11493 => 'ON', + 11494 => 'ON', + 11495 => 'ON', + 11496 => 'ON', + 11497 => 'ON', + 11498 => 'ON', + 11513 => 'ON', + 11514 => 'ON', + 11515 => 'ON', + 11516 => 'ON', + 11517 => 'ON', + 11518 => 'ON', + 11519 => 'ON', + 11520 => 'L', + 11521 => 'L', + 11522 => 'L', + 11523 => 'L', + 11524 => 'L', + 11525 => 'L', + 11526 => 'L', + 11527 => 'L', + 11528 => 'L', + 11529 => 'L', + 11530 => 'L', + 11531 => 'L', + 11532 => 'L', + 11533 => 'L', + 11534 => 'L', + 11535 => 'L', + 11536 => 'L', + 11537 => 'L', + 11538 => 'L', + 11539 => 'L', + 11540 => 'L', + 11541 => 'L', + 11542 => 'L', + 11543 => 'L', + 11544 => 'L', + 11545 => 'L', + 11546 => 'L', + 11547 => 'L', + 11548 => 'L', + 11549 => 'L', + 11550 => 'L', + 11551 => 'L', + 11552 => 'L', + 11553 => 'L', + 11554 => 'L', + 11555 => 'L', + 11556 => 'L', + 11557 => 'L', + 11568 => 'L', + 11569 => 'L', + 11570 => 'L', + 11571 => 'L', + 11572 => 'L', + 11573 => 'L', + 11574 => 'L', + 11575 => 'L', + 11576 => 'L', + 11577 => 'L', + 11578 => 'L', + 11579 => 'L', + 11580 => 'L', + 11581 => 'L', + 11582 => 'L', + 11583 => 'L', + 11584 => 'L', + 11585 => 'L', + 11586 => 'L', + 11587 => 'L', + 11588 => 'L', + 11589 => 'L', + 11590 => 'L', + 11591 => 'L', + 11592 => 'L', + 11593 => 'L', + 11594 => 'L', + 11595 => 'L', + 11596 => 'L', + 11597 => 'L', + 11598 => 'L', + 11599 => 'L', + 11600 => 'L', + 11601 => 'L', + 11602 => 'L', + 11603 => 'L', + 11604 => 'L', + 11605 => 'L', + 11606 => 'L', + 11607 => 'L', + 11608 => 'L', + 11609 => 'L', + 11610 => 'L', + 11611 => 'L', + 11612 => 'L', + 11613 => 'L', + 11614 => 'L', + 11615 => 'L', + 11616 => 'L', + 11617 => 'L', + 11618 => 'L', + 11619 => 'L', + 11620 => 'L', + 11621 => 'L', + 11631 => 'L', + 11648 => 'L', + 11649 => 'L', + 11650 => 'L', + 11651 => 'L', + 11652 => 'L', + 11653 => 'L', + 11654 => 'L', + 11655 => 'L', + 11656 => 'L', + 11657 => 'L', + 11658 => 'L', + 11659 => 'L', + 11660 => 'L', + 11661 => 'L', + 11662 => 'L', + 11663 => 'L', + 11664 => 'L', + 11665 => 'L', + 11666 => 'L', + 11667 => 'L', + 11668 => 'L', + 11669 => 'L', + 11670 => 'L', + 11680 => 'L', + 11681 => 'L', + 11682 => 'L', + 11683 => 'L', + 11684 => 'L', + 11685 => 'L', + 11686 => 'L', + 11688 => 'L', + 11689 => 'L', + 11690 => 'L', + 11691 => 'L', + 11692 => 'L', + 11693 => 'L', + 11694 => 'L', + 11696 => 'L', + 11697 => 'L', + 11698 => 'L', + 11699 => 'L', + 11700 => 'L', + 11701 => 'L', + 11702 => 'L', + 11704 => 'L', + 11705 => 'L', + 11706 => 'L', + 11707 => 'L', + 11708 => 'L', + 11709 => 'L', + 11710 => 'L', + 11712 => 'L', + 11713 => 'L', + 11714 => 'L', + 11715 => 'L', + 11716 => 'L', + 11717 => 'L', + 11718 => 'L', + 11720 => 'L', + 11721 => 'L', + 11722 => 'L', + 11723 => 'L', + 11724 => 'L', + 11725 => 'L', + 11726 => 'L', + 11728 => 'L', + 11729 => 'L', + 11730 => 'L', + 11731 => 'L', + 11732 => 'L', + 11733 => 'L', + 11734 => 'L', + 11736 => 'L', + 11737 => 'L', + 11738 => 'L', + 11739 => 'L', + 11740 => 'L', + 11741 => 'L', + 11742 => 'L', + 11776 => 'ON', + 11777 => 'ON', + 11778 => 'ON', + 11779 => 'ON', + 11780 => 'ON', + 11781 => 'ON', + 11782 => 'ON', + 11783 => 'ON', + 11784 => 'ON', + 11785 => 'ON', + 11786 => 'ON', + 11787 => 'ON', + 11788 => 'ON', + 11789 => 'ON', + 11790 => 'ON', + 11791 => 'ON', + 11792 => 'ON', + 11793 => 'ON', + 11794 => 'ON', + 11795 => 'ON', + 11796 => 'ON', + 11797 => 'ON', + 11798 => 'ON', + 11799 => 'ON', + 11804 => 'ON', + 11805 => 'ON', + 11904 => 'ON', + 11905 => 'ON', + 11906 => 'ON', + 11907 => 'ON', + 11908 => 'ON', + 11909 => 'ON', + 11910 => 'ON', + 11911 => 'ON', + 11912 => 'ON', + 11913 => 'ON', + 11914 => 'ON', + 11915 => 'ON', + 11916 => 'ON', + 11917 => 'ON', + 11918 => 'ON', + 11919 => 'ON', + 11920 => 'ON', + 11921 => 'ON', + 11922 => 'ON', + 11923 => 'ON', + 11924 => 'ON', + 11925 => 'ON', + 11926 => 'ON', + 11927 => 'ON', + 11928 => 'ON', + 11929 => 'ON', + 11931 => 'ON', + 11932 => 'ON', + 11933 => 'ON', + 11934 => 'ON', + 11935 => 'ON', + 11936 => 'ON', + 11937 => 'ON', + 11938 => 'ON', + 11939 => 'ON', + 11940 => 'ON', + 11941 => 'ON', + 11942 => 'ON', + 11943 => 'ON', + 11944 => 'ON', + 11945 => 'ON', + 11946 => 'ON', + 11947 => 'ON', + 11948 => 'ON', + 11949 => 'ON', + 11950 => 'ON', + 11951 => 'ON', + 11952 => 'ON', + 11953 => 'ON', + 11954 => 'ON', + 11955 => 'ON', + 11956 => 'ON', + 11957 => 'ON', + 11958 => 'ON', + 11959 => 'ON', + 11960 => 'ON', + 11961 => 'ON', + 11962 => 'ON', + 11963 => 'ON', + 11964 => 'ON', + 11965 => 'ON', + 11966 => 'ON', + 11967 => 'ON', + 11968 => 'ON', + 11969 => 'ON', + 11970 => 'ON', + 11971 => 'ON', + 11972 => 'ON', + 11973 => 'ON', + 11974 => 'ON', + 11975 => 'ON', + 11976 => 'ON', + 11977 => 'ON', + 11978 => 'ON', + 11979 => 'ON', + 11980 => 'ON', + 11981 => 'ON', + 11982 => 'ON', + 11983 => 'ON', + 11984 => 'ON', + 11985 => 'ON', + 11986 => 'ON', + 11987 => 'ON', + 11988 => 'ON', + 11989 => 'ON', + 11990 => 'ON', + 11991 => 'ON', + 11992 => 'ON', + 11993 => 'ON', + 11994 => 'ON', + 11995 => 'ON', + 11996 => 'ON', + 11997 => 'ON', + 11998 => 'ON', + 11999 => 'ON', + 12000 => 'ON', + 12001 => 'ON', + 12002 => 'ON', + 12003 => 'ON', + 12004 => 'ON', + 12005 => 'ON', + 12006 => 'ON', + 12007 => 'ON', + 12008 => 'ON', + 12009 => 'ON', + 12010 => 'ON', + 12011 => 'ON', + 12012 => 'ON', + 12013 => 'ON', + 12014 => 'ON', + 12015 => 'ON', + 12016 => 'ON', + 12017 => 'ON', + 12018 => 'ON', + 12019 => 'ON', + 12032 => 'ON', + 12033 => 'ON', + 12034 => 'ON', + 12035 => 'ON', + 12036 => 'ON', + 12037 => 'ON', + 12038 => 'ON', + 12039 => 'ON', + 12040 => 'ON', + 12041 => 'ON', + 12042 => 'ON', + 12043 => 'ON', + 12044 => 'ON', + 12045 => 'ON', + 12046 => 'ON', + 12047 => 'ON', + 12048 => 'ON', + 12049 => 'ON', + 12050 => 'ON', + 12051 => 'ON', + 12052 => 'ON', + 12053 => 'ON', + 12054 => 'ON', + 12055 => 'ON', + 12056 => 'ON', + 12057 => 'ON', + 12058 => 'ON', + 12059 => 'ON', + 12060 => 'ON', + 12061 => 'ON', + 12062 => 'ON', + 12063 => 'ON', + 12064 => 'ON', + 12065 => 'ON', + 12066 => 'ON', + 12067 => 'ON', + 12068 => 'ON', + 12069 => 'ON', + 12070 => 'ON', + 12071 => 'ON', + 12072 => 'ON', + 12073 => 'ON', + 12074 => 'ON', + 12075 => 'ON', + 12076 => 'ON', + 12077 => 'ON', + 12078 => 'ON', + 12079 => 'ON', + 12080 => 'ON', + 12081 => 'ON', + 12082 => 'ON', + 12083 => 'ON', + 12084 => 'ON', + 12085 => 'ON', + 12086 => 'ON', + 12087 => 'ON', + 12088 => 'ON', + 12089 => 'ON', + 12090 => 'ON', + 12091 => 'ON', + 12092 => 'ON', + 12093 => 'ON', + 12094 => 'ON', + 12095 => 'ON', + 12096 => 'ON', + 12097 => 'ON', + 12098 => 'ON', + 12099 => 'ON', + 12100 => 'ON', + 12101 => 'ON', + 12102 => 'ON', + 12103 => 'ON', + 12104 => 'ON', + 12105 => 'ON', + 12106 => 'ON', + 12107 => 'ON', + 12108 => 'ON', + 12109 => 'ON', + 12110 => 'ON', + 12111 => 'ON', + 12112 => 'ON', + 12113 => 'ON', + 12114 => 'ON', + 12115 => 'ON', + 12116 => 'ON', + 12117 => 'ON', + 12118 => 'ON', + 12119 => 'ON', + 12120 => 'ON', + 12121 => 'ON', + 12122 => 'ON', + 12123 => 'ON', + 12124 => 'ON', + 12125 => 'ON', + 12126 => 'ON', + 12127 => 'ON', + 12128 => 'ON', + 12129 => 'ON', + 12130 => 'ON', + 12131 => 'ON', + 12132 => 'ON', + 12133 => 'ON', + 12134 => 'ON', + 12135 => 'ON', + 12136 => 'ON', + 12137 => 'ON', + 12138 => 'ON', + 12139 => 'ON', + 12140 => 'ON', + 12141 => 'ON', + 12142 => 'ON', + 12143 => 'ON', + 12144 => 'ON', + 12145 => 'ON', + 12146 => 'ON', + 12147 => 'ON', + 12148 => 'ON', + 12149 => 'ON', + 12150 => 'ON', + 12151 => 'ON', + 12152 => 'ON', + 12153 => 'ON', + 12154 => 'ON', + 12155 => 'ON', + 12156 => 'ON', + 12157 => 'ON', + 12158 => 'ON', + 12159 => 'ON', + 12160 => 'ON', + 12161 => 'ON', + 12162 => 'ON', + 12163 => 'ON', + 12164 => 'ON', + 12165 => 'ON', + 12166 => 'ON', + 12167 => 'ON', + 12168 => 'ON', + 12169 => 'ON', + 12170 => 'ON', + 12171 => 'ON', + 12172 => 'ON', + 12173 => 'ON', + 12174 => 'ON', + 12175 => 'ON', + 12176 => 'ON', + 12177 => 'ON', + 12178 => 'ON', + 12179 => 'ON', + 12180 => 'ON', + 12181 => 'ON', + 12182 => 'ON', + 12183 => 'ON', + 12184 => 'ON', + 12185 => 'ON', + 12186 => 'ON', + 12187 => 'ON', + 12188 => 'ON', + 12189 => 'ON', + 12190 => 'ON', + 12191 => 'ON', + 12192 => 'ON', + 12193 => 'ON', + 12194 => 'ON', + 12195 => 'ON', + 12196 => 'ON', + 12197 => 'ON', + 12198 => 'ON', + 12199 => 'ON', + 12200 => 'ON', + 12201 => 'ON', + 12202 => 'ON', + 12203 => 'ON', + 12204 => 'ON', + 12205 => 'ON', + 12206 => 'ON', + 12207 => 'ON', + 12208 => 'ON', + 12209 => 'ON', + 12210 => 'ON', + 12211 => 'ON', + 12212 => 'ON', + 12213 => 'ON', + 12214 => 'ON', + 12215 => 'ON', + 12216 => 'ON', + 12217 => 'ON', + 12218 => 'ON', + 12219 => 'ON', + 12220 => 'ON', + 12221 => 'ON', + 12222 => 'ON', + 12223 => 'ON', + 12224 => 'ON', + 12225 => 'ON', + 12226 => 'ON', + 12227 => 'ON', + 12228 => 'ON', + 12229 => 'ON', + 12230 => 'ON', + 12231 => 'ON', + 12232 => 'ON', + 12233 => 'ON', + 12234 => 'ON', + 12235 => 'ON', + 12236 => 'ON', + 12237 => 'ON', + 12238 => 'ON', + 12239 => 'ON', + 12240 => 'ON', + 12241 => 'ON', + 12242 => 'ON', + 12243 => 'ON', + 12244 => 'ON', + 12245 => 'ON', + 12272 => 'ON', + 12273 => 'ON', + 12274 => 'ON', + 12275 => 'ON', + 12276 => 'ON', + 12277 => 'ON', + 12278 => 'ON', + 12279 => 'ON', + 12280 => 'ON', + 12281 => 'ON', + 12282 => 'ON', + 12283 => 'ON', + 12288 => 'WS', + 12289 => 'ON', + 12290 => 'ON', + 12291 => 'ON', + 12292 => 'ON', + 12293 => 'L', + 12294 => 'L', + 12295 => 'L', + 12296 => 'ON', + 12297 => 'ON', + 12298 => 'ON', + 12299 => 'ON', + 12300 => 'ON', + 12301 => 'ON', + 12302 => 'ON', + 12303 => 'ON', + 12304 => 'ON', + 12305 => 'ON', + 12306 => 'ON', + 12307 => 'ON', + 12308 => 'ON', + 12309 => 'ON', + 12310 => 'ON', + 12311 => 'ON', + 12312 => 'ON', + 12313 => 'ON', + 12314 => 'ON', + 12315 => 'ON', + 12316 => 'ON', + 12317 => 'ON', + 12318 => 'ON', + 12319 => 'ON', + 12320 => 'ON', + 12321 => 'L', + 12322 => 'L', + 12323 => 'L', + 12324 => 'L', + 12325 => 'L', + 12326 => 'L', + 12327 => 'L', + 12328 => 'L', + 12329 => 'L', + 12330 => 'NSM', + 12331 => 'NSM', + 12332 => 'NSM', + 12333 => 'NSM', + 12334 => 'NSM', + 12335 => 'NSM', + 12336 => 'ON', + 12337 => 'L', + 12338 => 'L', + 12339 => 'L', + 12340 => 'L', + 12341 => 'L', + 12342 => 'ON', + 12343 => 'ON', + 12344 => 'L', + 12345 => 'L', + 12346 => 'L', + 12347 => 'L', + 12348 => 'L', + 12349 => 'ON', + 12350 => 'ON', + 12351 => 'ON', + 12353 => 'L', + 12354 => 'L', + 12355 => 'L', + 12356 => 'L', + 12357 => 'L', + 12358 => 'L', + 12359 => 'L', + 12360 => 'L', + 12361 => 'L', + 12362 => 'L', + 12363 => 'L', + 12364 => 'L', + 12365 => 'L', + 12366 => 'L', + 12367 => 'L', + 12368 => 'L', + 12369 => 'L', + 12370 => 'L', + 12371 => 'L', + 12372 => 'L', + 12373 => 'L', + 12374 => 'L', + 12375 => 'L', + 12376 => 'L', + 12377 => 'L', + 12378 => 'L', + 12379 => 'L', + 12380 => 'L', + 12381 => 'L', + 12382 => 'L', + 12383 => 'L', + 12384 => 'L', + 12385 => 'L', + 12386 => 'L', + 12387 => 'L', + 12388 => 'L', + 12389 => 'L', + 12390 => 'L', + 12391 => 'L', + 12392 => 'L', + 12393 => 'L', + 12394 => 'L', + 12395 => 'L', + 12396 => 'L', + 12397 => 'L', + 12398 => 'L', + 12399 => 'L', + 12400 => 'L', + 12401 => 'L', + 12402 => 'L', + 12403 => 'L', + 12404 => 'L', + 12405 => 'L', + 12406 => 'L', + 12407 => 'L', + 12408 => 'L', + 12409 => 'L', + 12410 => 'L', + 12411 => 'L', + 12412 => 'L', + 12413 => 'L', + 12414 => 'L', + 12415 => 'L', + 12416 => 'L', + 12417 => 'L', + 12418 => 'L', + 12419 => 'L', + 12420 => 'L', + 12421 => 'L', + 12422 => 'L', + 12423 => 'L', + 12424 => 'L', + 12425 => 'L', + 12426 => 'L', + 12427 => 'L', + 12428 => 'L', + 12429 => 'L', + 12430 => 'L', + 12431 => 'L', + 12432 => 'L', + 12433 => 'L', + 12434 => 'L', + 12435 => 'L', + 12436 => 'L', + 12437 => 'L', + 12438 => 'L', + 12441 => 'NSM', + 12442 => 'NSM', + 12443 => 'ON', + 12444 => 'ON', + 12445 => 'L', + 12446 => 'L', + 12447 => 'L', + 12448 => 'ON', + 12449 => 'L', + 12450 => 'L', + 12451 => 'L', + 12452 => 'L', + 12453 => 'L', + 12454 => 'L', + 12455 => 'L', + 12456 => 'L', + 12457 => 'L', + 12458 => 'L', + 12459 => 'L', + 12460 => 'L', + 12461 => 'L', + 12462 => 'L', + 12463 => 'L', + 12464 => 'L', + 12465 => 'L', + 12466 => 'L', + 12467 => 'L', + 12468 => 'L', + 12469 => 'L', + 12470 => 'L', + 12471 => 'L', + 12472 => 'L', + 12473 => 'L', + 12474 => 'L', + 12475 => 'L', + 12476 => 'L', + 12477 => 'L', + 12478 => 'L', + 12479 => 'L', + 12480 => 'L', + 12481 => 'L', + 12482 => 'L', + 12483 => 'L', + 12484 => 'L', + 12485 => 'L', + 12486 => 'L', + 12487 => 'L', + 12488 => 'L', + 12489 => 'L', + 12490 => 'L', + 12491 => 'L', + 12492 => 'L', + 12493 => 'L', + 12494 => 'L', + 12495 => 'L', + 12496 => 'L', + 12497 => 'L', + 12498 => 'L', + 12499 => 'L', + 12500 => 'L', + 12501 => 'L', + 12502 => 'L', + 12503 => 'L', + 12504 => 'L', + 12505 => 'L', + 12506 => 'L', + 12507 => 'L', + 12508 => 'L', + 12509 => 'L', + 12510 => 'L', + 12511 => 'L', + 12512 => 'L', + 12513 => 'L', + 12514 => 'L', + 12515 => 'L', + 12516 => 'L', + 12517 => 'L', + 12518 => 'L', + 12519 => 'L', + 12520 => 'L', + 12521 => 'L', + 12522 => 'L', + 12523 => 'L', + 12524 => 'L', + 12525 => 'L', + 12526 => 'L', + 12527 => 'L', + 12528 => 'L', + 12529 => 'L', + 12530 => 'L', + 12531 => 'L', + 12532 => 'L', + 12533 => 'L', + 12534 => 'L', + 12535 => 'L', + 12536 => 'L', + 12537 => 'L', + 12538 => 'L', + 12539 => 'ON', + 12540 => 'L', + 12541 => 'L', + 12542 => 'L', + 12543 => 'L', + 12549 => 'L', + 12550 => 'L', + 12551 => 'L', + 12552 => 'L', + 12553 => 'L', + 12554 => 'L', + 12555 => 'L', + 12556 => 'L', + 12557 => 'L', + 12558 => 'L', + 12559 => 'L', + 12560 => 'L', + 12561 => 'L', + 12562 => 'L', + 12563 => 'L', + 12564 => 'L', + 12565 => 'L', + 12566 => 'L', + 12567 => 'L', + 12568 => 'L', + 12569 => 'L', + 12570 => 'L', + 12571 => 'L', + 12572 => 'L', + 12573 => 'L', + 12574 => 'L', + 12575 => 'L', + 12576 => 'L', + 12577 => 'L', + 12578 => 'L', + 12579 => 'L', + 12580 => 'L', + 12581 => 'L', + 12582 => 'L', + 12583 => 'L', + 12584 => 'L', + 12585 => 'L', + 12586 => 'L', + 12587 => 'L', + 12588 => 'L', + 12593 => 'L', + 12594 => 'L', + 12595 => 'L', + 12596 => 'L', + 12597 => 'L', + 12598 => 'L', + 12599 => 'L', + 12600 => 'L', + 12601 => 'L', + 12602 => 'L', + 12603 => 'L', + 12604 => 'L', + 12605 => 'L', + 12606 => 'L', + 12607 => 'L', + 12608 => 'L', + 12609 => 'L', + 12610 => 'L', + 12611 => 'L', + 12612 => 'L', + 12613 => 'L', + 12614 => 'L', + 12615 => 'L', + 12616 => 'L', + 12617 => 'L', + 12618 => 'L', + 12619 => 'L', + 12620 => 'L', + 12621 => 'L', + 12622 => 'L', + 12623 => 'L', + 12624 => 'L', + 12625 => 'L', + 12626 => 'L', + 12627 => 'L', + 12628 => 'L', + 12629 => 'L', + 12630 => 'L', + 12631 => 'L', + 12632 => 'L', + 12633 => 'L', + 12634 => 'L', + 12635 => 'L', + 12636 => 'L', + 12637 => 'L', + 12638 => 'L', + 12639 => 'L', + 12640 => 'L', + 12641 => 'L', + 12642 => 'L', + 12643 => 'L', + 12644 => 'L', + 12645 => 'L', + 12646 => 'L', + 12647 => 'L', + 12648 => 'L', + 12649 => 'L', + 12650 => 'L', + 12651 => 'L', + 12652 => 'L', + 12653 => 'L', + 12654 => 'L', + 12655 => 'L', + 12656 => 'L', + 12657 => 'L', + 12658 => 'L', + 12659 => 'L', + 12660 => 'L', + 12661 => 'L', + 12662 => 'L', + 12663 => 'L', + 12664 => 'L', + 12665 => 'L', + 12666 => 'L', + 12667 => 'L', + 12668 => 'L', + 12669 => 'L', + 12670 => 'L', + 12671 => 'L', + 12672 => 'L', + 12673 => 'L', + 12674 => 'L', + 12675 => 'L', + 12676 => 'L', + 12677 => 'L', + 12678 => 'L', + 12679 => 'L', + 12680 => 'L', + 12681 => 'L', + 12682 => 'L', + 12683 => 'L', + 12684 => 'L', + 12685 => 'L', + 12686 => 'L', + 12688 => 'L', + 12689 => 'L', + 12690 => 'L', + 12691 => 'L', + 12692 => 'L', + 12693 => 'L', + 12694 => 'L', + 12695 => 'L', + 12696 => 'L', + 12697 => 'L', + 12698 => 'L', + 12699 => 'L', + 12700 => 'L', + 12701 => 'L', + 12702 => 'L', + 12703 => 'L', + 12704 => 'L', + 12705 => 'L', + 12706 => 'L', + 12707 => 'L', + 12708 => 'L', + 12709 => 'L', + 12710 => 'L', + 12711 => 'L', + 12712 => 'L', + 12713 => 'L', + 12714 => 'L', + 12715 => 'L', + 12716 => 'L', + 12717 => 'L', + 12718 => 'L', + 12719 => 'L', + 12720 => 'L', + 12721 => 'L', + 12722 => 'L', + 12723 => 'L', + 12724 => 'L', + 12725 => 'L', + 12726 => 'L', + 12727 => 'L', + 12736 => 'ON', + 12737 => 'ON', + 12738 => 'ON', + 12739 => 'ON', + 12740 => 'ON', + 12741 => 'ON', + 12742 => 'ON', + 12743 => 'ON', + 12744 => 'ON', + 12745 => 'ON', + 12746 => 'ON', + 12747 => 'ON', + 12748 => 'ON', + 12749 => 'ON', + 12750 => 'ON', + 12751 => 'ON', + 12784 => 'L', + 12785 => 'L', + 12786 => 'L', + 12787 => 'L', + 12788 => 'L', + 12789 => 'L', + 12790 => 'L', + 12791 => 'L', + 12792 => 'L', + 12793 => 'L', + 12794 => 'L', + 12795 => 'L', + 12796 => 'L', + 12797 => 'L', + 12798 => 'L', + 12799 => 'L', + 12800 => 'L', + 12801 => 'L', + 12802 => 'L', + 12803 => 'L', + 12804 => 'L', + 12805 => 'L', + 12806 => 'L', + 12807 => 'L', + 12808 => 'L', + 12809 => 'L', + 12810 => 'L', + 12811 => 'L', + 12812 => 'L', + 12813 => 'L', + 12814 => 'L', + 12815 => 'L', + 12816 => 'L', + 12817 => 'L', + 12818 => 'L', + 12819 => 'L', + 12820 => 'L', + 12821 => 'L', + 12822 => 'L', + 12823 => 'L', + 12824 => 'L', + 12825 => 'L', + 12826 => 'L', + 12827 => 'L', + 12828 => 'L', + 12829 => 'ON', + 12830 => 'ON', + 12832 => 'L', + 12833 => 'L', + 12834 => 'L', + 12835 => 'L', + 12836 => 'L', + 12837 => 'L', + 12838 => 'L', + 12839 => 'L', + 12840 => 'L', + 12841 => 'L', + 12842 => 'L', + 12843 => 'L', + 12844 => 'L', + 12845 => 'L', + 12846 => 'L', + 12847 => 'L', + 12848 => 'L', + 12849 => 'L', + 12850 => 'L', + 12851 => 'L', + 12852 => 'L', + 12853 => 'L', + 12854 => 'L', + 12855 => 'L', + 12856 => 'L', + 12857 => 'L', + 12858 => 'L', + 12859 => 'L', + 12860 => 'L', + 12861 => 'L', + 12862 => 'L', + 12863 => 'L', + 12864 => 'L', + 12865 => 'L', + 12866 => 'L', + 12867 => 'L', + 12880 => 'ON', + 12881 => 'ON', + 12882 => 'ON', + 12883 => 'ON', + 12884 => 'ON', + 12885 => 'ON', + 12886 => 'ON', + 12887 => 'ON', + 12888 => 'ON', + 12889 => 'ON', + 12890 => 'ON', + 12891 => 'ON', + 12892 => 'ON', + 12893 => 'ON', + 12894 => 'ON', + 12895 => 'ON', + 12896 => 'L', + 12897 => 'L', + 12898 => 'L', + 12899 => 'L', + 12900 => 'L', + 12901 => 'L', + 12902 => 'L', + 12903 => 'L', + 12904 => 'L', + 12905 => 'L', + 12906 => 'L', + 12907 => 'L', + 12908 => 'L', + 12909 => 'L', + 12910 => 'L', + 12911 => 'L', + 12912 => 'L', + 12913 => 'L', + 12914 => 'L', + 12915 => 'L', + 12916 => 'L', + 12917 => 'L', + 12918 => 'L', + 12919 => 'L', + 12920 => 'L', + 12921 => 'L', + 12922 => 'L', + 12923 => 'L', + 12924 => 'ON', + 12925 => 'ON', + 12926 => 'ON', + 12927 => 'L', + 12928 => 'L', + 12929 => 'L', + 12930 => 'L', + 12931 => 'L', + 12932 => 'L', + 12933 => 'L', + 12934 => 'L', + 12935 => 'L', + 12936 => 'L', + 12937 => 'L', + 12938 => 'L', + 12939 => 'L', + 12940 => 'L', + 12941 => 'L', + 12942 => 'L', + 12943 => 'L', + 12944 => 'L', + 12945 => 'L', + 12946 => 'L', + 12947 => 'L', + 12948 => 'L', + 12949 => 'L', + 12950 => 'L', + 12951 => 'L', + 12952 => 'L', + 12953 => 'L', + 12954 => 'L', + 12955 => 'L', + 12956 => 'L', + 12957 => 'L', + 12958 => 'L', + 12959 => 'L', + 12960 => 'L', + 12961 => 'L', + 12962 => 'L', + 12963 => 'L', + 12964 => 'L', + 12965 => 'L', + 12966 => 'L', + 12967 => 'L', + 12968 => 'L', + 12969 => 'L', + 12970 => 'L', + 12971 => 'L', + 12972 => 'L', + 12973 => 'L', + 12974 => 'L', + 12975 => 'L', + 12976 => 'L', + 12977 => 'ON', + 12978 => 'ON', + 12979 => 'ON', + 12980 => 'ON', + 12981 => 'ON', + 12982 => 'ON', + 12983 => 'ON', + 12984 => 'ON', + 12985 => 'ON', + 12986 => 'ON', + 12987 => 'ON', + 12988 => 'ON', + 12989 => 'ON', + 12990 => 'ON', + 12991 => 'ON', + 12992 => 'L', + 12993 => 'L', + 12994 => 'L', + 12995 => 'L', + 12996 => 'L', + 12997 => 'L', + 12998 => 'L', + 12999 => 'L', + 13000 => 'L', + 13001 => 'L', + 13002 => 'L', + 13003 => 'L', + 13004 => 'ON', + 13005 => 'ON', + 13006 => 'ON', + 13007 => 'ON', + 13008 => 'L', + 13009 => 'L', + 13010 => 'L', + 13011 => 'L', + 13012 => 'L', + 13013 => 'L', + 13014 => 'L', + 13015 => 'L', + 13016 => 'L', + 13017 => 'L', + 13018 => 'L', + 13019 => 'L', + 13020 => 'L', + 13021 => 'L', + 13022 => 'L', + 13023 => 'L', + 13024 => 'L', + 13025 => 'L', + 13026 => 'L', + 13027 => 'L', + 13028 => 'L', + 13029 => 'L', + 13030 => 'L', + 13031 => 'L', + 13032 => 'L', + 13033 => 'L', + 13034 => 'L', + 13035 => 'L', + 13036 => 'L', + 13037 => 'L', + 13038 => 'L', + 13039 => 'L', + 13040 => 'L', + 13041 => 'L', + 13042 => 'L', + 13043 => 'L', + 13044 => 'L', + 13045 => 'L', + 13046 => 'L', + 13047 => 'L', + 13048 => 'L', + 13049 => 'L', + 13050 => 'L', + 13051 => 'L', + 13052 => 'L', + 13053 => 'L', + 13054 => 'L', + 13056 => 'L', + 13057 => 'L', + 13058 => 'L', + 13059 => 'L', + 13060 => 'L', + 13061 => 'L', + 13062 => 'L', + 13063 => 'L', + 13064 => 'L', + 13065 => 'L', + 13066 => 'L', + 13067 => 'L', + 13068 => 'L', + 13069 => 'L', + 13070 => 'L', + 13071 => 'L', + 13072 => 'L', + 13073 => 'L', + 13074 => 'L', + 13075 => 'L', + 13076 => 'L', + 13077 => 'L', + 13078 => 'L', + 13079 => 'L', + 13080 => 'L', + 13081 => 'L', + 13082 => 'L', + 13083 => 'L', + 13084 => 'L', + 13085 => 'L', + 13086 => 'L', + 13087 => 'L', + 13088 => 'L', + 13089 => 'L', + 13090 => 'L', + 13091 => 'L', + 13092 => 'L', + 13093 => 'L', + 13094 => 'L', + 13095 => 'L', + 13096 => 'L', + 13097 => 'L', + 13098 => 'L', + 13099 => 'L', + 13100 => 'L', + 13101 => 'L', + 13102 => 'L', + 13103 => 'L', + 13104 => 'L', + 13105 => 'L', + 13106 => 'L', + 13107 => 'L', + 13108 => 'L', + 13109 => 'L', + 13110 => 'L', + 13111 => 'L', + 13112 => 'L', + 13113 => 'L', + 13114 => 'L', + 13115 => 'L', + 13116 => 'L', + 13117 => 'L', + 13118 => 'L', + 13119 => 'L', + 13120 => 'L', + 13121 => 'L', + 13122 => 'L', + 13123 => 'L', + 13124 => 'L', + 13125 => 'L', + 13126 => 'L', + 13127 => 'L', + 13128 => 'L', + 13129 => 'L', + 13130 => 'L', + 13131 => 'L', + 13132 => 'L', + 13133 => 'L', + 13134 => 'L', + 13135 => 'L', + 13136 => 'L', + 13137 => 'L', + 13138 => 'L', + 13139 => 'L', + 13140 => 'L', + 13141 => 'L', + 13142 => 'L', + 13143 => 'L', + 13144 => 'L', + 13145 => 'L', + 13146 => 'L', + 13147 => 'L', + 13148 => 'L', + 13149 => 'L', + 13150 => 'L', + 13151 => 'L', + 13152 => 'L', + 13153 => 'L', + 13154 => 'L', + 13155 => 'L', + 13156 => 'L', + 13157 => 'L', + 13158 => 'L', + 13159 => 'L', + 13160 => 'L', + 13161 => 'L', + 13162 => 'L', + 13163 => 'L', + 13164 => 'L', + 13165 => 'L', + 13166 => 'L', + 13167 => 'L', + 13168 => 'L', + 13169 => 'L', + 13170 => 'L', + 13171 => 'L', + 13172 => 'L', + 13173 => 'L', + 13174 => 'L', + 13175 => 'ON', + 13176 => 'ON', + 13177 => 'ON', + 13178 => 'ON', + 13179 => 'L', + 13180 => 'L', + 13181 => 'L', + 13182 => 'L', + 13183 => 'L', + 13184 => 'L', + 13185 => 'L', + 13186 => 'L', + 13187 => 'L', + 13188 => 'L', + 13189 => 'L', + 13190 => 'L', + 13191 => 'L', + 13192 => 'L', + 13193 => 'L', + 13194 => 'L', + 13195 => 'L', + 13196 => 'L', + 13197 => 'L', + 13198 => 'L', + 13199 => 'L', + 13200 => 'L', + 13201 => 'L', + 13202 => 'L', + 13203 => 'L', + 13204 => 'L', + 13205 => 'L', + 13206 => 'L', + 13207 => 'L', + 13208 => 'L', + 13209 => 'L', + 13210 => 'L', + 13211 => 'L', + 13212 => 'L', + 13213 => 'L', + 13214 => 'L', + 13215 => 'L', + 13216 => 'L', + 13217 => 'L', + 13218 => 'L', + 13219 => 'L', + 13220 => 'L', + 13221 => 'L', + 13222 => 'L', + 13223 => 'L', + 13224 => 'L', + 13225 => 'L', + 13226 => 'L', + 13227 => 'L', + 13228 => 'L', + 13229 => 'L', + 13230 => 'L', + 13231 => 'L', + 13232 => 'L', + 13233 => 'L', + 13234 => 'L', + 13235 => 'L', + 13236 => 'L', + 13237 => 'L', + 13238 => 'L', + 13239 => 'L', + 13240 => 'L', + 13241 => 'L', + 13242 => 'L', + 13243 => 'L', + 13244 => 'L', + 13245 => 'L', + 13246 => 'L', + 13247 => 'L', + 13248 => 'L', + 13249 => 'L', + 13250 => 'L', + 13251 => 'L', + 13252 => 'L', + 13253 => 'L', + 13254 => 'L', + 13255 => 'L', + 13256 => 'L', + 13257 => 'L', + 13258 => 'L', + 13259 => 'L', + 13260 => 'L', + 13261 => 'L', + 13262 => 'L', + 13263 => 'L', + 13264 => 'L', + 13265 => 'L', + 13266 => 'L', + 13267 => 'L', + 13268 => 'L', + 13269 => 'L', + 13270 => 'L', + 13271 => 'L', + 13272 => 'L', + 13273 => 'L', + 13274 => 'L', + 13275 => 'L', + 13276 => 'L', + 13277 => 'L', + 13278 => 'ON', + 13279 => 'ON', + 13280 => 'L', + 13281 => 'L', + 13282 => 'L', + 13283 => 'L', + 13284 => 'L', + 13285 => 'L', + 13286 => 'L', + 13287 => 'L', + 13288 => 'L', + 13289 => 'L', + 13290 => 'L', + 13291 => 'L', + 13292 => 'L', + 13293 => 'L', + 13294 => 'L', + 13295 => 'L', + 13296 => 'L', + 13297 => 'L', + 13298 => 'L', + 13299 => 'L', + 13300 => 'L', + 13301 => 'L', + 13302 => 'L', + 13303 => 'L', + 13304 => 'L', + 13305 => 'L', + 13306 => 'L', + 13307 => 'L', + 13308 => 'L', + 13309 => 'L', + 13310 => 'L', + 13311 => 'ON', + 13312 => 'L', + 19893 => 'L', + 19904 => 'ON', + 19905 => 'ON', + 19906 => 'ON', + 19907 => 'ON', + 19908 => 'ON', + 19909 => 'ON', + 19910 => 'ON', + 19911 => 'ON', + 19912 => 'ON', + 19913 => 'ON', + 19914 => 'ON', + 19915 => 'ON', + 19916 => 'ON', + 19917 => 'ON', + 19918 => 'ON', + 19919 => 'ON', + 19920 => 'ON', + 19921 => 'ON', + 19922 => 'ON', + 19923 => 'ON', + 19924 => 'ON', + 19925 => 'ON', + 19926 => 'ON', + 19927 => 'ON', + 19928 => 'ON', + 19929 => 'ON', + 19930 => 'ON', + 19931 => 'ON', + 19932 => 'ON', + 19933 => 'ON', + 19934 => 'ON', + 19935 => 'ON', + 19936 => 'ON', + 19937 => 'ON', + 19938 => 'ON', + 19939 => 'ON', + 19940 => 'ON', + 19941 => 'ON', + 19942 => 'ON', + 19943 => 'ON', + 19944 => 'ON', + 19945 => 'ON', + 19946 => 'ON', + 19947 => 'ON', + 19948 => 'ON', + 19949 => 'ON', + 19950 => 'ON', + 19951 => 'ON', + 19952 => 'ON', + 19953 => 'ON', + 19954 => 'ON', + 19955 => 'ON', + 19956 => 'ON', + 19957 => 'ON', + 19958 => 'ON', + 19959 => 'ON', + 19960 => 'ON', + 19961 => 'ON', + 19962 => 'ON', + 19963 => 'ON', + 19964 => 'ON', + 19965 => 'ON', + 19966 => 'ON', + 19967 => 'ON', + 19968 => 'L', + 40891 => 'L', + 40960 => 'L', + 40961 => 'L', + 40962 => 'L', + 40963 => 'L', + 40964 => 'L', + 40965 => 'L', + 40966 => 'L', + 40967 => 'L', + 40968 => 'L', + 40969 => 'L', + 40970 => 'L', + 40971 => 'L', + 40972 => 'L', + 40973 => 'L', + 40974 => 'L', + 40975 => 'L', + 40976 => 'L', + 40977 => 'L', + 40978 => 'L', + 40979 => 'L', + 40980 => 'L', + 40981 => 'L', + 40982 => 'L', + 40983 => 'L', + 40984 => 'L', + 40985 => 'L', + 40986 => 'L', + 40987 => 'L', + 40988 => 'L', + 40989 => 'L', + 40990 => 'L', + 40991 => 'L', + 40992 => 'L', + 40993 => 'L', + 40994 => 'L', + 40995 => 'L', + 40996 => 'L', + 40997 => 'L', + 40998 => 'L', + 40999 => 'L', + 41000 => 'L', + 41001 => 'L', + 41002 => 'L', + 41003 => 'L', + 41004 => 'L', + 41005 => 'L', + 41006 => 'L', + 41007 => 'L', + 41008 => 'L', + 41009 => 'L', + 41010 => 'L', + 41011 => 'L', + 41012 => 'L', + 41013 => 'L', + 41014 => 'L', + 41015 => 'L', + 41016 => 'L', + 41017 => 'L', + 41018 => 'L', + 41019 => 'L', + 41020 => 'L', + 41021 => 'L', + 41022 => 'L', + 41023 => 'L', + 41024 => 'L', + 41025 => 'L', + 41026 => 'L', + 41027 => 'L', + 41028 => 'L', + 41029 => 'L', + 41030 => 'L', + 41031 => 'L', + 41032 => 'L', + 41033 => 'L', + 41034 => 'L', + 41035 => 'L', + 41036 => 'L', + 41037 => 'L', + 41038 => 'L', + 41039 => 'L', + 41040 => 'L', + 41041 => 'L', + 41042 => 'L', + 41043 => 'L', + 41044 => 'L', + 41045 => 'L', + 41046 => 'L', + 41047 => 'L', + 41048 => 'L', + 41049 => 'L', + 41050 => 'L', + 41051 => 'L', + 41052 => 'L', + 41053 => 'L', + 41054 => 'L', + 41055 => 'L', + 41056 => 'L', + 41057 => 'L', + 41058 => 'L', + 41059 => 'L', + 41060 => 'L', + 41061 => 'L', + 41062 => 'L', + 41063 => 'L', + 41064 => 'L', + 41065 => 'L', + 41066 => 'L', + 41067 => 'L', + 41068 => 'L', + 41069 => 'L', + 41070 => 'L', + 41071 => 'L', + 41072 => 'L', + 41073 => 'L', + 41074 => 'L', + 41075 => 'L', + 41076 => 'L', + 41077 => 'L', + 41078 => 'L', + 41079 => 'L', + 41080 => 'L', + 41081 => 'L', + 41082 => 'L', + 41083 => 'L', + 41084 => 'L', + 41085 => 'L', + 41086 => 'L', + 41087 => 'L', + 41088 => 'L', + 41089 => 'L', + 41090 => 'L', + 41091 => 'L', + 41092 => 'L', + 41093 => 'L', + 41094 => 'L', + 41095 => 'L', + 41096 => 'L', + 41097 => 'L', + 41098 => 'L', + 41099 => 'L', + 41100 => 'L', + 41101 => 'L', + 41102 => 'L', + 41103 => 'L', + 41104 => 'L', + 41105 => 'L', + 41106 => 'L', + 41107 => 'L', + 41108 => 'L', + 41109 => 'L', + 41110 => 'L', + 41111 => 'L', + 41112 => 'L', + 41113 => 'L', + 41114 => 'L', + 41115 => 'L', + 41116 => 'L', + 41117 => 'L', + 41118 => 'L', + 41119 => 'L', + 41120 => 'L', + 41121 => 'L', + 41122 => 'L', + 41123 => 'L', + 41124 => 'L', + 41125 => 'L', + 41126 => 'L', + 41127 => 'L', + 41128 => 'L', + 41129 => 'L', + 41130 => 'L', + 41131 => 'L', + 41132 => 'L', + 41133 => 'L', + 41134 => 'L', + 41135 => 'L', + 41136 => 'L', + 41137 => 'L', + 41138 => 'L', + 41139 => 'L', + 41140 => 'L', + 41141 => 'L', + 41142 => 'L', + 41143 => 'L', + 41144 => 'L', + 41145 => 'L', + 41146 => 'L', + 41147 => 'L', + 41148 => 'L', + 41149 => 'L', + 41150 => 'L', + 41151 => 'L', + 41152 => 'L', + 41153 => 'L', + 41154 => 'L', + 41155 => 'L', + 41156 => 'L', + 41157 => 'L', + 41158 => 'L', + 41159 => 'L', + 41160 => 'L', + 41161 => 'L', + 41162 => 'L', + 41163 => 'L', + 41164 => 'L', + 41165 => 'L', + 41166 => 'L', + 41167 => 'L', + 41168 => 'L', + 41169 => 'L', + 41170 => 'L', + 41171 => 'L', + 41172 => 'L', + 41173 => 'L', + 41174 => 'L', + 41175 => 'L', + 41176 => 'L', + 41177 => 'L', + 41178 => 'L', + 41179 => 'L', + 41180 => 'L', + 41181 => 'L', + 41182 => 'L', + 41183 => 'L', + 41184 => 'L', + 41185 => 'L', + 41186 => 'L', + 41187 => 'L', + 41188 => 'L', + 41189 => 'L', + 41190 => 'L', + 41191 => 'L', + 41192 => 'L', + 41193 => 'L', + 41194 => 'L', + 41195 => 'L', + 41196 => 'L', + 41197 => 'L', + 41198 => 'L', + 41199 => 'L', + 41200 => 'L', + 41201 => 'L', + 41202 => 'L', + 41203 => 'L', + 41204 => 'L', + 41205 => 'L', + 41206 => 'L', + 41207 => 'L', + 41208 => 'L', + 41209 => 'L', + 41210 => 'L', + 41211 => 'L', + 41212 => 'L', + 41213 => 'L', + 41214 => 'L', + 41215 => 'L', + 41216 => 'L', + 41217 => 'L', + 41218 => 'L', + 41219 => 'L', + 41220 => 'L', + 41221 => 'L', + 41222 => 'L', + 41223 => 'L', + 41224 => 'L', + 41225 => 'L', + 41226 => 'L', + 41227 => 'L', + 41228 => 'L', + 41229 => 'L', + 41230 => 'L', + 41231 => 'L', + 41232 => 'L', + 41233 => 'L', + 41234 => 'L', + 41235 => 'L', + 41236 => 'L', + 41237 => 'L', + 41238 => 'L', + 41239 => 'L', + 41240 => 'L', + 41241 => 'L', + 41242 => 'L', + 41243 => 'L', + 41244 => 'L', + 41245 => 'L', + 41246 => 'L', + 41247 => 'L', + 41248 => 'L', + 41249 => 'L', + 41250 => 'L', + 41251 => 'L', + 41252 => 'L', + 41253 => 'L', + 41254 => 'L', + 41255 => 'L', + 41256 => 'L', + 41257 => 'L', + 41258 => 'L', + 41259 => 'L', + 41260 => 'L', + 41261 => 'L', + 41262 => 'L', + 41263 => 'L', + 41264 => 'L', + 41265 => 'L', + 41266 => 'L', + 41267 => 'L', + 41268 => 'L', + 41269 => 'L', + 41270 => 'L', + 41271 => 'L', + 41272 => 'L', + 41273 => 'L', + 41274 => 'L', + 41275 => 'L', + 41276 => 'L', + 41277 => 'L', + 41278 => 'L', + 41279 => 'L', + 41280 => 'L', + 41281 => 'L', + 41282 => 'L', + 41283 => 'L', + 41284 => 'L', + 41285 => 'L', + 41286 => 'L', + 41287 => 'L', + 41288 => 'L', + 41289 => 'L', + 41290 => 'L', + 41291 => 'L', + 41292 => 'L', + 41293 => 'L', + 41294 => 'L', + 41295 => 'L', + 41296 => 'L', + 41297 => 'L', + 41298 => 'L', + 41299 => 'L', + 41300 => 'L', + 41301 => 'L', + 41302 => 'L', + 41303 => 'L', + 41304 => 'L', + 41305 => 'L', + 41306 => 'L', + 41307 => 'L', + 41308 => 'L', + 41309 => 'L', + 41310 => 'L', + 41311 => 'L', + 41312 => 'L', + 41313 => 'L', + 41314 => 'L', + 41315 => 'L', + 41316 => 'L', + 41317 => 'L', + 41318 => 'L', + 41319 => 'L', + 41320 => 'L', + 41321 => 'L', + 41322 => 'L', + 41323 => 'L', + 41324 => 'L', + 41325 => 'L', + 41326 => 'L', + 41327 => 'L', + 41328 => 'L', + 41329 => 'L', + 41330 => 'L', + 41331 => 'L', + 41332 => 'L', + 41333 => 'L', + 41334 => 'L', + 41335 => 'L', + 41336 => 'L', + 41337 => 'L', + 41338 => 'L', + 41339 => 'L', + 41340 => 'L', + 41341 => 'L', + 41342 => 'L', + 41343 => 'L', + 41344 => 'L', + 41345 => 'L', + 41346 => 'L', + 41347 => 'L', + 41348 => 'L', + 41349 => 'L', + 41350 => 'L', + 41351 => 'L', + 41352 => 'L', + 41353 => 'L', + 41354 => 'L', + 41355 => 'L', + 41356 => 'L', + 41357 => 'L', + 41358 => 'L', + 41359 => 'L', + 41360 => 'L', + 41361 => 'L', + 41362 => 'L', + 41363 => 'L', + 41364 => 'L', + 41365 => 'L', + 41366 => 'L', + 41367 => 'L', + 41368 => 'L', + 41369 => 'L', + 41370 => 'L', + 41371 => 'L', + 41372 => 'L', + 41373 => 'L', + 41374 => 'L', + 41375 => 'L', + 41376 => 'L', + 41377 => 'L', + 41378 => 'L', + 41379 => 'L', + 41380 => 'L', + 41381 => 'L', + 41382 => 'L', + 41383 => 'L', + 41384 => 'L', + 41385 => 'L', + 41386 => 'L', + 41387 => 'L', + 41388 => 'L', + 41389 => 'L', + 41390 => 'L', + 41391 => 'L', + 41392 => 'L', + 41393 => 'L', + 41394 => 'L', + 41395 => 'L', + 41396 => 'L', + 41397 => 'L', + 41398 => 'L', + 41399 => 'L', + 41400 => 'L', + 41401 => 'L', + 41402 => 'L', + 41403 => 'L', + 41404 => 'L', + 41405 => 'L', + 41406 => 'L', + 41407 => 'L', + 41408 => 'L', + 41409 => 'L', + 41410 => 'L', + 41411 => 'L', + 41412 => 'L', + 41413 => 'L', + 41414 => 'L', + 41415 => 'L', + 41416 => 'L', + 41417 => 'L', + 41418 => 'L', + 41419 => 'L', + 41420 => 'L', + 41421 => 'L', + 41422 => 'L', + 41423 => 'L', + 41424 => 'L', + 41425 => 'L', + 41426 => 'L', + 41427 => 'L', + 41428 => 'L', + 41429 => 'L', + 41430 => 'L', + 41431 => 'L', + 41432 => 'L', + 41433 => 'L', + 41434 => 'L', + 41435 => 'L', + 41436 => 'L', + 41437 => 'L', + 41438 => 'L', + 41439 => 'L', + 41440 => 'L', + 41441 => 'L', + 41442 => 'L', + 41443 => 'L', + 41444 => 'L', + 41445 => 'L', + 41446 => 'L', + 41447 => 'L', + 41448 => 'L', + 41449 => 'L', + 41450 => 'L', + 41451 => 'L', + 41452 => 'L', + 41453 => 'L', + 41454 => 'L', + 41455 => 'L', + 41456 => 'L', + 41457 => 'L', + 41458 => 'L', + 41459 => 'L', + 41460 => 'L', + 41461 => 'L', + 41462 => 'L', + 41463 => 'L', + 41464 => 'L', + 41465 => 'L', + 41466 => 'L', + 41467 => 'L', + 41468 => 'L', + 41469 => 'L', + 41470 => 'L', + 41471 => 'L', + 41472 => 'L', + 41473 => 'L', + 41474 => 'L', + 41475 => 'L', + 41476 => 'L', + 41477 => 'L', + 41478 => 'L', + 41479 => 'L', + 41480 => 'L', + 41481 => 'L', + 41482 => 'L', + 41483 => 'L', + 41484 => 'L', + 41485 => 'L', + 41486 => 'L', + 41487 => 'L', + 41488 => 'L', + 41489 => 'L', + 41490 => 'L', + 41491 => 'L', + 41492 => 'L', + 41493 => 'L', + 41494 => 'L', + 41495 => 'L', + 41496 => 'L', + 41497 => 'L', + 41498 => 'L', + 41499 => 'L', + 41500 => 'L', + 41501 => 'L', + 41502 => 'L', + 41503 => 'L', + 41504 => 'L', + 41505 => 'L', + 41506 => 'L', + 41507 => 'L', + 41508 => 'L', + 41509 => 'L', + 41510 => 'L', + 41511 => 'L', + 41512 => 'L', + 41513 => 'L', + 41514 => 'L', + 41515 => 'L', + 41516 => 'L', + 41517 => 'L', + 41518 => 'L', + 41519 => 'L', + 41520 => 'L', + 41521 => 'L', + 41522 => 'L', + 41523 => 'L', + 41524 => 'L', + 41525 => 'L', + 41526 => 'L', + 41527 => 'L', + 41528 => 'L', + 41529 => 'L', + 41530 => 'L', + 41531 => 'L', + 41532 => 'L', + 41533 => 'L', + 41534 => 'L', + 41535 => 'L', + 41536 => 'L', + 41537 => 'L', + 41538 => 'L', + 41539 => 'L', + 41540 => 'L', + 41541 => 'L', + 41542 => 'L', + 41543 => 'L', + 41544 => 'L', + 41545 => 'L', + 41546 => 'L', + 41547 => 'L', + 41548 => 'L', + 41549 => 'L', + 41550 => 'L', + 41551 => 'L', + 41552 => 'L', + 41553 => 'L', + 41554 => 'L', + 41555 => 'L', + 41556 => 'L', + 41557 => 'L', + 41558 => 'L', + 41559 => 'L', + 41560 => 'L', + 41561 => 'L', + 41562 => 'L', + 41563 => 'L', + 41564 => 'L', + 41565 => 'L', + 41566 => 'L', + 41567 => 'L', + 41568 => 'L', + 41569 => 'L', + 41570 => 'L', + 41571 => 'L', + 41572 => 'L', + 41573 => 'L', + 41574 => 'L', + 41575 => 'L', + 41576 => 'L', + 41577 => 'L', + 41578 => 'L', + 41579 => 'L', + 41580 => 'L', + 41581 => 'L', + 41582 => 'L', + 41583 => 'L', + 41584 => 'L', + 41585 => 'L', + 41586 => 'L', + 41587 => 'L', + 41588 => 'L', + 41589 => 'L', + 41590 => 'L', + 41591 => 'L', + 41592 => 'L', + 41593 => 'L', + 41594 => 'L', + 41595 => 'L', + 41596 => 'L', + 41597 => 'L', + 41598 => 'L', + 41599 => 'L', + 41600 => 'L', + 41601 => 'L', + 41602 => 'L', + 41603 => 'L', + 41604 => 'L', + 41605 => 'L', + 41606 => 'L', + 41607 => 'L', + 41608 => 'L', + 41609 => 'L', + 41610 => 'L', + 41611 => 'L', + 41612 => 'L', + 41613 => 'L', + 41614 => 'L', + 41615 => 'L', + 41616 => 'L', + 41617 => 'L', + 41618 => 'L', + 41619 => 'L', + 41620 => 'L', + 41621 => 'L', + 41622 => 'L', + 41623 => 'L', + 41624 => 'L', + 41625 => 'L', + 41626 => 'L', + 41627 => 'L', + 41628 => 'L', + 41629 => 'L', + 41630 => 'L', + 41631 => 'L', + 41632 => 'L', + 41633 => 'L', + 41634 => 'L', + 41635 => 'L', + 41636 => 'L', + 41637 => 'L', + 41638 => 'L', + 41639 => 'L', + 41640 => 'L', + 41641 => 'L', + 41642 => 'L', + 41643 => 'L', + 41644 => 'L', + 41645 => 'L', + 41646 => 'L', + 41647 => 'L', + 41648 => 'L', + 41649 => 'L', + 41650 => 'L', + 41651 => 'L', + 41652 => 'L', + 41653 => 'L', + 41654 => 'L', + 41655 => 'L', + 41656 => 'L', + 41657 => 'L', + 41658 => 'L', + 41659 => 'L', + 41660 => 'L', + 41661 => 'L', + 41662 => 'L', + 41663 => 'L', + 41664 => 'L', + 41665 => 'L', + 41666 => 'L', + 41667 => 'L', + 41668 => 'L', + 41669 => 'L', + 41670 => 'L', + 41671 => 'L', + 41672 => 'L', + 41673 => 'L', + 41674 => 'L', + 41675 => 'L', + 41676 => 'L', + 41677 => 'L', + 41678 => 'L', + 41679 => 'L', + 41680 => 'L', + 41681 => 'L', + 41682 => 'L', + 41683 => 'L', + 41684 => 'L', + 41685 => 'L', + 41686 => 'L', + 41687 => 'L', + 41688 => 'L', + 41689 => 'L', + 41690 => 'L', + 41691 => 'L', + 41692 => 'L', + 41693 => 'L', + 41694 => 'L', + 41695 => 'L', + 41696 => 'L', + 41697 => 'L', + 41698 => 'L', + 41699 => 'L', + 41700 => 'L', + 41701 => 'L', + 41702 => 'L', + 41703 => 'L', + 41704 => 'L', + 41705 => 'L', + 41706 => 'L', + 41707 => 'L', + 41708 => 'L', + 41709 => 'L', + 41710 => 'L', + 41711 => 'L', + 41712 => 'L', + 41713 => 'L', + 41714 => 'L', + 41715 => 'L', + 41716 => 'L', + 41717 => 'L', + 41718 => 'L', + 41719 => 'L', + 41720 => 'L', + 41721 => 'L', + 41722 => 'L', + 41723 => 'L', + 41724 => 'L', + 41725 => 'L', + 41726 => 'L', + 41727 => 'L', + 41728 => 'L', + 41729 => 'L', + 41730 => 'L', + 41731 => 'L', + 41732 => 'L', + 41733 => 'L', + 41734 => 'L', + 41735 => 'L', + 41736 => 'L', + 41737 => 'L', + 41738 => 'L', + 41739 => 'L', + 41740 => 'L', + 41741 => 'L', + 41742 => 'L', + 41743 => 'L', + 41744 => 'L', + 41745 => 'L', + 41746 => 'L', + 41747 => 'L', + 41748 => 'L', + 41749 => 'L', + 41750 => 'L', + 41751 => 'L', + 41752 => 'L', + 41753 => 'L', + 41754 => 'L', + 41755 => 'L', + 41756 => 'L', + 41757 => 'L', + 41758 => 'L', + 41759 => 'L', + 41760 => 'L', + 41761 => 'L', + 41762 => 'L', + 41763 => 'L', + 41764 => 'L', + 41765 => 'L', + 41766 => 'L', + 41767 => 'L', + 41768 => 'L', + 41769 => 'L', + 41770 => 'L', + 41771 => 'L', + 41772 => 'L', + 41773 => 'L', + 41774 => 'L', + 41775 => 'L', + 41776 => 'L', + 41777 => 'L', + 41778 => 'L', + 41779 => 'L', + 41780 => 'L', + 41781 => 'L', + 41782 => 'L', + 41783 => 'L', + 41784 => 'L', + 41785 => 'L', + 41786 => 'L', + 41787 => 'L', + 41788 => 'L', + 41789 => 'L', + 41790 => 'L', + 41791 => 'L', + 41792 => 'L', + 41793 => 'L', + 41794 => 'L', + 41795 => 'L', + 41796 => 'L', + 41797 => 'L', + 41798 => 'L', + 41799 => 'L', + 41800 => 'L', + 41801 => 'L', + 41802 => 'L', + 41803 => 'L', + 41804 => 'L', + 41805 => 'L', + 41806 => 'L', + 41807 => 'L', + 41808 => 'L', + 41809 => 'L', + 41810 => 'L', + 41811 => 'L', + 41812 => 'L', + 41813 => 'L', + 41814 => 'L', + 41815 => 'L', + 41816 => 'L', + 41817 => 'L', + 41818 => 'L', + 41819 => 'L', + 41820 => 'L', + 41821 => 'L', + 41822 => 'L', + 41823 => 'L', + 41824 => 'L', + 41825 => 'L', + 41826 => 'L', + 41827 => 'L', + 41828 => 'L', + 41829 => 'L', + 41830 => 'L', + 41831 => 'L', + 41832 => 'L', + 41833 => 'L', + 41834 => 'L', + 41835 => 'L', + 41836 => 'L', + 41837 => 'L', + 41838 => 'L', + 41839 => 'L', + 41840 => 'L', + 41841 => 'L', + 41842 => 'L', + 41843 => 'L', + 41844 => 'L', + 41845 => 'L', + 41846 => 'L', + 41847 => 'L', + 41848 => 'L', + 41849 => 'L', + 41850 => 'L', + 41851 => 'L', + 41852 => 'L', + 41853 => 'L', + 41854 => 'L', + 41855 => 'L', + 41856 => 'L', + 41857 => 'L', + 41858 => 'L', + 41859 => 'L', + 41860 => 'L', + 41861 => 'L', + 41862 => 'L', + 41863 => 'L', + 41864 => 'L', + 41865 => 'L', + 41866 => 'L', + 41867 => 'L', + 41868 => 'L', + 41869 => 'L', + 41870 => 'L', + 41871 => 'L', + 41872 => 'L', + 41873 => 'L', + 41874 => 'L', + 41875 => 'L', + 41876 => 'L', + 41877 => 'L', + 41878 => 'L', + 41879 => 'L', + 41880 => 'L', + 41881 => 'L', + 41882 => 'L', + 41883 => 'L', + 41884 => 'L', + 41885 => 'L', + 41886 => 'L', + 41887 => 'L', + 41888 => 'L', + 41889 => 'L', + 41890 => 'L', + 41891 => 'L', + 41892 => 'L', + 41893 => 'L', + 41894 => 'L', + 41895 => 'L', + 41896 => 'L', + 41897 => 'L', + 41898 => 'L', + 41899 => 'L', + 41900 => 'L', + 41901 => 'L', + 41902 => 'L', + 41903 => 'L', + 41904 => 'L', + 41905 => 'L', + 41906 => 'L', + 41907 => 'L', + 41908 => 'L', + 41909 => 'L', + 41910 => 'L', + 41911 => 'L', + 41912 => 'L', + 41913 => 'L', + 41914 => 'L', + 41915 => 'L', + 41916 => 'L', + 41917 => 'L', + 41918 => 'L', + 41919 => 'L', + 41920 => 'L', + 41921 => 'L', + 41922 => 'L', + 41923 => 'L', + 41924 => 'L', + 41925 => 'L', + 41926 => 'L', + 41927 => 'L', + 41928 => 'L', + 41929 => 'L', + 41930 => 'L', + 41931 => 'L', + 41932 => 'L', + 41933 => 'L', + 41934 => 'L', + 41935 => 'L', + 41936 => 'L', + 41937 => 'L', + 41938 => 'L', + 41939 => 'L', + 41940 => 'L', + 41941 => 'L', + 41942 => 'L', + 41943 => 'L', + 41944 => 'L', + 41945 => 'L', + 41946 => 'L', + 41947 => 'L', + 41948 => 'L', + 41949 => 'L', + 41950 => 'L', + 41951 => 'L', + 41952 => 'L', + 41953 => 'L', + 41954 => 'L', + 41955 => 'L', + 41956 => 'L', + 41957 => 'L', + 41958 => 'L', + 41959 => 'L', + 41960 => 'L', + 41961 => 'L', + 41962 => 'L', + 41963 => 'L', + 41964 => 'L', + 41965 => 'L', + 41966 => 'L', + 41967 => 'L', + 41968 => 'L', + 41969 => 'L', + 41970 => 'L', + 41971 => 'L', + 41972 => 'L', + 41973 => 'L', + 41974 => 'L', + 41975 => 'L', + 41976 => 'L', + 41977 => 'L', + 41978 => 'L', + 41979 => 'L', + 41980 => 'L', + 41981 => 'L', + 41982 => 'L', + 41983 => 'L', + 41984 => 'L', + 41985 => 'L', + 41986 => 'L', + 41987 => 'L', + 41988 => 'L', + 41989 => 'L', + 41990 => 'L', + 41991 => 'L', + 41992 => 'L', + 41993 => 'L', + 41994 => 'L', + 41995 => 'L', + 41996 => 'L', + 41997 => 'L', + 41998 => 'L', + 41999 => 'L', + 42000 => 'L', + 42001 => 'L', + 42002 => 'L', + 42003 => 'L', + 42004 => 'L', + 42005 => 'L', + 42006 => 'L', + 42007 => 'L', + 42008 => 'L', + 42009 => 'L', + 42010 => 'L', + 42011 => 'L', + 42012 => 'L', + 42013 => 'L', + 42014 => 'L', + 42015 => 'L', + 42016 => 'L', + 42017 => 'L', + 42018 => 'L', + 42019 => 'L', + 42020 => 'L', + 42021 => 'L', + 42022 => 'L', + 42023 => 'L', + 42024 => 'L', + 42025 => 'L', + 42026 => 'L', + 42027 => 'L', + 42028 => 'L', + 42029 => 'L', + 42030 => 'L', + 42031 => 'L', + 42032 => 'L', + 42033 => 'L', + 42034 => 'L', + 42035 => 'L', + 42036 => 'L', + 42037 => 'L', + 42038 => 'L', + 42039 => 'L', + 42040 => 'L', + 42041 => 'L', + 42042 => 'L', + 42043 => 'L', + 42044 => 'L', + 42045 => 'L', + 42046 => 'L', + 42047 => 'L', + 42048 => 'L', + 42049 => 'L', + 42050 => 'L', + 42051 => 'L', + 42052 => 'L', + 42053 => 'L', + 42054 => 'L', + 42055 => 'L', + 42056 => 'L', + 42057 => 'L', + 42058 => 'L', + 42059 => 'L', + 42060 => 'L', + 42061 => 'L', + 42062 => 'L', + 42063 => 'L', + 42064 => 'L', + 42065 => 'L', + 42066 => 'L', + 42067 => 'L', + 42068 => 'L', + 42069 => 'L', + 42070 => 'L', + 42071 => 'L', + 42072 => 'L', + 42073 => 'L', + 42074 => 'L', + 42075 => 'L', + 42076 => 'L', + 42077 => 'L', + 42078 => 'L', + 42079 => 'L', + 42080 => 'L', + 42081 => 'L', + 42082 => 'L', + 42083 => 'L', + 42084 => 'L', + 42085 => 'L', + 42086 => 'L', + 42087 => 'L', + 42088 => 'L', + 42089 => 'L', + 42090 => 'L', + 42091 => 'L', + 42092 => 'L', + 42093 => 'L', + 42094 => 'L', + 42095 => 'L', + 42096 => 'L', + 42097 => 'L', + 42098 => 'L', + 42099 => 'L', + 42100 => 'L', + 42101 => 'L', + 42102 => 'L', + 42103 => 'L', + 42104 => 'L', + 42105 => 'L', + 42106 => 'L', + 42107 => 'L', + 42108 => 'L', + 42109 => 'L', + 42110 => 'L', + 42111 => 'L', + 42112 => 'L', + 42113 => 'L', + 42114 => 'L', + 42115 => 'L', + 42116 => 'L', + 42117 => 'L', + 42118 => 'L', + 42119 => 'L', + 42120 => 'L', + 42121 => 'L', + 42122 => 'L', + 42123 => 'L', + 42124 => 'L', + 42128 => 'ON', + 42129 => 'ON', + 42130 => 'ON', + 42131 => 'ON', + 42132 => 'ON', + 42133 => 'ON', + 42134 => 'ON', + 42135 => 'ON', + 42136 => 'ON', + 42137 => 'ON', + 42138 => 'ON', + 42139 => 'ON', + 42140 => 'ON', + 42141 => 'ON', + 42142 => 'ON', + 42143 => 'ON', + 42144 => 'ON', + 42145 => 'ON', + 42146 => 'ON', + 42147 => 'ON', + 42148 => 'ON', + 42149 => 'ON', + 42150 => 'ON', + 42151 => 'ON', + 42152 => 'ON', + 42153 => 'ON', + 42154 => 'ON', + 42155 => 'ON', + 42156 => 'ON', + 42157 => 'ON', + 42158 => 'ON', + 42159 => 'ON', + 42160 => 'ON', + 42161 => 'ON', + 42162 => 'ON', + 42163 => 'ON', + 42164 => 'ON', + 42165 => 'ON', + 42166 => 'ON', + 42167 => 'ON', + 42168 => 'ON', + 42169 => 'ON', + 42170 => 'ON', + 42171 => 'ON', + 42172 => 'ON', + 42173 => 'ON', + 42174 => 'ON', + 42175 => 'ON', + 42176 => 'ON', + 42177 => 'ON', + 42178 => 'ON', + 42179 => 'ON', + 42180 => 'ON', + 42181 => 'ON', + 42182 => 'ON', + 42752 => 'ON', + 42753 => 'ON', + 42754 => 'ON', + 42755 => 'ON', + 42756 => 'ON', + 42757 => 'ON', + 42758 => 'ON', + 42759 => 'ON', + 42760 => 'ON', + 42761 => 'ON', + 42762 => 'ON', + 42763 => 'ON', + 42764 => 'ON', + 42765 => 'ON', + 42766 => 'ON', + 42767 => 'ON', + 42768 => 'ON', + 42769 => 'ON', + 42770 => 'ON', + 42771 => 'ON', + 42772 => 'ON', + 42773 => 'ON', + 42774 => 'ON', + 42775 => 'ON', + 42776 => 'ON', + 42777 => 'ON', + 42778 => 'ON', + 42784 => 'ON', + 42785 => 'ON', + 43008 => 'L', + 43009 => 'L', + 43010 => 'NSM', + 43011 => 'L', + 43012 => 'L', + 43013 => 'L', + 43014 => 'NSM', + 43015 => 'L', + 43016 => 'L', + 43017 => 'L', + 43018 => 'L', + 43019 => 'NSM', + 43020 => 'L', + 43021 => 'L', + 43022 => 'L', + 43023 => 'L', + 43024 => 'L', + 43025 => 'L', + 43026 => 'L', + 43027 => 'L', + 43028 => 'L', + 43029 => 'L', + 43030 => 'L', + 43031 => 'L', + 43032 => 'L', + 43033 => 'L', + 43034 => 'L', + 43035 => 'L', + 43036 => 'L', + 43037 => 'L', + 43038 => 'L', + 43039 => 'L', + 43040 => 'L', + 43041 => 'L', + 43042 => 'L', + 43043 => 'L', + 43044 => 'L', + 43045 => 'NSM', + 43046 => 'NSM', + 43047 => 'L', + 43048 => 'ON', + 43049 => 'ON', + 43050 => 'ON', + 43051 => 'ON', + 43072 => 'L', + 43073 => 'L', + 43074 => 'L', + 43075 => 'L', + 43076 => 'L', + 43077 => 'L', + 43078 => 'L', + 43079 => 'L', + 43080 => 'L', + 43081 => 'L', + 43082 => 'L', + 43083 => 'L', + 43084 => 'L', + 43085 => 'L', + 43086 => 'L', + 43087 => 'L', + 43088 => 'L', + 43089 => 'L', + 43090 => 'L', + 43091 => 'L', + 43092 => 'L', + 43093 => 'L', + 43094 => 'L', + 43095 => 'L', + 43096 => 'L', + 43097 => 'L', + 43098 => 'L', + 43099 => 'L', + 43100 => 'L', + 43101 => 'L', + 43102 => 'L', + 43103 => 'L', + 43104 => 'L', + 43105 => 'L', + 43106 => 'L', + 43107 => 'L', + 43108 => 'L', + 43109 => 'L', + 43110 => 'L', + 43111 => 'L', + 43112 => 'L', + 43113 => 'L', + 43114 => 'L', + 43115 => 'L', + 43116 => 'L', + 43117 => 'L', + 43118 => 'L', + 43119 => 'L', + 43120 => 'L', + 43121 => 'L', + 43122 => 'L', + 43123 => 'L', + 43124 => 'ON', + 43125 => 'ON', + 43126 => 'ON', + 43127 => 'ON', + 44032 => 'L', + 55203 => 'L', + 55296 => 'L', + 56191 => 'L', + 56192 => 'L', + 56319 => 'L', + 56320 => 'L', + 57343 => 'L', + 57344 => 'L', + 63743 => 'L', + 63744 => 'L', + 63745 => 'L', + 63746 => 'L', + 63747 => 'L', + 63748 => 'L', + 63749 => 'L', + 63750 => 'L', + 63751 => 'L', + 63752 => 'L', + 63753 => 'L', + 63754 => 'L', + 63755 => 'L', + 63756 => 'L', + 63757 => 'L', + 63758 => 'L', + 63759 => 'L', + 63760 => 'L', + 63761 => 'L', + 63762 => 'L', + 63763 => 'L', + 63764 => 'L', + 63765 => 'L', + 63766 => 'L', + 63767 => 'L', + 63768 => 'L', + 63769 => 'L', + 63770 => 'L', + 63771 => 'L', + 63772 => 'L', + 63773 => 'L', + 63774 => 'L', + 63775 => 'L', + 63776 => 'L', + 63777 => 'L', + 63778 => 'L', + 63779 => 'L', + 63780 => 'L', + 63781 => 'L', + 63782 => 'L', + 63783 => 'L', + 63784 => 'L', + 63785 => 'L', + 63786 => 'L', + 63787 => 'L', + 63788 => 'L', + 63789 => 'L', + 63790 => 'L', + 63791 => 'L', + 63792 => 'L', + 63793 => 'L', + 63794 => 'L', + 63795 => 'L', + 63796 => 'L', + 63797 => 'L', + 63798 => 'L', + 63799 => 'L', + 63800 => 'L', + 63801 => 'L', + 63802 => 'L', + 63803 => 'L', + 63804 => 'L', + 63805 => 'L', + 63806 => 'L', + 63807 => 'L', + 63808 => 'L', + 63809 => 'L', + 63810 => 'L', + 63811 => 'L', + 63812 => 'L', + 63813 => 'L', + 63814 => 'L', + 63815 => 'L', + 63816 => 'L', + 63817 => 'L', + 63818 => 'L', + 63819 => 'L', + 63820 => 'L', + 63821 => 'L', + 63822 => 'L', + 63823 => 'L', + 63824 => 'L', + 63825 => 'L', + 63826 => 'L', + 63827 => 'L', + 63828 => 'L', + 63829 => 'L', + 63830 => 'L', + 63831 => 'L', + 63832 => 'L', + 63833 => 'L', + 63834 => 'L', + 63835 => 'L', + 63836 => 'L', + 63837 => 'L', + 63838 => 'L', + 63839 => 'L', + 63840 => 'L', + 63841 => 'L', + 63842 => 'L', + 63843 => 'L', + 63844 => 'L', + 63845 => 'L', + 63846 => 'L', + 63847 => 'L', + 63848 => 'L', + 63849 => 'L', + 63850 => 'L', + 63851 => 'L', + 63852 => 'L', + 63853 => 'L', + 63854 => 'L', + 63855 => 'L', + 63856 => 'L', + 63857 => 'L', + 63858 => 'L', + 63859 => 'L', + 63860 => 'L', + 63861 => 'L', + 63862 => 'L', + 63863 => 'L', + 63864 => 'L', + 63865 => 'L', + 63866 => 'L', + 63867 => 'L', + 63868 => 'L', + 63869 => 'L', + 63870 => 'L', + 63871 => 'L', + 63872 => 'L', + 63873 => 'L', + 63874 => 'L', + 63875 => 'L', + 63876 => 'L', + 63877 => 'L', + 63878 => 'L', + 63879 => 'L', + 63880 => 'L', + 63881 => 'L', + 63882 => 'L', + 63883 => 'L', + 63884 => 'L', + 63885 => 'L', + 63886 => 'L', + 63887 => 'L', + 63888 => 'L', + 63889 => 'L', + 63890 => 'L', + 63891 => 'L', + 63892 => 'L', + 63893 => 'L', + 63894 => 'L', + 63895 => 'L', + 63896 => 'L', + 63897 => 'L', + 63898 => 'L', + 63899 => 'L', + 63900 => 'L', + 63901 => 'L', + 63902 => 'L', + 63903 => 'L', + 63904 => 'L', + 63905 => 'L', + 63906 => 'L', + 63907 => 'L', + 63908 => 'L', + 63909 => 'L', + 63910 => 'L', + 63911 => 'L', + 63912 => 'L', + 63913 => 'L', + 63914 => 'L', + 63915 => 'L', + 63916 => 'L', + 63917 => 'L', + 63918 => 'L', + 63919 => 'L', + 63920 => 'L', + 63921 => 'L', + 63922 => 'L', + 63923 => 'L', + 63924 => 'L', + 63925 => 'L', + 63926 => 'L', + 63927 => 'L', + 63928 => 'L', + 63929 => 'L', + 63930 => 'L', + 63931 => 'L', + 63932 => 'L', + 63933 => 'L', + 63934 => 'L', + 63935 => 'L', + 63936 => 'L', + 63937 => 'L', + 63938 => 'L', + 63939 => 'L', + 63940 => 'L', + 63941 => 'L', + 63942 => 'L', + 63943 => 'L', + 63944 => 'L', + 63945 => 'L', + 63946 => 'L', + 63947 => 'L', + 63948 => 'L', + 63949 => 'L', + 63950 => 'L', + 63951 => 'L', + 63952 => 'L', + 63953 => 'L', + 63954 => 'L', + 63955 => 'L', + 63956 => 'L', + 63957 => 'L', + 63958 => 'L', + 63959 => 'L', + 63960 => 'L', + 63961 => 'L', + 63962 => 'L', + 63963 => 'L', + 63964 => 'L', + 63965 => 'L', + 63966 => 'L', + 63967 => 'L', + 63968 => 'L', + 63969 => 'L', + 63970 => 'L', + 63971 => 'L', + 63972 => 'L', + 63973 => 'L', + 63974 => 'L', + 63975 => 'L', + 63976 => 'L', + 63977 => 'L', + 63978 => 'L', + 63979 => 'L', + 63980 => 'L', + 63981 => 'L', + 63982 => 'L', + 63983 => 'L', + 63984 => 'L', + 63985 => 'L', + 63986 => 'L', + 63987 => 'L', + 63988 => 'L', + 63989 => 'L', + 63990 => 'L', + 63991 => 'L', + 63992 => 'L', + 63993 => 'L', + 63994 => 'L', + 63995 => 'L', + 63996 => 'L', + 63997 => 'L', + 63998 => 'L', + 63999 => 'L', + 64000 => 'L', + 64001 => 'L', + 64002 => 'L', + 64003 => 'L', + 64004 => 'L', + 64005 => 'L', + 64006 => 'L', + 64007 => 'L', + 64008 => 'L', + 64009 => 'L', + 64010 => 'L', + 64011 => 'L', + 64012 => 'L', + 64013 => 'L', + 64014 => 'L', + 64015 => 'L', + 64016 => 'L', + 64017 => 'L', + 64018 => 'L', + 64019 => 'L', + 64020 => 'L', + 64021 => 'L', + 64022 => 'L', + 64023 => 'L', + 64024 => 'L', + 64025 => 'L', + 64026 => 'L', + 64027 => 'L', + 64028 => 'L', + 64029 => 'L', + 64030 => 'L', + 64031 => 'L', + 64032 => 'L', + 64033 => 'L', + 64034 => 'L', + 64035 => 'L', + 64036 => 'L', + 64037 => 'L', + 64038 => 'L', + 64039 => 'L', + 64040 => 'L', + 64041 => 'L', + 64042 => 'L', + 64043 => 'L', + 64044 => 'L', + 64045 => 'L', + 64048 => 'L', + 64049 => 'L', + 64050 => 'L', + 64051 => 'L', + 64052 => 'L', + 64053 => 'L', + 64054 => 'L', + 64055 => 'L', + 64056 => 'L', + 64057 => 'L', + 64058 => 'L', + 64059 => 'L', + 64060 => 'L', + 64061 => 'L', + 64062 => 'L', + 64063 => 'L', + 64064 => 'L', + 64065 => 'L', + 64066 => 'L', + 64067 => 'L', + 64068 => 'L', + 64069 => 'L', + 64070 => 'L', + 64071 => 'L', + 64072 => 'L', + 64073 => 'L', + 64074 => 'L', + 64075 => 'L', + 64076 => 'L', + 64077 => 'L', + 64078 => 'L', + 64079 => 'L', + 64080 => 'L', + 64081 => 'L', + 64082 => 'L', + 64083 => 'L', + 64084 => 'L', + 64085 => 'L', + 64086 => 'L', + 64087 => 'L', + 64088 => 'L', + 64089 => 'L', + 64090 => 'L', + 64091 => 'L', + 64092 => 'L', + 64093 => 'L', + 64094 => 'L', + 64095 => 'L', + 64096 => 'L', + 64097 => 'L', + 64098 => 'L', + 64099 => 'L', + 64100 => 'L', + 64101 => 'L', + 64102 => 'L', + 64103 => 'L', + 64104 => 'L', + 64105 => 'L', + 64106 => 'L', + 64112 => 'L', + 64113 => 'L', + 64114 => 'L', + 64115 => 'L', + 64116 => 'L', + 64117 => 'L', + 64118 => 'L', + 64119 => 'L', + 64120 => 'L', + 64121 => 'L', + 64122 => 'L', + 64123 => 'L', + 64124 => 'L', + 64125 => 'L', + 64126 => 'L', + 64127 => 'L', + 64128 => 'L', + 64129 => 'L', + 64130 => 'L', + 64131 => 'L', + 64132 => 'L', + 64133 => 'L', + 64134 => 'L', + 64135 => 'L', + 64136 => 'L', + 64137 => 'L', + 64138 => 'L', + 64139 => 'L', + 64140 => 'L', + 64141 => 'L', + 64142 => 'L', + 64143 => 'L', + 64144 => 'L', + 64145 => 'L', + 64146 => 'L', + 64147 => 'L', + 64148 => 'L', + 64149 => 'L', + 64150 => 'L', + 64151 => 'L', + 64152 => 'L', + 64153 => 'L', + 64154 => 'L', + 64155 => 'L', + 64156 => 'L', + 64157 => 'L', + 64158 => 'L', + 64159 => 'L', + 64160 => 'L', + 64161 => 'L', + 64162 => 'L', + 64163 => 'L', + 64164 => 'L', + 64165 => 'L', + 64166 => 'L', + 64167 => 'L', + 64168 => 'L', + 64169 => 'L', + 64170 => 'L', + 64171 => 'L', + 64172 => 'L', + 64173 => 'L', + 64174 => 'L', + 64175 => 'L', + 64176 => 'L', + 64177 => 'L', + 64178 => 'L', + 64179 => 'L', + 64180 => 'L', + 64181 => 'L', + 64182 => 'L', + 64183 => 'L', + 64184 => 'L', + 64185 => 'L', + 64186 => 'L', + 64187 => 'L', + 64188 => 'L', + 64189 => 'L', + 64190 => 'L', + 64191 => 'L', + 64192 => 'L', + 64193 => 'L', + 64194 => 'L', + 64195 => 'L', + 64196 => 'L', + 64197 => 'L', + 64198 => 'L', + 64199 => 'L', + 64200 => 'L', + 64201 => 'L', + 64202 => 'L', + 64203 => 'L', + 64204 => 'L', + 64205 => 'L', + 64206 => 'L', + 64207 => 'L', + 64208 => 'L', + 64209 => 'L', + 64210 => 'L', + 64211 => 'L', + 64212 => 'L', + 64213 => 'L', + 64214 => 'L', + 64215 => 'L', + 64216 => 'L', + 64217 => 'L', + 64256 => 'L', + 64257 => 'L', + 64258 => 'L', + 64259 => 'L', + 64260 => 'L', + 64261 => 'L', + 64262 => 'L', + 64275 => 'L', + 64276 => 'L', + 64277 => 'L', + 64278 => 'L', + 64279 => 'L', + 64285 => 'R', + 64286 => 'NSM', + 64287 => 'R', + 64288 => 'R', + 64289 => 'R', + 64290 => 'R', + 64291 => 'R', + 64292 => 'R', + 64293 => 'R', + 64294 => 'R', + 64295 => 'R', + 64296 => 'R', + 64297 => 'ES', + 64298 => 'R', + 64299 => 'R', + 64300 => 'R', + 64301 => 'R', + 64302 => 'R', + 64303 => 'R', + 64304 => 'R', + 64305 => 'R', + 64306 => 'R', + 64307 => 'R', + 64308 => 'R', + 64309 => 'R', + 64310 => 'R', + 64312 => 'R', + 64313 => 'R', + 64314 => 'R', + 64315 => 'R', + 64316 => 'R', + 64318 => 'R', + 64320 => 'R', + 64321 => 'R', + 64323 => 'R', + 64324 => 'R', + 64326 => 'R', + 64327 => 'R', + 64328 => 'R', + 64329 => 'R', + 64330 => 'R', + 64331 => 'R', + 64332 => 'R', + 64333 => 'R', + 64334 => 'R', + 64335 => 'R', + 64336 => 'AL', + 64337 => 'AL', + 64338 => 'AL', + 64339 => 'AL', + 64340 => 'AL', + 64341 => 'AL', + 64342 => 'AL', + 64343 => 'AL', + 64344 => 'AL', + 64345 => 'AL', + 64346 => 'AL', + 64347 => 'AL', + 64348 => 'AL', + 64349 => 'AL', + 64350 => 'AL', + 64351 => 'AL', + 64352 => 'AL', + 64353 => 'AL', + 64354 => 'AL', + 64355 => 'AL', + 64356 => 'AL', + 64357 => 'AL', + 64358 => 'AL', + 64359 => 'AL', + 64360 => 'AL', + 64361 => 'AL', + 64362 => 'AL', + 64363 => 'AL', + 64364 => 'AL', + 64365 => 'AL', + 64366 => 'AL', + 64367 => 'AL', + 64368 => 'AL', + 64369 => 'AL', + 64370 => 'AL', + 64371 => 'AL', + 64372 => 'AL', + 64373 => 'AL', + 64374 => 'AL', + 64375 => 'AL', + 64376 => 'AL', + 64377 => 'AL', + 64378 => 'AL', + 64379 => 'AL', + 64380 => 'AL', + 64381 => 'AL', + 64382 => 'AL', + 64383 => 'AL', + 64384 => 'AL', + 64385 => 'AL', + 64386 => 'AL', + 64387 => 'AL', + 64388 => 'AL', + 64389 => 'AL', + 64390 => 'AL', + 64391 => 'AL', + 64392 => 'AL', + 64393 => 'AL', + 64394 => 'AL', + 64395 => 'AL', + 64396 => 'AL', + 64397 => 'AL', + 64398 => 'AL', + 64399 => 'AL', + 64400 => 'AL', + 64401 => 'AL', + 64402 => 'AL', + 64403 => 'AL', + 64404 => 'AL', + 64405 => 'AL', + 64406 => 'AL', + 64407 => 'AL', + 64408 => 'AL', + 64409 => 'AL', + 64410 => 'AL', + 64411 => 'AL', + 64412 => 'AL', + 64413 => 'AL', + 64414 => 'AL', + 64415 => 'AL', + 64416 => 'AL', + 64417 => 'AL', + 64418 => 'AL', + 64419 => 'AL', + 64420 => 'AL', + 64421 => 'AL', + 64422 => 'AL', + 64423 => 'AL', + 64424 => 'AL', + 64425 => 'AL', + 64426 => 'AL', + 64427 => 'AL', + 64428 => 'AL', + 64429 => 'AL', + 64430 => 'AL', + 64431 => 'AL', + 64432 => 'AL', + 64433 => 'AL', + 64467 => 'AL', + 64468 => 'AL', + 64469 => 'AL', + 64470 => 'AL', + 64471 => 'AL', + 64472 => 'AL', + 64473 => 'AL', + 64474 => 'AL', + 64475 => 'AL', + 64476 => 'AL', + 64477 => 'AL', + 64478 => 'AL', + 64479 => 'AL', + 64480 => 'AL', + 64481 => 'AL', + 64482 => 'AL', + 64483 => 'AL', + 64484 => 'AL', + 64485 => 'AL', + 64486 => 'AL', + 64487 => 'AL', + 64488 => 'AL', + 64489 => 'AL', + 64490 => 'AL', + 64491 => 'AL', + 64492 => 'AL', + 64493 => 'AL', + 64494 => 'AL', + 64495 => 'AL', + 64496 => 'AL', + 64497 => 'AL', + 64498 => 'AL', + 64499 => 'AL', + 64500 => 'AL', + 64501 => 'AL', + 64502 => 'AL', + 64503 => 'AL', + 64504 => 'AL', + 64505 => 'AL', + 64506 => 'AL', + 64507 => 'AL', + 64508 => 'AL', + 64509 => 'AL', + 64510 => 'AL', + 64511 => 'AL', + 64512 => 'AL', + 64513 => 'AL', + 64514 => 'AL', + 64515 => 'AL', + 64516 => 'AL', + 64517 => 'AL', + 64518 => 'AL', + 64519 => 'AL', + 64520 => 'AL', + 64521 => 'AL', + 64522 => 'AL', + 64523 => 'AL', + 64524 => 'AL', + 64525 => 'AL', + 64526 => 'AL', + 64527 => 'AL', + 64528 => 'AL', + 64529 => 'AL', + 64530 => 'AL', + 64531 => 'AL', + 64532 => 'AL', + 64533 => 'AL', + 64534 => 'AL', + 64535 => 'AL', + 64536 => 'AL', + 64537 => 'AL', + 64538 => 'AL', + 64539 => 'AL', + 64540 => 'AL', + 64541 => 'AL', + 64542 => 'AL', + 64543 => 'AL', + 64544 => 'AL', + 64545 => 'AL', + 64546 => 'AL', + 64547 => 'AL', + 64548 => 'AL', + 64549 => 'AL', + 64550 => 'AL', + 64551 => 'AL', + 64552 => 'AL', + 64553 => 'AL', + 64554 => 'AL', + 64555 => 'AL', + 64556 => 'AL', + 64557 => 'AL', + 64558 => 'AL', + 64559 => 'AL', + 64560 => 'AL', + 64561 => 'AL', + 64562 => 'AL', + 64563 => 'AL', + 64564 => 'AL', + 64565 => 'AL', + 64566 => 'AL', + 64567 => 'AL', + 64568 => 'AL', + 64569 => 'AL', + 64570 => 'AL', + 64571 => 'AL', + 64572 => 'AL', + 64573 => 'AL', + 64574 => 'AL', + 64575 => 'AL', + 64576 => 'AL', + 64577 => 'AL', + 64578 => 'AL', + 64579 => 'AL', + 64580 => 'AL', + 64581 => 'AL', + 64582 => 'AL', + 64583 => 'AL', + 64584 => 'AL', + 64585 => 'AL', + 64586 => 'AL', + 64587 => 'AL', + 64588 => 'AL', + 64589 => 'AL', + 64590 => 'AL', + 64591 => 'AL', + 64592 => 'AL', + 64593 => 'AL', + 64594 => 'AL', + 64595 => 'AL', + 64596 => 'AL', + 64597 => 'AL', + 64598 => 'AL', + 64599 => 'AL', + 64600 => 'AL', + 64601 => 'AL', + 64602 => 'AL', + 64603 => 'AL', + 64604 => 'AL', + 64605 => 'AL', + 64606 => 'AL', + 64607 => 'AL', + 64608 => 'AL', + 64609 => 'AL', + 64610 => 'AL', + 64611 => 'AL', + 64612 => 'AL', + 64613 => 'AL', + 64614 => 'AL', + 64615 => 'AL', + 64616 => 'AL', + 64617 => 'AL', + 64618 => 'AL', + 64619 => 'AL', + 64620 => 'AL', + 64621 => 'AL', + 64622 => 'AL', + 64623 => 'AL', + 64624 => 'AL', + 64625 => 'AL', + 64626 => 'AL', + 64627 => 'AL', + 64628 => 'AL', + 64629 => 'AL', + 64630 => 'AL', + 64631 => 'AL', + 64632 => 'AL', + 64633 => 'AL', + 64634 => 'AL', + 64635 => 'AL', + 64636 => 'AL', + 64637 => 'AL', + 64638 => 'AL', + 64639 => 'AL', + 64640 => 'AL', + 64641 => 'AL', + 64642 => 'AL', + 64643 => 'AL', + 64644 => 'AL', + 64645 => 'AL', + 64646 => 'AL', + 64647 => 'AL', + 64648 => 'AL', + 64649 => 'AL', + 64650 => 'AL', + 64651 => 'AL', + 64652 => 'AL', + 64653 => 'AL', + 64654 => 'AL', + 64655 => 'AL', + 64656 => 'AL', + 64657 => 'AL', + 64658 => 'AL', + 64659 => 'AL', + 64660 => 'AL', + 64661 => 'AL', + 64662 => 'AL', + 64663 => 'AL', + 64664 => 'AL', + 64665 => 'AL', + 64666 => 'AL', + 64667 => 'AL', + 64668 => 'AL', + 64669 => 'AL', + 64670 => 'AL', + 64671 => 'AL', + 64672 => 'AL', + 64673 => 'AL', + 64674 => 'AL', + 64675 => 'AL', + 64676 => 'AL', + 64677 => 'AL', + 64678 => 'AL', + 64679 => 'AL', + 64680 => 'AL', + 64681 => 'AL', + 64682 => 'AL', + 64683 => 'AL', + 64684 => 'AL', + 64685 => 'AL', + 64686 => 'AL', + 64687 => 'AL', + 64688 => 'AL', + 64689 => 'AL', + 64690 => 'AL', + 64691 => 'AL', + 64692 => 'AL', + 64693 => 'AL', + 64694 => 'AL', + 64695 => 'AL', + 64696 => 'AL', + 64697 => 'AL', + 64698 => 'AL', + 64699 => 'AL', + 64700 => 'AL', + 64701 => 'AL', + 64702 => 'AL', + 64703 => 'AL', + 64704 => 'AL', + 64705 => 'AL', + 64706 => 'AL', + 64707 => 'AL', + 64708 => 'AL', + 64709 => 'AL', + 64710 => 'AL', + 64711 => 'AL', + 64712 => 'AL', + 64713 => 'AL', + 64714 => 'AL', + 64715 => 'AL', + 64716 => 'AL', + 64717 => 'AL', + 64718 => 'AL', + 64719 => 'AL', + 64720 => 'AL', + 64721 => 'AL', + 64722 => 'AL', + 64723 => 'AL', + 64724 => 'AL', + 64725 => 'AL', + 64726 => 'AL', + 64727 => 'AL', + 64728 => 'AL', + 64729 => 'AL', + 64730 => 'AL', + 64731 => 'AL', + 64732 => 'AL', + 64733 => 'AL', + 64734 => 'AL', + 64735 => 'AL', + 64736 => 'AL', + 64737 => 'AL', + 64738 => 'AL', + 64739 => 'AL', + 64740 => 'AL', + 64741 => 'AL', + 64742 => 'AL', + 64743 => 'AL', + 64744 => 'AL', + 64745 => 'AL', + 64746 => 'AL', + 64747 => 'AL', + 64748 => 'AL', + 64749 => 'AL', + 64750 => 'AL', + 64751 => 'AL', + 64752 => 'AL', + 64753 => 'AL', + 64754 => 'AL', + 64755 => 'AL', + 64756 => 'AL', + 64757 => 'AL', + 64758 => 'AL', + 64759 => 'AL', + 64760 => 'AL', + 64761 => 'AL', + 64762 => 'AL', + 64763 => 'AL', + 64764 => 'AL', + 64765 => 'AL', + 64766 => 'AL', + 64767 => 'AL', + 64768 => 'AL', + 64769 => 'AL', + 64770 => 'AL', + 64771 => 'AL', + 64772 => 'AL', + 64773 => 'AL', + 64774 => 'AL', + 64775 => 'AL', + 64776 => 'AL', + 64777 => 'AL', + 64778 => 'AL', + 64779 => 'AL', + 64780 => 'AL', + 64781 => 'AL', + 64782 => 'AL', + 64783 => 'AL', + 64784 => 'AL', + 64785 => 'AL', + 64786 => 'AL', + 64787 => 'AL', + 64788 => 'AL', + 64789 => 'AL', + 64790 => 'AL', + 64791 => 'AL', + 64792 => 'AL', + 64793 => 'AL', + 64794 => 'AL', + 64795 => 'AL', + 64796 => 'AL', + 64797 => 'AL', + 64798 => 'AL', + 64799 => 'AL', + 64800 => 'AL', + 64801 => 'AL', + 64802 => 'AL', + 64803 => 'AL', + 64804 => 'AL', + 64805 => 'AL', + 64806 => 'AL', + 64807 => 'AL', + 64808 => 'AL', + 64809 => 'AL', + 64810 => 'AL', + 64811 => 'AL', + 64812 => 'AL', + 64813 => 'AL', + 64814 => 'AL', + 64815 => 'AL', + 64816 => 'AL', + 64817 => 'AL', + 64818 => 'AL', + 64819 => 'AL', + 64820 => 'AL', + 64821 => 'AL', + 64822 => 'AL', + 64823 => 'AL', + 64824 => 'AL', + 64825 => 'AL', + 64826 => 'AL', + 64827 => 'AL', + 64828 => 'AL', + 64829 => 'AL', + 64830 => 'ON', + 64831 => 'ON', + 64848 => 'AL', + 64849 => 'AL', + 64850 => 'AL', + 64851 => 'AL', + 64852 => 'AL', + 64853 => 'AL', + 64854 => 'AL', + 64855 => 'AL', + 64856 => 'AL', + 64857 => 'AL', + 64858 => 'AL', + 64859 => 'AL', + 64860 => 'AL', + 64861 => 'AL', + 64862 => 'AL', + 64863 => 'AL', + 64864 => 'AL', + 64865 => 'AL', + 64866 => 'AL', + 64867 => 'AL', + 64868 => 'AL', + 64869 => 'AL', + 64870 => 'AL', + 64871 => 'AL', + 64872 => 'AL', + 64873 => 'AL', + 64874 => 'AL', + 64875 => 'AL', + 64876 => 'AL', + 64877 => 'AL', + 64878 => 'AL', + 64879 => 'AL', + 64880 => 'AL', + 64881 => 'AL', + 64882 => 'AL', + 64883 => 'AL', + 64884 => 'AL', + 64885 => 'AL', + 64886 => 'AL', + 64887 => 'AL', + 64888 => 'AL', + 64889 => 'AL', + 64890 => 'AL', + 64891 => 'AL', + 64892 => 'AL', + 64893 => 'AL', + 64894 => 'AL', + 64895 => 'AL', + 64896 => 'AL', + 64897 => 'AL', + 64898 => 'AL', + 64899 => 'AL', + 64900 => 'AL', + 64901 => 'AL', + 64902 => 'AL', + 64903 => 'AL', + 64904 => 'AL', + 64905 => 'AL', + 64906 => 'AL', + 64907 => 'AL', + 64908 => 'AL', + 64909 => 'AL', + 64910 => 'AL', + 64911 => 'AL', + 64914 => 'AL', + 64915 => 'AL', + 64916 => 'AL', + 64917 => 'AL', + 64918 => 'AL', + 64919 => 'AL', + 64920 => 'AL', + 64921 => 'AL', + 64922 => 'AL', + 64923 => 'AL', + 64924 => 'AL', + 64925 => 'AL', + 64926 => 'AL', + 64927 => 'AL', + 64928 => 'AL', + 64929 => 'AL', + 64930 => 'AL', + 64931 => 'AL', + 64932 => 'AL', + 64933 => 'AL', + 64934 => 'AL', + 64935 => 'AL', + 64936 => 'AL', + 64937 => 'AL', + 64938 => 'AL', + 64939 => 'AL', + 64940 => 'AL', + 64941 => 'AL', + 64942 => 'AL', + 64943 => 'AL', + 64944 => 'AL', + 64945 => 'AL', + 64946 => 'AL', + 64947 => 'AL', + 64948 => 'AL', + 64949 => 'AL', + 64950 => 'AL', + 64951 => 'AL', + 64952 => 'AL', + 64953 => 'AL', + 64954 => 'AL', + 64955 => 'AL', + 64956 => 'AL', + 64957 => 'AL', + 64958 => 'AL', + 64959 => 'AL', + 64960 => 'AL', + 64961 => 'AL', + 64962 => 'AL', + 64963 => 'AL', + 64964 => 'AL', + 64965 => 'AL', + 64966 => 'AL', + 64967 => 'AL', + 65008 => 'AL', + 65009 => 'AL', + 65010 => 'AL', + 65011 => 'AL', + 65012 => 'AL', + 65013 => 'AL', + 65014 => 'AL', + 65015 => 'AL', + 65016 => 'AL', + 65017 => 'AL', + 65018 => 'AL', + 65019 => 'AL', + 65020 => 'AL', + 65021 => 'ON', + 65024 => 'NSM', + 65025 => 'NSM', + 65026 => 'NSM', + 65027 => 'NSM', + 65028 => 'NSM', + 65029 => 'NSM', + 65030 => 'NSM', + 65031 => 'NSM', + 65032 => 'NSM', + 65033 => 'NSM', + 65034 => 'NSM', + 65035 => 'NSM', + 65036 => 'NSM', + 65037 => 'NSM', + 65038 => 'NSM', + 65039 => 'NSM', + 65040 => 'ON', + 65041 => 'ON', + 65042 => 'ON', + 65043 => 'ON', + 65044 => 'ON', + 65045 => 'ON', + 65046 => 'ON', + 65047 => 'ON', + 65048 => 'ON', + 65049 => 'ON', + 65056 => 'NSM', + 65057 => 'NSM', + 65058 => 'NSM', + 65059 => 'NSM', + 65072 => 'ON', + 65073 => 'ON', + 65074 => 'ON', + 65075 => 'ON', + 65076 => 'ON', + 65077 => 'ON', + 65078 => 'ON', + 65079 => 'ON', + 65080 => 'ON', + 65081 => 'ON', + 65082 => 'ON', + 65083 => 'ON', + 65084 => 'ON', + 65085 => 'ON', + 65086 => 'ON', + 65087 => 'ON', + 65088 => 'ON', + 65089 => 'ON', + 65090 => 'ON', + 65091 => 'ON', + 65092 => 'ON', + 65093 => 'ON', + 65094 => 'ON', + 65095 => 'ON', + 65096 => 'ON', + 65097 => 'ON', + 65098 => 'ON', + 65099 => 'ON', + 65100 => 'ON', + 65101 => 'ON', + 65102 => 'ON', + 65103 => 'ON', + 65104 => 'CS', + 65105 => 'ON', + 65106 => 'CS', + 65108 => 'ON', + 65109 => 'CS', + 65110 => 'ON', + 65111 => 'ON', + 65112 => 'ON', + 65113 => 'ON', + 65114 => 'ON', + 65115 => 'ON', + 65116 => 'ON', + 65117 => 'ON', + 65118 => 'ON', + 65119 => 'ET', + 65120 => 'ON', + 65121 => 'ON', + 65122 => 'ES', + 65123 => 'ES', + 65124 => 'ON', + 65125 => 'ON', + 65126 => 'ON', + 65128 => 'ON', + 65129 => 'ET', + 65130 => 'ET', + 65131 => 'ON', + 65136 => 'AL', + 65137 => 'AL', + 65138 => 'AL', + 65139 => 'AL', + 65140 => 'AL', + 65142 => 'AL', + 65143 => 'AL', + 65144 => 'AL', + 65145 => 'AL', + 65146 => 'AL', + 65147 => 'AL', + 65148 => 'AL', + 65149 => 'AL', + 65150 => 'AL', + 65151 => 'AL', + 65152 => 'AL', + 65153 => 'AL', + 65154 => 'AL', + 65155 => 'AL', + 65156 => 'AL', + 65157 => 'AL', + 65158 => 'AL', + 65159 => 'AL', + 65160 => 'AL', + 65161 => 'AL', + 65162 => 'AL', + 65163 => 'AL', + 65164 => 'AL', + 65165 => 'AL', + 65166 => 'AL', + 65167 => 'AL', + 65168 => 'AL', + 65169 => 'AL', + 65170 => 'AL', + 65171 => 'AL', + 65172 => 'AL', + 65173 => 'AL', + 65174 => 'AL', + 65175 => 'AL', + 65176 => 'AL', + 65177 => 'AL', + 65178 => 'AL', + 65179 => 'AL', + 65180 => 'AL', + 65181 => 'AL', + 65182 => 'AL', + 65183 => 'AL', + 65184 => 'AL', + 65185 => 'AL', + 65186 => 'AL', + 65187 => 'AL', + 65188 => 'AL', + 65189 => 'AL', + 65190 => 'AL', + 65191 => 'AL', + 65192 => 'AL', + 65193 => 'AL', + 65194 => 'AL', + 65195 => 'AL', + 65196 => 'AL', + 65197 => 'AL', + 65198 => 'AL', + 65199 => 'AL', + 65200 => 'AL', + 65201 => 'AL', + 65202 => 'AL', + 65203 => 'AL', + 65204 => 'AL', + 65205 => 'AL', + 65206 => 'AL', + 65207 => 'AL', + 65208 => 'AL', + 65209 => 'AL', + 65210 => 'AL', + 65211 => 'AL', + 65212 => 'AL', + 65213 => 'AL', + 65214 => 'AL', + 65215 => 'AL', + 65216 => 'AL', + 65217 => 'AL', + 65218 => 'AL', + 65219 => 'AL', + 65220 => 'AL', + 65221 => 'AL', + 65222 => 'AL', + 65223 => 'AL', + 65224 => 'AL', + 65225 => 'AL', + 65226 => 'AL', + 65227 => 'AL', + 65228 => 'AL', + 65229 => 'AL', + 65230 => 'AL', + 65231 => 'AL', + 65232 => 'AL', + 65233 => 'AL', + 65234 => 'AL', + 65235 => 'AL', + 65236 => 'AL', + 65237 => 'AL', + 65238 => 'AL', + 65239 => 'AL', + 65240 => 'AL', + 65241 => 'AL', + 65242 => 'AL', + 65243 => 'AL', + 65244 => 'AL', + 65245 => 'AL', + 65246 => 'AL', + 65247 => 'AL', + 65248 => 'AL', + 65249 => 'AL', + 65250 => 'AL', + 65251 => 'AL', + 65252 => 'AL', + 65253 => 'AL', + 65254 => 'AL', + 65255 => 'AL', + 65256 => 'AL', + 65257 => 'AL', + 65258 => 'AL', + 65259 => 'AL', + 65260 => 'AL', + 65261 => 'AL', + 65262 => 'AL', + 65263 => 'AL', + 65264 => 'AL', + 65265 => 'AL', + 65266 => 'AL', + 65267 => 'AL', + 65268 => 'AL', + 65269 => 'AL', + 65270 => 'AL', + 65271 => 'AL', + 65272 => 'AL', + 65273 => 'AL', + 65274 => 'AL', + 65275 => 'AL', + 65276 => 'AL', + 65279 => 'BN', + 65281 => 'ON', + 65282 => 'ON', + 65283 => 'ET', + 65284 => 'ET', + 65285 => 'ET', + 65286 => 'ON', + 65287 => 'ON', + 65288 => 'ON', + 65289 => 'ON', + 65290 => 'ON', + 65291 => 'ES', + 65292 => 'CS', + 65293 => 'ES', + 65294 => 'CS', + 65295 => 'CS', + 65296 => 'EN', + 65297 => 'EN', + 65298 => 'EN', + 65299 => 'EN', + 65300 => 'EN', + 65301 => 'EN', + 65302 => 'EN', + 65303 => 'EN', + 65304 => 'EN', + 65305 => 'EN', + 65306 => 'CS', + 65307 => 'ON', + 65308 => 'ON', + 65309 => 'ON', + 65310 => 'ON', + 65311 => 'ON', + 65312 => 'ON', + 65313 => 'L', + 65314 => 'L', + 65315 => 'L', + 65316 => 'L', + 65317 => 'L', + 65318 => 'L', + 65319 => 'L', + 65320 => 'L', + 65321 => 'L', + 65322 => 'L', + 65323 => 'L', + 65324 => 'L', + 65325 => 'L', + 65326 => 'L', + 65327 => 'L', + 65328 => 'L', + 65329 => 'L', + 65330 => 'L', + 65331 => 'L', + 65332 => 'L', + 65333 => 'L', + 65334 => 'L', + 65335 => 'L', + 65336 => 'L', + 65337 => 'L', + 65338 => 'L', + 65339 => 'ON', + 65340 => 'ON', + 65341 => 'ON', + 65342 => 'ON', + 65343 => 'ON', + 65344 => 'ON', + 65345 => 'L', + 65346 => 'L', + 65347 => 'L', + 65348 => 'L', + 65349 => 'L', + 65350 => 'L', + 65351 => 'L', + 65352 => 'L', + 65353 => 'L', + 65354 => 'L', + 65355 => 'L', + 65356 => 'L', + 65357 => 'L', + 65358 => 'L', + 65359 => 'L', + 65360 => 'L', + 65361 => 'L', + 65362 => 'L', + 65363 => 'L', + 65364 => 'L', + 65365 => 'L', + 65366 => 'L', + 65367 => 'L', + 65368 => 'L', + 65369 => 'L', + 65370 => 'L', + 65371 => 'ON', + 65372 => 'ON', + 65373 => 'ON', + 65374 => 'ON', + 65375 => 'ON', + 65376 => 'ON', + 65377 => 'ON', + 65378 => 'ON', + 65379 => 'ON', + 65380 => 'ON', + 65381 => 'ON', + 65382 => 'L', + 65383 => 'L', + 65384 => 'L', + 65385 => 'L', + 65386 => 'L', + 65387 => 'L', + 65388 => 'L', + 65389 => 'L', + 65390 => 'L', + 65391 => 'L', + 65392 => 'L', + 65393 => 'L', + 65394 => 'L', + 65395 => 'L', + 65396 => 'L', + 65397 => 'L', + 65398 => 'L', + 65399 => 'L', + 65400 => 'L', + 65401 => 'L', + 65402 => 'L', + 65403 => 'L', + 65404 => 'L', + 65405 => 'L', + 65406 => 'L', + 65407 => 'L', + 65408 => 'L', + 65409 => 'L', + 65410 => 'L', + 65411 => 'L', + 65412 => 'L', + 65413 => 'L', + 65414 => 'L', + 65415 => 'L', + 65416 => 'L', + 65417 => 'L', + 65418 => 'L', + 65419 => 'L', + 65420 => 'L', + 65421 => 'L', + 65422 => 'L', + 65423 => 'L', + 65424 => 'L', + 65425 => 'L', + 65426 => 'L', + 65427 => 'L', + 65428 => 'L', + 65429 => 'L', + 65430 => 'L', + 65431 => 'L', + 65432 => 'L', + 65433 => 'L', + 65434 => 'L', + 65435 => 'L', + 65436 => 'L', + 65437 => 'L', + 65438 => 'L', + 65439 => 'L', + 65440 => 'L', + 65441 => 'L', + 65442 => 'L', + 65443 => 'L', + 65444 => 'L', + 65445 => 'L', + 65446 => 'L', + 65447 => 'L', + 65448 => 'L', + 65449 => 'L', + 65450 => 'L', + 65451 => 'L', + 65452 => 'L', + 65453 => 'L', + 65454 => 'L', + 65455 => 'L', + 65456 => 'L', + 65457 => 'L', + 65458 => 'L', + 65459 => 'L', + 65460 => 'L', + 65461 => 'L', + 65462 => 'L', + 65463 => 'L', + 65464 => 'L', + 65465 => 'L', + 65466 => 'L', + 65467 => 'L', + 65468 => 'L', + 65469 => 'L', + 65470 => 'L', + 65474 => 'L', + 65475 => 'L', + 65476 => 'L', + 65477 => 'L', + 65478 => 'L', + 65479 => 'L', + 65482 => 'L', + 65483 => 'L', + 65484 => 'L', + 65485 => 'L', + 65486 => 'L', + 65487 => 'L', + 65490 => 'L', + 65491 => 'L', + 65492 => 'L', + 65493 => 'L', + 65494 => 'L', + 65495 => 'L', + 65498 => 'L', + 65499 => 'L', + 65500 => 'L', + 65504 => 'ET', + 65505 => 'ET', + 65506 => 'ON', + 65507 => 'ON', + 65508 => 'ON', + 65509 => 'ET', + 65510 => 'ET', + 65512 => 'ON', + 65513 => 'ON', + 65514 => 'ON', + 65515 => 'ON', + 65516 => 'ON', + 65517 => 'ON', + 65518 => 'ON', + 65529 => 'ON', + 65530 => 'ON', + 65531 => 'ON', + 65532 => 'ON', + 65533 => 'ON', + 65536 => 'L', + 65537 => 'L', + 65538 => 'L', + 65539 => 'L', + 65540 => 'L', + 65541 => 'L', + 65542 => 'L', + 65543 => 'L', + 65544 => 'L', + 65545 => 'L', + 65546 => 'L', + 65547 => 'L', + 65549 => 'L', + 65550 => 'L', + 65551 => 'L', + 65552 => 'L', + 65553 => 'L', + 65554 => 'L', + 65555 => 'L', + 65556 => 'L', + 65557 => 'L', + 65558 => 'L', + 65559 => 'L', + 65560 => 'L', + 65561 => 'L', + 65562 => 'L', + 65563 => 'L', + 65564 => 'L', + 65565 => 'L', + 65566 => 'L', + 65567 => 'L', + 65568 => 'L', + 65569 => 'L', + 65570 => 'L', + 65571 => 'L', + 65572 => 'L', + 65573 => 'L', + 65574 => 'L', + 65576 => 'L', + 65577 => 'L', + 65578 => 'L', + 65579 => 'L', + 65580 => 'L', + 65581 => 'L', + 65582 => 'L', + 65583 => 'L', + 65584 => 'L', + 65585 => 'L', + 65586 => 'L', + 65587 => 'L', + 65588 => 'L', + 65589 => 'L', + 65590 => 'L', + 65591 => 'L', + 65592 => 'L', + 65593 => 'L', + 65594 => 'L', + 65596 => 'L', + 65597 => 'L', + 65599 => 'L', + 65600 => 'L', + 65601 => 'L', + 65602 => 'L', + 65603 => 'L', + 65604 => 'L', + 65605 => 'L', + 65606 => 'L', + 65607 => 'L', + 65608 => 'L', + 65609 => 'L', + 65610 => 'L', + 65611 => 'L', + 65612 => 'L', + 65613 => 'L', + 65616 => 'L', + 65617 => 'L', + 65618 => 'L', + 65619 => 'L', + 65620 => 'L', + 65621 => 'L', + 65622 => 'L', + 65623 => 'L', + 65624 => 'L', + 65625 => 'L', + 65626 => 'L', + 65627 => 'L', + 65628 => 'L', + 65629 => 'L', + 65664 => 'L', + 65665 => 'L', + 65666 => 'L', + 65667 => 'L', + 65668 => 'L', + 65669 => 'L', + 65670 => 'L', + 65671 => 'L', + 65672 => 'L', + 65673 => 'L', + 65674 => 'L', + 65675 => 'L', + 65676 => 'L', + 65677 => 'L', + 65678 => 'L', + 65679 => 'L', + 65680 => 'L', + 65681 => 'L', + 65682 => 'L', + 65683 => 'L', + 65684 => 'L', + 65685 => 'L', + 65686 => 'L', + 65687 => 'L', + 65688 => 'L', + 65689 => 'L', + 65690 => 'L', + 65691 => 'L', + 65692 => 'L', + 65693 => 'L', + 65694 => 'L', + 65695 => 'L', + 65696 => 'L', + 65697 => 'L', + 65698 => 'L', + 65699 => 'L', + 65700 => 'L', + 65701 => 'L', + 65702 => 'L', + 65703 => 'L', + 65704 => 'L', + 65705 => 'L', + 65706 => 'L', + 65707 => 'L', + 65708 => 'L', + 65709 => 'L', + 65710 => 'L', + 65711 => 'L', + 65712 => 'L', + 65713 => 'L', + 65714 => 'L', + 65715 => 'L', + 65716 => 'L', + 65717 => 'L', + 65718 => 'L', + 65719 => 'L', + 65720 => 'L', + 65721 => 'L', + 65722 => 'L', + 65723 => 'L', + 65724 => 'L', + 65725 => 'L', + 65726 => 'L', + 65727 => 'L', + 65728 => 'L', + 65729 => 'L', + 65730 => 'L', + 65731 => 'L', + 65732 => 'L', + 65733 => 'L', + 65734 => 'L', + 65735 => 'L', + 65736 => 'L', + 65737 => 'L', + 65738 => 'L', + 65739 => 'L', + 65740 => 'L', + 65741 => 'L', + 65742 => 'L', + 65743 => 'L', + 65744 => 'L', + 65745 => 'L', + 65746 => 'L', + 65747 => 'L', + 65748 => 'L', + 65749 => 'L', + 65750 => 'L', + 65751 => 'L', + 65752 => 'L', + 65753 => 'L', + 65754 => 'L', + 65755 => 'L', + 65756 => 'L', + 65757 => 'L', + 65758 => 'L', + 65759 => 'L', + 65760 => 'L', + 65761 => 'L', + 65762 => 'L', + 65763 => 'L', + 65764 => 'L', + 65765 => 'L', + 65766 => 'L', + 65767 => 'L', + 65768 => 'L', + 65769 => 'L', + 65770 => 'L', + 65771 => 'L', + 65772 => 'L', + 65773 => 'L', + 65774 => 'L', + 65775 => 'L', + 65776 => 'L', + 65777 => 'L', + 65778 => 'L', + 65779 => 'L', + 65780 => 'L', + 65781 => 'L', + 65782 => 'L', + 65783 => 'L', + 65784 => 'L', + 65785 => 'L', + 65786 => 'L', + 65792 => 'L', + 65793 => 'ON', + 65794 => 'L', + 65799 => 'L', + 65800 => 'L', + 65801 => 'L', + 65802 => 'L', + 65803 => 'L', + 65804 => 'L', + 65805 => 'L', + 65806 => 'L', + 65807 => 'L', + 65808 => 'L', + 65809 => 'L', + 65810 => 'L', + 65811 => 'L', + 65812 => 'L', + 65813 => 'L', + 65814 => 'L', + 65815 => 'L', + 65816 => 'L', + 65817 => 'L', + 65818 => 'L', + 65819 => 'L', + 65820 => 'L', + 65821 => 'L', + 65822 => 'L', + 65823 => 'L', + 65824 => 'L', + 65825 => 'L', + 65826 => 'L', + 65827 => 'L', + 65828 => 'L', + 65829 => 'L', + 65830 => 'L', + 65831 => 'L', + 65832 => 'L', + 65833 => 'L', + 65834 => 'L', + 65835 => 'L', + 65836 => 'L', + 65837 => 'L', + 65838 => 'L', + 65839 => 'L', + 65840 => 'L', + 65841 => 'L', + 65842 => 'L', + 65843 => 'L', + 65847 => 'L', + 65848 => 'L', + 65849 => 'L', + 65850 => 'L', + 65851 => 'L', + 65852 => 'L', + 65853 => 'L', + 65854 => 'L', + 65855 => 'L', + 65856 => 'ON', + 65857 => 'ON', + 65858 => 'ON', + 65859 => 'ON', + 65860 => 'ON', + 65861 => 'ON', + 65862 => 'ON', + 65863 => 'ON', + 65864 => 'ON', + 65865 => 'ON', + 65866 => 'ON', + 65867 => 'ON', + 65868 => 'ON', + 65869 => 'ON', + 65870 => 'ON', + 65871 => 'ON', + 65872 => 'ON', + 65873 => 'ON', + 65874 => 'ON', + 65875 => 'ON', + 65876 => 'ON', + 65877 => 'ON', + 65878 => 'ON', + 65879 => 'ON', + 65880 => 'ON', + 65881 => 'ON', + 65882 => 'ON', + 65883 => 'ON', + 65884 => 'ON', + 65885 => 'ON', + 65886 => 'ON', + 65887 => 'ON', + 65888 => 'ON', + 65889 => 'ON', + 65890 => 'ON', + 65891 => 'ON', + 65892 => 'ON', + 65893 => 'ON', + 65894 => 'ON', + 65895 => 'ON', + 65896 => 'ON', + 65897 => 'ON', + 65898 => 'ON', + 65899 => 'ON', + 65900 => 'ON', + 65901 => 'ON', + 65902 => 'ON', + 65903 => 'ON', + 65904 => 'ON', + 65905 => 'ON', + 65906 => 'ON', + 65907 => 'ON', + 65908 => 'ON', + 65909 => 'ON', + 65910 => 'ON', + 65911 => 'ON', + 65912 => 'ON', + 65913 => 'ON', + 65914 => 'ON', + 65915 => 'ON', + 65916 => 'ON', + 65917 => 'ON', + 65918 => 'ON', + 65919 => 'ON', + 65920 => 'ON', + 65921 => 'ON', + 65922 => 'ON', + 65923 => 'ON', + 65924 => 'ON', + 65925 => 'ON', + 65926 => 'ON', + 65927 => 'ON', + 65928 => 'ON', + 65929 => 'ON', + 65930 => 'ON', + 66304 => 'L', + 66305 => 'L', + 66306 => 'L', + 66307 => 'L', + 66308 => 'L', + 66309 => 'L', + 66310 => 'L', + 66311 => 'L', + 66312 => 'L', + 66313 => 'L', + 66314 => 'L', + 66315 => 'L', + 66316 => 'L', + 66317 => 'L', + 66318 => 'L', + 66319 => 'L', + 66320 => 'L', + 66321 => 'L', + 66322 => 'L', + 66323 => 'L', + 66324 => 'L', + 66325 => 'L', + 66326 => 'L', + 66327 => 'L', + 66328 => 'L', + 66329 => 'L', + 66330 => 'L', + 66331 => 'L', + 66332 => 'L', + 66333 => 'L', + 66334 => 'L', + 66336 => 'L', + 66337 => 'L', + 66338 => 'L', + 66339 => 'L', + 66352 => 'L', + 66353 => 'L', + 66354 => 'L', + 66355 => 'L', + 66356 => 'L', + 66357 => 'L', + 66358 => 'L', + 66359 => 'L', + 66360 => 'L', + 66361 => 'L', + 66362 => 'L', + 66363 => 'L', + 66364 => 'L', + 66365 => 'L', + 66366 => 'L', + 66367 => 'L', + 66368 => 'L', + 66369 => 'L', + 66370 => 'L', + 66371 => 'L', + 66372 => 'L', + 66373 => 'L', + 66374 => 'L', + 66375 => 'L', + 66376 => 'L', + 66377 => 'L', + 66378 => 'L', + 66432 => 'L', + 66433 => 'L', + 66434 => 'L', + 66435 => 'L', + 66436 => 'L', + 66437 => 'L', + 66438 => 'L', + 66439 => 'L', + 66440 => 'L', + 66441 => 'L', + 66442 => 'L', + 66443 => 'L', + 66444 => 'L', + 66445 => 'L', + 66446 => 'L', + 66447 => 'L', + 66448 => 'L', + 66449 => 'L', + 66450 => 'L', + 66451 => 'L', + 66452 => 'L', + 66453 => 'L', + 66454 => 'L', + 66455 => 'L', + 66456 => 'L', + 66457 => 'L', + 66458 => 'L', + 66459 => 'L', + 66460 => 'L', + 66461 => 'L', + 66463 => 'L', + 66464 => 'L', + 66465 => 'L', + 66466 => 'L', + 66467 => 'L', + 66468 => 'L', + 66469 => 'L', + 66470 => 'L', + 66471 => 'L', + 66472 => 'L', + 66473 => 'L', + 66474 => 'L', + 66475 => 'L', + 66476 => 'L', + 66477 => 'L', + 66478 => 'L', + 66479 => 'L', + 66480 => 'L', + 66481 => 'L', + 66482 => 'L', + 66483 => 'L', + 66484 => 'L', + 66485 => 'L', + 66486 => 'L', + 66487 => 'L', + 66488 => 'L', + 66489 => 'L', + 66490 => 'L', + 66491 => 'L', + 66492 => 'L', + 66493 => 'L', + 66494 => 'L', + 66495 => 'L', + 66496 => 'L', + 66497 => 'L', + 66498 => 'L', + 66499 => 'L', + 66504 => 'L', + 66505 => 'L', + 66506 => 'L', + 66507 => 'L', + 66508 => 'L', + 66509 => 'L', + 66510 => 'L', + 66511 => 'L', + 66512 => 'L', + 66513 => 'L', + 66514 => 'L', + 66515 => 'L', + 66516 => 'L', + 66517 => 'L', + 66560 => 'L', + 66561 => 'L', + 66562 => 'L', + 66563 => 'L', + 66564 => 'L', + 66565 => 'L', + 66566 => 'L', + 66567 => 'L', + 66568 => 'L', + 66569 => 'L', + 66570 => 'L', + 66571 => 'L', + 66572 => 'L', + 66573 => 'L', + 66574 => 'L', + 66575 => 'L', + 66576 => 'L', + 66577 => 'L', + 66578 => 'L', + 66579 => 'L', + 66580 => 'L', + 66581 => 'L', + 66582 => 'L', + 66583 => 'L', + 66584 => 'L', + 66585 => 'L', + 66586 => 'L', + 66587 => 'L', + 66588 => 'L', + 66589 => 'L', + 66590 => 'L', + 66591 => 'L', + 66592 => 'L', + 66593 => 'L', + 66594 => 'L', + 66595 => 'L', + 66596 => 'L', + 66597 => 'L', + 66598 => 'L', + 66599 => 'L', + 66600 => 'L', + 66601 => 'L', + 66602 => 'L', + 66603 => 'L', + 66604 => 'L', + 66605 => 'L', + 66606 => 'L', + 66607 => 'L', + 66608 => 'L', + 66609 => 'L', + 66610 => 'L', + 66611 => 'L', + 66612 => 'L', + 66613 => 'L', + 66614 => 'L', + 66615 => 'L', + 66616 => 'L', + 66617 => 'L', + 66618 => 'L', + 66619 => 'L', + 66620 => 'L', + 66621 => 'L', + 66622 => 'L', + 66623 => 'L', + 66624 => 'L', + 66625 => 'L', + 66626 => 'L', + 66627 => 'L', + 66628 => 'L', + 66629 => 'L', + 66630 => 'L', + 66631 => 'L', + 66632 => 'L', + 66633 => 'L', + 66634 => 'L', + 66635 => 'L', + 66636 => 'L', + 66637 => 'L', + 66638 => 'L', + 66639 => 'L', + 66640 => 'L', + 66641 => 'L', + 66642 => 'L', + 66643 => 'L', + 66644 => 'L', + 66645 => 'L', + 66646 => 'L', + 66647 => 'L', + 66648 => 'L', + 66649 => 'L', + 66650 => 'L', + 66651 => 'L', + 66652 => 'L', + 66653 => 'L', + 66654 => 'L', + 66655 => 'L', + 66656 => 'L', + 66657 => 'L', + 66658 => 'L', + 66659 => 'L', + 66660 => 'L', + 66661 => 'L', + 66662 => 'L', + 66663 => 'L', + 66664 => 'L', + 66665 => 'L', + 66666 => 'L', + 66667 => 'L', + 66668 => 'L', + 66669 => 'L', + 66670 => 'L', + 66671 => 'L', + 66672 => 'L', + 66673 => 'L', + 66674 => 'L', + 66675 => 'L', + 66676 => 'L', + 66677 => 'L', + 66678 => 'L', + 66679 => 'L', + 66680 => 'L', + 66681 => 'L', + 66682 => 'L', + 66683 => 'L', + 66684 => 'L', + 66685 => 'L', + 66686 => 'L', + 66687 => 'L', + 66688 => 'L', + 66689 => 'L', + 66690 => 'L', + 66691 => 'L', + 66692 => 'L', + 66693 => 'L', + 66694 => 'L', + 66695 => 'L', + 66696 => 'L', + 66697 => 'L', + 66698 => 'L', + 66699 => 'L', + 66700 => 'L', + 66701 => 'L', + 66702 => 'L', + 66703 => 'L', + 66704 => 'L', + 66705 => 'L', + 66706 => 'L', + 66707 => 'L', + 66708 => 'L', + 66709 => 'L', + 66710 => 'L', + 66711 => 'L', + 66712 => 'L', + 66713 => 'L', + 66714 => 'L', + 66715 => 'L', + 66716 => 'L', + 66717 => 'L', + 66720 => 'L', + 66721 => 'L', + 66722 => 'L', + 66723 => 'L', + 66724 => 'L', + 66725 => 'L', + 66726 => 'L', + 66727 => 'L', + 66728 => 'L', + 66729 => 'L', + 67584 => 'R', + 67585 => 'R', + 67586 => 'R', + 67587 => 'R', + 67588 => 'R', + 67589 => 'R', + 67592 => 'R', + 67594 => 'R', + 67595 => 'R', + 67596 => 'R', + 67597 => 'R', + 67598 => 'R', + 67599 => 'R', + 67600 => 'R', + 67601 => 'R', + 67602 => 'R', + 67603 => 'R', + 67604 => 'R', + 67605 => 'R', + 67606 => 'R', + 67607 => 'R', + 67608 => 'R', + 67609 => 'R', + 67610 => 'R', + 67611 => 'R', + 67612 => 'R', + 67613 => 'R', + 67614 => 'R', + 67615 => 'R', + 67616 => 'R', + 67617 => 'R', + 67618 => 'R', + 67619 => 'R', + 67620 => 'R', + 67621 => 'R', + 67622 => 'R', + 67623 => 'R', + 67624 => 'R', + 67625 => 'R', + 67626 => 'R', + 67627 => 'R', + 67628 => 'R', + 67629 => 'R', + 67630 => 'R', + 67631 => 'R', + 67632 => 'R', + 67633 => 'R', + 67634 => 'R', + 67635 => 'R', + 67636 => 'R', + 67637 => 'R', + 67639 => 'R', + 67640 => 'R', + 67644 => 'R', + 67647 => 'R', + 67840 => 'R', + 67841 => 'R', + 67842 => 'R', + 67843 => 'R', + 67844 => 'R', + 67845 => 'R', + 67846 => 'R', + 67847 => 'R', + 67848 => 'R', + 67849 => 'R', + 67850 => 'R', + 67851 => 'R', + 67852 => 'R', + 67853 => 'R', + 67854 => 'R', + 67855 => 'R', + 67856 => 'R', + 67857 => 'R', + 67858 => 'R', + 67859 => 'R', + 67860 => 'R', + 67861 => 'R', + 67862 => 'R', + 67863 => 'R', + 67864 => 'R', + 67865 => 'R', + 67871 => 'ON', + 68096 => 'R', + 68097 => 'NSM', + 68098 => 'NSM', + 68099 => 'NSM', + 68101 => 'NSM', + 68102 => 'NSM', + 68108 => 'NSM', + 68109 => 'NSM', + 68110 => 'NSM', + 68111 => 'NSM', + 68112 => 'R', + 68113 => 'R', + 68114 => 'R', + 68115 => 'R', + 68117 => 'R', + 68118 => 'R', + 68119 => 'R', + 68121 => 'R', + 68122 => 'R', + 68123 => 'R', + 68124 => 'R', + 68125 => 'R', + 68126 => 'R', + 68127 => 'R', + 68128 => 'R', + 68129 => 'R', + 68130 => 'R', + 68131 => 'R', + 68132 => 'R', + 68133 => 'R', + 68134 => 'R', + 68135 => 'R', + 68136 => 'R', + 68137 => 'R', + 68138 => 'R', + 68139 => 'R', + 68140 => 'R', + 68141 => 'R', + 68142 => 'R', + 68143 => 'R', + 68144 => 'R', + 68145 => 'R', + 68146 => 'R', + 68147 => 'R', + 68152 => 'NSM', + 68153 => 'NSM', + 68154 => 'NSM', + 68159 => 'NSM', + 68160 => 'R', + 68161 => 'R', + 68162 => 'R', + 68163 => 'R', + 68164 => 'R', + 68165 => 'R', + 68166 => 'R', + 68167 => 'R', + 68176 => 'R', + 68177 => 'R', + 68178 => 'R', + 68179 => 'R', + 68180 => 'R', + 68181 => 'R', + 68182 => 'R', + 68183 => 'R', + 68184 => 'R', + 73728 => 'L', + 73729 => 'L', + 73730 => 'L', + 73731 => 'L', + 73732 => 'L', + 73733 => 'L', + 73734 => 'L', + 73735 => 'L', + 73736 => 'L', + 73737 => 'L', + 73738 => 'L', + 73739 => 'L', + 73740 => 'L', + 73741 => 'L', + 73742 => 'L', + 73743 => 'L', + 73744 => 'L', + 73745 => 'L', + 73746 => 'L', + 73747 => 'L', + 73748 => 'L', + 73749 => 'L', + 73750 => 'L', + 73751 => 'L', + 73752 => 'L', + 73753 => 'L', + 73754 => 'L', + 73755 => 'L', + 73756 => 'L', + 73757 => 'L', + 73758 => 'L', + 73759 => 'L', + 73760 => 'L', + 73761 => 'L', + 73762 => 'L', + 73763 => 'L', + 73764 => 'L', + 73765 => 'L', + 73766 => 'L', + 73767 => 'L', + 73768 => 'L', + 73769 => 'L', + 73770 => 'L', + 73771 => 'L', + 73772 => 'L', + 73773 => 'L', + 73774 => 'L', + 73775 => 'L', + 73776 => 'L', + 73777 => 'L', + 73778 => 'L', + 73779 => 'L', + 73780 => 'L', + 73781 => 'L', + 73782 => 'L', + 73783 => 'L', + 73784 => 'L', + 73785 => 'L', + 73786 => 'L', + 73787 => 'L', + 73788 => 'L', + 73789 => 'L', + 73790 => 'L', + 73791 => 'L', + 73792 => 'L', + 73793 => 'L', + 73794 => 'L', + 73795 => 'L', + 73796 => 'L', + 73797 => 'L', + 73798 => 'L', + 73799 => 'L', + 73800 => 'L', + 73801 => 'L', + 73802 => 'L', + 73803 => 'L', + 73804 => 'L', + 73805 => 'L', + 73806 => 'L', + 73807 => 'L', + 73808 => 'L', + 73809 => 'L', + 73810 => 'L', + 73811 => 'L', + 73812 => 'L', + 73813 => 'L', + 73814 => 'L', + 73815 => 'L', + 73816 => 'L', + 73817 => 'L', + 73818 => 'L', + 73819 => 'L', + 73820 => 'L', + 73821 => 'L', + 73822 => 'L', + 73823 => 'L', + 73824 => 'L', + 73825 => 'L', + 73826 => 'L', + 73827 => 'L', + 73828 => 'L', + 73829 => 'L', + 73830 => 'L', + 73831 => 'L', + 73832 => 'L', + 73833 => 'L', + 73834 => 'L', + 73835 => 'L', + 73836 => 'L', + 73837 => 'L', + 73838 => 'L', + 73839 => 'L', + 73840 => 'L', + 73841 => 'L', + 73842 => 'L', + 73843 => 'L', + 73844 => 'L', + 73845 => 'L', + 73846 => 'L', + 73847 => 'L', + 73848 => 'L', + 73849 => 'L', + 73850 => 'L', + 73851 => 'L', + 73852 => 'L', + 73853 => 'L', + 73854 => 'L', + 73855 => 'L', + 73856 => 'L', + 73857 => 'L', + 73858 => 'L', + 73859 => 'L', + 73860 => 'L', + 73861 => 'L', + 73862 => 'L', + 73863 => 'L', + 73864 => 'L', + 73865 => 'L', + 73866 => 'L', + 73867 => 'L', + 73868 => 'L', + 73869 => 'L', + 73870 => 'L', + 73871 => 'L', + 73872 => 'L', + 73873 => 'L', + 73874 => 'L', + 73875 => 'L', + 73876 => 'L', + 73877 => 'L', + 73878 => 'L', + 73879 => 'L', + 73880 => 'L', + 73881 => 'L', + 73882 => 'L', + 73883 => 'L', + 73884 => 'L', + 73885 => 'L', + 73886 => 'L', + 73887 => 'L', + 73888 => 'L', + 73889 => 'L', + 73890 => 'L', + 73891 => 'L', + 73892 => 'L', + 73893 => 'L', + 73894 => 'L', + 73895 => 'L', + 73896 => 'L', + 73897 => 'L', + 73898 => 'L', + 73899 => 'L', + 73900 => 'L', + 73901 => 'L', + 73902 => 'L', + 73903 => 'L', + 73904 => 'L', + 73905 => 'L', + 73906 => 'L', + 73907 => 'L', + 73908 => 'L', + 73909 => 'L', + 73910 => 'L', + 73911 => 'L', + 73912 => 'L', + 73913 => 'L', + 73914 => 'L', + 73915 => 'L', + 73916 => 'L', + 73917 => 'L', + 73918 => 'L', + 73919 => 'L', + 73920 => 'L', + 73921 => 'L', + 73922 => 'L', + 73923 => 'L', + 73924 => 'L', + 73925 => 'L', + 73926 => 'L', + 73927 => 'L', + 73928 => 'L', + 73929 => 'L', + 73930 => 'L', + 73931 => 'L', + 73932 => 'L', + 73933 => 'L', + 73934 => 'L', + 73935 => 'L', + 73936 => 'L', + 73937 => 'L', + 73938 => 'L', + 73939 => 'L', + 73940 => 'L', + 73941 => 'L', + 73942 => 'L', + 73943 => 'L', + 73944 => 'L', + 73945 => 'L', + 73946 => 'L', + 73947 => 'L', + 73948 => 'L', + 73949 => 'L', + 73950 => 'L', + 73951 => 'L', + 73952 => 'L', + 73953 => 'L', + 73954 => 'L', + 73955 => 'L', + 73956 => 'L', + 73957 => 'L', + 73958 => 'L', + 73959 => 'L', + 73960 => 'L', + 73961 => 'L', + 73962 => 'L', + 73963 => 'L', + 73964 => 'L', + 73965 => 'L', + 73966 => 'L', + 73967 => 'L', + 73968 => 'L', + 73969 => 'L', + 73970 => 'L', + 73971 => 'L', + 73972 => 'L', + 73973 => 'L', + 73974 => 'L', + 73975 => 'L', + 73976 => 'L', + 73977 => 'L', + 73978 => 'L', + 73979 => 'L', + 73980 => 'L', + 73981 => 'L', + 73982 => 'L', + 73983 => 'L', + 73984 => 'L', + 73985 => 'L', + 73986 => 'L', + 73987 => 'L', + 73988 => 'L', + 73989 => 'L', + 73990 => 'L', + 73991 => 'L', + 73992 => 'L', + 73993 => 'L', + 73994 => 'L', + 73995 => 'L', + 73996 => 'L', + 73997 => 'L', + 73998 => 'L', + 73999 => 'L', + 74000 => 'L', + 74001 => 'L', + 74002 => 'L', + 74003 => 'L', + 74004 => 'L', + 74005 => 'L', + 74006 => 'L', + 74007 => 'L', + 74008 => 'L', + 74009 => 'L', + 74010 => 'L', + 74011 => 'L', + 74012 => 'L', + 74013 => 'L', + 74014 => 'L', + 74015 => 'L', + 74016 => 'L', + 74017 => 'L', + 74018 => 'L', + 74019 => 'L', + 74020 => 'L', + 74021 => 'L', + 74022 => 'L', + 74023 => 'L', + 74024 => 'L', + 74025 => 'L', + 74026 => 'L', + 74027 => 'L', + 74028 => 'L', + 74029 => 'L', + 74030 => 'L', + 74031 => 'L', + 74032 => 'L', + 74033 => 'L', + 74034 => 'L', + 74035 => 'L', + 74036 => 'L', + 74037 => 'L', + 74038 => 'L', + 74039 => 'L', + 74040 => 'L', + 74041 => 'L', + 74042 => 'L', + 74043 => 'L', + 74044 => 'L', + 74045 => 'L', + 74046 => 'L', + 74047 => 'L', + 74048 => 'L', + 74049 => 'L', + 74050 => 'L', + 74051 => 'L', + 74052 => 'L', + 74053 => 'L', + 74054 => 'L', + 74055 => 'L', + 74056 => 'L', + 74057 => 'L', + 74058 => 'L', + 74059 => 'L', + 74060 => 'L', + 74061 => 'L', + 74062 => 'L', + 74063 => 'L', + 74064 => 'L', + 74065 => 'L', + 74066 => 'L', + 74067 => 'L', + 74068 => 'L', + 74069 => 'L', + 74070 => 'L', + 74071 => 'L', + 74072 => 'L', + 74073 => 'L', + 74074 => 'L', + 74075 => 'L', + 74076 => 'L', + 74077 => 'L', + 74078 => 'L', + 74079 => 'L', + 74080 => 'L', + 74081 => 'L', + 74082 => 'L', + 74083 => 'L', + 74084 => 'L', + 74085 => 'L', + 74086 => 'L', + 74087 => 'L', + 74088 => 'L', + 74089 => 'L', + 74090 => 'L', + 74091 => 'L', + 74092 => 'L', + 74093 => 'L', + 74094 => 'L', + 74095 => 'L', + 74096 => 'L', + 74097 => 'L', + 74098 => 'L', + 74099 => 'L', + 74100 => 'L', + 74101 => 'L', + 74102 => 'L', + 74103 => 'L', + 74104 => 'L', + 74105 => 'L', + 74106 => 'L', + 74107 => 'L', + 74108 => 'L', + 74109 => 'L', + 74110 => 'L', + 74111 => 'L', + 74112 => 'L', + 74113 => 'L', + 74114 => 'L', + 74115 => 'L', + 74116 => 'L', + 74117 => 'L', + 74118 => 'L', + 74119 => 'L', + 74120 => 'L', + 74121 => 'L', + 74122 => 'L', + 74123 => 'L', + 74124 => 'L', + 74125 => 'L', + 74126 => 'L', + 74127 => 'L', + 74128 => 'L', + 74129 => 'L', + 74130 => 'L', + 74131 => 'L', + 74132 => 'L', + 74133 => 'L', + 74134 => 'L', + 74135 => 'L', + 74136 => 'L', + 74137 => 'L', + 74138 => 'L', + 74139 => 'L', + 74140 => 'L', + 74141 => 'L', + 74142 => 'L', + 74143 => 'L', + 74144 => 'L', + 74145 => 'L', + 74146 => 'L', + 74147 => 'L', + 74148 => 'L', + 74149 => 'L', + 74150 => 'L', + 74151 => 'L', + 74152 => 'L', + 74153 => 'L', + 74154 => 'L', + 74155 => 'L', + 74156 => 'L', + 74157 => 'L', + 74158 => 'L', + 74159 => 'L', + 74160 => 'L', + 74161 => 'L', + 74162 => 'L', + 74163 => 'L', + 74164 => 'L', + 74165 => 'L', + 74166 => 'L', + 74167 => 'L', + 74168 => 'L', + 74169 => 'L', + 74170 => 'L', + 74171 => 'L', + 74172 => 'L', + 74173 => 'L', + 74174 => 'L', + 74175 => 'L', + 74176 => 'L', + 74177 => 'L', + 74178 => 'L', + 74179 => 'L', + 74180 => 'L', + 74181 => 'L', + 74182 => 'L', + 74183 => 'L', + 74184 => 'L', + 74185 => 'L', + 74186 => 'L', + 74187 => 'L', + 74188 => 'L', + 74189 => 'L', + 74190 => 'L', + 74191 => 'L', + 74192 => 'L', + 74193 => 'L', + 74194 => 'L', + 74195 => 'L', + 74196 => 'L', + 74197 => 'L', + 74198 => 'L', + 74199 => 'L', + 74200 => 'L', + 74201 => 'L', + 74202 => 'L', + 74203 => 'L', + 74204 => 'L', + 74205 => 'L', + 74206 => 'L', + 74207 => 'L', + 74208 => 'L', + 74209 => 'L', + 74210 => 'L', + 74211 => 'L', + 74212 => 'L', + 74213 => 'L', + 74214 => 'L', + 74215 => 'L', + 74216 => 'L', + 74217 => 'L', + 74218 => 'L', + 74219 => 'L', + 74220 => 'L', + 74221 => 'L', + 74222 => 'L', + 74223 => 'L', + 74224 => 'L', + 74225 => 'L', + 74226 => 'L', + 74227 => 'L', + 74228 => 'L', + 74229 => 'L', + 74230 => 'L', + 74231 => 'L', + 74232 => 'L', + 74233 => 'L', + 74234 => 'L', + 74235 => 'L', + 74236 => 'L', + 74237 => 'L', + 74238 => 'L', + 74239 => 'L', + 74240 => 'L', + 74241 => 'L', + 74242 => 'L', + 74243 => 'L', + 74244 => 'L', + 74245 => 'L', + 74246 => 'L', + 74247 => 'L', + 74248 => 'L', + 74249 => 'L', + 74250 => 'L', + 74251 => 'L', + 74252 => 'L', + 74253 => 'L', + 74254 => 'L', + 74255 => 'L', + 74256 => 'L', + 74257 => 'L', + 74258 => 'L', + 74259 => 'L', + 74260 => 'L', + 74261 => 'L', + 74262 => 'L', + 74263 => 'L', + 74264 => 'L', + 74265 => 'L', + 74266 => 'L', + 74267 => 'L', + 74268 => 'L', + 74269 => 'L', + 74270 => 'L', + 74271 => 'L', + 74272 => 'L', + 74273 => 'L', + 74274 => 'L', + 74275 => 'L', + 74276 => 'L', + 74277 => 'L', + 74278 => 'L', + 74279 => 'L', + 74280 => 'L', + 74281 => 'L', + 74282 => 'L', + 74283 => 'L', + 74284 => 'L', + 74285 => 'L', + 74286 => 'L', + 74287 => 'L', + 74288 => 'L', + 74289 => 'L', + 74290 => 'L', + 74291 => 'L', + 74292 => 'L', + 74293 => 'L', + 74294 => 'L', + 74295 => 'L', + 74296 => 'L', + 74297 => 'L', + 74298 => 'L', + 74299 => 'L', + 74300 => 'L', + 74301 => 'L', + 74302 => 'L', + 74303 => 'L', + 74304 => 'L', + 74305 => 'L', + 74306 => 'L', + 74307 => 'L', + 74308 => 'L', + 74309 => 'L', + 74310 => 'L', + 74311 => 'L', + 74312 => 'L', + 74313 => 'L', + 74314 => 'L', + 74315 => 'L', + 74316 => 'L', + 74317 => 'L', + 74318 => 'L', + 74319 => 'L', + 74320 => 'L', + 74321 => 'L', + 74322 => 'L', + 74323 => 'L', + 74324 => 'L', + 74325 => 'L', + 74326 => 'L', + 74327 => 'L', + 74328 => 'L', + 74329 => 'L', + 74330 => 'L', + 74331 => 'L', + 74332 => 'L', + 74333 => 'L', + 74334 => 'L', + 74335 => 'L', + 74336 => 'L', + 74337 => 'L', + 74338 => 'L', + 74339 => 'L', + 74340 => 'L', + 74341 => 'L', + 74342 => 'L', + 74343 => 'L', + 74344 => 'L', + 74345 => 'L', + 74346 => 'L', + 74347 => 'L', + 74348 => 'L', + 74349 => 'L', + 74350 => 'L', + 74351 => 'L', + 74352 => 'L', + 74353 => 'L', + 74354 => 'L', + 74355 => 'L', + 74356 => 'L', + 74357 => 'L', + 74358 => 'L', + 74359 => 'L', + 74360 => 'L', + 74361 => 'L', + 74362 => 'L', + 74363 => 'L', + 74364 => 'L', + 74365 => 'L', + 74366 => 'L', + 74367 => 'L', + 74368 => 'L', + 74369 => 'L', + 74370 => 'L', + 74371 => 'L', + 74372 => 'L', + 74373 => 'L', + 74374 => 'L', + 74375 => 'L', + 74376 => 'L', + 74377 => 'L', + 74378 => 'L', + 74379 => 'L', + 74380 => 'L', + 74381 => 'L', + 74382 => 'L', + 74383 => 'L', + 74384 => 'L', + 74385 => 'L', + 74386 => 'L', + 74387 => 'L', + 74388 => 'L', + 74389 => 'L', + 74390 => 'L', + 74391 => 'L', + 74392 => 'L', + 74393 => 'L', + 74394 => 'L', + 74395 => 'L', + 74396 => 'L', + 74397 => 'L', + 74398 => 'L', + 74399 => 'L', + 74400 => 'L', + 74401 => 'L', + 74402 => 'L', + 74403 => 'L', + 74404 => 'L', + 74405 => 'L', + 74406 => 'L', + 74407 => 'L', + 74408 => 'L', + 74409 => 'L', + 74410 => 'L', + 74411 => 'L', + 74412 => 'L', + 74413 => 'L', + 74414 => 'L', + 74415 => 'L', + 74416 => 'L', + 74417 => 'L', + 74418 => 'L', + 74419 => 'L', + 74420 => 'L', + 74421 => 'L', + 74422 => 'L', + 74423 => 'L', + 74424 => 'L', + 74425 => 'L', + 74426 => 'L', + 74427 => 'L', + 74428 => 'L', + 74429 => 'L', + 74430 => 'L', + 74431 => 'L', + 74432 => 'L', + 74433 => 'L', + 74434 => 'L', + 74435 => 'L', + 74436 => 'L', + 74437 => 'L', + 74438 => 'L', + 74439 => 'L', + 74440 => 'L', + 74441 => 'L', + 74442 => 'L', + 74443 => 'L', + 74444 => 'L', + 74445 => 'L', + 74446 => 'L', + 74447 => 'L', + 74448 => 'L', + 74449 => 'L', + 74450 => 'L', + 74451 => 'L', + 74452 => 'L', + 74453 => 'L', + 74454 => 'L', + 74455 => 'L', + 74456 => 'L', + 74457 => 'L', + 74458 => 'L', + 74459 => 'L', + 74460 => 'L', + 74461 => 'L', + 74462 => 'L', + 74463 => 'L', + 74464 => 'L', + 74465 => 'L', + 74466 => 'L', + 74467 => 'L', + 74468 => 'L', + 74469 => 'L', + 74470 => 'L', + 74471 => 'L', + 74472 => 'L', + 74473 => 'L', + 74474 => 'L', + 74475 => 'L', + 74476 => 'L', + 74477 => 'L', + 74478 => 'L', + 74479 => 'L', + 74480 => 'L', + 74481 => 'L', + 74482 => 'L', + 74483 => 'L', + 74484 => 'L', + 74485 => 'L', + 74486 => 'L', + 74487 => 'L', + 74488 => 'L', + 74489 => 'L', + 74490 => 'L', + 74491 => 'L', + 74492 => 'L', + 74493 => 'L', + 74494 => 'L', + 74495 => 'L', + 74496 => 'L', + 74497 => 'L', + 74498 => 'L', + 74499 => 'L', + 74500 => 'L', + 74501 => 'L', + 74502 => 'L', + 74503 => 'L', + 74504 => 'L', + 74505 => 'L', + 74506 => 'L', + 74507 => 'L', + 74508 => 'L', + 74509 => 'L', + 74510 => 'L', + 74511 => 'L', + 74512 => 'L', + 74513 => 'L', + 74514 => 'L', + 74515 => 'L', + 74516 => 'L', + 74517 => 'L', + 74518 => 'L', + 74519 => 'L', + 74520 => 'L', + 74521 => 'L', + 74522 => 'L', + 74523 => 'L', + 74524 => 'L', + 74525 => 'L', + 74526 => 'L', + 74527 => 'L', + 74528 => 'L', + 74529 => 'L', + 74530 => 'L', + 74531 => 'L', + 74532 => 'L', + 74533 => 'L', + 74534 => 'L', + 74535 => 'L', + 74536 => 'L', + 74537 => 'L', + 74538 => 'L', + 74539 => 'L', + 74540 => 'L', + 74541 => 'L', + 74542 => 'L', + 74543 => 'L', + 74544 => 'L', + 74545 => 'L', + 74546 => 'L', + 74547 => 'L', + 74548 => 'L', + 74549 => 'L', + 74550 => 'L', + 74551 => 'L', + 74552 => 'L', + 74553 => 'L', + 74554 => 'L', + 74555 => 'L', + 74556 => 'L', + 74557 => 'L', + 74558 => 'L', + 74559 => 'L', + 74560 => 'L', + 74561 => 'L', + 74562 => 'L', + 74563 => 'L', + 74564 => 'L', + 74565 => 'L', + 74566 => 'L', + 74567 => 'L', + 74568 => 'L', + 74569 => 'L', + 74570 => 'L', + 74571 => 'L', + 74572 => 'L', + 74573 => 'L', + 74574 => 'L', + 74575 => 'L', + 74576 => 'L', + 74577 => 'L', + 74578 => 'L', + 74579 => 'L', + 74580 => 'L', + 74581 => 'L', + 74582 => 'L', + 74583 => 'L', + 74584 => 'L', + 74585 => 'L', + 74586 => 'L', + 74587 => 'L', + 74588 => 'L', + 74589 => 'L', + 74590 => 'L', + 74591 => 'L', + 74592 => 'L', + 74593 => 'L', + 74594 => 'L', + 74595 => 'L', + 74596 => 'L', + 74597 => 'L', + 74598 => 'L', + 74599 => 'L', + 74600 => 'L', + 74601 => 'L', + 74602 => 'L', + 74603 => 'L', + 74604 => 'L', + 74605 => 'L', + 74606 => 'L', + 74752 => 'L', + 74753 => 'L', + 74754 => 'L', + 74755 => 'L', + 74756 => 'L', + 74757 => 'L', + 74758 => 'L', + 74759 => 'L', + 74760 => 'L', + 74761 => 'L', + 74762 => 'L', + 74763 => 'L', + 74764 => 'L', + 74765 => 'L', + 74766 => 'L', + 74767 => 'L', + 74768 => 'L', + 74769 => 'L', + 74770 => 'L', + 74771 => 'L', + 74772 => 'L', + 74773 => 'L', + 74774 => 'L', + 74775 => 'L', + 74776 => 'L', + 74777 => 'L', + 74778 => 'L', + 74779 => 'L', + 74780 => 'L', + 74781 => 'L', + 74782 => 'L', + 74783 => 'L', + 74784 => 'L', + 74785 => 'L', + 74786 => 'L', + 74787 => 'L', + 74788 => 'L', + 74789 => 'L', + 74790 => 'L', + 74791 => 'L', + 74792 => 'L', + 74793 => 'L', + 74794 => 'L', + 74795 => 'L', + 74796 => 'L', + 74797 => 'L', + 74798 => 'L', + 74799 => 'L', + 74800 => 'L', + 74801 => 'L', + 74802 => 'L', + 74803 => 'L', + 74804 => 'L', + 74805 => 'L', + 74806 => 'L', + 74807 => 'L', + 74808 => 'L', + 74809 => 'L', + 74810 => 'L', + 74811 => 'L', + 74812 => 'L', + 74813 => 'L', + 74814 => 'L', + 74815 => 'L', + 74816 => 'L', + 74817 => 'L', + 74818 => 'L', + 74819 => 'L', + 74820 => 'L', + 74821 => 'L', + 74822 => 'L', + 74823 => 'L', + 74824 => 'L', + 74825 => 'L', + 74826 => 'L', + 74827 => 'L', + 74828 => 'L', + 74829 => 'L', + 74830 => 'L', + 74831 => 'L', + 74832 => 'L', + 74833 => 'L', + 74834 => 'L', + 74835 => 'L', + 74836 => 'L', + 74837 => 'L', + 74838 => 'L', + 74839 => 'L', + 74840 => 'L', + 74841 => 'L', + 74842 => 'L', + 74843 => 'L', + 74844 => 'L', + 74845 => 'L', + 74846 => 'L', + 74847 => 'L', + 74848 => 'L', + 74849 => 'L', + 74850 => 'L', + 74864 => 'L', + 74865 => 'L', + 74866 => 'L', + 74867 => 'L', + 118784 => 'L', + 118785 => 'L', + 118786 => 'L', + 118787 => 'L', + 118788 => 'L', + 118789 => 'L', + 118790 => 'L', + 118791 => 'L', + 118792 => 'L', + 118793 => 'L', + 118794 => 'L', + 118795 => 'L', + 118796 => 'L', + 118797 => 'L', + 118798 => 'L', + 118799 => 'L', + 118800 => 'L', + 118801 => 'L', + 118802 => 'L', + 118803 => 'L', + 118804 => 'L', + 118805 => 'L', + 118806 => 'L', + 118807 => 'L', + 118808 => 'L', + 118809 => 'L', + 118810 => 'L', + 118811 => 'L', + 118812 => 'L', + 118813 => 'L', + 118814 => 'L', + 118815 => 'L', + 118816 => 'L', + 118817 => 'L', + 118818 => 'L', + 118819 => 'L', + 118820 => 'L', + 118821 => 'L', + 118822 => 'L', + 118823 => 'L', + 118824 => 'L', + 118825 => 'L', + 118826 => 'L', + 118827 => 'L', + 118828 => 'L', + 118829 => 'L', + 118830 => 'L', + 118831 => 'L', + 118832 => 'L', + 118833 => 'L', + 118834 => 'L', + 118835 => 'L', + 118836 => 'L', + 118837 => 'L', + 118838 => 'L', + 118839 => 'L', + 118840 => 'L', + 118841 => 'L', + 118842 => 'L', + 118843 => 'L', + 118844 => 'L', + 118845 => 'L', + 118846 => 'L', + 118847 => 'L', + 118848 => 'L', + 118849 => 'L', + 118850 => 'L', + 118851 => 'L', + 118852 => 'L', + 118853 => 'L', + 118854 => 'L', + 118855 => 'L', + 118856 => 'L', + 118857 => 'L', + 118858 => 'L', + 118859 => 'L', + 118860 => 'L', + 118861 => 'L', + 118862 => 'L', + 118863 => 'L', + 118864 => 'L', + 118865 => 'L', + 118866 => 'L', + 118867 => 'L', + 118868 => 'L', + 118869 => 'L', + 118870 => 'L', + 118871 => 'L', + 118872 => 'L', + 118873 => 'L', + 118874 => 'L', + 118875 => 'L', + 118876 => 'L', + 118877 => 'L', + 118878 => 'L', + 118879 => 'L', + 118880 => 'L', + 118881 => 'L', + 118882 => 'L', + 118883 => 'L', + 118884 => 'L', + 118885 => 'L', + 118886 => 'L', + 118887 => 'L', + 118888 => 'L', + 118889 => 'L', + 118890 => 'L', + 118891 => 'L', + 118892 => 'L', + 118893 => 'L', + 118894 => 'L', + 118895 => 'L', + 118896 => 'L', + 118897 => 'L', + 118898 => 'L', + 118899 => 'L', + 118900 => 'L', + 118901 => 'L', + 118902 => 'L', + 118903 => 'L', + 118904 => 'L', + 118905 => 'L', + 118906 => 'L', + 118907 => 'L', + 118908 => 'L', + 118909 => 'L', + 118910 => 'L', + 118911 => 'L', + 118912 => 'L', + 118913 => 'L', + 118914 => 'L', + 118915 => 'L', + 118916 => 'L', + 118917 => 'L', + 118918 => 'L', + 118919 => 'L', + 118920 => 'L', + 118921 => 'L', + 118922 => 'L', + 118923 => 'L', + 118924 => 'L', + 118925 => 'L', + 118926 => 'L', + 118927 => 'L', + 118928 => 'L', + 118929 => 'L', + 118930 => 'L', + 118931 => 'L', + 118932 => 'L', + 118933 => 'L', + 118934 => 'L', + 118935 => 'L', + 118936 => 'L', + 118937 => 'L', + 118938 => 'L', + 118939 => 'L', + 118940 => 'L', + 118941 => 'L', + 118942 => 'L', + 118943 => 'L', + 118944 => 'L', + 118945 => 'L', + 118946 => 'L', + 118947 => 'L', + 118948 => 'L', + 118949 => 'L', + 118950 => 'L', + 118951 => 'L', + 118952 => 'L', + 118953 => 'L', + 118954 => 'L', + 118955 => 'L', + 118956 => 'L', + 118957 => 'L', + 118958 => 'L', + 118959 => 'L', + 118960 => 'L', + 118961 => 'L', + 118962 => 'L', + 118963 => 'L', + 118964 => 'L', + 118965 => 'L', + 118966 => 'L', + 118967 => 'L', + 118968 => 'L', + 118969 => 'L', + 118970 => 'L', + 118971 => 'L', + 118972 => 'L', + 118973 => 'L', + 118974 => 'L', + 118975 => 'L', + 118976 => 'L', + 118977 => 'L', + 118978 => 'L', + 118979 => 'L', + 118980 => 'L', + 118981 => 'L', + 118982 => 'L', + 118983 => 'L', + 118984 => 'L', + 118985 => 'L', + 118986 => 'L', + 118987 => 'L', + 118988 => 'L', + 118989 => 'L', + 118990 => 'L', + 118991 => 'L', + 118992 => 'L', + 118993 => 'L', + 118994 => 'L', + 118995 => 'L', + 118996 => 'L', + 118997 => 'L', + 118998 => 'L', + 118999 => 'L', + 119000 => 'L', + 119001 => 'L', + 119002 => 'L', + 119003 => 'L', + 119004 => 'L', + 119005 => 'L', + 119006 => 'L', + 119007 => 'L', + 119008 => 'L', + 119009 => 'L', + 119010 => 'L', + 119011 => 'L', + 119012 => 'L', + 119013 => 'L', + 119014 => 'L', + 119015 => 'L', + 119016 => 'L', + 119017 => 'L', + 119018 => 'L', + 119019 => 'L', + 119020 => 'L', + 119021 => 'L', + 119022 => 'L', + 119023 => 'L', + 119024 => 'L', + 119025 => 'L', + 119026 => 'L', + 119027 => 'L', + 119028 => 'L', + 119029 => 'L', + 119040 => 'L', + 119041 => 'L', + 119042 => 'L', + 119043 => 'L', + 119044 => 'L', + 119045 => 'L', + 119046 => 'L', + 119047 => 'L', + 119048 => 'L', + 119049 => 'L', + 119050 => 'L', + 119051 => 'L', + 119052 => 'L', + 119053 => 'L', + 119054 => 'L', + 119055 => 'L', + 119056 => 'L', + 119057 => 'L', + 119058 => 'L', + 119059 => 'L', + 119060 => 'L', + 119061 => 'L', + 119062 => 'L', + 119063 => 'L', + 119064 => 'L', + 119065 => 'L', + 119066 => 'L', + 119067 => 'L', + 119068 => 'L', + 119069 => 'L', + 119070 => 'L', + 119071 => 'L', + 119072 => 'L', + 119073 => 'L', + 119074 => 'L', + 119075 => 'L', + 119076 => 'L', + 119077 => 'L', + 119078 => 'L', + 119082 => 'L', + 119083 => 'L', + 119084 => 'L', + 119085 => 'L', + 119086 => 'L', + 119087 => 'L', + 119088 => 'L', + 119089 => 'L', + 119090 => 'L', + 119091 => 'L', + 119092 => 'L', + 119093 => 'L', + 119094 => 'L', + 119095 => 'L', + 119096 => 'L', + 119097 => 'L', + 119098 => 'L', + 119099 => 'L', + 119100 => 'L', + 119101 => 'L', + 119102 => 'L', + 119103 => 'L', + 119104 => 'L', + 119105 => 'L', + 119106 => 'L', + 119107 => 'L', + 119108 => 'L', + 119109 => 'L', + 119110 => 'L', + 119111 => 'L', + 119112 => 'L', + 119113 => 'L', + 119114 => 'L', + 119115 => 'L', + 119116 => 'L', + 119117 => 'L', + 119118 => 'L', + 119119 => 'L', + 119120 => 'L', + 119121 => 'L', + 119122 => 'L', + 119123 => 'L', + 119124 => 'L', + 119125 => 'L', + 119126 => 'L', + 119127 => 'L', + 119128 => 'L', + 119129 => 'L', + 119130 => 'L', + 119131 => 'L', + 119132 => 'L', + 119133 => 'L', + 119134 => 'L', + 119135 => 'L', + 119136 => 'L', + 119137 => 'L', + 119138 => 'L', + 119139 => 'L', + 119140 => 'L', + 119141 => 'L', + 119142 => 'L', + 119143 => 'NSM', + 119144 => 'NSM', + 119145 => 'NSM', + 119146 => 'L', + 119147 => 'L', + 119148 => 'L', + 119149 => 'L', + 119150 => 'L', + 119151 => 'L', + 119152 => 'L', + 119153 => 'L', + 119154 => 'L', + 119155 => 'BN', + 119156 => 'BN', + 119157 => 'BN', + 119158 => 'BN', + 119159 => 'BN', + 119160 => 'BN', + 119161 => 'BN', + 119162 => 'BN', + 119163 => 'NSM', + 119164 => 'NSM', + 119165 => 'NSM', + 119166 => 'NSM', + 119167 => 'NSM', + 119168 => 'NSM', + 119169 => 'NSM', + 119170 => 'NSM', + 119171 => 'L', + 119172 => 'L', + 119173 => 'NSM', + 119174 => 'NSM', + 119175 => 'NSM', + 119176 => 'NSM', + 119177 => 'NSM', + 119178 => 'NSM', + 119179 => 'NSM', + 119180 => 'L', + 119181 => 'L', + 119182 => 'L', + 119183 => 'L', + 119184 => 'L', + 119185 => 'L', + 119186 => 'L', + 119187 => 'L', + 119188 => 'L', + 119189 => 'L', + 119190 => 'L', + 119191 => 'L', + 119192 => 'L', + 119193 => 'L', + 119194 => 'L', + 119195 => 'L', + 119196 => 'L', + 119197 => 'L', + 119198 => 'L', + 119199 => 'L', + 119200 => 'L', + 119201 => 'L', + 119202 => 'L', + 119203 => 'L', + 119204 => 'L', + 119205 => 'L', + 119206 => 'L', + 119207 => 'L', + 119208 => 'L', + 119209 => 'L', + 119210 => 'NSM', + 119211 => 'NSM', + 119212 => 'NSM', + 119213 => 'NSM', + 119214 => 'L', + 119215 => 'L', + 119216 => 'L', + 119217 => 'L', + 119218 => 'L', + 119219 => 'L', + 119220 => 'L', + 119221 => 'L', + 119222 => 'L', + 119223 => 'L', + 119224 => 'L', + 119225 => 'L', + 119226 => 'L', + 119227 => 'L', + 119228 => 'L', + 119229 => 'L', + 119230 => 'L', + 119231 => 'L', + 119232 => 'L', + 119233 => 'L', + 119234 => 'L', + 119235 => 'L', + 119236 => 'L', + 119237 => 'L', + 119238 => 'L', + 119239 => 'L', + 119240 => 'L', + 119241 => 'L', + 119242 => 'L', + 119243 => 'L', + 119244 => 'L', + 119245 => 'L', + 119246 => 'L', + 119247 => 'L', + 119248 => 'L', + 119249 => 'L', + 119250 => 'L', + 119251 => 'L', + 119252 => 'L', + 119253 => 'L', + 119254 => 'L', + 119255 => 'L', + 119256 => 'L', + 119257 => 'L', + 119258 => 'L', + 119259 => 'L', + 119260 => 'L', + 119261 => 'L', + 119296 => 'ON', + 119297 => 'ON', + 119298 => 'ON', + 119299 => 'ON', + 119300 => 'ON', + 119301 => 'ON', + 119302 => 'ON', + 119303 => 'ON', + 119304 => 'ON', + 119305 => 'ON', + 119306 => 'ON', + 119307 => 'ON', + 119308 => 'ON', + 119309 => 'ON', + 119310 => 'ON', + 119311 => 'ON', + 119312 => 'ON', + 119313 => 'ON', + 119314 => 'ON', + 119315 => 'ON', + 119316 => 'ON', + 119317 => 'ON', + 119318 => 'ON', + 119319 => 'ON', + 119320 => 'ON', + 119321 => 'ON', + 119322 => 'ON', + 119323 => 'ON', + 119324 => 'ON', + 119325 => 'ON', + 119326 => 'ON', + 119327 => 'ON', + 119328 => 'ON', + 119329 => 'ON', + 119330 => 'ON', + 119331 => 'ON', + 119332 => 'ON', + 119333 => 'ON', + 119334 => 'ON', + 119335 => 'ON', + 119336 => 'ON', + 119337 => 'ON', + 119338 => 'ON', + 119339 => 'ON', + 119340 => 'ON', + 119341 => 'ON', + 119342 => 'ON', + 119343 => 'ON', + 119344 => 'ON', + 119345 => 'ON', + 119346 => 'ON', + 119347 => 'ON', + 119348 => 'ON', + 119349 => 'ON', + 119350 => 'ON', + 119351 => 'ON', + 119352 => 'ON', + 119353 => 'ON', + 119354 => 'ON', + 119355 => 'ON', + 119356 => 'ON', + 119357 => 'ON', + 119358 => 'ON', + 119359 => 'ON', + 119360 => 'ON', + 119361 => 'ON', + 119362 => 'NSM', + 119363 => 'NSM', + 119364 => 'NSM', + 119365 => 'ON', + 119552 => 'ON', + 119553 => 'ON', + 119554 => 'ON', + 119555 => 'ON', + 119556 => 'ON', + 119557 => 'ON', + 119558 => 'ON', + 119559 => 'ON', + 119560 => 'ON', + 119561 => 'ON', + 119562 => 'ON', + 119563 => 'ON', + 119564 => 'ON', + 119565 => 'ON', + 119566 => 'ON', + 119567 => 'ON', + 119568 => 'ON', + 119569 => 'ON', + 119570 => 'ON', + 119571 => 'ON', + 119572 => 'ON', + 119573 => 'ON', + 119574 => 'ON', + 119575 => 'ON', + 119576 => 'ON', + 119577 => 'ON', + 119578 => 'ON', + 119579 => 'ON', + 119580 => 'ON', + 119581 => 'ON', + 119582 => 'ON', + 119583 => 'ON', + 119584 => 'ON', + 119585 => 'ON', + 119586 => 'ON', + 119587 => 'ON', + 119588 => 'ON', + 119589 => 'ON', + 119590 => 'ON', + 119591 => 'ON', + 119592 => 'ON', + 119593 => 'ON', + 119594 => 'ON', + 119595 => 'ON', + 119596 => 'ON', + 119597 => 'ON', + 119598 => 'ON', + 119599 => 'ON', + 119600 => 'ON', + 119601 => 'ON', + 119602 => 'ON', + 119603 => 'ON', + 119604 => 'ON', + 119605 => 'ON', + 119606 => 'ON', + 119607 => 'ON', + 119608 => 'ON', + 119609 => 'ON', + 119610 => 'ON', + 119611 => 'ON', + 119612 => 'ON', + 119613 => 'ON', + 119614 => 'ON', + 119615 => 'ON', + 119616 => 'ON', + 119617 => 'ON', + 119618 => 'ON', + 119619 => 'ON', + 119620 => 'ON', + 119621 => 'ON', + 119622 => 'ON', + 119623 => 'ON', + 119624 => 'ON', + 119625 => 'ON', + 119626 => 'ON', + 119627 => 'ON', + 119628 => 'ON', + 119629 => 'ON', + 119630 => 'ON', + 119631 => 'ON', + 119632 => 'ON', + 119633 => 'ON', + 119634 => 'ON', + 119635 => 'ON', + 119636 => 'ON', + 119637 => 'ON', + 119638 => 'ON', + 119648 => 'L', + 119649 => 'L', + 119650 => 'L', + 119651 => 'L', + 119652 => 'L', + 119653 => 'L', + 119654 => 'L', + 119655 => 'L', + 119656 => 'L', + 119657 => 'L', + 119658 => 'L', + 119659 => 'L', + 119660 => 'L', + 119661 => 'L', + 119662 => 'L', + 119663 => 'L', + 119664 => 'L', + 119665 => 'L', + 119808 => 'L', + 119809 => 'L', + 119810 => 'L', + 119811 => 'L', + 119812 => 'L', + 119813 => 'L', + 119814 => 'L', + 119815 => 'L', + 119816 => 'L', + 119817 => 'L', + 119818 => 'L', + 119819 => 'L', + 119820 => 'L', + 119821 => 'L', + 119822 => 'L', + 119823 => 'L', + 119824 => 'L', + 119825 => 'L', + 119826 => 'L', + 119827 => 'L', + 119828 => 'L', + 119829 => 'L', + 119830 => 'L', + 119831 => 'L', + 119832 => 'L', + 119833 => 'L', + 119834 => 'L', + 119835 => 'L', + 119836 => 'L', + 119837 => 'L', + 119838 => 'L', + 119839 => 'L', + 119840 => 'L', + 119841 => 'L', + 119842 => 'L', + 119843 => 'L', + 119844 => 'L', + 119845 => 'L', + 119846 => 'L', + 119847 => 'L', + 119848 => 'L', + 119849 => 'L', + 119850 => 'L', + 119851 => 'L', + 119852 => 'L', + 119853 => 'L', + 119854 => 'L', + 119855 => 'L', + 119856 => 'L', + 119857 => 'L', + 119858 => 'L', + 119859 => 'L', + 119860 => 'L', + 119861 => 'L', + 119862 => 'L', + 119863 => 'L', + 119864 => 'L', + 119865 => 'L', + 119866 => 'L', + 119867 => 'L', + 119868 => 'L', + 119869 => 'L', + 119870 => 'L', + 119871 => 'L', + 119872 => 'L', + 119873 => 'L', + 119874 => 'L', + 119875 => 'L', + 119876 => 'L', + 119877 => 'L', + 119878 => 'L', + 119879 => 'L', + 119880 => 'L', + 119881 => 'L', + 119882 => 'L', + 119883 => 'L', + 119884 => 'L', + 119885 => 'L', + 119886 => 'L', + 119887 => 'L', + 119888 => 'L', + 119889 => 'L', + 119890 => 'L', + 119891 => 'L', + 119892 => 'L', + 119894 => 'L', + 119895 => 'L', + 119896 => 'L', + 119897 => 'L', + 119898 => 'L', + 119899 => 'L', + 119900 => 'L', + 119901 => 'L', + 119902 => 'L', + 119903 => 'L', + 119904 => 'L', + 119905 => 'L', + 119906 => 'L', + 119907 => 'L', + 119908 => 'L', + 119909 => 'L', + 119910 => 'L', + 119911 => 'L', + 119912 => 'L', + 119913 => 'L', + 119914 => 'L', + 119915 => 'L', + 119916 => 'L', + 119917 => 'L', + 119918 => 'L', + 119919 => 'L', + 119920 => 'L', + 119921 => 'L', + 119922 => 'L', + 119923 => 'L', + 119924 => 'L', + 119925 => 'L', + 119926 => 'L', + 119927 => 'L', + 119928 => 'L', + 119929 => 'L', + 119930 => 'L', + 119931 => 'L', + 119932 => 'L', + 119933 => 'L', + 119934 => 'L', + 119935 => 'L', + 119936 => 'L', + 119937 => 'L', + 119938 => 'L', + 119939 => 'L', + 119940 => 'L', + 119941 => 'L', + 119942 => 'L', + 119943 => 'L', + 119944 => 'L', + 119945 => 'L', + 119946 => 'L', + 119947 => 'L', + 119948 => 'L', + 119949 => 'L', + 119950 => 'L', + 119951 => 'L', + 119952 => 'L', + 119953 => 'L', + 119954 => 'L', + 119955 => 'L', + 119956 => 'L', + 119957 => 'L', + 119958 => 'L', + 119959 => 'L', + 119960 => 'L', + 119961 => 'L', + 119962 => 'L', + 119963 => 'L', + 119964 => 'L', + 119966 => 'L', + 119967 => 'L', + 119970 => 'L', + 119973 => 'L', + 119974 => 'L', + 119977 => 'L', + 119978 => 'L', + 119979 => 'L', + 119980 => 'L', + 119982 => 'L', + 119983 => 'L', + 119984 => 'L', + 119985 => 'L', + 119986 => 'L', + 119987 => 'L', + 119988 => 'L', + 119989 => 'L', + 119990 => 'L', + 119991 => 'L', + 119992 => 'L', + 119993 => 'L', + 119995 => 'L', + 119997 => 'L', + 119998 => 'L', + 119999 => 'L', + 120000 => 'L', + 120001 => 'L', + 120002 => 'L', + 120003 => 'L', + 120005 => 'L', + 120006 => 'L', + 120007 => 'L', + 120008 => 'L', + 120009 => 'L', + 120010 => 'L', + 120011 => 'L', + 120012 => 'L', + 120013 => 'L', + 120014 => 'L', + 120015 => 'L', + 120016 => 'L', + 120017 => 'L', + 120018 => 'L', + 120019 => 'L', + 120020 => 'L', + 120021 => 'L', + 120022 => 'L', + 120023 => 'L', + 120024 => 'L', + 120025 => 'L', + 120026 => 'L', + 120027 => 'L', + 120028 => 'L', + 120029 => 'L', + 120030 => 'L', + 120031 => 'L', + 120032 => 'L', + 120033 => 'L', + 120034 => 'L', + 120035 => 'L', + 120036 => 'L', + 120037 => 'L', + 120038 => 'L', + 120039 => 'L', + 120040 => 'L', + 120041 => 'L', + 120042 => 'L', + 120043 => 'L', + 120044 => 'L', + 120045 => 'L', + 120046 => 'L', + 120047 => 'L', + 120048 => 'L', + 120049 => 'L', + 120050 => 'L', + 120051 => 'L', + 120052 => 'L', + 120053 => 'L', + 120054 => 'L', + 120055 => 'L', + 120056 => 'L', + 120057 => 'L', + 120058 => 'L', + 120059 => 'L', + 120060 => 'L', + 120061 => 'L', + 120062 => 'L', + 120063 => 'L', + 120064 => 'L', + 120065 => 'L', + 120066 => 'L', + 120067 => 'L', + 120068 => 'L', + 120069 => 'L', + 120071 => 'L', + 120072 => 'L', + 120073 => 'L', + 120074 => 'L', + 120077 => 'L', + 120078 => 'L', + 120079 => 'L', + 120080 => 'L', + 120081 => 'L', + 120082 => 'L', + 120083 => 'L', + 120084 => 'L', + 120086 => 'L', + 120087 => 'L', + 120088 => 'L', + 120089 => 'L', + 120090 => 'L', + 120091 => 'L', + 120092 => 'L', + 120094 => 'L', + 120095 => 'L', + 120096 => 'L', + 120097 => 'L', + 120098 => 'L', + 120099 => 'L', + 120100 => 'L', + 120101 => 'L', + 120102 => 'L', + 120103 => 'L', + 120104 => 'L', + 120105 => 'L', + 120106 => 'L', + 120107 => 'L', + 120108 => 'L', + 120109 => 'L', + 120110 => 'L', + 120111 => 'L', + 120112 => 'L', + 120113 => 'L', + 120114 => 'L', + 120115 => 'L', + 120116 => 'L', + 120117 => 'L', + 120118 => 'L', + 120119 => 'L', + 120120 => 'L', + 120121 => 'L', + 120123 => 'L', + 120124 => 'L', + 120125 => 'L', + 120126 => 'L', + 120128 => 'L', + 120129 => 'L', + 120130 => 'L', + 120131 => 'L', + 120132 => 'L', + 120134 => 'L', + 120138 => 'L', + 120139 => 'L', + 120140 => 'L', + 120141 => 'L', + 120142 => 'L', + 120143 => 'L', + 120144 => 'L', + 120146 => 'L', + 120147 => 'L', + 120148 => 'L', + 120149 => 'L', + 120150 => 'L', + 120151 => 'L', + 120152 => 'L', + 120153 => 'L', + 120154 => 'L', + 120155 => 'L', + 120156 => 'L', + 120157 => 'L', + 120158 => 'L', + 120159 => 'L', + 120160 => 'L', + 120161 => 'L', + 120162 => 'L', + 120163 => 'L', + 120164 => 'L', + 120165 => 'L', + 120166 => 'L', + 120167 => 'L', + 120168 => 'L', + 120169 => 'L', + 120170 => 'L', + 120171 => 'L', + 120172 => 'L', + 120173 => 'L', + 120174 => 'L', + 120175 => 'L', + 120176 => 'L', + 120177 => 'L', + 120178 => 'L', + 120179 => 'L', + 120180 => 'L', + 120181 => 'L', + 120182 => 'L', + 120183 => 'L', + 120184 => 'L', + 120185 => 'L', + 120186 => 'L', + 120187 => 'L', + 120188 => 'L', + 120189 => 'L', + 120190 => 'L', + 120191 => 'L', + 120192 => 'L', + 120193 => 'L', + 120194 => 'L', + 120195 => 'L', + 120196 => 'L', + 120197 => 'L', + 120198 => 'L', + 120199 => 'L', + 120200 => 'L', + 120201 => 'L', + 120202 => 'L', + 120203 => 'L', + 120204 => 'L', + 120205 => 'L', + 120206 => 'L', + 120207 => 'L', + 120208 => 'L', + 120209 => 'L', + 120210 => 'L', + 120211 => 'L', + 120212 => 'L', + 120213 => 'L', + 120214 => 'L', + 120215 => 'L', + 120216 => 'L', + 120217 => 'L', + 120218 => 'L', + 120219 => 'L', + 120220 => 'L', + 120221 => 'L', + 120222 => 'L', + 120223 => 'L', + 120224 => 'L', + 120225 => 'L', + 120226 => 'L', + 120227 => 'L', + 120228 => 'L', + 120229 => 'L', + 120230 => 'L', + 120231 => 'L', + 120232 => 'L', + 120233 => 'L', + 120234 => 'L', + 120235 => 'L', + 120236 => 'L', + 120237 => 'L', + 120238 => 'L', + 120239 => 'L', + 120240 => 'L', + 120241 => 'L', + 120242 => 'L', + 120243 => 'L', + 120244 => 'L', + 120245 => 'L', + 120246 => 'L', + 120247 => 'L', + 120248 => 'L', + 120249 => 'L', + 120250 => 'L', + 120251 => 'L', + 120252 => 'L', + 120253 => 'L', + 120254 => 'L', + 120255 => 'L', + 120256 => 'L', + 120257 => 'L', + 120258 => 'L', + 120259 => 'L', + 120260 => 'L', + 120261 => 'L', + 120262 => 'L', + 120263 => 'L', + 120264 => 'L', + 120265 => 'L', + 120266 => 'L', + 120267 => 'L', + 120268 => 'L', + 120269 => 'L', + 120270 => 'L', + 120271 => 'L', + 120272 => 'L', + 120273 => 'L', + 120274 => 'L', + 120275 => 'L', + 120276 => 'L', + 120277 => 'L', + 120278 => 'L', + 120279 => 'L', + 120280 => 'L', + 120281 => 'L', + 120282 => 'L', + 120283 => 'L', + 120284 => 'L', + 120285 => 'L', + 120286 => 'L', + 120287 => 'L', + 120288 => 'L', + 120289 => 'L', + 120290 => 'L', + 120291 => 'L', + 120292 => 'L', + 120293 => 'L', + 120294 => 'L', + 120295 => 'L', + 120296 => 'L', + 120297 => 'L', + 120298 => 'L', + 120299 => 'L', + 120300 => 'L', + 120301 => 'L', + 120302 => 'L', + 120303 => 'L', + 120304 => 'L', + 120305 => 'L', + 120306 => 'L', + 120307 => 'L', + 120308 => 'L', + 120309 => 'L', + 120310 => 'L', + 120311 => 'L', + 120312 => 'L', + 120313 => 'L', + 120314 => 'L', + 120315 => 'L', + 120316 => 'L', + 120317 => 'L', + 120318 => 'L', + 120319 => 'L', + 120320 => 'L', + 120321 => 'L', + 120322 => 'L', + 120323 => 'L', + 120324 => 'L', + 120325 => 'L', + 120326 => 'L', + 120327 => 'L', + 120328 => 'L', + 120329 => 'L', + 120330 => 'L', + 120331 => 'L', + 120332 => 'L', + 120333 => 'L', + 120334 => 'L', + 120335 => 'L', + 120336 => 'L', + 120337 => 'L', + 120338 => 'L', + 120339 => 'L', + 120340 => 'L', + 120341 => 'L', + 120342 => 'L', + 120343 => 'L', + 120344 => 'L', + 120345 => 'L', + 120346 => 'L', + 120347 => 'L', + 120348 => 'L', + 120349 => 'L', + 120350 => 'L', + 120351 => 'L', + 120352 => 'L', + 120353 => 'L', + 120354 => 'L', + 120355 => 'L', + 120356 => 'L', + 120357 => 'L', + 120358 => 'L', + 120359 => 'L', + 120360 => 'L', + 120361 => 'L', + 120362 => 'L', + 120363 => 'L', + 120364 => 'L', + 120365 => 'L', + 120366 => 'L', + 120367 => 'L', + 120368 => 'L', + 120369 => 'L', + 120370 => 'L', + 120371 => 'L', + 120372 => 'L', + 120373 => 'L', + 120374 => 'L', + 120375 => 'L', + 120376 => 'L', + 120377 => 'L', + 120378 => 'L', + 120379 => 'L', + 120380 => 'L', + 120381 => 'L', + 120382 => 'L', + 120383 => 'L', + 120384 => 'L', + 120385 => 'L', + 120386 => 'L', + 120387 => 'L', + 120388 => 'L', + 120389 => 'L', + 120390 => 'L', + 120391 => 'L', + 120392 => 'L', + 120393 => 'L', + 120394 => 'L', + 120395 => 'L', + 120396 => 'L', + 120397 => 'L', + 120398 => 'L', + 120399 => 'L', + 120400 => 'L', + 120401 => 'L', + 120402 => 'L', + 120403 => 'L', + 120404 => 'L', + 120405 => 'L', + 120406 => 'L', + 120407 => 'L', + 120408 => 'L', + 120409 => 'L', + 120410 => 'L', + 120411 => 'L', + 120412 => 'L', + 120413 => 'L', + 120414 => 'L', + 120415 => 'L', + 120416 => 'L', + 120417 => 'L', + 120418 => 'L', + 120419 => 'L', + 120420 => 'L', + 120421 => 'L', + 120422 => 'L', + 120423 => 'L', + 120424 => 'L', + 120425 => 'L', + 120426 => 'L', + 120427 => 'L', + 120428 => 'L', + 120429 => 'L', + 120430 => 'L', + 120431 => 'L', + 120432 => 'L', + 120433 => 'L', + 120434 => 'L', + 120435 => 'L', + 120436 => 'L', + 120437 => 'L', + 120438 => 'L', + 120439 => 'L', + 120440 => 'L', + 120441 => 'L', + 120442 => 'L', + 120443 => 'L', + 120444 => 'L', + 120445 => 'L', + 120446 => 'L', + 120447 => 'L', + 120448 => 'L', + 120449 => 'L', + 120450 => 'L', + 120451 => 'L', + 120452 => 'L', + 120453 => 'L', + 120454 => 'L', + 120455 => 'L', + 120456 => 'L', + 120457 => 'L', + 120458 => 'L', + 120459 => 'L', + 120460 => 'L', + 120461 => 'L', + 120462 => 'L', + 120463 => 'L', + 120464 => 'L', + 120465 => 'L', + 120466 => 'L', + 120467 => 'L', + 120468 => 'L', + 120469 => 'L', + 120470 => 'L', + 120471 => 'L', + 120472 => 'L', + 120473 => 'L', + 120474 => 'L', + 120475 => 'L', + 120476 => 'L', + 120477 => 'L', + 120478 => 'L', + 120479 => 'L', + 120480 => 'L', + 120481 => 'L', + 120482 => 'L', + 120483 => 'L', + 120484 => 'L', + 120485 => 'L', + 120488 => 'L', + 120489 => 'L', + 120490 => 'L', + 120491 => 'L', + 120492 => 'L', + 120493 => 'L', + 120494 => 'L', + 120495 => 'L', + 120496 => 'L', + 120497 => 'L', + 120498 => 'L', + 120499 => 'L', + 120500 => 'L', + 120501 => 'L', + 120502 => 'L', + 120503 => 'L', + 120504 => 'L', + 120505 => 'L', + 120506 => 'L', + 120507 => 'L', + 120508 => 'L', + 120509 => 'L', + 120510 => 'L', + 120511 => 'L', + 120512 => 'L', + 120513 => 'L', + 120514 => 'L', + 120515 => 'L', + 120516 => 'L', + 120517 => 'L', + 120518 => 'L', + 120519 => 'L', + 120520 => 'L', + 120521 => 'L', + 120522 => 'L', + 120523 => 'L', + 120524 => 'L', + 120525 => 'L', + 120526 => 'L', + 120527 => 'L', + 120528 => 'L', + 120529 => 'L', + 120530 => 'L', + 120531 => 'L', + 120532 => 'L', + 120533 => 'L', + 120534 => 'L', + 120535 => 'L', + 120536 => 'L', + 120537 => 'L', + 120538 => 'L', + 120539 => 'L', + 120540 => 'L', + 120541 => 'L', + 120542 => 'L', + 120543 => 'L', + 120544 => 'L', + 120545 => 'L', + 120546 => 'L', + 120547 => 'L', + 120548 => 'L', + 120549 => 'L', + 120550 => 'L', + 120551 => 'L', + 120552 => 'L', + 120553 => 'L', + 120554 => 'L', + 120555 => 'L', + 120556 => 'L', + 120557 => 'L', + 120558 => 'L', + 120559 => 'L', + 120560 => 'L', + 120561 => 'L', + 120562 => 'L', + 120563 => 'L', + 120564 => 'L', + 120565 => 'L', + 120566 => 'L', + 120567 => 'L', + 120568 => 'L', + 120569 => 'L', + 120570 => 'L', + 120571 => 'L', + 120572 => 'L', + 120573 => 'L', + 120574 => 'L', + 120575 => 'L', + 120576 => 'L', + 120577 => 'L', + 120578 => 'L', + 120579 => 'L', + 120580 => 'L', + 120581 => 'L', + 120582 => 'L', + 120583 => 'L', + 120584 => 'L', + 120585 => 'L', + 120586 => 'L', + 120587 => 'L', + 120588 => 'L', + 120589 => 'L', + 120590 => 'L', + 120591 => 'L', + 120592 => 'L', + 120593 => 'L', + 120594 => 'L', + 120595 => 'L', + 120596 => 'L', + 120597 => 'L', + 120598 => 'L', + 120599 => 'L', + 120600 => 'L', + 120601 => 'L', + 120602 => 'L', + 120603 => 'L', + 120604 => 'L', + 120605 => 'L', + 120606 => 'L', + 120607 => 'L', + 120608 => 'L', + 120609 => 'L', + 120610 => 'L', + 120611 => 'L', + 120612 => 'L', + 120613 => 'L', + 120614 => 'L', + 120615 => 'L', + 120616 => 'L', + 120617 => 'L', + 120618 => 'L', + 120619 => 'L', + 120620 => 'L', + 120621 => 'L', + 120622 => 'L', + 120623 => 'L', + 120624 => 'L', + 120625 => 'L', + 120626 => 'L', + 120627 => 'L', + 120628 => 'L', + 120629 => 'L', + 120630 => 'L', + 120631 => 'L', + 120632 => 'L', + 120633 => 'L', + 120634 => 'L', + 120635 => 'L', + 120636 => 'L', + 120637 => 'L', + 120638 => 'L', + 120639 => 'L', + 120640 => 'L', + 120641 => 'L', + 120642 => 'L', + 120643 => 'L', + 120644 => 'L', + 120645 => 'L', + 120646 => 'L', + 120647 => 'L', + 120648 => 'L', + 120649 => 'L', + 120650 => 'L', + 120651 => 'L', + 120652 => 'L', + 120653 => 'L', + 120654 => 'L', + 120655 => 'L', + 120656 => 'L', + 120657 => 'L', + 120658 => 'L', + 120659 => 'L', + 120660 => 'L', + 120661 => 'L', + 120662 => 'L', + 120663 => 'L', + 120664 => 'L', + 120665 => 'L', + 120666 => 'L', + 120667 => 'L', + 120668 => 'L', + 120669 => 'L', + 120670 => 'L', + 120671 => 'L', + 120672 => 'L', + 120673 => 'L', + 120674 => 'L', + 120675 => 'L', + 120676 => 'L', + 120677 => 'L', + 120678 => 'L', + 120679 => 'L', + 120680 => 'L', + 120681 => 'L', + 120682 => 'L', + 120683 => 'L', + 120684 => 'L', + 120685 => 'L', + 120686 => 'L', + 120687 => 'L', + 120688 => 'L', + 120689 => 'L', + 120690 => 'L', + 120691 => 'L', + 120692 => 'L', + 120693 => 'L', + 120694 => 'L', + 120695 => 'L', + 120696 => 'L', + 120697 => 'L', + 120698 => 'L', + 120699 => 'L', + 120700 => 'L', + 120701 => 'L', + 120702 => 'L', + 120703 => 'L', + 120704 => 'L', + 120705 => 'L', + 120706 => 'L', + 120707 => 'L', + 120708 => 'L', + 120709 => 'L', + 120710 => 'L', + 120711 => 'L', + 120712 => 'L', + 120713 => 'L', + 120714 => 'L', + 120715 => 'L', + 120716 => 'L', + 120717 => 'L', + 120718 => 'L', + 120719 => 'L', + 120720 => 'L', + 120721 => 'L', + 120722 => 'L', + 120723 => 'L', + 120724 => 'L', + 120725 => 'L', + 120726 => 'L', + 120727 => 'L', + 120728 => 'L', + 120729 => 'L', + 120730 => 'L', + 120731 => 'L', + 120732 => 'L', + 120733 => 'L', + 120734 => 'L', + 120735 => 'L', + 120736 => 'L', + 120737 => 'L', + 120738 => 'L', + 120739 => 'L', + 120740 => 'L', + 120741 => 'L', + 120742 => 'L', + 120743 => 'L', + 120744 => 'L', + 120745 => 'L', + 120746 => 'L', + 120747 => 'L', + 120748 => 'L', + 120749 => 'L', + 120750 => 'L', + 120751 => 'L', + 120752 => 'L', + 120753 => 'L', + 120754 => 'L', + 120755 => 'L', + 120756 => 'L', + 120757 => 'L', + 120758 => 'L', + 120759 => 'L', + 120760 => 'L', + 120761 => 'L', + 120762 => 'L', + 120763 => 'L', + 120764 => 'L', + 120765 => 'L', + 120766 => 'L', + 120767 => 'L', + 120768 => 'L', + 120769 => 'L', + 120770 => 'L', + 120771 => 'L', + 120772 => 'L', + 120773 => 'L', + 120774 => 'L', + 120775 => 'L', + 120776 => 'L', + 120777 => 'L', + 120778 => 'L', + 120779 => 'L', + 120782 => 'EN', + 120783 => 'EN', + 120784 => 'EN', + 120785 => 'EN', + 120786 => 'EN', + 120787 => 'EN', + 120788 => 'EN', + 120789 => 'EN', + 120790 => 'EN', + 120791 => 'EN', + 120792 => 'EN', + 120793 => 'EN', + 120794 => 'EN', + 120795 => 'EN', + 120796 => 'EN', + 120797 => 'EN', + 120798 => 'EN', + 120799 => 'EN', + 120800 => 'EN', + 120801 => 'EN', + 120802 => 'EN', + 120803 => 'EN', + 120804 => 'EN', + 120805 => 'EN', + 120806 => 'EN', + 120807 => 'EN', + 120808 => 'EN', + 120809 => 'EN', + 120810 => 'EN', + 120811 => 'EN', + 120812 => 'EN', + 120813 => 'EN', + 120814 => 'EN', + 120815 => 'EN', + 120816 => 'EN', + 120817 => 'EN', + 120818 => 'EN', + 120819 => 'EN', + 120820 => 'EN', + 120821 => 'EN', + 120822 => 'EN', + 120823 => 'EN', + 120824 => 'EN', + 120825 => 'EN', + 120826 => 'EN', + 120827 => 'EN', + 120828 => 'EN', + 120829 => 'EN', + 120830 => 'EN', + 120831 => 'EN', + 131072 => 'L', + 173782 => 'L', + 194560 => 'L', + 194561 => 'L', + 194562 => 'L', + 194563 => 'L', + 194564 => 'L', + 194565 => 'L', + 194566 => 'L', + 194567 => 'L', + 194568 => 'L', + 194569 => 'L', + 194570 => 'L', + 194571 => 'L', + 194572 => 'L', + 194573 => 'L', + 194574 => 'L', + 194575 => 'L', + 194576 => 'L', + 194577 => 'L', + 194578 => 'L', + 194579 => 'L', + 194580 => 'L', + 194581 => 'L', + 194582 => 'L', + 194583 => 'L', + 194584 => 'L', + 194585 => 'L', + 194586 => 'L', + 194587 => 'L', + 194588 => 'L', + 194589 => 'L', + 194590 => 'L', + 194591 => 'L', + 194592 => 'L', + 194593 => 'L', + 194594 => 'L', + 194595 => 'L', + 194596 => 'L', + 194597 => 'L', + 194598 => 'L', + 194599 => 'L', + 194600 => 'L', + 194601 => 'L', + 194602 => 'L', + 194603 => 'L', + 194604 => 'L', + 194605 => 'L', + 194606 => 'L', + 194607 => 'L', + 194608 => 'L', + 194609 => 'L', + 194610 => 'L', + 194611 => 'L', + 194612 => 'L', + 194613 => 'L', + 194614 => 'L', + 194615 => 'L', + 194616 => 'L', + 194617 => 'L', + 194618 => 'L', + 194619 => 'L', + 194620 => 'L', + 194621 => 'L', + 194622 => 'L', + 194623 => 'L', + 194624 => 'L', + 194625 => 'L', + 194626 => 'L', + 194627 => 'L', + 194628 => 'L', + 194629 => 'L', + 194630 => 'L', + 194631 => 'L', + 194632 => 'L', + 194633 => 'L', + 194634 => 'L', + 194635 => 'L', + 194636 => 'L', + 194637 => 'L', + 194638 => 'L', + 194639 => 'L', + 194640 => 'L', + 194641 => 'L', + 194642 => 'L', + 194643 => 'L', + 194644 => 'L', + 194645 => 'L', + 194646 => 'L', + 194647 => 'L', + 194648 => 'L', + 194649 => 'L', + 194650 => 'L', + 194651 => 'L', + 194652 => 'L', + 194653 => 'L', + 194654 => 'L', + 194655 => 'L', + 194656 => 'L', + 194657 => 'L', + 194658 => 'L', + 194659 => 'L', + 194660 => 'L', + 194661 => 'L', + 194662 => 'L', + 194663 => 'L', + 194664 => 'L', + 194665 => 'L', + 194666 => 'L', + 194667 => 'L', + 194668 => 'L', + 194669 => 'L', + 194670 => 'L', + 194671 => 'L', + 194672 => 'L', + 194673 => 'L', + 194674 => 'L', + 194675 => 'L', + 194676 => 'L', + 194677 => 'L', + 194678 => 'L', + 194679 => 'L', + 194680 => 'L', + 194681 => 'L', + 194682 => 'L', + 194683 => 'L', + 194684 => 'L', + 194685 => 'L', + 194686 => 'L', + 194687 => 'L', + 194688 => 'L', + 194689 => 'L', + 194690 => 'L', + 194691 => 'L', + 194692 => 'L', + 194693 => 'L', + 194694 => 'L', + 194695 => 'L', + 194696 => 'L', + 194697 => 'L', + 194698 => 'L', + 194699 => 'L', + 194700 => 'L', + 194701 => 'L', + 194702 => 'L', + 194703 => 'L', + 194704 => 'L', + 194705 => 'L', + 194706 => 'L', + 194707 => 'L', + 194708 => 'L', + 194709 => 'L', + 194710 => 'L', + 194711 => 'L', + 194712 => 'L', + 194713 => 'L', + 194714 => 'L', + 194715 => 'L', + 194716 => 'L', + 194717 => 'L', + 194718 => 'L', + 194719 => 'L', + 194720 => 'L', + 194721 => 'L', + 194722 => 'L', + 194723 => 'L', + 194724 => 'L', + 194725 => 'L', + 194726 => 'L', + 194727 => 'L', + 194728 => 'L', + 194729 => 'L', + 194730 => 'L', + 194731 => 'L', + 194732 => 'L', + 194733 => 'L', + 194734 => 'L', + 194735 => 'L', + 194736 => 'L', + 194737 => 'L', + 194738 => 'L', + 194739 => 'L', + 194740 => 'L', + 194741 => 'L', + 194742 => 'L', + 194743 => 'L', + 194744 => 'L', + 194745 => 'L', + 194746 => 'L', + 194747 => 'L', + 194748 => 'L', + 194749 => 'L', + 194750 => 'L', + 194751 => 'L', + 194752 => 'L', + 194753 => 'L', + 194754 => 'L', + 194755 => 'L', + 194756 => 'L', + 194757 => 'L', + 194758 => 'L', + 194759 => 'L', + 194760 => 'L', + 194761 => 'L', + 194762 => 'L', + 194763 => 'L', + 194764 => 'L', + 194765 => 'L', + 194766 => 'L', + 194767 => 'L', + 194768 => 'L', + 194769 => 'L', + 194770 => 'L', + 194771 => 'L', + 194772 => 'L', + 194773 => 'L', + 194774 => 'L', + 194775 => 'L', + 194776 => 'L', + 194777 => 'L', + 194778 => 'L', + 194779 => 'L', + 194780 => 'L', + 194781 => 'L', + 194782 => 'L', + 194783 => 'L', + 194784 => 'L', + 194785 => 'L', + 194786 => 'L', + 194787 => 'L', + 194788 => 'L', + 194789 => 'L', + 194790 => 'L', + 194791 => 'L', + 194792 => 'L', + 194793 => 'L', + 194794 => 'L', + 194795 => 'L', + 194796 => 'L', + 194797 => 'L', + 194798 => 'L', + 194799 => 'L', + 194800 => 'L', + 194801 => 'L', + 194802 => 'L', + 194803 => 'L', + 194804 => 'L', + 194805 => 'L', + 194806 => 'L', + 194807 => 'L', + 194808 => 'L', + 194809 => 'L', + 194810 => 'L', + 194811 => 'L', + 194812 => 'L', + 194813 => 'L', + 194814 => 'L', + 194815 => 'L', + 194816 => 'L', + 194817 => 'L', + 194818 => 'L', + 194819 => 'L', + 194820 => 'L', + 194821 => 'L', + 194822 => 'L', + 194823 => 'L', + 194824 => 'L', + 194825 => 'L', + 194826 => 'L', + 194827 => 'L', + 194828 => 'L', + 194829 => 'L', + 194830 => 'L', + 194831 => 'L', + 194832 => 'L', + 194833 => 'L', + 194834 => 'L', + 194835 => 'L', + 194836 => 'L', + 194837 => 'L', + 194838 => 'L', + 194839 => 'L', + 194840 => 'L', + 194841 => 'L', + 194842 => 'L', + 194843 => 'L', + 194844 => 'L', + 194845 => 'L', + 194846 => 'L', + 194847 => 'L', + 194848 => 'L', + 194849 => 'L', + 194850 => 'L', + 194851 => 'L', + 194852 => 'L', + 194853 => 'L', + 194854 => 'L', + 194855 => 'L', + 194856 => 'L', + 194857 => 'L', + 194858 => 'L', + 194859 => 'L', + 194860 => 'L', + 194861 => 'L', + 194862 => 'L', + 194863 => 'L', + 194864 => 'L', + 194865 => 'L', + 194866 => 'L', + 194867 => 'L', + 194868 => 'L', + 194869 => 'L', + 194870 => 'L', + 194871 => 'L', + 194872 => 'L', + 194873 => 'L', + 194874 => 'L', + 194875 => 'L', + 194876 => 'L', + 194877 => 'L', + 194878 => 'L', + 194879 => 'L', + 194880 => 'L', + 194881 => 'L', + 194882 => 'L', + 194883 => 'L', + 194884 => 'L', + 194885 => 'L', + 194886 => 'L', + 194887 => 'L', + 194888 => 'L', + 194889 => 'L', + 194890 => 'L', + 194891 => 'L', + 194892 => 'L', + 194893 => 'L', + 194894 => 'L', + 194895 => 'L', + 194896 => 'L', + 194897 => 'L', + 194898 => 'L', + 194899 => 'L', + 194900 => 'L', + 194901 => 'L', + 194902 => 'L', + 194903 => 'L', + 194904 => 'L', + 194905 => 'L', + 194906 => 'L', + 194907 => 'L', + 194908 => 'L', + 194909 => 'L', + 194910 => 'L', + 194911 => 'L', + 194912 => 'L', + 194913 => 'L', + 194914 => 'L', + 194915 => 'L', + 194916 => 'L', + 194917 => 'L', + 194918 => 'L', + 194919 => 'L', + 194920 => 'L', + 194921 => 'L', + 194922 => 'L', + 194923 => 'L', + 194924 => 'L', + 194925 => 'L', + 194926 => 'L', + 194927 => 'L', + 194928 => 'L', + 194929 => 'L', + 194930 => 'L', + 194931 => 'L', + 194932 => 'L', + 194933 => 'L', + 194934 => 'L', + 194935 => 'L', + 194936 => 'L', + 194937 => 'L', + 194938 => 'L', + 194939 => 'L', + 194940 => 'L', + 194941 => 'L', + 194942 => 'L', + 194943 => 'L', + 194944 => 'L', + 194945 => 'L', + 194946 => 'L', + 194947 => 'L', + 194948 => 'L', + 194949 => 'L', + 194950 => 'L', + 194951 => 'L', + 194952 => 'L', + 194953 => 'L', + 194954 => 'L', + 194955 => 'L', + 194956 => 'L', + 194957 => 'L', + 194958 => 'L', + 194959 => 'L', + 194960 => 'L', + 194961 => 'L', + 194962 => 'L', + 194963 => 'L', + 194964 => 'L', + 194965 => 'L', + 194966 => 'L', + 194967 => 'L', + 194968 => 'L', + 194969 => 'L', + 194970 => 'L', + 194971 => 'L', + 194972 => 'L', + 194973 => 'L', + 194974 => 'L', + 194975 => 'L', + 194976 => 'L', + 194977 => 'L', + 194978 => 'L', + 194979 => 'L', + 194980 => 'L', + 194981 => 'L', + 194982 => 'L', + 194983 => 'L', + 194984 => 'L', + 194985 => 'L', + 194986 => 'L', + 194987 => 'L', + 194988 => 'L', + 194989 => 'L', + 194990 => 'L', + 194991 => 'L', + 194992 => 'L', + 194993 => 'L', + 194994 => 'L', + 194995 => 'L', + 194996 => 'L', + 194997 => 'L', + 194998 => 'L', + 194999 => 'L', + 195000 => 'L', + 195001 => 'L', + 195002 => 'L', + 195003 => 'L', + 195004 => 'L', + 195005 => 'L', + 195006 => 'L', + 195007 => 'L', + 195008 => 'L', + 195009 => 'L', + 195010 => 'L', + 195011 => 'L', + 195012 => 'L', + 195013 => 'L', + 195014 => 'L', + 195015 => 'L', + 195016 => 'L', + 195017 => 'L', + 195018 => 'L', + 195019 => 'L', + 195020 => 'L', + 195021 => 'L', + 195022 => 'L', + 195023 => 'L', + 195024 => 'L', + 195025 => 'L', + 195026 => 'L', + 195027 => 'L', + 195028 => 'L', + 195029 => 'L', + 195030 => 'L', + 195031 => 'L', + 195032 => 'L', + 195033 => 'L', + 195034 => 'L', + 195035 => 'L', + 195036 => 'L', + 195037 => 'L', + 195038 => 'L', + 195039 => 'L', + 195040 => 'L', + 195041 => 'L', + 195042 => 'L', + 195043 => 'L', + 195044 => 'L', + 195045 => 'L', + 195046 => 'L', + 195047 => 'L', + 195048 => 'L', + 195049 => 'L', + 195050 => 'L', + 195051 => 'L', + 195052 => 'L', + 195053 => 'L', + 195054 => 'L', + 195055 => 'L', + 195056 => 'L', + 195057 => 'L', + 195058 => 'L', + 195059 => 'L', + 195060 => 'L', + 195061 => 'L', + 195062 => 'L', + 195063 => 'L', + 195064 => 'L', + 195065 => 'L', + 195066 => 'L', + 195067 => 'L', + 195068 => 'L', + 195069 => 'L', + 195070 => 'L', + 195071 => 'L', + 195072 => 'L', + 195073 => 'L', + 195074 => 'L', + 195075 => 'L', + 195076 => 'L', + 195077 => 'L', + 195078 => 'L', + 195079 => 'L', + 195080 => 'L', + 195081 => 'L', + 195082 => 'L', + 195083 => 'L', + 195084 => 'L', + 195085 => 'L', + 195086 => 'L', + 195087 => 'L', + 195088 => 'L', + 195089 => 'L', + 195090 => 'L', + 195091 => 'L', + 195092 => 'L', + 195093 => 'L', + 195094 => 'L', + 195095 => 'L', + 195096 => 'L', + 195097 => 'L', + 195098 => 'L', + 195099 => 'L', + 195100 => 'L', + 195101 => 'L', + 917505 => 'BN', + 917536 => 'BN', + 917537 => 'BN', + 917538 => 'BN', + 917539 => 'BN', + 917540 => 'BN', + 917541 => 'BN', + 917542 => 'BN', + 917543 => 'BN', + 917544 => 'BN', + 917545 => 'BN', + 917546 => 'BN', + 917547 => 'BN', + 917548 => 'BN', + 917549 => 'BN', + 917550 => 'BN', + 917551 => 'BN', + 917552 => 'BN', + 917553 => 'BN', + 917554 => 'BN', + 917555 => 'BN', + 917556 => 'BN', + 917557 => 'BN', + 917558 => 'BN', + 917559 => 'BN', + 917560 => 'BN', + 917561 => 'BN', + 917562 => 'BN', + 917563 => 'BN', + 917564 => 'BN', + 917565 => 'BN', + 917566 => 'BN', + 917567 => 'BN', + 917568 => 'BN', + 917569 => 'BN', + 917570 => 'BN', + 917571 => 'BN', + 917572 => 'BN', + 917573 => 'BN', + 917574 => 'BN', + 917575 => 'BN', + 917576 => 'BN', + 917577 => 'BN', + 917578 => 'BN', + 917579 => 'BN', + 917580 => 'BN', + 917581 => 'BN', + 917582 => 'BN', + 917583 => 'BN', + 917584 => 'BN', + 917585 => 'BN', + 917586 => 'BN', + 917587 => 'BN', + 917588 => 'BN', + 917589 => 'BN', + 917590 => 'BN', + 917591 => 'BN', + 917592 => 'BN', + 917593 => 'BN', + 917594 => 'BN', + 917595 => 'BN', + 917596 => 'BN', + 917597 => 'BN', + 917598 => 'BN', + 917599 => 'BN', + 917600 => 'BN', + 917601 => 'BN', + 917602 => 'BN', + 917603 => 'BN', + 917604 => 'BN', + 917605 => 'BN', + 917606 => 'BN', + 917607 => 'BN', + 917608 => 'BN', + 917609 => 'BN', + 917610 => 'BN', + 917611 => 'BN', + 917612 => 'BN', + 917613 => 'BN', + 917614 => 'BN', + 917615 => 'BN', + 917616 => 'BN', + 917617 => 'BN', + 917618 => 'BN', + 917619 => 'BN', + 917620 => 'BN', + 917621 => 'BN', + 917622 => 'BN', + 917623 => 'BN', + 917624 => 'BN', + 917625 => 'BN', + 917626 => 'BN', + 917627 => 'BN', + 917628 => 'BN', + 917629 => 'BN', + 917630 => 'BN', + 917631 => 'BN', + 917760 => 'NSM', + 917761 => 'NSM', + 917762 => 'NSM', + 917763 => 'NSM', + 917764 => 'NSM', + 917765 => 'NSM', + 917766 => 'NSM', + 917767 => 'NSM', + 917768 => 'NSM', + 917769 => 'NSM', + 917770 => 'NSM', + 917771 => 'NSM', + 917772 => 'NSM', + 917773 => 'NSM', + 917774 => 'NSM', + 917775 => 'NSM', + 917776 => 'NSM', + 917777 => 'NSM', + 917778 => 'NSM', + 917779 => 'NSM', + 917780 => 'NSM', + 917781 => 'NSM', + 917782 => 'NSM', + 917783 => 'NSM', + 917784 => 'NSM', + 917785 => 'NSM', + 917786 => 'NSM', + 917787 => 'NSM', + 917788 => 'NSM', + 917789 => 'NSM', + 917790 => 'NSM', + 917791 => 'NSM', + 917792 => 'NSM', + 917793 => 'NSM', + 917794 => 'NSM', + 917795 => 'NSM', + 917796 => 'NSM', + 917797 => 'NSM', + 917798 => 'NSM', + 917799 => 'NSM', + 917800 => 'NSM', + 917801 => 'NSM', + 917802 => 'NSM', + 917803 => 'NSM', + 917804 => 'NSM', + 917805 => 'NSM', + 917806 => 'NSM', + 917807 => 'NSM', + 917808 => 'NSM', + 917809 => 'NSM', + 917810 => 'NSM', + 917811 => 'NSM', + 917812 => 'NSM', + 917813 => 'NSM', + 917814 => 'NSM', + 917815 => 'NSM', + 917816 => 'NSM', + 917817 => 'NSM', + 917818 => 'NSM', + 917819 => 'NSM', + 917820 => 'NSM', + 917821 => 'NSM', + 917822 => 'NSM', + 917823 => 'NSM', + 917824 => 'NSM', + 917825 => 'NSM', + 917826 => 'NSM', + 917827 => 'NSM', + 917828 => 'NSM', + 917829 => 'NSM', + 917830 => 'NSM', + 917831 => 'NSM', + 917832 => 'NSM', + 917833 => 'NSM', + 917834 => 'NSM', + 917835 => 'NSM', + 917836 => 'NSM', + 917837 => 'NSM', + 917838 => 'NSM', + 917839 => 'NSM', + 917840 => 'NSM', + 917841 => 'NSM', + 917842 => 'NSM', + 917843 => 'NSM', + 917844 => 'NSM', + 917845 => 'NSM', + 917846 => 'NSM', + 917847 => 'NSM', + 917848 => 'NSM', + 917849 => 'NSM', + 917850 => 'NSM', + 917851 => 'NSM', + 917852 => 'NSM', + 917853 => 'NSM', + 917854 => 'NSM', + 917855 => 'NSM', + 917856 => 'NSM', + 917857 => 'NSM', + 917858 => 'NSM', + 917859 => 'NSM', + 917860 => 'NSM', + 917861 => 'NSM', + 917862 => 'NSM', + 917863 => 'NSM', + 917864 => 'NSM', + 917865 => 'NSM', + 917866 => 'NSM', + 917867 => 'NSM', + 917868 => 'NSM', + 917869 => 'NSM', + 917870 => 'NSM', + 917871 => 'NSM', + 917872 => 'NSM', + 917873 => 'NSM', + 917874 => 'NSM', + 917875 => 'NSM', + 917876 => 'NSM', + 917877 => 'NSM', + 917878 => 'NSM', + 917879 => 'NSM', + 917880 => 'NSM', + 917881 => 'NSM', + 917882 => 'NSM', + 917883 => 'NSM', + 917884 => 'NSM', + 917885 => 'NSM', + 917886 => 'NSM', + 917887 => 'NSM', + 917888 => 'NSM', + 917889 => 'NSM', + 917890 => 'NSM', + 917891 => 'NSM', + 917892 => 'NSM', + 917893 => 'NSM', + 917894 => 'NSM', + 917895 => 'NSM', + 917896 => 'NSM', + 917897 => 'NSM', + 917898 => 'NSM', + 917899 => 'NSM', + 917900 => 'NSM', + 917901 => 'NSM', + 917902 => 'NSM', + 917903 => 'NSM', + 917904 => 'NSM', + 917905 => 'NSM', + 917906 => 'NSM', + 917907 => 'NSM', + 917908 => 'NSM', + 917909 => 'NSM', + 917910 => 'NSM', + 917911 => 'NSM', + 917912 => 'NSM', + 917913 => 'NSM', + 917914 => 'NSM', + 917915 => 'NSM', + 917916 => 'NSM', + 917917 => 'NSM', + 917918 => 'NSM', + 917919 => 'NSM', + 917920 => 'NSM', + 917921 => 'NSM', + 917922 => 'NSM', + 917923 => 'NSM', + 917924 => 'NSM', + 917925 => 'NSM', + 917926 => 'NSM', + 917927 => 'NSM', + 917928 => 'NSM', + 917929 => 'NSM', + 917930 => 'NSM', + 917931 => 'NSM', + 917932 => 'NSM', + 917933 => 'NSM', + 917934 => 'NSM', + 917935 => 'NSM', + 917936 => 'NSM', + 917937 => 'NSM', + 917938 => 'NSM', + 917939 => 'NSM', + 917940 => 'NSM', + 917941 => 'NSM', + 917942 => 'NSM', + 917943 => 'NSM', + 917944 => 'NSM', + 917945 => 'NSM', + 917946 => 'NSM', + 917947 => 'NSM', + 917948 => 'NSM', + 917949 => 'NSM', + 917950 => 'NSM', + 917951 => 'NSM', + 917952 => 'NSM', + 917953 => 'NSM', + 917954 => 'NSM', + 917955 => 'NSM', + 917956 => 'NSM', + 917957 => 'NSM', + 917958 => 'NSM', + 917959 => 'NSM', + 917960 => 'NSM', + 917961 => 'NSM', + 917962 => 'NSM', + 917963 => 'NSM', + 917964 => 'NSM', + 917965 => 'NSM', + 917966 => 'NSM', + 917967 => 'NSM', + 917968 => 'NSM', + 917969 => 'NSM', + 917970 => 'NSM', + 917971 => 'NSM', + 917972 => 'NSM', + 917973 => 'NSM', + 917974 => 'NSM', + 917975 => 'NSM', + 917976 => 'NSM', + 917977 => 'NSM', + 917978 => 'NSM', + 917979 => 'NSM', + 917980 => 'NSM', + 917981 => 'NSM', + 917982 => 'NSM', + 917983 => 'NSM', + 917984 => 'NSM', + 917985 => 'NSM', + 917986 => 'NSM', + 917987 => 'NSM', + 917988 => 'NSM', + 917989 => 'NSM', + 917990 => 'NSM', + 917991 => 'NSM', + 917992 => 'NSM', + 917993 => 'NSM', + 917994 => 'NSM', + 917995 => 'NSM', + 917996 => 'NSM', + 917997 => 'NSM', + 917998 => 'NSM', + 917999 => 'NSM', + 983040 => 'L', + 1048573 => 'L', + 1048576 => 'L', + 1114109 => 'L' +); + +/** +* Mirror unicode characters. +* For information on bidi mirroring, see UAX #9: Bidirectional Algorithm, at http://www.unicode.org/unicode/reports/tr9/ +*/ +$unicode_mirror = array( +0x0028 => 0x0029, +0x0029 => 0x0028, +0x003C => 0x003E, +0x003E => 0x003C, +0x005B => 0x005D, +0x005D => 0x005B, +0x007B => 0x007D, +0x007D => 0x007B, +0x00AB => 0x00BB, +0x00BB => 0x00AB, +0x0F3A => 0x0F3B, +0x0F3B => 0x0F3A, +0x0F3C => 0x0F3D, +0x0F3D => 0x0F3C, +0x169B => 0x169C, +0x169C => 0x169B, +0x2018 => 0x2019, +0x2019 => 0x2018, +0x201C => 0x201D, +0x201D => 0x201C, +0x2039 => 0x203A, +0x203A => 0x2039, +0x2045 => 0x2046, +0x2046 => 0x2045, +0x207D => 0x207E, +0x207E => 0x207D, +0x208D => 0x208E, +0x208E => 0x208D, +0x2208 => 0x220B, +0x2209 => 0x220C, +0x220A => 0x220D, +0x220B => 0x2208, +0x220C => 0x2209, +0x220D => 0x220A, +0x2215 => 0x29F5, +0x223C => 0x223D, +0x223D => 0x223C, +0x2243 => 0x22CD, +0x2252 => 0x2253, +0x2253 => 0x2252, +0x2254 => 0x2255, +0x2255 => 0x2254, +0x2264 => 0x2265, +0x2265 => 0x2264, +0x2266 => 0x2267, +0x2267 => 0x2266, +0x2268 => 0x2269, +0x2269 => 0x2268, +0x226A => 0x226B, +0x226B => 0x226A, +0x226E => 0x226F, +0x226F => 0x226E, +0x2270 => 0x2271, +0x2271 => 0x2270, +0x2272 => 0x2273, +0x2273 => 0x2272, +0x2274 => 0x2275, +0x2275 => 0x2274, +0x2276 => 0x2277, +0x2277 => 0x2276, +0x2278 => 0x2279, +0x2279 => 0x2278, +0x227A => 0x227B, +0x227B => 0x227A, +0x227C => 0x227D, +0x227D => 0x227C, +0x227E => 0x227F, +0x227F => 0x227E, +0x2280 => 0x2281, +0x2281 => 0x2280, +0x2282 => 0x2283, +0x2283 => 0x2282, +0x2284 => 0x2285, +0x2285 => 0x2284, +0x2286 => 0x2287, +0x2287 => 0x2286, +0x2288 => 0x2289, +0x2289 => 0x2288, +0x228A => 0x228B, +0x228B => 0x228A, +0x228F => 0x2290, +0x2290 => 0x228F, +0x2291 => 0x2292, +0x2292 => 0x2291, +0x2298 => 0x29B8, +0x22A2 => 0x22A3, +0x22A3 => 0x22A2, +0x22A6 => 0x2ADE, +0x22A8 => 0x2AE4, +0x22A9 => 0x2AE3, +0x22AB => 0x2AE5, +0x22B0 => 0x22B1, +0x22B1 => 0x22B0, +0x22B2 => 0x22B3, +0x22B3 => 0x22B2, +0x22B4 => 0x22B5, +0x22B5 => 0x22B4, +0x22B6 => 0x22B7, +0x22B7 => 0x22B6, +0x22C9 => 0x22CA, +0x22CA => 0x22C9, +0x22CB => 0x22CC, +0x22CC => 0x22CB, +0x22CD => 0x2243, +0x22D0 => 0x22D1, +0x22D1 => 0x22D0, +0x22D6 => 0x22D7, +0x22D7 => 0x22D6, +0x22D8 => 0x22D9, +0x22D9 => 0x22D8, +0x22DA => 0x22DB, +0x22DB => 0x22DA, +0x22DC => 0x22DD, +0x22DD => 0x22DC, +0x22DE => 0x22DF, +0x22DF => 0x22DE, +0x22E0 => 0x22E1, +0x22E1 => 0x22E0, +0x22E2 => 0x22E3, +0x22E3 => 0x22E2, +0x22E4 => 0x22E5, +0x22E5 => 0x22E4, +0x22E6 => 0x22E7, +0x22E7 => 0x22E6, +0x22E8 => 0x22E9, +0x22E9 => 0x22E8, +0x22EA => 0x22EB, +0x22EB => 0x22EA, +0x22EC => 0x22ED, +0x22ED => 0x22EC, +0x22F0 => 0x22F1, +0x22F1 => 0x22F0, +0x22F2 => 0x22FA, +0x22F3 => 0x22FB, +0x22F4 => 0x22FC, +0x22F6 => 0x22FD, +0x22F7 => 0x22FE, +0x22FA => 0x22F2, +0x22FB => 0x22F3, +0x22FC => 0x22F4, +0x22FD => 0x22F6, +0x22FE => 0x22F7, +0x2308 => 0x2309, +0x2309 => 0x2308, +0x230A => 0x230B, +0x230B => 0x230A, +0x2329 => 0x232A, +0x232A => 0x2329, +0x2768 => 0x2769, +0x2769 => 0x2768, +0x276A => 0x276B, +0x276B => 0x276A, +0x276C => 0x276D, +0x276D => 0x276C, +0x276E => 0x276F, +0x276F => 0x276E, +0x2770 => 0x2771, +0x2771 => 0x2770, +0x2772 => 0x2773, +0x2773 => 0x2772, +0x2774 => 0x2775, +0x2775 => 0x2774, +0x27C3 => 0x27C4, +0x27C4 => 0x27C3, +0x27C5 => 0x27C6, +0x27C6 => 0x27C5, +0x27D5 => 0x27D6, +0x27D6 => 0x27D5, +0x27DD => 0x27DE, +0x27DE => 0x27DD, +0x27E2 => 0x27E3, +0x27E3 => 0x27E2, +0x27E4 => 0x27E5, +0x27E5 => 0x27E4, +0x27E6 => 0x27E7, +0x27E7 => 0x27E6, +0x27E8 => 0x27E9, +0x27E9 => 0x27E8, +0x27EA => 0x27EB, +0x27EB => 0x27EA, +0x2983 => 0x2984, +0x2984 => 0x2983, +0x2985 => 0x2986, +0x2986 => 0x2985, +0x2987 => 0x2988, +0x2988 => 0x2987, +0x2989 => 0x298A, +0x298A => 0x2989, +0x298B => 0x298C, +0x298C => 0x298B, +0x298D => 0x2990, +0x298E => 0x298F, +0x298F => 0x298E, +0x2990 => 0x298D, +0x2991 => 0x2992, +0x2992 => 0x2991, +0x2993 => 0x2994, +0x2994 => 0x2993, +0x2995 => 0x2996, +0x2996 => 0x2995, +0x2997 => 0x2998, +0x2998 => 0x2997, +0x29B8 => 0x2298, +0x29C0 => 0x29C1, +0x29C1 => 0x29C0, +0x29C4 => 0x29C5, +0x29C5 => 0x29C4, +0x29CF => 0x29D0, +0x29D0 => 0x29CF, +0x29D1 => 0x29D2, +0x29D2 => 0x29D1, +0x29D4 => 0x29D5, +0x29D5 => 0x29D4, +0x29D8 => 0x29D9, +0x29D9 => 0x29D8, +0x29DA => 0x29DB, +0x29DB => 0x29DA, +0x29F5 => 0x2215, +0x29F8 => 0x29F9, +0x29F9 => 0x29F8, +0x29FC => 0x29FD, +0x29FD => 0x29FC, +0x2A2B => 0x2A2C, +0x2A2C => 0x2A2B, +0x2A2D => 0x2A2E, +0x2A2E => 0x2A2D, +0x2A34 => 0x2A35, +0x2A35 => 0x2A34, +0x2A3C => 0x2A3D, +0x2A3D => 0x2A3C, +0x2A64 => 0x2A65, +0x2A65 => 0x2A64, +0x2A79 => 0x2A7A, +0x2A7A => 0x2A79, +0x2A7D => 0x2A7E, +0x2A7E => 0x2A7D, +0x2A7F => 0x2A80, +0x2A80 => 0x2A7F, +0x2A81 => 0x2A82, +0x2A82 => 0x2A81, +0x2A83 => 0x2A84, +0x2A84 => 0x2A83, +0x2A8B => 0x2A8C, +0x2A8C => 0x2A8B, +0x2A91 => 0x2A92, +0x2A92 => 0x2A91, +0x2A93 => 0x2A94, +0x2A94 => 0x2A93, +0x2A95 => 0x2A96, +0x2A96 => 0x2A95, +0x2A97 => 0x2A98, +0x2A98 => 0x2A97, +0x2A99 => 0x2A9A, +0x2A9A => 0x2A99, +0x2A9B => 0x2A9C, +0x2A9C => 0x2A9B, +0x2AA1 => 0x2AA2, +0x2AA2 => 0x2AA1, +0x2AA6 => 0x2AA7, +0x2AA7 => 0x2AA6, +0x2AA8 => 0x2AA9, +0x2AA9 => 0x2AA8, +0x2AAA => 0x2AAB, +0x2AAB => 0x2AAA, +0x2AAC => 0x2AAD, +0x2AAD => 0x2AAC, +0x2AAF => 0x2AB0, +0x2AB0 => 0x2AAF, +0x2AB3 => 0x2AB4, +0x2AB4 => 0x2AB3, +0x2ABB => 0x2ABC, +0x2ABC => 0x2ABB, +0x2ABD => 0x2ABE, +0x2ABE => 0x2ABD, +0x2ABF => 0x2AC0, +0x2AC0 => 0x2ABF, +0x2AC1 => 0x2AC2, +0x2AC2 => 0x2AC1, +0x2AC3 => 0x2AC4, +0x2AC4 => 0x2AC3, +0x2AC5 => 0x2AC6, +0x2AC6 => 0x2AC5, +0x2ACD => 0x2ACE, +0x2ACE => 0x2ACD, +0x2ACF => 0x2AD0, +0x2AD0 => 0x2ACF, +0x2AD1 => 0x2AD2, +0x2AD2 => 0x2AD1, +0x2AD3 => 0x2AD4, +0x2AD4 => 0x2AD3, +0x2AD5 => 0x2AD6, +0x2AD6 => 0x2AD5, +0x2ADE => 0x22A6, +0x2AE3 => 0x22A9, +0x2AE4 => 0x22A8, +0x2AE5 => 0x22AB, +0x2AEC => 0x2AED, +0x2AED => 0x2AEC, +0x2AF7 => 0x2AF8, +0x2AF8 => 0x2AF7, +0x2AF9 => 0x2AFA, +0x2AFA => 0x2AF9, +0x2E02 => 0x2E03, +0x2E03 => 0x2E02, +0x2E04 => 0x2E05, +0x2E05 => 0x2E04, +0x2E09 => 0x2E0A, +0x2E0A => 0x2E09, +0x2E0C => 0x2E0D, +0x2E0D => 0x2E0C, +0x2E1C => 0x2E1D, +0x2E1D => 0x2E1C, +0x3008 => 0x3009, +0x3009 => 0x3008, +0x300A => 0x300B, +0x300B => 0x300A, +0x300C => 0x300D, +0x300D => 0x300C, +0x300E => 0x300F, +0x300F => 0x300E, +0x3010 => 0x3011, +0x3011 => 0x3010, +0x3014 => 0x3015, +0x3015 => 0x3014, +0x3016 => 0x3017, +0x3017 => 0x3016, +0x3018 => 0x3019, +0x3019 => 0x3018, +0x301A => 0x301B, +0x301B => 0x301A, +0x301D => 0x301E, +0x301E => 0x301D, +0xFE59 => 0xFE5A, +0xFE5A => 0xFE59, +0xFE5B => 0xFE5C, +0xFE5C => 0xFE5B, +0xFE5D => 0xFE5E, +0xFE5E => 0xFE5D, +0xFE64 => 0xFE65, +0xFE65 => 0xFE64, +0xFF08 => 0xFF09, +0xFF09 => 0xFF08, +0xFF1C => 0xFF1E, +0xFF1E => 0xFF1C, +0xFF3B => 0xFF3D, +0xFF3D => 0xFF3B, +0xFF5B => 0xFF5D, +0xFF5D => 0xFF5B, +0xFF5F => 0xFF60, +0xFF60 => 0xFF5F, +0xFF62 => 0xFF63, +0xFF63 => 0xFF62); + +/** + * Arabic shape subtitutions + * char code => isolated, final, initial, medial + */ +$unicode_arlet = array( + 1569 => array(65152), + 1570 => array(65153, 65154), + 1571 => array(65155, 65156), + 1572 => array(65157, 65158), + 1573 => array(65159, 65160), + 1574 => array(65161, 65162, 65163, 65164), + 1575 => array(65165, 65166), + 1576 => array(65167, 65168, 65169, 65170), + 1577 => array(65171, 65172), + 1578 => array(65173, 65174, 65175, 65176), + 1579 => array(65177, 65178, 65179, 65180), + 1580 => array(65181, 65182, 65183, 65184), + 1581 => array(65185, 65186, 65187, 65188), + 1582 => array(65189, 65190, 65191, 65192), + 1583 => array(65193, 65194), + 1584 => array(65195, 65196), + 1585 => array(65197, 65198), + 1586 => array(65199, 65200), + 1587 => array(65201, 65202, 65203, 65204), + 1588 => array(65205, 65206, 65207, 65208), + 1589 => array(65209, 65210, 65211, 65212), + 1590 => array(65213, 65214, 65215, 65216), + 1591 => array(65217, 65218, 65219, 65220), + 1592 => array(65221, 65222, 65223, 65224), + 1593 => array(65225, 65226, 65227, 65228), + 1594 => array(65229, 65230, 65231, 65232), + 1601 => array(65233, 65234, 65235, 65236), + 1602 => array(65237, 65238, 65239, 65240), + 1603 => array(65241, 65242, 65243, 65244), + 1604 => array(65245, 65246, 65247, 65248), + 1605 => array(65249, 65250, 65251, 65252), + 1606 => array(65253, 65254, 65255, 65256), + 1607 => array(65257, 65258, 65259, 65260), + 1608 => array(65261, 65262), + 1609 => array(65263, 65264, 64488, 64489), + 1610 => array(65265, 65266, 65267, 65268), + 1649 => array(64336, 64337), + 1655 => array(64477), + 1657 => array(64358, 64359, 64360, 64361), + 1658 => array(64350, 64351, 64352, 64353), + 1659 => array(64338, 64339, 64340, 64341), + 1662 => array(64342, 64343, 64344, 64345), + 1663 => array(64354, 64355, 64356, 64357), + 1664 => array(64346, 64347, 64348, 64349), + 1667 => array(64374, 64375, 64376, 64377), + 1668 => array(64370, 64371, 64372, 64373), + 1670 => array(64378, 64379, 64380, 64381), + 1671 => array(64382, 64383, 64384, 64385), + 1672 => array(64392, 64393), + 1676 => array(64388, 64389), + 1677 => array(64386, 64387), + 1678 => array(64390, 64391), + 1681 => array(64396, 64397), + 1688 => array(64394, 64395), + 1700 => array(64362, 64363, 64364, 64365), + 1702 => array(64366, 64367, 64368, 64369), + 1705 => array(64398, 64399, 64400, 64401), + 1709 => array(64467, 64468, 64469, 64470), + 1711 => array(64402, 64403, 64404, 64405), + 1713 => array(64410, 64411, 64412, 64413), + 1715 => array(64406, 64407, 64408, 64409), + 1722 => array(64414, 64415), + 1723 => array(64416, 64417, 64418, 64419), + 1726 => array(64426, 64427, 64428, 64429), + 1728 => array(64420, 64421), + 1729 => array(64422, 64423, 64424, 64425), + 1733 => array(64480, 64481), + 1734 => array(64473, 64474), + 1735 => array(64471, 64472), + 1736 => array(64475, 64476), + 1737 => array(64482, 64483), + 1739 => array(64478, 64479), + 1740 => array(64508, 64509, 64510, 64511), + 1744 => array(64484, 64485, 64486, 64487), + 1746 => array(64430, 64431), + 1747 => array(64432, 64433), + 8204 => array(00000), + 8205 => array(00000, 00000, 00000, 00000) +); + +//============================================================+ +// END OF FILE +//============================================================+ +?> \ No newline at end of file diff --git a/logs/index.html b/logs/index.html new file mode 100755 --- /dev/null +++ b/logs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/media/index.html b/media/index.html new file mode 100644 --- /dev/null +++ b/media/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/media/system/css/calendar-jos.css b/media/system/css/calendar-jos.css new file mode 100644 --- /dev/null +++ b/media/system/css/calendar-jos.css @@ -0,0 +1,179 @@ +/* The main calendar widget. DIV containing a table. */ + +div.calendar { + position: relative; + z-index: 100; + width: 226px; +} + +.calendar, .calendar table { + border: 1px solid #cccccc; + font-size: 11px; + color: #000; + cursor: default; + background: #efefef; + font-family: arial,verdana,sans-serif; +} + +/* Header part -- contains navigation buttons and day names. */ + +.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */ + text-align: center; /* They are the navigation buttons */ + padding: 2px; /* Make the buttons seem like they're pressing */ +} + +.calendar thead .title { /* This holds the current "month, year" */ + font-weight: bold; /* Pressing it will take you to the current date */ + text-align: center; + background: #333333; + color: #ffffff; + padding: 2px; +} + +.calendar thead .headrow { /* Row
        containing navigation buttons */ + background: #dedede; + color: #000; +} + +.calendar thead .name { /* Cells containing the day names */ + background: #dddddd; +} + +/* The body part -- contains all the days in month. */ + +.calendar tbody .day { /* Cells in footer (only one right now) */ + text-align: center; + background: #cccccc; + color: #000; +} + +.calendar tfoot .ttip { /* Tooltip (status bar) cell '},addItem:function(icon,title,command,value,disabled){if(title.charAt(0)=='$')title=tinyMCE.getLang(title.substring(1));var onMouseDown='';var html='';if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0)onMouseDown='contextMenu.execCommand(\''+command+'\', \''+value+'\');return false;';else onMouseDown=this.settings['commandhandler']+'(\''+command+'\', \''+value+'\');return false;';if(icon=="")icon=this.settings['spacer_image'];if(!disabled)html+='';else html+='';html+='';html+='';html+='';this.html+=html},show:function(x,y){var vp,width,height,yo;if(this.html=="")return;var html='';html+='
        containing the day names */ + border-bottom: 1px solid #cccccc; + padding: 2px; + text-align: center; + color: #000; +} + +.calendar thead .weekend { /* How a weekend day name shows in header */ + color: #dedede; +} + +.calendar thead .hilite { /* How do the buttons in header appear when hover */ + background: #bbbbbb; + color: #000000; + border: 1px solid #cccccc; + padding: 1px; +} + +.calendar thead .active { /* Active (pressed) buttons in header */ + background: #c77; + padding: 2px 0px 0px 2px; +} + +.calendar thead .daynames { /* Row
        containing month days dates */ + width: 2em; + text-align: right; + padding: 2px 4px 2px 2px; +} + +.calendar table .wn { + padding: 2px 3px 2px 2px; + border-right: 1px solid #cccccc; + background: #dddddd; +} + +.calendar tbody .rowhilite td { + background: #666666; + color: #ffffff; +} + +.calendar tbody .rowhilite td.wn { + background: #666666; + color: #ffffff; +} + +.calendar tbody td.hilite { /* Hovered cells */ + background: #999999; + padding: 1px 3px 1px 1px; + border: 1px solid #666666; +} + +.calendar tbody td.active { /* Active (pressed) cells */ + background: #000000; + color: #ffffff; + padding: 2px 2px 0px 2px; +} + +.calendar tbody td.selected { /* Cell showing today date */ + font-weight: bold; + border: 1px solid #000; + padding: 1px 3px 1px 1px; + background: #000000; + color: #ffffff; +} + +.calendar tbody td.weekend { /* Cells showing weekend days */ + color: #cccccc; +} + +.calendar tbody td.today { font-weight: bold; } + +.calendar tbody .disabled { color: #999; } + +.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
        */ + border-top: 1px solid #cccccc; + background: #efefef; + color: #000000; +} + +.calendar tfoot .hilite { /* Hover style for buttons in footer */ + background: #666666; + border: 1px solid #f40; + padding: 1px; +} + +.calendar tfoot .active { /* Active (pressed) style for buttons in footer */ + background: #999999; + padding: 2px 0px 0px 2px; +} + +/* Combo boxes (menus that display months/years for direct selection) */ + +.combo { + position: absolute; + display: none; + top: 0px; + left: 0px; + width: 4em; + cursor: default; + border: 1px solid #655; + background: #ffffff; + color: #000; + font-size: smaller; +} + +.combo .label { + width: 100%; + text-align: center; +} + +.combo .hilite { + background: #fc8; +} + +.combo .active { + border-top: 1px solid #cccccc; + border-bottom: 1px solid #cccccc; + background: #efefef; + font-weight: bold; +} diff --git a/media/system/css/index.html b/media/system/css/index.html new file mode 100644 --- /dev/null +++ b/media/system/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/media/system/css/modal.css b/media/system/css/modal.css new file mode 100644 --- /dev/null +++ b/media/system/css/modal.css @@ -0,0 +1,78 @@ +.body-overlayed embed, .body-overlayed object, .body-overlayed select +{ + visibility: hidden; +} + +#sbox-window embed, #sbox-window object, #sbox-window select +{ + visibility: visible; +} + +#sbox-overlay +{ + position: absolute; + background-color: #000; +} + +#sbox-window +{ + position: absolute; + background-color: #000; + text-align: left; + overflow: visible; + padding: 10px; + -moz-border-radius: 3px; +} + +* html #sbox-window +{ + top: 50% !important; + left: 50% !important; +} + +#sbox-btn-close +{ + position: absolute; + width: 30px; + height: 30px; + right: -15px; + top: -15px; + background: url(../images/closebox.png) no-repeat top left; + border: none; +} + +.sbox-loading #sbox-content +{ + background-image: url(../images/spinner.gif); + background-repeat: no-repeat; + background-position: center; +} + +#sbox-content +{ + clear: both; + overflow: auto; + background-color: #fff; + height: 100%; + width: 100%; +} + +.sbox-content-image#sbox-content +{ + overflow: visible; +} + +#sbox-image +{ + display: block; +} + +.sbox-content-image img +{ + display: block; +} + +.sbox-content-iframe#sbox-content +{ + overflow: visible; +} \ No newline at end of file diff --git a/media/system/css/mootree.css b/media/system/css/mootree.css new file mode 100755 --- /dev/null +++ b/media/system/css/mootree.css @@ -0,0 +1,23 @@ +.mooTree_node { + font-family: Verdana, Arial, Helvetica; + font-size: 10px; + white-space: nowrap; +} + +.mooTree_text { + padding-top: 3px; + height: 15px; + cursor: pointer; +} + +.mooTree_img { + float: left; + width: 18px; + height: 18px; + overflow: hidden; +} + +.mooTree_selected { + background-color: #ffc; + font-weight: bold; +} diff --git a/media/system/images/closebox.png b/media/system/images/closebox.png new file mode 100644 index 0000000000000000000000000000000000000000..4de4396d4a09677774f79289de2a09511baeea22 GIT binary patch literal 1910 zc$@)t2Z{KJP)z^Q>-8KIssI20AY({UO#lFGm;eBCjsO7iaR2~=Yybd* zy8r;x$N&H_>;M26yq<`~KL7v*>`6pHRCwBAWWWy?p_swJ!GY=X=g*8ke*9qk`ST}Z zdU`qw7Z(@fv}x0Rf#f+jIR5kU^8P2LK7aoF=BZPs zUOIK^)MsF*`~o`QH`D=t(JcoEAauk84FygG1qFf7&``O#bLZLs4PE;m4ZL{q;_rh8 z5B{QyfBg7y1u$e3few}u6cpqKnFTeI3E3im07CaENCB6OjEqoBOpMCLjT`;`{{8y^ zWZ_n$O7C)YSBAZ*T9f@87@wgQ~r-ckkXvV`F1EUVpg2H5Y-eYuxnRM9M39EBU%&nZ#x+Xt8W|aVwYIj#h+{D^u`kKV z$v=Qu3ogdS#`gK?)2F{dW*t0uupVfZDo|VqWEaTS009KEm>Z}`3Ydy*?%%(^5TtnW z(;G*fzk0D zSSo?}K!do)4&2r=HI`6@Kg;DK;Y5@D8S6f$jA!R2#R=y z-@kw3EZXkgz5D;mmoF#|yK?2qKWvtQ08AWYDKNn@LoH?k2q3V5?BoZ76wef+J_SucZ|q}*4Eat0ppwvn;u{u2G>@=;`K8pCnvlB0SF)lXugsH z7X0Rlii*j=;_ekFPSCRwF!6l>MgdBk`uh5!#Cc9m&JXm$1Xy;1vlOsk$^_bB1{9YD zI&JkwlS1w(;^Z^)!@LCEWfM7lr1G>gQO-(Jludi=U<2%PtU4%`gn2LZ7@5Q~G#ZGZrRXD5)S*xA{=fSSvIdGkEBd`SvUNJ#h& zEi#`0(?mH?%mZWxEIR=N5WD~ZWo}@L!d6H~C^;o1WhN}%Kn9R%DX3Tl1uIBDuwk$s zD3%Dsw#WqtKmai#w>W@Fo)wt5IG#Lt!pzOh{RtR^ngIa;EI|DX!1DGl0}&uLHkM`0 znlZR5`~$4;!Ko9NO&EZQ5}bNLd|;LO3|NQX zDk&*B3FO`b6<$F66o}sdF(~nY(#>Ch0AfUH2(Un1!w0oo5@@*$Fu}2#z zG+4x;SOQq;hynAf5U?N-FflO^1=e1m<_rU{W%&_U5xfEBgts6ML*w!V5Wj@tchKm7 z#Vt550|XEwmS!y*Qm}(kyC5{X2|-gN4>0wE+fTqMj{(U315A|Pffy8wAD|Y29Pu8S zm|(&C3%QvK5I~Grnzu|)pR++TIyW=~c%hErLTWoPKn(*K{0(XeEWv#R;_pxkeqBrOP0*Db$8yndX$XyynEc#&m wB;+m&vSk?cJ3s(2G7t}lRr{Y9MF0T?00rpcocj25u>b%707*qoM6N<$g7 \ No newline at end of file diff --git a/media/system/images/mootree.gif b/media/system/images/mootree.gif new file mode 100755 index 0000000000000000000000000000000000000000..b0f7332927f37ded6709b9c13e25dbb787c61be8 GIT binary patch literal 14839 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 sCBzkMWSb0XII#l4q9ZEX?UQ%QE?^~x$MU}whw zS0gz*?X(F}YRvdL4UBp5cZud2wjVo`bMy0R;_X!3@NKORViGczzU z@GuAf4R@{3a{Ki`MA#+da7Oa{8PXdxf*mu$0%UGhu`p-yI4-s@UmANV?E||nZ~1|_ z32frNV%i-Ny_a4vd=Rzbj(?-HVrPST4ih$$ohx>!AN(NT{D4F4xoX$H=0~Da7lbwk z>S%6Am}E{_N16i8eh6UTIn=Cfa`FO)@=f>P1uyLypBNnDj!@)8HJ2A` zt}Q4y(pi!Z1vttCt}s8kq?C1`fUGJ{g7L~VJNIZ^;jrMVWpI`d_wT>R8RVrt=@5fQ zE!V8W0Ztolth>R2Fp-gg8E764&_t(-Rl;eBYbsqTZ-_XGYP2}TupTWvu3Ff{I7j$n zO#5e#MSlg1#9DanJ8pi>!N7Jcae-r~hROqthD|AH240T^7pgE|H+EODSn^5Z6N=|V z6*s \ No newline at end of file diff --git a/media/system/js/calendar-setup.js b/media/system/js/calendar-setup.js new file mode 100644 --- /dev/null +++ b/media/system/js/calendar-setup.js @@ -0,0 +1,21 @@ +/* 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). + */ + 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"]);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);if(!(cal&¶ms.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;}; \ No newline at end of file diff --git a/media/system/js/calendar.js b/media/system/js/calendar.js new file mode 100644 --- /dev/null +++ b/media/system/js/calendar.js @@ -0,0 +1,14 @@ +/* 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 + */ + Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){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;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;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){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;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;}};Calendar._C=null;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));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);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;};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){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}if(typeof parent!="undefined"){parent.appendChild(el);}return el;};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")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")ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};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);}};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;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());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{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 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=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: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();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){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="
        "+text+"
        ";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("×",1,200).ttip=Calendar._TT["CLOSE"];}row=Calendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("«",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("‹",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("›",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("»",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];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"]||" ";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=" ";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;i0;--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);};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:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40: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:if(--x>=0)ne=cal.ar_days[y][x];else{x=6;K=38;continue;}break;case 38:if(--y>=0)ne=cal.ar_days[y][x];else{prevMonth();setVars();}break;case 39:if(++x<7)ne=cal.ar_days[y][x];else{x=0;K=40;continue;}break;case 40:if(++ythis.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();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=" ";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&¤t_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();};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;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);}this.hideShowCovered();};Calendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};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){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};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();};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();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};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);}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;}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;}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();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};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"){if(!Calendar.is_khtml)value=document.defaultView. getComputedStyle(obj,"").getPropertyValue("visibility");else value='';}else if(obj.currentStyle){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)||(CX2EY2)||(CY229)?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;i31&&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;};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];}};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);};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);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};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()));};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());};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];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";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 tags into combobox dropdowns with appropriate
        ';html+=' ';html+=title;html+=' ';html+='
        ';html+=this.html;html+='
        ';this.contextMenuDiv.innerHTML=html;this.contextMenuDiv.style.display="block";width=this.contextMenuDiv.offsetWidth;height=this.contextMenuDiv.offsetHeight;this.contextMenuDiv.style.display="none";if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0&&!tinyMCE.isOpera){this.pop.document.body.innerHTML='
        '+html+"
        ";this.pop.document.tinyMCE=tinyMCE;this.pop.document.contextMenu=this;this.pop.show(x,y,width,height)}else{vp=this.getViewPort();yo=tinyMCE.isMSIE5_0?document.body.scrollTop:self.pageYOffset;this.contextMenuDiv.style.left=(x>vp.left+vp.width-width?vp.left+vp.width-width:x)+'px';this.contextMenuDiv.style.top=(y>vp.top+vp.height-height?vp.top+vp.height-height:y)+'px';this.contextMenuDiv.style.display="block"}},getViewPort:function(){return{left:self.pageXOffset||self.document.documentElement.scrollLeft||self.document.body.scrollLeft,top:self.pageYOffset||self.document.documentElement.scrollTop||self.document.body.scrollTop,width:document.documentElement.offsetWidth||document.body.offsetWidth,height:self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}},hide:function(){if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0&&!tinyMCE.isOpera)this.pop.hide();else this.contextMenuDiv.style.display="none"},execCommand:function(command,value){eval(this.settings['commandhandler']+"(command, value);")}}; \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js @@ -0,0 +1,360 @@ +/** + * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +/* Import plugin specific language pack */ +if (!tinyMCE.settings['contextmenu_skip_plugin_css']) { + tinyMCE.loadCSS(tinyMCE.baseURL + "/plugins/contextmenu/css/contextmenu.css"); +} + +var TinyMCE_ContextMenuPlugin = { + // Private fields + _contextMenu : null, + + getInfo : function() { + return { + longname : 'Context menus', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + initInstance : function(inst) { + // Is not working on MSIE 5.0 or Opera no contextmenu event + if (tinyMCE.isMSIE5_0 && tinyMCE.isOpera) + return; + + TinyMCE_ContextMenuPlugin._contextMenu = new TinyMCE_ContextMenu({ + commandhandler : "TinyMCE_ContextMenuPlugin._commandHandler", + spacer_image : tinyMCE.baseURL + "/plugins/contextmenu/images/spacer.gif" + }); + + // Add hide event handles + tinyMCE.addEvent(inst.getDoc(), "click", TinyMCE_ContextMenuPlugin._hideContextMenu); + tinyMCE.addEvent(inst.getDoc(), "keypress", TinyMCE_ContextMenuPlugin._hideContextMenu); + tinyMCE.addEvent(inst.getDoc(), "keydown", TinyMCE_ContextMenuPlugin._hideContextMenu); + tinyMCE.addEvent(document, "click", TinyMCE_ContextMenuPlugin._hideContextMenu); + tinyMCE.addEvent(document, "keypress", TinyMCE_ContextMenuPlugin._hideContextMenu); + tinyMCE.addEvent(document, "keydown", TinyMCE_ContextMenuPlugin._hideContextMenu); + + // Attach contextmenu event + if (tinyMCE.isGecko) { + tinyMCE.addEvent(inst.getDoc(), "contextmenu", function(e) {TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE ? inst.contentWindow.event : e, inst);}); + } else + tinyMCE.addEvent(inst.getDoc(), "contextmenu", TinyMCE_ContextMenuPlugin._onContextMenu); + }, + + // Private plugin internal methods + + _onContextMenu : function(e) { + var elm = tinyMCE.isMSIE ? e.srcElement : e.target; + var targetInst, body; + + // Find instance + if ((body = tinyMCE.getParentElement(elm, "body")) != null) { + for (var n in tinyMCE.instances) { + var inst = tinyMCE.instances[n]; + if (!tinyMCE.isInstance(inst)) + continue; + + if (body == inst.getBody()) { + targetInst = inst; + break; + } + } + + return TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE ? targetInst.contentWindow.event : e, targetInst); + } + }, + + _showContextMenu : function(e, inst) { + if (e.ctrlKey) + return true; + + function getAttrib(elm, name) { + return elm.getAttribute(name) ? elm.getAttribute(name) : ""; + } + + var x, y, elm, contextMenu; + var pos = tinyMCE.getAbsPosition(inst.iframeElement); + + x = tinyMCE.isMSIE ? e.screenX : pos.absLeft + (e.pageX - inst.getBody().scrollLeft); + y = tinyMCE.isMSIE ? e.screenY : pos.absTop + (e.pageY - inst.getBody().scrollTop); + elm = tinyMCE.isMSIE ? e.srcElement : e.target; + + contextMenu = this._contextMenu; + contextMenu.inst = inst; + + // Mozilla needs some time + window.setTimeout(function () { + var theme = tinyMCE.getParam("theme"); + + contextMenu.clearAll(); + var sel = inst.selection.getSelectedText().length != 0 || elm.nodeName == "IMG"; + + // Default items + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_cut_desc", "Cut", "", !sel); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_copy_desc", "Copy", "", !sel); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_paste_desc", "Paste", "", false); + + if (sel || (elm ? (elm.nodeName == 'A' && tinyMCE.getAttrib(elm, 'name') == '') || (elm.nodeName == 'IMG') : false)) { + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/themes/advanced/images/link.gif", "$lang_link_desc", inst.hasPlugin("advlink") ? "mceAdvLink" : "mceLink"); + contextMenu.addItem(tinyMCE.baseURL + "/themes/advanced/images/unlink.gif", "$lang_unlink_desc", "unlink", "", (elm ? (elm.nodeName != 'A') && (elm.nodeName != 'IMG') : true)); + } + + // Get element + elm = tinyMCE.getParentElement(elm, "img,table,td" + (inst.hasPlugin("advhr") ? ',hr' : '')); + if (elm) { + switch (elm.nodeName) { + case "IMG": + contextMenu.addSeparator(); + + // If flash + if (tinyMCE.hasPlugin('flash') && tinyMCE.getAttrib(elm, 'class').indexOf('mceItemFlash') != -1) + contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_flash_props", "mceFlash"); + else if (tinyMCE.hasPlugin('media') && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(elm, 'class'))) + contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_media_title", "mceMedia"); + else + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/image.gif", "$lang_image_props_desc", inst.hasPlugin("advimage") ? "mceAdvImage" : "mceImage"); + break; + + case "HR": + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/advhr/images/advhr.gif", "$lang_insert_advhr_desc", "mceAdvancedHr"); + break; + + case "TABLE": + case "TD": + // Is table plugin loaded + if (inst.hasPlugin("table")) { + var colspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "colspan"); + var rowspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "rowspan"); + + colspan = colspan == "" ? "1" : colspan; + rowspan = rowspan == "" ? "1" : rowspan; + + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_table_cut_row_desc", "mceTableCutRow"); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_table_copy_row_desc", "mceTableCopyRow"); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_before_desc", "mceTablePasteRowBefore", "", inst.tableRowClipboard == null); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_after_desc", "mceTablePasteRowAfter", "", inst.tableRowClipboard == null); + + /* contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifyleft.gif", "$lang_justifyleft_desc", "JustifyLeft", "", false); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifycenter.gif", "$lang_justifycenter_desc", "JustifyCenter", "", false); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifyright.gif", "$lang_justifyright_desc", "JustifyRight", "", false); + contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifyfull.gif", "$lang_justifyfull_desc", "JustifyFull", "", false);*/ + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_desc", "mceInsertTable", "insert"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_props_desc", "mceInsertTable"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_cell_props.gif", "$lang_table_cell_desc", "mceTableCellProps"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete.gif", "$lang_table_del", "mceTableDelete"); + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_row_props.gif", "$lang_table_row_desc", "mceTableRowProps"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_before.gif", "$lang_table_row_before_desc", "mceTableInsertRowBefore"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_after.gif", "$lang_table_row_after_desc", "mceTableInsertRowAfter"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_row.gif", "$lang_table_delete_row_desc", "mceTableDeleteRow"); + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_before.gif", "$lang_table_col_before_desc", "mceTableInsertColBefore"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_after.gif", "$lang_table_col_after_desc", "mceTableInsertColAfter"); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_col.gif", "$lang_table_delete_col_desc", "mceTableDeleteCol"); + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_split_cells.gif", "$lang_table_split_cells_desc", "mceTableSplitCells", "", (colspan == "1" && rowspan == "1")); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_merge_cells.gif", "$lang_table_merge_cells_desc", "mceTableMergeCells", "", false); + } + break; + } + } else { + // Add table specific + if (inst.hasPlugin("table")) { + contextMenu.addSeparator(); + contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_desc", "mceInsertTable", "insert"); + } + } + + contextMenu.show(x, y); + }, 10); + + // Cancel default handeling + tinyMCE.cancelEvent(e); + return false; + }, + + _hideContextMenu : function() { + if (TinyMCE_ContextMenuPlugin._contextMenu) + TinyMCE_ContextMenuPlugin._contextMenu.hide(); + }, + + _commandHandler : function(command, value) { + var cm = TinyMCE_ContextMenuPlugin._contextMenu; + + cm.hide(); + + // UI must be true on these + var ui = false; + if (command == "mceInsertTable" || command == "mceTableCellProps" || command == "mceTableRowProps" || command == "mceTableMergeCells") + ui = true; + + if (command == "Paste") + value = null; + + if (tinyMCE.getParam("dialog_type") == "modal" && tinyMCE.isMSIE) { + // Cell properties will generate access denied error is this isn't done?! + window.setTimeout(function() { + cm.inst.execCommand(command, ui, value); + }, 100); + } else + cm.inst.execCommand(command, ui, value); + } +}; + +tinyMCE.addPlugin("contextmenu", TinyMCE_ContextMenuPlugin); + +// Context menu class + +function TinyMCE_ContextMenu(settings) { + var doc, self = this; + + // Default value function + function defParam(key, def_val) { + settings[key] = typeof(settings[key]) != "undefined" ? settings[key] : def_val; + } + + this.isMSIE = (navigator.appName == "Microsoft Internet Explorer"); + + // Setup contextmenu div + this.contextMenuDiv = document.createElement("div"); + this.contextMenuDiv.className = "contextMenu"; + this.contextMenuDiv.setAttribute("class", "contextMenu"); + this.contextMenuDiv.style.display = "none"; + this.contextMenuDiv.style.position = 'absolute'; + this.contextMenuDiv.style.zindex = 1000; + this.contextMenuDiv.style.left = '0'; + this.contextMenuDiv.style.top = '0'; + this.contextMenuDiv.unselectable = "on"; + + document.body.appendChild(this.contextMenuDiv); + + // Setup default values + defParam("commandhandler", ""); + defParam("spacer_image", "images/spacer.gif"); + + this.items = new Array(); + this.settings = settings; + this.html = ""; + + // IE Popup + if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0 && !tinyMCE.isOpera) { + this.pop = window.createPopup(); + doc = this.pop.document; + doc.open(); + doc.write(''); + doc.close(); + } +}; + +TinyMCE_ContextMenu.prototype = { + clearAll : function() { + this.html = ""; + this.contextMenuDiv.innerHTML = ""; + }, + + addSeparator : function() { + this.html += ''; + }, + + addItem : function(icon, title, command, value, disabled) { + if (title.charAt(0) == '$') + title = tinyMCE.getLang(title.substring(1)); + + var onMouseDown = ''; + var html = ''; + + if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0) + onMouseDown = 'contextMenu.execCommand(\'' + command + '\', \'' + value + '\');return false;'; + else + onMouseDown = this.settings['commandhandler'] + '(\'' + command + '\', \'' + value + '\');return false;'; + + if (icon == "") + icon = this.settings['spacer_image']; + + if (!disabled) + html += ''; + else + html += ''; + + html += ''; + html += ''; + html += ''; + + // Add to main + this.html += html; + }, + + show : function(x, y) { + var vp, width, height, yo; + + if (this.html == "") + return; + + var html = ''; + + html += ''; + html += this.html; + html += '
        '; + + this.contextMenuDiv.innerHTML = html; + + // Get dimensions + this.contextMenuDiv.style.display = "block"; + width = this.contextMenuDiv.offsetWidth; + height = this.contextMenuDiv.offsetHeight; + this.contextMenuDiv.style.display = "none"; + + if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0 && !tinyMCE.isOpera) { + // Setup popup and show + this.pop.document.body.innerHTML = '
        ' + html + "
        "; + this.pop.document.tinyMCE = tinyMCE; + this.pop.document.contextMenu = this; + this.pop.show(x, y, width, height); + } else { + vp = this.getViewPort(); + yo = tinyMCE.isMSIE5_0 ? document.body.scrollTop : self.pageYOffset; + this.contextMenuDiv.style.left = (x > vp.left + vp.width - width ? vp.left + vp.width - width : x) + 'px'; + this.contextMenuDiv.style.top = (y > vp.top + vp.height - height ? vp.top + vp.height - height : y) + 'px'; + this.contextMenuDiv.style.display = "block"; + } + }, + + getViewPort : function() { + return { + left : self.pageXOffset || self.document.documentElement.scrollLeft || self.document.body.scrollLeft, + top: self.pageYOffset || self.document.documentElement.scrollTop || self.document.body.scrollTop, + width : document.documentElement.offsetWidth || document.body.offsetWidth, + height : self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight + }; + }, + + hide : function() { + if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0 && !tinyMCE.isOpera) + this.pop.hide(); + else + this.contextMenuDiv.style.display = "none"; + }, + + execCommand : function(command, value) { + eval(this.settings['commandhandler'] + "(command, value);"); + } +}; diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/contextmenu/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/contextmenu/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/contextmenu/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/contextmenu/images/spacer.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/contextmenu/images/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a GIT binary patch literal 43 nc${ \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/css/devkit.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/css/devkit.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/css/devkit.css @@ -0,0 +1,117 @@ +body { + overflow: hidden; +} + +h1 { + font-size: 14px; + margin: 0 0 10px 0; +} + +h2 { + font-size: 12px; + margin: 3px 0 3px 0; +} + +h3 { + font-size: 11px; + margin: 3px 0 3px 0; +} + +#log { + font-family: Verdana; + border: 1px solid gray; + width: 100%; height: 240px; + overflow: scroll; + white-space: nowrap; +} + +#log span { + display: block; +} + +#log span.msg { + float: left; +} + +#log span.time { + float: left; +} + +#log br { + clear: both; +} + +#logfilter { + width: 350px; +} + +#logenabled { + border: 0; +} + +#settings_panel span, #info_panel span, #content_panel span, #command_states_panel span, #undo_redo_panel span { + display: block; + margin: 5px 0 5px 0; +} + +div.data { + width: 100%; height: 240px; + overflow: scroll; + border: 1px solid gray; +} + +#misc_panel div.data { + height: 270px; +} + +.data input { + width: 265px; + border: 0; +} + +.data h2 { + margin-left: 5px; +} + +.data h3 { + margin-left: 7px; +} + +.data div { + margin-left: 7px; +} + +.data table { + margin: 0 0 15px 15px; +} + +.data p { + margin: 0; padding: 0; + margin-top: 5px; + margin-left: 5px; +} + +table, td { + border: 1px solid gray; + border-collapse: collapse; +} + +#flip { + position: absolute; + left: 295; top: 384px; +} + +.bspec { + color: gray; +} + +.dep { + color: #880000; +} + +.col1 { + width: 265px; +} + +div.undodata { +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/css/devkit_ui.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/css/devkit_ui.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/css/devkit_ui.css @@ -0,0 +1,15 @@ +#devkit { + position: absolute; + top: -385px; right: 0; + width: 640px; height: 390px; + border: 1px solid black; + z-index: 10000; +} + +.devkitup { + top: -385px !important; +} + +.devkitdown { + top: 0 !important; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/devkit.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/devkit.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/devkit.htm @@ -0,0 +1,140 @@ + + + {$lang_devkit_title} + + + + + + + + + +
        +

        {$lang_devkit_title}

        + + + +
        +
        +
        + {$lang_devkit_log_tab} + +
        + +
        + +
        + +
        + + + +
        + +
        +
        + + +
        +
        + +
        +
        + {$lang_devkit_info_tab} + + [{$lang_devkit_refresh}] + +
        +

        {$lang_devkit_info_help}

        +
        +
        +
        + +
        +
        + {$lang_devkit_settings_tab} + + [{$lang_devkit_refresh}] + +
        +

        {$lang_devkit_settings_help}

        +
        +
        +
        + +
        +
        + {$lang_devkit_content_tab} + + [{$lang_devkit_refresh}] + +
        +

        {$lang_devkit_content_help}

        +
        +
        +
        + +
        +
        + {$lang_devkit_command_states_tab} + + [{$lang_devkit_refresh}] + +
        +

        {$lang_devkit_command_states_help}

        +
        +
        +
        + +
        +
        + {$lang_devkit_undo_redo_tab} + + [{$lang_devkit_refresh}] + +
        +

        {$lang_devkit_undo_redo_help}

        +
        + + +
        +
        + +
        +
        + {$lang_devkit_misc_tab} + +
        +

        {$lang_devkit_misc_help}

        +
        +

        Selection: [Store selection] [Restore selection]

        +
        +
        Insert custom HTML content
        +
        + +
        +
        Eval JS:
        +
        + +
        +
        +
        +
        +
        + +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('devkit');var TinyMCE_DevKitPlugin={_logFilter:'\\[(importCSS|execCommand|execInstanceCommand|debug)\\]',_logPadding:'',_startTime:null,_benchMark:false,_winLoaded:false,_isDebugEvents:false,getInfo:function(){return{longname:'Development Kit',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/devkit',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){this._setup()},_setup:function(){if(this._loaded)return;this._loaded=true;document.___TinyMCE=tinyMCE;this._logFilter=tinyMCE.getParam('devkit_log_filter',this._logFilter);this._benchMark=tinyMCE.getParam('devkit_bench_mark',false);var ifr=document.createElement('iframe');ifr.setAttribute("id","devkit");ifr.setAttribute("frameBorder","0");ifr.setAttribute("src",tinyMCE.baseURL+'/plugins/devkit/devkit.htm');document.body.appendChild(ifr);tinyMCE.importCSS(document,tinyMCE.baseURL+'/plugins/devkit/css/devkit_ui.css')},_start:function(){this._logPadding+='\u00a0';return new Date().getTime()},_end:function(st){if(this._logPadding.length>0)this._logPadding=this._logPadding.substring(0,this._logPadding.length-1);if(this._benchMark)this._log("benchmark","Execution time: "+(new Date().getTime()-st))},_log:function(t){var m,a,i,e=document.getElementById('devkit'),now=new Date().getTime();if(!this._startTime)this._startTime=now;m=(this._logPadding.length>1?this._logPadding:'')+'['+(now-this._startTime)+'] ['+t+'] ';a=this._log.arguments;for(i=1;i1)m+=', ';m+=a[i]}if(!new RegExp(this._logFilter,'gi').test(m)){if(this._logPadding.length>0)this._logPadding=this._logPadding.substring(0,this._logPadding.length-1);return}if(!this._winLoaded)tinyMCE.log[tinyMCE.log.length]=m;else e.contentWindow.debug(m)},_debugEvents:function(s){var i,ld,inst,n,ev=['CheckboxStateChange','DOMAttrModified','DOMMenuItemActive','DOMMenuItemInactive','DOMMouseScroll','DOMNodeInserted','DOMNodeRemoved','RadioStateChange','blur','broadcast','change','click','close','command','commandupdate','contextmenu','dblclick','dragdrop','dragenter','dragexit','draggesture','dragover','focus','input','keydown','keypress','keyup','load','mousedown','mouseout','mouseover','mouseup','overflow','overflowchanged','popuphidden','popuphiding','popupshowing','popupshown','select','syncfrompreference','synctopreference','underflow','unload','abort','activate','afterprint','afterupdate','beforeactivate','beforecopy','beforecut','beforedeactivate','beforeeditfocus','beforepaste','beforeprint','beforeunload','beforeupdate','bounce','cellchange','controlselect','copy','cut','dataavailable','datasetchanged','datasetcomplete','deactivate','dragend','dragleave','dragstart','drop','error','errorupdate','filterchange','finish','focusin','focusout','help','layoutcomplete','losecapture','mouseenter','mouseleave','mousewheel','move','moveend','movestart','paste','propertychange','readystatechange','reset','resize','resizeend','resizestart','rowenter','rowexit','rowsdelete','rowsinserted','scroll','selectionchange','selectstart','start','stop','submit'];if(TinyMCE_DevKitPlugin._isDebugEvents==s)return;TinyMCE_DevKitPlugin._isDebugEvents=s;for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst)||inst.getDoc()==ld)continue;ld=inst.getDoc();for(i=0;i0?',':'')+s(o[i]);return v+']'}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}'}return''+o}};tinyMCE.__debug=tinyMCE.debug;tinyMCE.debug=function(){var a,i,m='',now=new Date().getTime(),start=TinyMCE_DevKitPlugin._startTime;if(!start)TinyMCE_DevKitPlugin._startTime=start=now;a=this.debug.arguments;for(i=0;i0)m+=', ';m+=a[i]}TinyMCE_DevKitPlugin._log('debug',m)};tinyMCE.dump=function(o){tinyMCE.debug(TinyMCE_DevKitPlugin._serialize(o))};tinyMCE.sleep=function(t){var s=new Date().getTime(),b;while(new Date().getTime()-s 0) + this._logPadding = this._logPadding.substring(0, this._logPadding.length - 1); + + if (this._benchMark) + this._log("benchmark", "Execution time: " + (new Date().getTime() - st)); + }, + + _log : function(t) { + var m, a, i, e = document.getElementById('devkit'), now = new Date().getTime(); + + if (!this._startTime) + this._startTime = now; + + m = (this._logPadding.length > 1 ? this._logPadding : '') + '[' + (now - this._startTime) + '] [' + t + '] '; + + a = this._log.arguments; + for (i=1; i 1) + m += ', '; + + m += a[i]; + } + + if (!new RegExp(this._logFilter, 'gi').test(m)) { + if (this._logPadding.length > 0) + this._logPadding = this._logPadding.substring(0, this._logPadding.length - 1); + + return; + } + + if (!this._winLoaded) + tinyMCE.log[tinyMCE.log.length] = m; + else + e.contentWindow.debug(m); + }, + + _debugEvents : function(s) { + var i, ld, inst, n, ev = ['CheckboxStateChange','DOMAttrModified','DOMMenuItemActive', + 'DOMMenuItemInactive','DOMMouseScroll','DOMNodeInserted','DOMNodeRemoved', + 'RadioStateChange','blur','broadcast','change','click','close','command', + 'commandupdate','contextmenu','dblclick','dragdrop','dragenter','dragexit', + 'draggesture','dragover','focus','input','keydown','keypress','keyup','load', + 'mousedown','mouseout','mouseover','mouseup','overflow','overflowchanged','popuphidden', + 'popuphiding','popupshowing','popupshown','select','syncfrompreference','synctopreference', + 'underflow','unload','abort','activate','afterprint','afterupdate','beforeactivate', + 'beforecopy','beforecut','beforedeactivate','beforeeditfocus','beforepaste','beforeprint', + 'beforeunload','beforeupdate','bounce','cellchange','controlselect','copy','cut', + 'dataavailable','datasetchanged','datasetcomplete','deactivate','dragend','dragleave', + 'dragstart','drop','error','errorupdate','filterchange','finish','focusin','focusout', + 'help','layoutcomplete','losecapture','mouseenter','mouseleave','mousewheel', + 'move','moveend','movestart','paste','propertychange','readystatechange','reset','resize', + 'resizeend','resizestart','rowenter','rowexit','rowsdelete','rowsinserted','scroll', + 'selectionchange','selectstart','start','stop','submit']; + // mousemove + + if (TinyMCE_DevKitPlugin._isDebugEvents == s) + return; + + TinyMCE_DevKitPlugin._isDebugEvents = s; + + for (n in tinyMCE.instances) { + inst = tinyMCE.instances[n]; + + if (!tinyMCE.isInstance(inst) || inst.getDoc() == ld) + continue; + + ld = inst.getDoc(); + + for (i=0; i 0 ? ',' : '') + s(o[i]); + + return v + ']'; + } + + v = '{'; + + for (i in o) + v += typeof o[i] != 'function' ? (v.length > 1 ? ',"' : '"') + i + '":' + s(o[i]) : ''; + + return v + '}'; + } + + return '' + o; + } +}; + +// Patch and piggy back functions +tinyMCE.__debug = tinyMCE.debug; +tinyMCE.debug = function() { + var a, i, m = '', now = new Date().getTime(), start = TinyMCE_DevKitPlugin._startTime; + + if (!start) + TinyMCE_DevKitPlugin._startTime = start = now; + + a = this.debug.arguments; + for (i=0; i 0) + m += ', '; + + m += a[i]; + } + + TinyMCE_DevKitPlugin._log('debug', m); +}; + +tinyMCE.dump = function(o) { + tinyMCE.debug(TinyMCE_DevKitPlugin._serialize(o)); +}; + +tinyMCE.sleep = function(t) { + var s = new Date().getTime(), b; + + while (new Date().getTime() - s < t) b=1; +}; + +tinyMCE.__execCommand = tinyMCE.execCommand; +tinyMCE.execCommand = function(command, user_interface, value) { + var r, st, dk = TinyMCE_DevKitPlugin; + + st = dk._start(); + dk._log('execCommand', command, user_interface, value); + r = tinyMCE.__execCommand(command, user_interface, value); + dk._end(st); + + return r; +}; + +tinyMCE.__execInstanceCommand = tinyMCE.execInstanceCommand; +tinyMCE.execInstanceCommand = function(editor_id, command, user_interface, value, focus) { + var r, st, dk = TinyMCE_DevKitPlugin; + + st = dk._start(); + dk._log('execInstanceCommand', editor_id, command, user_interface, value); + r = tinyMCE.__execInstanceCommand(editor_id, command, user_interface, value); + dk._end(st); + + return r; +}; + +TinyMCE_Engine.prototype.__handleEvent = TinyMCE_Engine.prototype.handleEvent; +TinyMCE_Engine.prototype.handleEvent = function(e) { + var r, st, dk = TinyMCE_DevKitPlugin; + + st = dk._start(); + dk._log('handleEvent', e.type); + r = tinyMCE.__handleEvent(e); + dk._end(st); + + return r; +}; + +tinyMCE.__importCSS = tinyMCE.importCSS; +tinyMCE.importCSS = function(doc, css) { + var r, st, dk = TinyMCE_DevKitPlugin; + + st = dk._start(); + dk._log('importCSS', doc, css); + r = tinyMCE.__importCSS(doc, css); + dk._end(st); + + return r; +}; + +tinyMCE.__triggerNodeChange = tinyMCE.triggerNodeChange; +tinyMCE.triggerNodeChange = function(focus, setup_content) { + var r, st, dk = TinyMCE_DevKitPlugin; + + st = dk._start(); + dk._log('triggerNodeChange', focus, setup_content); + r = tinyMCE.__triggerNodeChange(focus, setup_content); + dk._end(st); + + return r; +}; + +tinyMCE.__dispatchCallback = tinyMCE.dispatchCallback; +tinyMCE.dispatchCallback = function(i, p, n) { + var r, st, dk = TinyMCE_DevKitPlugin; + + st = dk._start(); + dk._log('dispatchCallback', i, p, n); + r = tinyMCE.__dispatchCallback(i, p, n); + dk._end(st); + + return r; +}; + +tinyMCE.__executeCallback = tinyMCE.executeCallback; +tinyMCE.executeCallback = function(i, p, n) { + var r, st, dk = TinyMCE_DevKitPlugin; + + st = dk._start(); + dk._log('executeCallback', i, p, n); + r = tinyMCE.__executeCallback(i, p, n); + dk._end(st); + + return r; +}; + +tinyMCE.__execCommandCallback = tinyMCE.execCommandCallback; +tinyMCE.execCommandCallback = function(i, p, n) { + var r, st, dk = TinyMCE_DevKitPlugin; + + st = dk._start(); + dk._log('execCommandCallback', i, p, n); + r = tinyMCE.__execCommandCallback(i, p, n); + dk._end(st); + + return r; +}; + +tinyMCE.addPlugin("devkit", TinyMCE_DevKitPlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/images/flip_down.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/images/flip_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..29a2d746bad9936f08fdde4ab0b944fe28a4652a GIT binary patch literal 179 zc${ZL=jEhRd>u|$Vb zTj0=}k~uG9)uaZ2y#+ew^FJC?tb1>B?~+5*;UvQ^eS6~zDmeu@J5C#&$cSBcV@=rW c8X@M}AIcI%XP?g~WMPQddH;i;0t \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/jscripts/devkit.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/jscripts/devkit.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/jscripts/devkit.js @@ -0,0 +1,331 @@ +var devkit = parent.tinyMCE.plugins['devkit'], logEnabled = true, flip = false, book = null; + +function init() { + var log, i, f = document.forms[0]; + + devkit._winLoaded = true; + + log = tinyMCE.log; + + for (i=0; i'; + h += ''; + + h += addRenderInfo('editorId', inst.editorId); + h += addRenderInfo('visualAid', inst.visualAid); + h += addRenderInfo('foreColor', inst.foreColor); + h += addRenderInfo('backColor', inst.backColor); + h += addRenderInfo('formTargetElementId', inst.formTargetElementId); + h += addRenderInfo('formElement', inst.formElement ? inst.formElement.nodeName : null); + h += addRenderInfo('oldTargetElement', inst.oldTargetElement ? inst.oldTargetElement.nodeName : null); + h += addRenderInfo('linkElement', inst.linkElement ? inst.linkElement.nodeName : null, 'dep'); + h += addRenderInfo('imgElement', inst.imgElement ? inst.imgElement.nodeName : null, 'dep'); + h += addRenderInfo('selectedNode', inst.selectedNode ? inst.selectedNode.nodeName : null, 'dep'); + h += addRenderInfo('targetElement', inst.targetElement ? inst.targetElement.nodeName : null); + h += addRenderInfo('getBody().nodeName', inst.getBody() ? inst.getBody().nodeName : null); + h += addRenderInfo('getBody().getAttribute("id")', inst.getBody() ? inst.getBody().getAttribute("id") : null); + h += addRenderInfo('getDoc().location', inst.getDoc() ? inst.getDoc().location : null); + h += addRenderInfo('startContent', inst.startContent); + h += addRenderInfo('isHidden()', inst.isHidden()); + h += addRenderInfo('isDirty()', inst.isDirty()); + h += addRenderInfo('undoRedo.undoLevels.length', inst.undoRedo.undoLevels.length); + h += addRenderInfo('undoRedo.undoIndex', inst.undoRedo.undoIndex); + h += addRenderInfo('selection.getSelectedHTML()', inst.selection.getSelectedHTML()); + h += addRenderInfo('selection.isCollapsed()', inst.selection.isCollapsed() || 'false'); + h += addRenderInfo('selection.getSelectedText()', inst.selection.getSelectedText()); + h += addRenderInfo('selection.getFocusElement().nodeName', inst.selection.getFocusElement().nodeName); + h += addRenderInfo('selection.getFocusElement().outerHTML', tinyMCE.getOuterHTML(inst.selection.getFocusElement())); + + if ((tinyMCE.isGecko || tinyMCE.isOpera) && sel && rng) { + h += addRenderInfo('selection.getSel().anchorNode.nodeName', sel.anchorNode ? sel.anchorNode.nodeName : null, 'bspec'); + h += addRenderInfo('selection.getSel().anchorOffset', sel.anchorOffset, 'bspec'); + h += addRenderInfo('selection.getSel().focusNode.nodeName', sel.focusNode ? sel.focusNode.nodeName : null, 'bspec'); + h += addRenderInfo('selection.getSel().focusOffset', sel.focusOffset, 'bspec'); + h += addRenderInfo('selection.getRng().startContainer.nodeName', rng.startContainer ? rng.startContainer.nodeName : null, 'bspec'); + h += addRenderInfo('selection.getRng().startOffset', rng.startOffset, 'bspec'); + h += addRenderInfo('selection.getRng().endContainer.nodeName', rng.endContainer ? rng.endContainer.nodeName : null, 'bspec'); + h += addRenderInfo('selection.getRng().endOffset', rng.endOffset, 'bspec'); + } + + if (typeof(rng.item) != 'undefined' || typeof(rng.htmlText) != 'undefined') { + if (!rng.item) { + h += addRenderInfo('selection.getSel().type', sel.type, 'bspec'); + h += addRenderInfo('selection.getRng().htmlText', rng.htmlText, 'bspec'); + h += addRenderInfo('selection.getRng().text', rng.text, 'bspec'); + } else + h += addRenderInfo('selection.getRng().item(0).nodeName', rng.item(0).nodeName, 'bspec'); + } + + h += '
        '; + } + + h += '

        Fields marked in gray is not cross browser and should be used with care.

        '; + h += '

        Fields marked red are marked deprecated and will be removed in the future.


        '; + + se.innerHTML = h; +} + +function addRenderInfo(n, v, c) { + return '' + n + ''; +} + +function renderSettings() { + var se = document.getElementById('settings'), n, sn, inst, h = '', v; + + for (n in tinyMCE.instances) { + inst = tinyMCE.instances[n]; + + if (!tinyMCE.isInstance(inst)) + continue; + + h += '

        Instance id: ' + inst.editorId + '

        '; + h += ''; + + for (sn in inst.settings) { + v = inst.settings[sn]; + + h += ''; + } + + h += '
        ' + tinyMCE.xmlEncode(sn) + '
        '; + } + + se.innerHTML = h; +} + +function renderContent() { + var se = document.getElementById('content'), n, inst, h = ''; + + for (n in tinyMCE.instances) { + inst = tinyMCE.instances[n]; + + if (!tinyMCE.isInstance(inst)) + continue; + + h += '

        Instance id: ' + inst.editorId + '

        '; + + h += '

        Start content - inst.startContent:

        '; + h += '
        ' + tinyMCE.xmlEncode(inst.startContent) + '
        '; + + h += '

        Raw content - inst.getBody().innerHTML or inst.getHTML(true):

        '; + h += '
        ' + tinyMCE.xmlEncode(inst.getHTML(true)) + '
        '; + + h += '

        Cleaned content - inst.getHTML():

        '; + h += '
        ' + tinyMCE.xmlEncode(inst.getHTML()) + '
        '; + + if (inst.serializedHTML) { + h += '

        Serialized HTML content - inst.serializedHTML:

        '; + h += '
        ' + tinyMCE.xmlEncode(inst.serializedHTML) + '
        '; + } + } + + se.innerHTML = h; +} + +function renderCommandStates() { + var se = document.getElementById('command_states'), n, inst, h = '', v, ex; + var cmds = new Array('2D-Position','AbsolutePosition','BackColor','BlockDirLTR','BlockDirRTL','Bold','BrowseMode','Copy','CreateBookmark','CreateLink','Cut','Delete','DirLTR','DirRTL','EditMode','enableInlineTableEditing','enableObjectResizing','FontName','FontSize','ForeColor','FormatBlock','Indent','InsertButton','InsertFieldset','InsertHorizontalRule','InsertIFrame','InsertImage','InsertInputButton','InsertInputCheckbox','InsertInputFileUpload','InsertInputHidden','InsertInputImage','InsertInputPassword','InsertInputRadio','InsertInputReset','InsertInputSubmit','InsertInputText','InsertMarquee','InsertOrderedList','InsertParagraph','InsertSelectDropdown','InsertSelectListbox','InsertTextArea','InsertUnorderedList','Italic','JustifyCenter','JustifyFull','JustifyLeft','JustifyNone','JustifyRight','LiveResize','MultipleSelection','Open','Outdent','OverWrite','Paste','PlayImage','Redo','Refresh','RemoveFormat','SaveAs','SelectAll','SizeToControl','SizeToControlHeight','SizeToControlWidth','Stop','StopImage','StrikeThrough','styleWithCSS','Subscript','Superscript','UnBookmark','Underline','Undo','Unlink','Unselect'), i; + + for (n in tinyMCE.instances) { + inst = tinyMCE.instances[n]; + + if (!tinyMCE.isInstance(inst)) + continue; + + h += '

        Instance id: ' + inst.editorId + '

        '; + h += ''; + + for (i=0; i'; + } + + h += '
        '; + } + + se.innerHTML = h; +} + +function renderUndoRedo() { + var se = document.getElementById('undo_redo'), inst, n, h = '', i, le, id, d, ur; + var f = document.forms[0]; + + if (tinyMCE.undoLevels) { + le = tinyMCE.undoLevels; + + h += '

        Global undo/redo

        '; + h += ''; + h += ''; + h += ''; + h += '
        undoLevels.length' + le.length + '
        undoIndex' + tinyMCE.undoIndex + '
        '; + + for (i=0; i'; + } + + for (n in tinyMCE.instances) { + inst = tinyMCE.instances[n]; + + if (!tinyMCE.isInstance(inst)) + continue; + + ur = inst.undoRedo; + le = ur.undoLevels; + + h += '

        Instance id: ' + inst.editorId + '

        '; + h += ''; + h += ''; + h += ''; + h += ''; + h += ''; + h += '
        undoLevels.length' + le.length + '
        undoIndex' + ur.undoIndex + '
        typingUndoIndex' + ur.typingUndoIndex + '
        undoRedo' + ur.undoRedo + '
        '; + + for (i=0; i'; + h += '
        ' + tinyMCE.xmlEncode(le[i].content) + '
        '; + + if (i > 0 && f.undo_diff.checked) { + d = diff_main(i > 0 ? le[i-1].content.replace(/[\r\n]+/g, '') : null, le[i].content.replace(/[\r\n]+/g, ''), false); + diff_cleanup_semantic(d); + h += '

        Diff ' + (i-1) + ',' + i + '

        ' + diff_prettyhtml(d) + '
        '; + } + } + } + + se.innerHTML = h; +} + +function clearLog() { + document.getElementById('log').innerHTML = ''; + devkit._startTime = null; +} + +function cancelAction() { + parent.document.getElementById('devkit').style.display = 'none'; +} + +function toggleDebugEvents(s) { + devkit._debugEvents(s); +} + +function storeSelection() { + book = tinyMCE.selectedInstance.selection.getBookmark(); + + return false; +} + +function restoreSelection() { + tinyMCE.selectedInstance.selection.moveToBookmark(book); + + return false; +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/jscripts/diff.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/jscripts/diff.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/jscripts/diff.js @@ -0,0 +1,1192 @@ +// Diff_Match_Patch v1.3 +// Computes the difference between two texts to create a patch. +// Applies the patch onto another text, allowing for errors. +// Copyright (C) 2006 Neil Fraser +// http://neil.fraser.name/software/diff_match_patch/ + +// 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. + +// 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 (www.gnu.org) for more details. + + +// Constants. +// Redefine these in your program to override the defaults. + +// Number of seconds to map a diff before giving up. (0 for infinity) +var DIFF_TIMEOUT = 1.0; +// Cost of an empty edit operation in terms of edit characters. +var DIFF_EDIT_COST = 4; +// Tweak the relative importance (0.0 = accuracy, 1.0 = proximity) +var MATCH_BALANCE = 0.5; +// At what point is no match declared (0.0 = perfection, 1.0 = very loose) +var MATCH_THRESHOLD = 0.5; +// The min and max cutoffs used when computing text lengths. +var MATCH_MINLENGTH = 100; +var MATCH_MAXLENGTH = 1000; +// Chunk size for context length. +var PATCH_MARGIN = 4; + + + ////////////////////////////////////////////////////////////////////// + // Diff // +////////////////////////////////////////////////////////////////////// + +// The data structure representing a diff is an array of tuples: +// [[-1, "Hello"], [1, "Goodbye"], [0, " world."]] +// which means: delete "Hello", add "Goodbye" and keep " world." + + +function diff_main(text1, text2, checklines) { + // Find the differences between two texts. Return an array of changes. + // If checklines is present and false, then don't run a line-level diff first to identify the changed areas. + // Check for equality (speedup) + if (text1 == text2) + return [[0, text1]]; + + if (typeof checklines == 'undefined') + checklines = true; + + var a; + // Trim off common prefix (speedup) + a = diff_prefix(text1, text2); + text1 = a[0]; + text2 = a[1]; + var commonprefix = a[2]; + + // Trim off common suffix (speedup) + a = diff_suffix(text1, text2); + text1 = a[0]; + text2 = a[1]; + var commonsuffix = a[2]; + + var diff, i; + var longtext = text1.length > text2.length ? text1 : text2; + var shorttext = text1.length > text2.length ? text2 : text1; + + if (!text1) { // Just add some text (speedup) + diff = [[1, text2]]; + } else if (!text2) { // Just delete some text (speedup) + diff = [[-1, text1]]; + } else if ((i = longtext.indexOf(shorttext)) != -1) { + // Shorter text is inside the longer text (speedup) + diff = [[1, longtext.substring(0, i)], [0, shorttext], [1, longtext.substring(i+shorttext.length)]]; + // Swap insertions for deletions if diff is reversed. + if (text1.length > text2.length) + diff[0][0] = diff[2][0] = -1; + } else { + longtext = shorttext = null; // Garbage collect + // Check to see if the problem can be split in two. + var hm = diff_halfmatch(text1, text2); + if (hm) { + // A half-match was found, sort out the return data. + var text1_a = hm[0]; + var text1_b = hm[1]; + var text2_a = hm[2]; + var text2_b = hm[3]; + var mid_common = hm[4]; + // Send both pairs off for separate processing. + var diff_a = diff_main(text1_a, text2_a, checklines); + var diff_b = diff_main(text1_b, text2_b, checklines); + // Merge the results. + diff = diff_a.concat([[0, mid_common]], diff_b); + } else { + // Perform a real diff. + if (checklines && text1.length + text2.length < 250) + checklines = false; // Too trivial for the overhead. + if (checklines) { + // Scan the text on a line-by-line basis first. + a = diff_lines2chars(text1, text2); + text1 = a[0]; + text2 = a[1]; + var linearray = a[2]; + } + diff = diff_map(text1, text2); + if (!diff) // No acceptable result. + diff = [[-1, text1], [1, text2]]; + if (checklines) { + diff_chars2lines(diff, linearray); // Convert the diff back to original text. + diff_cleanup_semantic(diff); // Eliminate freak matches (e.g. blank lines) + + // Rediff any replacement blocks, this time on character-by-character basis. + diff.push([0, '']); // Add a dummy entry at the end. + var pointer = 0; + var count_delete = 0; + var count_insert = 0; + var text_delete = ''; + var text_insert = ''; + while(pointer < diff.length) { + if (diff[pointer][0] == 1) { + count_insert++; + text_insert += diff[pointer][1]; + } else if (diff[pointer][0] == -1) { + count_delete++; + text_delete += diff[pointer][1]; + } else { // Upon reaching an equality, check for prior redundancies. + if (count_delete >= 1 && count_insert >= 1) { + // Delete the offending records and add the merged ones. + a = diff_main(text_delete, text_insert, false); + diff.splice(pointer - count_delete - count_insert, count_delete + count_insert); + pointer = pointer - count_delete - count_insert; + for (i=a.length-1; i>=0; i--) + diff.splice(pointer, 0, a[i]); + pointer = pointer + a.length; + } + count_insert = 0; + count_delete = 0; + text_delete = ''; + text_insert = ''; + } + pointer++; + } + diff.pop(); // Remove the dummy entry at the end. + + } + } + } + + if (commonprefix) + diff.unshift([0, commonprefix]); + if (commonsuffix) + diff.push([0, commonsuffix]); + diff_cleanup_merge(diff); + return diff; +} + + +function diff_lines2chars(text1, text2) { + // Split text into an array of strings. + // Reduce the texts to a string of hashes where each character represents one line. + var linearray = new Array(); // linearray[4] == "Hello\n" + var linehash = new Object(); // linehash["Hello\n"] == 4 + + // "\x00" is a valid JavaScript character, but the Venkman debugger doesn't like it (bug 335098) + // So we'll insert a junk entry to avoid generating a null character. + linearray.push(''); + + function diff_lines2chars_munge(text) { + // My first ever closure! + var i, line; + var chars = ''; + while (text) { + i = text.indexOf('\n'); + if (i == -1) + i = text.length; + line = text.substring(0, i+1); + text = text.substring(i+1); + if (linehash.hasOwnProperty ? linehash.hasOwnProperty(line) : (linehash[line] !== undefined)) { + chars += String.fromCharCode(linehash[line]); + } else { + linearray.push(line); + linehash[line] = linearray.length - 1; + chars += String.fromCharCode(linearray.length - 1); + } + } + return chars; + } + + var chars1 = diff_lines2chars_munge(text1); + var chars2 = diff_lines2chars_munge(text2); + return [chars1, chars2, linearray]; +} + + +function diff_chars2lines(diff, linearray) { + // Rehydrate the text in a diff from a string of line hashes to real lines of text. + var chars, text; + for (var x=0; x 0 && now.getTime() > ms_end) // Timeout reached + return null; + + // Walk the front path one step. + v_map1[d] = new Object(); + for (var k=-d; k<=d; k+=2) { + if (k == -d || k != d && v1[k-1] < v1[k+1]) + x = v1[k+1]; + else + x = v1[k-1]+1; + y = x - k; + footstep = x+","+y; + if (front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined))) + done = true; + if (!front) + footsteps[footstep] = d; + while (!done && x < text1.length && y < text2.length && text1.charAt(x) == text2.charAt(y)) { + x++; y++; + footstep = x+","+y; + if (front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined))) + done = true; + if (!front) + footsteps[footstep] = d; + } + v1[k] = x; + v_map1[d][x+","+y] = true; + if (done) { + // Front path ran over reverse path. + v_map2 = v_map2.slice(0, footsteps[footstep]+1); + var a = diff_path1(v_map1, text1.substring(0, x), text2.substring(0, y)); + return a.concat(diff_path2(v_map2, text1.substring(x), text2.substring(y))); + } + } + + // Walk the reverse path one step. + v_map2[d] = new Object(); + for (var k=-d; k<=d; k+=2) { + if (k == -d || k != d && v2[k-1] < v2[k+1]) + x = v2[k+1]; + else + x = v2[k-1]+1; + y = x - k; + footstep = (text1.length-x)+","+(text2.length-y); + if (!front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined))) + done = true; + if (front) + footsteps[footstep] = d; + while (!done && x < text1.length && y < text2.length && text1.charAt(text1.length-x-1) == text2.charAt(text2.length-y-1)) { + x++; y++; + footstep = (text1.length-x)+","+(text2.length-y); + if (!front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined))) + done = true; + if (front) + footsteps[footstep] = d; + } + v2[k] = x; + v_map2[d][x+","+y] = true; + if (done) { + // Reverse path ran over front path. + v_map1 = v_map1.slice(0, footsteps[footstep]+1); + var a = diff_path1(v_map1, text1.substring(0, text1.length-x), text2.substring(0, text2.length-y)); + return a.concat(diff_path2(v_map2, text1.substring(text1.length-x), text2.substring(text2.length-y))); + } + } + } + // Number of diffs equals number of characters, no commonality at all. + return null; +} + + +function diff_path1(v_map, text1, text2) { + // Work from the middle back to the start to determine the path. + var path = []; + var x = text1.length; + var y = text2.length; + var last_op = null; + for (var d=v_map.length-2; d>=0; d--) { + while(1) { + if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty((x-1)+","+y) : (v_map[d][(x-1)+","+y] !== undefined)) { + x--; + if (last_op === -1) + path[0][1] = text1.charAt(x) + path[0][1]; + else + path.unshift([-1, text1.charAt(x)]); + last_op = -1; + break; + } else if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty(x+","+(y-1)) : (v_map[d][x+","+(y-1)] !== undefined)) { + y--; + if (last_op === 1) + path[0][1] = text2.charAt(y) + path[0][1]; + else + path.unshift([1, text2.charAt(y)]); + last_op = 1; + break; + } else { + x--; + y--; + //if (text1.charAt(x) != text2.charAt(y)) + // return alert("No diagonal. Can't happen. (diff_path1)"); + if (last_op === 0) + path[0][1] = text1.charAt(x) + path[0][1]; + else + path.unshift([0, text1.charAt(x)]); + last_op = 0; + } + } + } + return path; +} + + +function diff_path2(v_map, text1, text2) { + // Work from the middle back to the end to determine the path. + var path = []; + var x = text1.length; + var y = text2.length; + var last_op = null; + for (var d=v_map.length-2; d>=0; d--) { + while(1) { + if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty((x-1)+","+y) : (v_map[d][(x-1)+","+y] !== undefined)) { + x--; + if (last_op === -1) + path[path.length-1][1] += text1.charAt(text1.length-x-1); + else + path.push([-1, text1.charAt(text1.length-x-1)]); + last_op = -1; + break; + } else if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty(x+","+(y-1)) : (v_map[d][x+","+(y-1)] !== undefined)) { + y--; + if (last_op === 1) + path[path.length-1][1] += text2.charAt(text2.length-y-1); + else + path.push([1, text2.charAt(text2.length-y-1)]); + last_op = 1; + break; + } else { + x--; + y--; + //if (text1.charAt(text1.length-x-1) != text2.charAt(text2.length-y-1)) + // return alert("No diagonal. Can't happen. (diff_path2)"); + if (last_op === 0) + path[path.length-1][1] += text1.charAt(text1.length-x-1); + else + path.push([0, text1.charAt(text1.length-x-1)]); + last_op = 0; + } + } + } + return path; +} + + +function diff_prefix(text1, text2) { + // Trim off common prefix + var pointermin = 0; + var pointermax = Math.min(text1.length, text2.length); + var pointermid = pointermax; + while(pointermin < pointermid) { + if (text1.substring(0, pointermid) == text2.substring(0, pointermid)) + pointermin = pointermid; + else + pointermax = pointermid; + pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); + } + var commonprefix = text1.substring(0, pointermid); + text1 = text1.substring(pointermid); + text2 = text2.substring(pointermid); + return [text1, text2, commonprefix]; +} + + +function diff_suffix(text1, text2) { + // Trim off common suffix + var pointermin = 0; + var pointermax = Math.min(text1.length, text2.length); + var pointermid = pointermax; + while(pointermin < pointermid) { + if (text1.substring(text1.length-pointermid) == text2.substring(text2.length-pointermid)) + pointermin = pointermid; + else + pointermax = pointermid; + pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); + } + var commonsuffix = text1.substring(text1.length-pointermid); + text1 = text1.substring(0, text1.length-pointermid); + text2 = text2.substring(0, text2.length-pointermid); + return [text1, text2, commonsuffix]; +} + + +function diff_halfmatch(text1, text2) { + // Do the two texts share a substring which is at least half the length of the longer text? + var longtext = text1.length > text2.length ? text1 : text2; + var shorttext = text1.length > text2.length ? text2 : text1; + if (longtext.length < 10 || shorttext.length < 1) + return null; // Pointless. + + function diff_halfmatch_i(longtext, shorttext, i) { + // Start with a 1/4 length substring at position i as a seed. + var seed = longtext.substring(i, i+Math.floor(longtext.length/4)); + var j = -1; + var best_common = ''; + var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b; + while ((j = shorttext.indexOf(seed, j+1)) != -1) { + var my_prefix = diff_prefix(longtext.substring(i), shorttext.substring(j)); + var my_suffix = diff_suffix(longtext.substring(0, i), shorttext.substring(0, j)); + if (best_common.length < (my_suffix[2] + my_prefix[2]).length) { + best_common = my_suffix[2] + my_prefix[2]; + best_longtext_a = my_suffix[0]; + best_longtext_b = my_prefix[0]; + best_shorttext_a = my_suffix[1]; + best_shorttext_b = my_prefix[1]; + } + } + if (best_common.length >= longtext.length/2) + return [best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b, best_common]; + else + return null; + } + + // First check if the second quarter is the seed for a half-match. + var hm1 = diff_halfmatch_i(longtext, shorttext, Math.ceil(longtext.length/4)); + // Check again based on the third quarter. + var hm2 = diff_halfmatch_i(longtext, shorttext, Math.ceil(longtext.length/2)); + var hm; + if (!hm1 && !hm2) + return null; + else if (!hm2) + hm = hm1; + else if (!hm1) + hm = hm2; + else // Both matched. Select the longest. + hm = hm1[4].length > hm2[4].length ? hm1 : hm2; + + // A half-match was found, sort out the return data. + if (text1.length > text2.length) { + var text1_a = hm[0]; + var text1_b = hm[1]; + var text2_a = hm[2]; + var text2_b = hm[3]; + } else { + var text2_a = hm[0]; + var text2_b = hm[1]; + var text1_a = hm[2]; + var text1_b = hm[3]; + } + var mid_common = hm[4]; + return [text1_a, text1_b, text2_a, text2_b, mid_common]; +} + + +function diff_cleanup_semantic(diff) { + // Reduce the number of edits by eliminating semantically trivial equalities. + var changes = false; + var equalities = []; // Stack of indices where equalities are found. + var lastequality = null; // Always equal to equalities[equalities.length-1][1] + var pointer = 0; // Index of current position. + var length_changes1 = 0; // Number of characters that changed prior to the equality. + var length_changes2 = 0; // Number of characters that changed after the equality. + while (pointer < diff.length) { + if (diff[pointer][0] == 0) { // equality found + equalities.push(pointer); + length_changes1 = length_changes2; + length_changes2 = 0; + lastequality = diff[pointer][1]; + } else { // an insertion or deletion + length_changes2 += diff[pointer][1].length; + if (lastequality != null && (lastequality.length <= length_changes1) && (lastequality.length <= length_changes2)) { + //alert("Splitting: '"+lastequality+"'"); + diff.splice(equalities[equalities.length-1], 0, [-1, lastequality]); // Duplicate record + diff[equalities[equalities.length-1]+1][0] = 1; // Change second copy to insert. + equalities.pop(); // Throw away the equality we just deleted; + equalities.pop(); // Throw away the previous equality; + pointer = equalities.length ? equalities[equalities.length-1] : -1; + length_changes1 = 0; // Reset the counters. + length_changes2 = 0; + lastequality = null; + changes = true; + } + } + pointer++; + } + + if (changes) + diff_cleanup_merge(diff); +} + + +function diff_cleanup_efficiency(diff) { + // Reduce the number of edits by eliminating operationally trivial equalities. + var changes = false; + var equalities = []; // Stack of indices where equalities are found. + var lastequality = ''; // Always equal to equalities[equalities.length-1][1] + var pointer = 0; // Index of current position. + var pre_ins = false; // Is there an insertion operation before the last equality. + var pre_del = false; // Is there an deletion operation before the last equality. + var post_ins = false; // Is there an insertion operation after the last equality. + var post_del = false; // Is there an deletion operation after the last equality. + while (pointer < diff.length) { + if (diff[pointer][0] == 0) { // equality found + if (diff[pointer][1].length < DIFF_EDIT_COST && (post_ins || post_del)) { + // Candidate found. + equalities.push(pointer); + pre_ins = post_ins; + pre_del = post_del; + lastequality = diff[pointer][1]; + } else { + // Not a candidate, and can never become one. + equalities = []; + lastequality = ''; + } + post_ins = post_del = false; + } else { // an insertion or deletion + if (diff[pointer][0] == -1) + post_del = true; + else + post_ins = true; + // Five types to be split: + // ABXYCD + // AXCD + // ABXC + // AXCD + // ABXC + if (lastequality && ((pre_ins && pre_del && post_ins && post_del) || ((lastequality.length < DIFF_EDIT_COST/2) && (pre_ins + pre_del + post_ins + post_del) == 3))) { + //alert("Splitting: '"+lastequality+"'"); + diff.splice(equalities[equalities.length-1], 0, [-1, lastequality]); // Duplicate record + diff[equalities[equalities.length-1]+1][0] = 1; // Change second copy to insert. + equalities.pop(); // Throw away the equality we just deleted; + lastequality = ''; + if (pre_ins && pre_del) { + // No changes made which could affect previous entry, keep going. + post_ins = post_del = true; + equalities = []; + } else { + equalities.pop(); // Throw away the previous equality; + pointer = equalities.length ? equalities[equalities.length-1] : -1; + post_ins = post_del = false; + } + changes = true; + } + } + pointer++; + } + + if (changes) + diff_cleanup_merge(diff); +} + + +function diff_cleanup_merge(diff) { + // Reorder and merge like edit sections. Merge equalities. + // Any edit section can move as long as it doesn't cross an equality. + diff.push([0, '']); // Add a dummy entry at the end. + var pointer = 0; + var count_delete = 0; + var count_insert = 0; + var text_delete = ''; + var text_insert = ''; + var record_insert, record_delete; + var my_xfix; + while(pointer < diff.length) { + if (diff[pointer][0] == 1) { + count_insert++; + text_insert += diff[pointer][1]; + pointer++; + } else if (diff[pointer][0] == -1) { + count_delete++; + text_delete += diff[pointer][1]; + pointer++; + } else { // Upon reaching an equality, check for prior redundancies. + if (count_delete > 1 || count_insert > 1) { + if (count_delete > 1 && count_insert > 1) { + // Factor out any common prefixies. + my_xfix = diff_prefix(text_insert, text_delete); + if (my_xfix[2] != '') { + if ((pointer - count_delete - count_insert) > 0 && diff[pointer - count_delete - count_insert - 1][0] == 0) { + text_insert = my_xfix[0]; + text_delete = my_xfix[1]; + diff[pointer - count_delete - count_insert - 1][1] += my_xfix[2]; + } + } + // Factor out any common suffixies. + my_xfix = diff_suffix(text_insert, text_delete); + if (my_xfix[2] != '') { + text_insert = my_xfix[0]; + text_delete = my_xfix[1]; + diff[pointer][1] = my_xfix[2] + diff[pointer][1]; + } + } + // Delete the offending records and add the merged ones. + if (count_delete == 0) + diff.splice(pointer - count_delete - count_insert, count_delete + count_insert, [1, text_insert]); + else if (count_insert == 0) + diff.splice(pointer - count_delete - count_insert, count_delete + count_insert, [-1, text_delete]); + else + diff.splice(pointer - count_delete - count_insert, count_delete + count_insert, [-1, text_delete], [1, text_insert]); + pointer = pointer - count_delete - count_insert + (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1; + } else if (pointer != 0 && diff[pointer-1][0] == 0) { + // Merge this equality with the previous one. + diff[pointer-1][1] += diff[pointer][1]; + diff.splice(pointer, 1); + } else { + pointer++; + } + count_insert = 0; + count_delete = 0; + text_delete = ''; + text_insert = ''; + } + } + if (diff[diff.length-1][1] == '') + diff.pop(); // Remove the dummy entry at the end. +} + + +function diff_addindex(diff) { + // Add an index to each tuple, represents where the tuple is located in text2. + // e.g. [[-1, 'h', 0], [1, 'c', 0], [0, 'at', 1]] + var i = 0; + for (var x=0; x1, 5->8 + var chars1 = 0; + var chars2 = 0; + var last_chars1 = 0; + var last_chars2 = 0; + for (var x=0; x loc) // Overshot the location. + break; + last_chars1 = chars1; + last_chars2 = chars2; + } + if (diff.length != x && diff[x][0] == -1) // The location was deleted. + return last_chars2; + // Add the remaining character length. + return last_chars2 + (loc - last_chars1); +} + + +function diff_prettyhtml(diff) { + // Convert a diff array into a pretty HTML report. + diff_addindex(diff); + var html = ''; + for (var x=0; x/g, ">"); + t = t.replace(/\n/g, "¶
        "); + if (m == -1) + html += ""+t+""; + else if (m == 1) + html += ""+t+""; + else + html += ""+t+""; + } + return html; +} + + + ////////////////////////////////////////////////////////////////////// + // Match // +////////////////////////////////////////////////////////////////////// + + +function match_getmaxbits() { + // Compute the number of bits in an int. + // The normal answer for JavaScript is 32. + var maxbits = 0; + var oldi = 1; + var newi = 2; + while (oldi != newi) { + maxbits++; + oldi = newi; + newi = newi << 1; + } + return maxbits; +} +var MATCH_MAXBITS = match_getmaxbits(); + + +function match_main(text, pattern, loc) { + // Locate the best instance of 'pattern' in 'text' near 'loc'. + loc = Math.max(0, Math.min(loc, text.length-pattern.length)); + if (text == pattern) { + // Shortcut (potentially not guaranteed by the algorithm) + return 0; + } else if (text.length == 0) { + // Nothing to match. + return null; + } else if (text.substring(loc, loc + pattern.length) == pattern) { + // Perfect match at the perfect spot! (Includes case of null pattern) + return loc; + } else { + // Do a fuzzy compare. + var match = match_bitap(text, pattern, loc); + return match; + } +} + + +function match_bitap(text, pattern, loc) { + // Locate the best instance of 'pattern' in 'text' near 'loc' using the Bitap algorithm. + if (pattern.length > MATCH_MAXBITS) + return alert("Pattern too long for this browser."); + + // Initialise the alphabet. + var s = match_alphabet(pattern); + + var score_text_length = text.length; + // Coerce the text length between reasonable maximums and minimums. + score_text_length = Math.max(score_text_length, MATCH_MINLENGTH); + score_text_length = Math.min(score_text_length, MATCH_MAXLENGTH); + + function match_bitap_score (e, x) { + // Compute and return the score for a match with e errors and x location. + var d = Math.abs(loc-x); + return (e / pattern.length / MATCH_BALANCE) + (d / score_text_length / (1.0 - MATCH_BALANCE)); + } + + // Highest score beyond which we give up. + var score_threshold = MATCH_THRESHOLD; + // Is there a nearby exact match? (speedup) + var best_loc = text.indexOf(pattern, loc); + if (best_loc != -1) + score_threshold = Math.min(match_bitap_score(0, best_loc), score_threshold); + // What about in the other direction? (speedup) + best_loc = text.lastIndexOf(pattern, loc+pattern.length); + if (best_loc != -1) + score_threshold = Math.min(match_bitap_score(0, best_loc), score_threshold); + + // Initialise the bit arrays. + var r = Array(); + var d = -1; + var matchmask = Math.pow(2, pattern.length-1); + best_loc = null; + + var bin_min, bin_mid; + var bin_max = Math.max(loc+loc, text.length); + var last_rd; + for (var d=0; d=start; j--) { + // The alphabet (s) is a sparse hash, so the following lines generate warnings. + if (d == 0) // First pass: exact match. + rd[j] = ((rd[j+1] << 1) | 1) & s[text.charAt(j)]; + else // Subsequent passes: fuzzy match. + rd[j] = ((rd[j+1] << 1) | 1) & s[text.charAt(j)] | ((last_rd[j+1] << 1) | 1) | ((last_rd[j] << 1) | 1) | last_rd[j+1]; + if (rd[j] & matchmask) { + var score = match_bitap_score(d, j); + // This match will almost certainly be better than any existing match. But check anyway. + if (score <= score_threshold) { + // Told you so. + score_threshold = score; + best_loc = j; + if (j > loc) { + // When passing loc, don't exceed our current distance from loc. + start = Math.max(0, loc - (j - loc)); + } else { + // Already passed loc, downhill from here on in. + break; + } + } + } + } + if (match_bitap_score(d+1, loc) > score_threshold) // No hope for a (better) match at greater error levels. + break; + last_rd = rd; + } + return best_loc; +} + + +function match_alphabet(pattern) { + // Initialise the alphabet for the Bitap algorithm. + var s = Object(); + for (var i=0; i 2) { + diff_cleanup_semantic(diff); + diff_cleanup_efficiency(diff); + } + } + if (diff.length == 0) + return []; // Get rid of the null case. + var patches = []; + var patch = new patch_obj(); + var char_count1 = 0; // Number of characters into the text1 string. + var char_count2 = 0; // Number of characters into the text2 string. + var last_type = null; + var prepatch_text = text1; // Recreate the patches to determine context info. + var postpatch_text = text1; + for (var x=0; x= 2*PATCH_MARGIN) { + // Time for a new patch. + if (patch.diffs.length != 0) { + patch_addcontext(patch, prepatch_text); + patches.push(patch); + var patch = new patch_obj(); + last_type = null; + prepatch_text = postpatch_text; + } + } + + // Update the current character count. + if (diff_type != 1) + char_count1 += diff_text.length; + if (diff_type != -1) + char_count2 += diff_text.length; + } + // Pick up the leftover patch if not empty. + if (patch.diffs.length != 0) { + patch_addcontext(patch, prepatch_text); + patches.push(patch); + } + + return patches; +} + + +function patch_apply(patches, text) { + // Merge a set of patches onto the text. + // Return a patched text, as well as a list of true/false values indicating which patches were applied. + patch_splitmax(patches); + var results = []; + var delta = 0; + var expected_loc, start_loc; + var text1, text2; + var diff, mod, index1, index2; + for (var x=0; x MATCH_MAXBITS) { + bigpatch = patches[x]; + // Remove the big old patch. + patches.splice(x, 1); + patch_size = MATCH_MAXBITS; + start1 = bigpatch.start1; + start2 = bigpatch.start2; + precontext = ''; + while (bigpatch.diffs.length != 0) { + // Create one of several smaller patches. + patch = new patch_obj(); + empty = true; + patch.start1 = start1 - precontext.length; + patch.start2 = start2 - precontext.length; + if (precontext != '') { + patch.length1 = patch.length2 = precontext.length; + patch.diffs.push([0, precontext]); + } + while (bigpatch.diffs.length != 0 && patch.length1 < patch_size - PATCH_MARGIN) { + diff_type = bigpatch.diffs[0][0]; + diff_text = bigpatch.diffs[0][1]; + if (diff_type == 1) { + // Insertions are harmless. + patch.length2 += diff_text.length; + start2 += diff_text.length; + patch.diffs.push(bigpatch.diffs.shift()); + empty = false; + } else { + // Deletion or equality. Only take as much as we can stomach. + diff_text = diff_text.substring(0, patch_size - patch.length1 - PATCH_MARGIN); + patch.length1 += diff_text.length; + start1 += diff_text.length; + if (diff_type == 0) { + patch.length2 += diff_text.length; + start2 += diff_text.length; + } else { + empty = false; + } + patch.diffs.push([diff_type, diff_text]); + if (diff_text == bigpatch.diffs[0][1]) + bigpatch.diffs.shift(); + else + bigpatch.diffs[0][1] = bigpatch.diffs[0][1].substring(diff_text.length); + } + } + // Compute the head context for the next patch. + precontext = patch.text2(); + precontext = precontext.substring(precontext.length - PATCH_MARGIN); + // Append the end context for this patch. + postcontext = bigpatch.text1().substring(0, PATCH_MARGIN); + if (postcontext != '') { + patch.length1 += postcontext.length; + patch.length2 += postcontext.length; + if (patch.diffs.length > 0 && patch.diffs[patch.diffs.length-1][0] == 0) + patch.diffs[patch.diffs.length-1][1] += postcontext; + else + patch.diffs.push([0, postcontext]); + } + if (!empty) + patches.splice(x++, 0, patch); + } + } + } +} + + +function patch_totext(patches) { + // Take a list of patches and return a textual representation. + var text = ''; + for (var x=0; x \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/langs/en.js @@ -0,0 +1,23 @@ +// UK lang variables + +tinyMCE.addToLang('devkit',{ +title : 'TinyMCE Development Kit', +info_tab : 'Info', +settings_tab : 'Settings', +log_tab : 'Log', +content_tab : 'Content', +command_states_tab : 'Commands', +undo_redo_tab : 'Undo/Redo', +misc_tab : 'Misc', +filter : 'Filter:', +clear_log : 'Clear log', +refresh : 'Refresh', +info_help : 'Press Refresh to view info.', +settings_help : 'Press Refresh to display the settings array for each TinyMCE_Control instance.', +content_help : 'Press Refresh to display the raw and cleaned HTML content for each TinyMCE_Control instance.', +command_states_help : 'Press Refresh to display the current command states from inst.queryCommandState. This list will also mark unsupported commands.', +undo_redo_help : 'Press Refresh to display the global and instance undo/redo levels.', +misc_help : 'Here are various tools for debugging and development purposes.', +debug_events : 'Debug events', +undo_diff : 'Diff undo levels' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/devkit/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('directionality');var TinyMCE_DirectionalityPlugin={getInfo:function(){return{longname:'Directionality',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"ltr":return tinyMCE.getButtonHTML(cn,'lang_directionality_ltr_desc','{$pluginurl}/images/ltr.gif','mceDirectionLTR');case"rtl":return tinyMCE.getButtonHTML(cn,'lang_directionality_rtl_desc','{$pluginurl}/images/rtl.gif','mceDirectionRTL')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceDirectionLTR":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","ltr");tinyMCE.triggerNodeChange(false);return true;case"mceDirectionRTL":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","rtl");tinyMCE.triggerNodeChange(false);return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):""}if(node==null)return;var elm=tinyMCE.getParentElement(node,"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(!elm){tinyMCE.switchClass(editor_id+'_ltr','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_rtl','mceButtonDisabled');return true}tinyMCE.switchClass(editor_id+'_ltr','mceButtonNormal');tinyMCE.switchClass(editor_id+'_rtl','mceButtonNormal');var dir=getAttrib(elm,"dir");if(dir=="ltr"||dir=="")tinyMCE.switchClass(editor_id+'_ltr','mceButtonSelected');else tinyMCE.switchClass(editor_id+'_rtl','mceButtonSelected');return true}};tinyMCE.addPlugin("directionality",TinyMCE_DirectionalityPlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js @@ -0,0 +1,90 @@ +/** + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('directionality'); + +var TinyMCE_DirectionalityPlugin = { + getInfo : function() { + return { + longname : 'Directionality', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + getControlHTML : function(cn) { + switch (cn) { + case "ltr": + return tinyMCE.getButtonHTML(cn, 'lang_directionality_ltr_desc', '{$pluginurl}/images/ltr.gif', 'mceDirectionLTR'); + + case "rtl": + return tinyMCE.getButtonHTML(cn, 'lang_directionality_rtl_desc', '{$pluginurl}/images/rtl.gif', 'mceDirectionRTL'); + } + + return ""; + }, + + execCommand : function(editor_id, element, command, user_interface, value) { + // Handle commands + switch (command) { + case "mceDirectionLTR": + var inst = tinyMCE.getInstanceById(editor_id); + var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address"); + + if (elm) + elm.setAttribute("dir", "ltr"); + + tinyMCE.triggerNodeChange(false); + return true; + + case "mceDirectionRTL": + var inst = tinyMCE.getInstanceById(editor_id); + var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address"); + + if (elm) + elm.setAttribute("dir", "rtl"); + + tinyMCE.triggerNodeChange(false); + return true; + } + + // Pass to next handler in chain + return false; + }, + + handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) { + function getAttrib(elm, name) { + return elm.getAttribute(name) ? elm.getAttribute(name) : ""; + } + + if (node == null) + return; + + var elm = tinyMCE.getParentElement(node, "p,div,td,h1,h2,h3,h4,h5,h6,pre,address"); + if (!elm) { + tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonDisabled'); + return true; + } + + tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonNormal'); + + var dir = getAttrib(elm, "dir"); + if (dir == "ltr" || dir == "") + tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonSelected'); + else + tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonSelected'); + + return true; + } +}; + +tinyMCE.addPlugin("directionality", TinyMCE_DirectionalityPlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/images/ltr.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/images/ltr.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac8f30c1208e044ac5ed8f4f82c2e513c56c9f4b GIT binary patch literal 155 zc$@*70A&A1Nk%w1VH5xq0K*0V6B83EOqQXfrM$epT3%aDeA>#+*g!o%lCtD@cz8l? zx@C{wCodDf2?TZ&Ww46PQZJ;6HbgF) J&uDZ606X)4Hvs?u diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/images/rtl.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/images/rtl.gif new file mode 100644 index 0000000000000000000000000000000000000000..0348f9965669dd9cfba3c69d71d20ea3928e46fe GIT binary patch literal 153 zc$@*50A~M3Nk%w1VH5xq0K*Lc6&4jPQl5&6in_+zPfbr=jNa1D%1Uy=K0H3Nv#n}w zX?>#YH($5z?CQtO-2eapA^8LW000jFEC2ui02BZe000C=@X1N5y*TU5yU$K@847`% z$mA5FC73`GOG9yB3IYHR|EvoJCQ;(~3X4J@W03VE4#r`rF-`^yYR0P4Vz}3jcuX#v H%@F`Q*OWXP diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/langs/en.js @@ -0,0 +1,6 @@ +// UK lang variables + +tinyMCE.addToLang('',{ +directionality_ltr_desc : 'Direction left to right', +directionality_rtl_desc : 'Direction right to left' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/directionality/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('emotions');var TinyMCE_EmotionsPlugin={getInfo:function(){return{longname:'Emotions',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"emotions":return tinyMCE.getButtonHTML(cn,'lang_emotions_desc','{$pluginurl}/images/emotions.gif','mceEmotion')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceEmotion":var template=new Array();template['file']='../../plugins/emotions/emotions.htm';template['width']=250;template['height']=160;template['width']+=tinyMCE.getLang('lang_emotions_delta_width',0);template['height']+=tinyMCE.getLang('lang_emotions_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true}return false}};tinyMCE.addPlugin('emotions',TinyMCE_EmotionsPlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js @@ -0,0 +1,63 @@ +/** + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('emotions'); + +// Plucin static class +var TinyMCE_EmotionsPlugin = { + getInfo : function() { + return { + longname : 'Emotions', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + /** + * Returns the HTML contents of the emotions control. + */ + getControlHTML : function(cn) { + switch (cn) { + case "emotions": + return tinyMCE.getButtonHTML(cn, 'lang_emotions_desc', '{$pluginurl}/images/emotions.gif', 'mceEmotion'); + } + + return ""; + }, + + /** + * Executes the mceEmotion command. + */ + execCommand : function(editor_id, element, command, user_interface, value) { + // Handle commands + switch (command) { + case "mceEmotion": + var template = new Array(); + + template['file'] = '../../plugins/emotions/emotions.htm'; // Relative to theme + template['width'] = 250; + template['height'] = 160; + + // Language specific width and height addons + template['width'] += tinyMCE.getLang('lang_emotions_delta_width', 0); + template['height'] += tinyMCE.getLang('lang_emotions_delta_height', 0); + + tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"}); + + return true; + } + + // Pass to next handler in chain + return false; + } +}; + +// Register plugin +tinyMCE.addPlugin('emotions', TinyMCE_EmotionsPlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm @@ -0,0 +1,40 @@ + + + {$lang_emotions_title} + + + + + +
        +
        {$lang_emotions_title}:

        + + + + + + + + + + + + + + + + + + + + + + + + + + +
        {$lang_emotions_cool}{$lang_emotions_cry}{$lang_emotions_embarassed}{$lang_emotions_foot_in_mouth}
        {$lang_emotions_frown}{$lang_emotions_innocent}{$lang_emotions_kiss}{$lang_emotions_laughing}
        {$lang_emotions_money_mouth}{$lang_emotions_sealed}{$lang_emotions_smile}{$lang_emotions_surprised}
        {$lang_emotions_tongue-out}{$lang_emotions_undecided}{$lang_emotions_wink}{$lang_emotions_yell}
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/emotions.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/emotions.gif new file mode 100644 index 0000000000000000000000000000000000000000..a39ed8ec3807e9da5725bfffc1a9e64694156d7a GIT binary patch literal 319 zc$@)00l@x8Nk%w1VH5xq0K@SR<4C>Dj%C>6W(lWoQPVevT^YB^Fy&h6M z4YZgH{O~qtR1(Ci8T;lQ`uh6d*t-7xar*K{#Jrulo-Wtd*44u?{`oh#n;gQXGXDEo z_}UVAU=FH^0ssI2A^8LW0018VEC2ui02BZe000HN;3tk`X`W~*8ky&1hAI-vg-8-| zEks&5h|Pq-m~0S^%E^$BOfDB9bRtQ_N((2Wp&)XLl10f-*kCXU#W{W66t1ESVsh>@ z>UYcpks)Qz7z_^&90LO!h#O)fe}agQh=&u4aR>|p9*~G00}m5@BV-I50v!p62^|6) z3~wY94jY3V0JQ)egBuPMV+pbk4gvxWxmG6{2?&9M3>XLr8Yu=21x7*z4sa+G1{w|y R8V0;FA_3+B \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-cool.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-cool.gif new file mode 100644 index 0000000000000000000000000000000000000000..ba90cc36fb0415d0273d1cd206bff63fd9c91fde GIT binary patch literal 354 zc$@)Z0iFIwNk%w1VG;lm0Mr!#3ke00dJfFY%i+lrhK7V(RutUQJhPY;?(XfrsZKgL z7WLQ^zPO&zzav{)SL^9nBOw~z(=orMEH5uC-P_gr`uhCnASMa|$-iRw?m_(dUwU8) zq>Kx}s1_F$4FCWDA^8LW0018VEC2ui01^Na000Hw;3tYzX_jM3Qpv$_M?zI9i5=0S zX-{-uv=l3%&P0s%m9Ox_a(m_c|u z01g3U0`Wll5)poVdma=N8y<3f0Sf~hXmTC}2oxMW4FdxUj+z4<0}lrX2nP=qkDRIt z9Ge*(qzMrj3jrIOjvI{`5eWzt3`G_T8yChG8w(a19SkK12@M(+799Zr9n=~PzBCmA z5)BU-)YKUd4H5!D9|!^o9kWIe9SH(WDHRk92}DZ?3})2$P@$55g90f0N)ZA8JID5J Aw*UYD diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-cry.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-cry.gif new file mode 100644 index 0000000000000000000000000000000000000000..74d897a4f6d22e814e2b054e98b8a75fb464b4be GIT binary patch literal 329 zc$@)A0k-}}Nk%w1VG;lm0Mr-&E)xPSit@9T3%;vR+|V+?t0A(pllJjXrMl7n=_A_a za^B+Su$LjvyC3@TIQZNZa##w=!k(SO^P#bO*w(eU#;{U83XFCU_V)J5wrb+;g2vkN z#>U24qVoOvY5)KLA^8LW0018VEC2ui01^Na000HX;3tY$X_jM3QUfCh%s^o(nF++< zc?Th6v=oL>*by8K!mhvwelUXuuW&&U9iGO3hM@>Njw{l^#0q9mWpcefdI;O$;efnY zkd~@r-o$*74FCWI1%d((4+jDz0va0>69^fI6%`W{8w!gU1pyL>prH>E0R<%k6Aq%H z4ij+^9TEwM5P}eh2@)L<~6+>@EpxfA0YrcPNsSu diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-embarassed.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-embarassed.gif new file mode 100644 index 0000000000000000000000000000000000000000..963a96b8a7593b1d8bcbab073abe5ee4e539dbf6 GIT binary patch literal 331 zc$@)C0kr-{Nk%w1VG;lm0MrryDh>j~yq&6%75dW~z^P39(NxsGDE{UkxtkIEq(S-a zRKlwv+S=Lr?>hbYY~sQ?c3T&ZcN_Nh_EU3s(>Io6B&>WW`@bsw**)Ocy1bht z{*G6|uwwqUQ2+n{A^8LW0018VEC2ui01^Na000HZ;3tYwX_jM3YQ!c88=*-m*&&bO zILd=`w3KAC;8hxpif*w9ek6oqV-Z0L77fROK$BSR@5BAv-%C>6y>>#+D4e#&nz^qMDItlpp zTG728+|V&?R13PIEBW(C`uh6d*t-1sZ^XQv;oDD}iYLOV7uVO;{`xl4#4tJ{0;h@! z>)kfFn;iS@Hvj+tA^8LW0018VEC2ui01^Na000Hm;3tYuX_jM3Mo7199TGt*Nf;R= zNmOPKwA8_2Q6MTDP6eT`I1VESVj-zGIG(JdB3U44kcdI@;AAq{Gv^^O%%ltj2GdB) z>vIL;d*~=0a|w1Bf^!cF9R~+vb94;_0}TxWlnMrlj2MuVoSYAreF`3(0|pHS8VLgr zi3bP_qZ;q#>Sw62=mns-On=0wransPVevT^YK{Dy(0YY zH)vE6x0?;Wqb>gZas1^OT0si>`ugD5y87}*#H$s=yq(wA*8cf7{`y+(+9J7|9QfT7 z`ROHiU=Y&6FaQ7mA^8LW0018VEC2ui01^Na000Hi;3tYvX_jM3N`@u~nju9hSuh^r zIEcp-wA7(NL0~2d#RP+(G!CPPA>o*KJjv_CkucCA5=K?AfF#RG2V*8BU@jL304|4P z2;PGRF@bj$et;Jf2pR_mVsIA<85|n}kQ*Bq42Ovqj*yy>6P0=h3X&9Z01yyk~2N4w%7#RW^55W%`0vQ+-6(y_*2pqz~90*;x9}yM}%$UI(7t#$D mK_3Se1{4HKM+6iG7EmeH6$V631{L5n)#CyC0qx-*Apkoyg?w!Q diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-innocent.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-innocent.gif new file mode 100644 index 0000000000000000000000000000000000000000..334d49e0e60f2997c9ba24071764f95d9e08a5cc GIT binary patch literal 336 zc$@)H0k8f?Nk%w1VG;lm0MrryI4TI-%dP0m5~*+Y`T~ z7Rth){q{I_X%*S48uRZ|(b3V&wIKTX`u+WJzo<^$#wuY;3W|Cf{O29IkTAcaE&lpe z+P*^H)-tknA^-pYA^8LW0018VEC2ui01^Na000He;3tYwX_n)75QgVvNQ`6#5gcMm zEEG~blgXokptKAJgCU?%JT?yos!R6cPtcQWh2siHlNI2L}ifQhgX02^InZ2?-ktkqVRyZJY^Trk|lv zovp437?1~d46O)?2(1i+2NDYk8<+_Kil!K!3njA^!I#dL8x<729}*B65mC=m5gHH@ iDi9P3f*VjB3KS4HDb_qqRul{0DIT=Nk%w1VG;lm0Mrx!QauaC#>Vb6G=_5=^YB^9wrc376Sb5I-qJGf@9vZ# z5WlKU(!eVB+7tfnDXp0zyB`?BZ5IChalob*`uh6d*t+@dKGHcU+L|83yq*5~IoH?L zy`?Gp<{bX|SpWb4A^8LW0018VEC2ui01^Na000Hg;3tYyX_jM3R?Bl7&r(q;SsVx< zNd$5fv{ZsKA$SlL3&KN~a1tZRf*~1Ltkx9~2uL3&z-yb0WJDRY082|tP diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-laughing.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-laughing.gif new file mode 100644 index 0000000000000000000000000000000000000000..1606c119e75678c4031f384e0d50849906e8f533 GIT binary patch literal 344 zc$@)P0jK^)Nk%w1VG;lm0MruzQauf>s;1-69HWK?p_PpF=Pd8~Ygtcnp*fHAL z**;z>w3iC}`fmL6IkKB1N;3zEa}&zKpsu1;_V)HocR5-{J~BcYvE`YXhBnc@CfU=! za(Ec zG>66zv=rqr;2j)}gKqE$ekcSD?}0=WLB?AWp85)qALd+P=4)6X4oXy{bw2>K^d$ z@6ERvva+(4ib~41YUkTEn1&#?rzrOHT>1I=Y*h`+%*@WtPUPg|!@EEI_d5LgZ>^Og z-qyCjsu$J9F8}}lA^8LW0018VEC2ui01^Na000HT;3tYxX_jM37RWXX8&XUv=@{Oj zX@_Sxw3H&!kzgQ?2LvPOL=>Y5VxieY9+_+eqFEql6OKWXd3Ze8Ggf2Zln@U|mI9d9 zGm^(wVUTA5cYs-V1`2#+a})^z6chrF5`~8k5e6@pmkW`GeGw<069yTQaGnH)s0suV zR|pCd0ZtRCsjM9VB^L+~7X%f*zyuc%2p3=#ycf#L%McYo9|{Z&5D^#_78qL%3{WW( X7Xb)FP6z?UH6ODVz!ev-DIowmgll^P diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-smile.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6a9e60d5ddd1243fbbf2197b4dc6cd9c1b58b93 GIT binary patch literal 345 zc$@)Q0jB;(Nk%w1VG;lm0MrlwCJF+^#>SR<4C>Dj%C>6W(lWoQPVevT^YB^Fy&h6M z4YZgH{O~qtR1(Ci8T;lQ`uh6d*t-7xar*K{#Jrulo-Wtd*44u?{`oh#n;gQXGXDEo z_}UVAU=FH^0ssI2A^8LW0018VEC2ui01^Na000Hn;3tYuX_jM3Mn>j&nGr!MNh}v4 zNyxPjwA7*EKx`%q#$Vl9SM>N9ReH-cn1&^4jYXf0KotqjT;UWC94U(4-NtX4#i!%9}pHA2?&dg3>XLr r8Wuqx2Nnhn1xrT-4h9xbDb^GQ8V(K`1{C5o)#U;I0p5-K5CQ-@9%ySnDDC*4*{OcpiwransPVevTQacIr@mkQp zCf(06s)_=>r7UYx48o@u`uh6d*t-7rH~ji<`P&oj;5Wp)o!8ga`SV6TA_BIW5#ZWV z{`*+__>9}pJ}3JDSl85wB_3Jn)Q o9|so(4+|I^92g4^1{Y8%(iR3pP6ig=HPPY$`~mLZA3^{CJDB=?L;wH) diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-tongue-out.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-tongue-out.gif new file mode 100644 index 0000000000000000000000000000000000000000..2075dc16058f1f17912167675ce5cfb9986fc71d GIT binary patch literal 328 zc$@)90k{4~Nk%w1VG;lm0Mrx!CJF+^#>SU@3-{U*rx+Q^wrc$ABfqLn@9*x?z8(4X zSW-O=@){bmmI~g|GQXoP);cvj3|f1M8e@{G*!tYaiCEujj1NGxRN#6#tiCETo+{x{Hkzt z5k-kPvcD=V2nbmjCgL6k{uF&2nP-t0s;w<385Nx2oxDb z9T5Pp7qJl?3Kkh9oe2sCr5F$p7zPSlsUH*@54w*83=9Or4;w)r2pcU95(FL|1Th;< aDaRQH4;Tal7#Y$v#?=Au0pHUfApkpvZg^t= diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-undecided.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-undecided.gif new file mode 100644 index 0000000000000000000000000000000000000000..bef7e257303f8243c89787e7a7f9955dd1f112e2 GIT binary patch literal 337 zc$@)I0j~Z>Nk%w1VG;lm0MroxDi#99#>R?y8~4}{%C>6#>?OadPVevTr-=vi@LATn z4rERY-qJF+n+?CCE&B3D{{3Shh?>WT0o%`b%*Voqm`dL;(4F35y zc485^n;g!+Bme*aA^8LW0018VEC2ui01^Na000Hf;3tYvX_jM3N=AnuogqakNi<9X zK?&0kwA8^tNn{?C$|IAYI1ZzT!2>}iuMddFK#NEkRl!7%6brJAnUs;)XcnA}TNBSP zxQ9;SvEfwYeSaGd2^|LqU~(QF1qBxr3Ii7x84ZVt8wCTKoSYAqc?p`G2onnpk`IOl z1`HLGj}riN2p1K12N4z&8IBDc6tEWs859;JtRB6>lf+xO9}yT19toMv8wnl`7(pKg j7zPv!OGgY81{hE&(iR3pP6ig;HPPS!_yOwPA0Yrc)=Yf3 diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-wink.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-wink.gif new file mode 100644 index 0000000000000000000000000000000000000000..9faf1aff8f4b28e02f4f414975fe1859c43b6b54 GIT binary patch literal 351 zc$@)W0igazNk%w1VG;lm0MrryC=CL}#>Sn03F^-g-qAA3wransPV?|t@9*x%vmQ`7 z4E*pcw3rOOq%3t@4*K#({N^40{c-yG`rz2Q!KfI-yq*61HrBop*VoqW<}&{JS@_x# zwwfH#!YTdnIsgCwA^8LW0018VEC2ui01^Na000Ht;3tYwX_jM3P6j6koH0o%Sun&A zMF+tYv=pL2IcOdp&qH&dG!P?+ArV0)J)O=Yk}%LD6Go&#@MJn3he8=)%%lWOM*#pN zEDD9iq9J$@90v~;83`GC4i0+{2OJ0pVtacF5E}yn8<`pmkCBv_pqZEtoPY-l0}P>= z3WE6cr`19U7DgF9{F}at6R35*Q5~ x2OgBy9tRx_7(pKh7zPvsOGgA01{hE&-4zBzP6id}HMp@0Krnzkbss_i06S`>cdh^c diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-yell.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-yell.gif new file mode 100644 index 0000000000000000000000000000000000000000..648e6e879123fe49beebbc1f3635141864a79a9c GIT binary patch literal 336 zc$@)H0k8f?Nk%w1VG;lm0MrryG8O{K#>IbS7WCB_mWF$+hzY-{PWkp(?(Xf;zbH~P z3jOdj?W+^YwrakfE8fyG&5jTBz!3WS`fgM_;MltQ+c}4GO8)(E`S3`@yq&d~5!ct& z)v79NObo)O7XSbNA^8LW0018VEC2ui01^Na000He;3tYwX_jM3QifI(nn6h_*=Wyk zUB{y}v=qYOIUF#R3dZPhAVv~H;(|a2yN_5FH&J0|$eJ3kw4gj1Y?v5d#>LMV12^6BYy$1)ZKA zga!|m2?POz0R)f>4+aPl8KD{gz`+G_9vLMFQU?RU!8uyH9}*i52|cC+7S0YEK_3Vk i1|APfM-Ltb8&4_H83sg61{vHn(cc000qNZzApkp \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/jscripts/functions.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/jscripts/functions.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/jscripts/functions.js @@ -0,0 +1,21 @@ +function init() { + tinyMCEPopup.resizeToInnerSize(); +} + +function insertEmotion(file_name, title) { + title = tinyMCE.getLang(title); + + if (title == null) + title = ""; + + // XML encode + title = title.replace(/&/g, '&'); + title = title.replace(/\"/g, '"'); + title = title.replace(//g, '>'); + + var html = '' + title + ''; + + tinyMCE.execCommand('mceInsertContent', false, html); + tinyMCEPopup.close(); +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/jscripts/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/jscripts/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/jscripts/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en.js @@ -0,0 +1,22 @@ +// UK lang variables + +tinyMCE.addToLang('emotions',{ +title : 'Insert emotion', +desc : 'Emotions', +cool : 'Cool', +cry : 'Cry', +embarassed : 'Embarassed', +foot_in_mouth : 'Foot in mouth', +frown : 'Frown', +innocent : 'Innocent', +kiss : 'Kiss', +laughing : 'Laughing', +money_mouth : 'Money mouth', +sealed : 'Sealed', +smile : 'Smile', +surprised : 'Surprised', +tongue_out : 'Tongue out', +undecided : 'Undecided', +wink : 'Wink', +yell : 'Yell' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/emotions/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/css/content.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/css/content.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/css/content.css @@ -0,0 +1,7 @@ +.mceItemFlash { + border: 1px dotted #cc0000; + background-image: url('../images/flash.gif'); + background-position: center; + background-repeat: no-repeat; + background-color: #ffffcc; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/css/flash.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/css/flash.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/css/flash.css @@ -0,0 +1,11 @@ +.panel_wrapper div.current { + height: 100px; +} + +#width, #height { + width: 50px; +} + +#file { + width: 250px; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('flash');var TinyMCE_FlashPlugin={getInfo:function(){return{longname:'Flash',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/flash',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(!tinyMCE.settings['flash_skip_plugin_css'])tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/flash/css/content.css")},getControlHTML:function(cn){switch(cn){case"flash":return tinyMCE.getButtonHTML(cn,'lang_flash_desc','{$pluginurl}/images/flash.gif','mceFlash')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceFlash":var name="",swffile="",swfwidth="",swfheight="",action="insert";var template=new Array();var inst=tinyMCE.getInstanceById(editor_id);var focusElm=inst.getFocusElement();template['file']='../../plugins/flash/flash.htm';template['width']=430;template['height']=175;template['width']+=tinyMCE.getLang('lang_flash_delta_width',0);template['height']+=tinyMCE.getLang('lang_flash_delta_height',0);if(focusElm!=null&&focusElm.nodeName.toLowerCase()=="img"){name=tinyMCE.getAttrib(focusElm,'class');if(name.indexOf('mceItemFlash')==-1)return true;swffile=tinyMCE.getAttrib(focusElm,'alt');if(tinyMCE.getParam('convert_urls'))swffile=eval(tinyMCE.settings['urlconverter_callback']+"(swffile, null, true);");swfwidth=tinyMCE.getAttrib(focusElm,'width');swfheight=tinyMCE.getAttrib(focusElm,'height');action="update"}tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes",swffile:swffile,swfwidth:swfwidth,swfheight:swfheight,action:action});return true}return false},cleanup:function(type,content){switch(type){case"insert_to_editor_dom":if(tinyMCE.getParam('convert_urls')){var imgs=content.getElementsByTagName("img");for(var i=0;i','gi'),'');content=content.replace(new RegExp('<[ ]*object','gi'),'','gi'),'');while((startPos=content.indexOf('',startPos);var attribs=TinyMCE_FlashPlugin._parseAttributes(content.substring(startPos+6,endPos));embedList[embedList.length]=attribs}var index=0;while((startPos=content.indexOf('=embedList.length)break;var attribs=embedList[index];endPos=content.indexOf('',startPos);endPos+=9;var contentAfter=content.substring(endPos);content=content.substring(0,startPos);content+=''+content.substring(endPos);content+=contentAfter;index++;startPos++}var index=0;while((startPos=content.indexOf('=embedList.length)break;var attribs=embedList[index];endPos=content.indexOf('>',startPos);endPos+=9;var contentAfter=content.substring(endPos);content=content.substring(0,startPos);content+=''+content.substring(endPos);content+=contentAfter;index++;startPos++}break;case"get_from_editor":var startPos=-1;while((startPos=content.indexOf('',startPos);var attribs=TinyMCE_FlashPlugin._parseAttributes(content.substring(startPos+4,endPos));if(attribs['class']!="mceItemFlash")continue;endPos+=2;var embedHTML='';var wmode=tinyMCE.getParam("flash_wmode","");var quality=tinyMCE.getParam("flash_quality","high");var menu=tinyMCE.getParam("flash_menu","false");embedHTML+='';embedHTML+='';embedHTML+='';embedHTML+='';embedHTML+='';embedHTML+='';chunkBefore=content.substring(0,startPos);chunkAfter=content.substring(endPos);content=chunkBefore+embedHTML+chunkAfter}break}return content},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node==null)return;do{if(node.nodeName=="IMG"&&tinyMCE.getAttrib(node,'class').indexOf('mceItemFlash')==0){tinyMCE.switchClass(editor_id+'_flash','mceButtonSelected');return true}}while((node=node.parentNode));tinyMCE.switchClass(editor_id+'_flash','mceButtonNormal');return true},_parseAttributes:function(attribute_string){var attributeName="";var attributeValue="";var withInName;var withInValue;var attributes=new Array();var whiteSpaceRegExp=new RegExp('^[ \n\r\t]+','g');if(attribute_string==null||attribute_string.length<2)return null;withInName=withInValue=false;for(var i=0;i','gi'),''); + content = content.replace(new RegExp('<[ ]*object','gi'),'','gi'),''); + + // Parse all embed tags + while ((startPos = content.indexOf('', startPos); + var attribs = TinyMCE_FlashPlugin._parseAttributes(content.substring(startPos + 6, endPos)); + embedList[embedList.length] = attribs; + } + + // Parse all object tags and replace them with images from the embed data + var index = 0; + while ((startPos = content.indexOf('= embedList.length) + break; + + var attribs = embedList[index]; + + // Find end of object + endPos = content.indexOf('', startPos); + endPos += 9; + + // Insert image + var contentAfter = content.substring(endPos); + content = content.substring(0, startPos); + content += '' + content.substring(endPos); + content += contentAfter; + index++; + + startPos++; + } + + // Parse all embed tags and replace them with images from the embed data + var index = 0; + while ((startPos = content.indexOf('= embedList.length) + break; + + var attribs = embedList[index]; + + // Find end of embed + endPos = content.indexOf('>', startPos); + endPos += 9; + + // Insert image + var contentAfter = content.substring(endPos); + content = content.substring(0, startPos); + content += '' + content.substring(endPos); + content += contentAfter; + index++; + + startPos++; + } + + break; + + case "get_from_editor": + // Parse all img tags and replace them with object+embed + var startPos = -1; + + while ((startPos = content.indexOf('', startPos); + var attribs = TinyMCE_FlashPlugin._parseAttributes(content.substring(startPos + 4, endPos)); + + // Is not flash, skip it + if (attribs['class'] != "mceItemFlash") + continue; + + endPos += 2; + + var embedHTML = ''; + var wmode = tinyMCE.getParam("flash_wmode", ""); + var quality = tinyMCE.getParam("flash_quality", "high"); + var menu = tinyMCE.getParam("flash_menu", "false"); + + // Insert object + embed + embedHTML += ''; + embedHTML += ''; + embedHTML += ''; + embedHTML += ''; + embedHTML += ''; + embedHTML += ''; + + // Insert embed/object chunk + chunkBefore = content.substring(0, startPos); + chunkAfter = content.substring(endPos); + content = chunkBefore + embedHTML + chunkAfter; + } + break; + } + + // Pass through to next handler in chain + return content; + }, + + handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) { + if (node == null) + return; + + do { + if (node.nodeName == "IMG" && tinyMCE.getAttrib(node, 'class').indexOf('mceItemFlash') == 0) { + tinyMCE.switchClass(editor_id + '_flash', 'mceButtonSelected'); + return true; + } + } while ((node = node.parentNode)); + + tinyMCE.switchClass(editor_id + '_flash', 'mceButtonNormal'); + + return true; + }, + + // Private plugin internal functions + + _parseAttributes : function(attribute_string) { + var attributeName = ""; + var attributeValue = ""; + var withInName; + var withInValue; + var attributes = new Array(); + var whiteSpaceRegExp = new RegExp('^[ \n\r\t]+', 'g'); + + if (attribute_string == null || attribute_string.length < 2) + return null; + + withInName = withInValue = false; + + for (var i=0; i +
        + + +
        +
        +
        + {$lang_flash_general} + + + + + + + + + + + + + + +
        + + + + + +
         
        +
         
        + +  x  + +
        +
        +
        +
        + +
        +
        + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/images/flash.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/images/flash.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb192e6ceda8d19ad8e7d08dd1cfde0aa72ead2a GIT binary patch literal 241 zc$@+801p30Nk%w1VH5xq0K*9Y0w_vuilWKS*;ZOzlLa+Za}7>m0&NpCfJ0FQc3~F7DE)S%o1)Qi1n@vxX46qnD4hRS-NE*Pw!4UvE=#^N( diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/jscripts/flash.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/jscripts/flash.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/jscripts/flash.js @@ -0,0 +1,107 @@ +var url = tinyMCE.getParam("flash_external_list_url"); +if (url != null) { + // Fix relative + if (url.charAt(0) != '/' && url.indexOf('://') == -1) + url = tinyMCE.documentBasePath + "/" + url; + + document.write(''); +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById("filebrowsercontainer").innerHTML = getBrowserHTML('filebrowser','file','flash','flash'); + + // Image list outsrc + var html = getFlashListHTML('filebrowser','file','flash','flash'); + if (html == "") + document.getElementById("linklistrow").style.display = 'none'; + else + document.getElementById("linklistcontainer").innerHTML = html; + + var formObj = document.forms[0]; + var swffile = tinyMCE.getWindowArg('swffile'); + var swfwidth = '' + tinyMCE.getWindowArg('swfwidth'); + var swfheight = '' + tinyMCE.getWindowArg('swfheight'); + + if (swfwidth.indexOf('%')!=-1) { + formObj.width2.value = "%"; + formObj.width.value = swfwidth.substring(0,swfwidth.length-1); + } else { + formObj.width2.value = "px"; + formObj.width.value = swfwidth; + } + + if (swfheight.indexOf('%')!=-1) { + formObj.height2.value = "%"; + formObj.height.value = swfheight.substring(0,swfheight.length-1); + } else { + formObj.height2.value = "px"; + formObj.height.value = swfheight; + } + + formObj.file.value = swffile; + formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true); + + selectByValue(formObj, 'linklist', swffile); + + // Handle file browser + if (isVisible('filebrowser')) + document.getElementById('file').style.width = '230px'; + + // Auto select flash in list + if (typeof(tinyMCEFlashList) != "undefined" && tinyMCEFlashList.length > 0) { + for (var i=0; i 0) { + var html = ""; + + html += ''; + + return html; + } + + return ""; +} + +function insertFlash() { + var formObj = document.forms[0]; + var html = ''; + var file = formObj.file.value; + var width = formObj.width.value; + var height = formObj.height.value; + if (formObj.width2.value=='%') { + width = width + '%'; + } + if (formObj.height2.value=='%') { + height = height + '%'; + } + + if (width == "") + width = 100; + + if (height == "") + height = 100; + + html += '' + + '' + file + ''; + + tinyMCEPopup.execCommand("mceInsertContent", true, html); + tinyMCE.selectedInstance.repaint(); + + tinyMCEPopup.close(); +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/jscripts/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/jscripts/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/jscripts/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/langs/en.js @@ -0,0 +1,11 @@ +// UK lang variables + +tinyMCE.addToLang('flash',{ +title : 'Insert / edit Flash Movie', +desc : 'Insert / edit Flash Movie', +file : 'Flash-File (.swf)', +size : 'Size', +list : 'Flash files', +props : 'Flash properties', +general : 'General' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/flash/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/blank.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/blank.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/blank.htm @@ -0,0 +1,9 @@ + + + blank_page + + + + + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css @@ -0,0 +1,176 @@ +/* Hide the advanced tab */ +#advanced_tab { + display: none; +} + +#metatitle, #metakeywords, #metadescription, #metaauthor, #metacopyright { + width: 280px; +} + +#doctype, #docencoding { + width: 200px; +} + +#langcode { + width: 30px; +} + +#bgimage { + width: 220px; +} + +#fontface { + width: 240px; +} + +#leftmargin, #rightmargin, #topmargin, #bottommargin { + width: 50px; +} + +.panel_wrapper div.current { + height: 400px; +} + +#stylesheet, #style { + width: 240px; +} + +/* Head list classes */ + +.headlistwrapper { + width: 100%; +} + +.addbutton, .removebutton, .moveupbutton, .movedownbutton { + border-top: 1px solid; + border-left: 1px solid; + border-bottom: 1px solid; + border-right: 1px solid; + border-color: #F0F0EE; + cursor: default; + display: block; + width: 20px; + height: 20px; +} + +.addbutton:hover, .removebutton:hover, .moveupbutton:hover, .movedownbutton:hover { + border: 1px solid #0A246A; + background-color: #B6BDD2; +} + +.addbutton { + background-image: url('../images/add.gif'); + float: left; + margin-right: 3px; +} + +.removebutton { + background-image: url('../images/remove.gif'); + float: left; +} + +.moveupbutton { + background-image: url('../images/move_up.gif'); + float: left; + margin-right: 3px; +} + +.movedownbutton { + background-image: url('../images/move_down.gif'); + float: left; +} + +.selected { + border: 1px solid #0A246A; + background-color: #B6BDD2; +} + +.toolbar { + width: 100%; +} + +#headlist { + width: 100%; + margin-top: 3px; + font-size: 11px; +} + +#info, #title_element, #meta_element, #script_element, #style_element, #base_element, #link_element, #comment_element, #unknown_element { + display: none; +} + +#addmenu { + position: absolute; + border: 1px solid gray; + display: none; + z-index: 100; + background-color: white; +} + +#addmenu a { + display: block; + width: 100%; + line-height: 20px; + text-decoration: none; + background-color: white; +} + +#addmenu a:hover { + background-color: #B6BDD2; + color: black; +} + +#addmenu span { + padding-left: 10px; + padding-right: 10px; +} + +#updateElementPanel { + display: none; +} + +#script_element .panel_wrapper div.current { + height: 108px; +} + +#style_element .panel_wrapper div.current { + height: 108px; +} + +#link_element .panel_wrapper div.current { + height: 140px; +} + +#element_script_value { + width: 100%; + height: 100px; +} + +#element_comment_value { + width: 100%; + height: 120px; +} + +#element_style_value { + width: 100%; + height: 100px; +} + +#element_title, #element_script_src, #element_meta_name, #element_meta_content, #element_base_href, #element_link_href, #element_link_title { + width: 250px; +} + +.updateElementButton { + margin-top: 3px; +} + +/* MSIE specific styles */ + +* html .addbutton, * html .removebutton, * html .moveupbutton, * html .movedownbutton { + width: 22px; + height: 22px; +} + +textarea { + height: 55px; +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('fullpage');var TinyMCE_FullPagePlugin={getInfo:function(){return{longname:'Fullpage',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"fullpage":return tinyMCE.getButtonHTML(cn,'lang_fullpage_desc','{$pluginurl}/images/fullpage.gif','mceFullPageProperties')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceFullPageProperties":var template=new Array();template['file']='../../plugins/fullpage/fullpage.htm';template['width']=430;template['height']=485+(tinyMCE.isOpera?5:0);template['width']+=tinyMCE.getLang('lang_fullpage_delta_width',0);template['height']+=tinyMCE.getLang('lang_fullpage_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true;case"mceFullPageUpdate":TinyMCE_FullPagePlugin._addToHead(tinyMCE.getInstanceById(editor_id));return true}return false},cleanup:function(type,content,inst){switch(type){case"insert_to_editor":var tmp=content.toLowerCase();var pos=tmp.indexOf('',pos);pos2=tmp.lastIndexOf('');inst.fullpageTopContent=content.substring(0,pos+1);content=content.substring(pos+1,pos2);}else{if(!inst.fullpageTopContent){var docType=tinyMCE.getParam("fullpage_default_doctype",'');var enc=tinyMCE.getParam("fullpage_default_encoding",'utf-8');var title=tinyMCE.getParam("fullpage_default_title",'Untitled document');var lang=tinyMCE.getParam("fullpage_default_langcode",'en');var pi=tinyMCE.getParam("fullpage_default_xml_pi",true);var ff=tinyMCE.getParam("fullpage_default_font_family","");var fz=tinyMCE.getParam("fullpage_default_font_size","");var ds=tinyMCE.getParam("fullpage_default_style","");var dtc=tinyMCE.getParam("fullpage_default_text_color","");title=title.replace(/&/g,'&');title=title.replace(/\"/g,'"');title=title.replace(//g,'>');tmp='';if(pi)tmp+='\n';tmp+=docType+'\n';tmp+='\n';tmp+='\n';tmp+='\t'+title+'\n';tmp+='\t\n';tmp+='\n';tmp+=']+(\s|\>)/i,'');content=inst.fullpageTopContent+content+"\n\n"}break;case"submit_content":if(inst.fullpageTopContent&&tinyMCE.getParam("fullpage_hide_in_source_view",false))content=inst.fullpageTopContent+content+"\n\n";break}return content},_addToHead:function(inst){var doc=inst.getDoc();var head=doc.getElementsByTagName("head")[0];var body=doc.body;var h=inst.fullpageTopContent;var e=doc.createElement("body");var nl,i,le,tmp;h=h.replace(/(\r|\n)/gi,'');h=h.replace(/<\?[^\>]*\>/gi,'');h=h.replace(/<\/?(!DOCTYPE|head|html)[^\>]*\>/gi,'');h=h.replace(//gi,'');h=h.replace(//gi,'');h=h.replace(/<(meta|base)[^>]*>/gi,'');h=h.replace(/]*)\/>/gi,'
        ');h=h.replace(/0){body.style.cssText=tinyMCE.getAttrib(nl[0],'style');if((tmp=tinyMCE.getAttrib(nl[0],'leftmargin'))!=''&&body.style.marginLeft=='')body.style.marginLeft=tmp+"px";if((tmp=tinyMCE.getAttrib(nl[0],'rightmargin'))!=''&&body.style.marginRight=='')body.style.marginRight=tmp+"px";if((tmp=tinyMCE.getAttrib(nl[0],'topmargin'))!=''&&body.style.marginTop=='')body.style.marginTop=tmp+"px";if((tmp=tinyMCE.getAttrib(nl[0],'bottommargin'))!=''&&body.style.marginBottom=='')body.style.marginBottom=tmp+"px";body.dir=tinyMCE.getAttrib(nl[0],'dir');body.vLink=tinyMCE.getAttrib(nl[0],'vlink');body.aLink=tinyMCE.getAttrib(nl[0],'alink');body.link=tinyMCE.getAttrib(nl[0],'link');body.text=tinyMCE.getAttrib(nl[0],'text');if((tmp=tinyMCE.getAttrib(nl[0],'background'))!='')body.style.backgroundImage="url('"+tmp+"')";if((tmp=tinyMCE.getAttrib(nl[0],'bgcolor'))!='')body.style.backgroundColor=tmp}}};tinyMCE.addPlugin("fullpage",TinyMCE_FullPagePlugin);
        \ No newline at end of file
        diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js
        new file mode 100644
        --- /dev/null
        +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js
        @@ -0,0 +1,235 @@
        +/**
        + * $Id: editor_plugin_src.js 232 2007-03-05 17:00:27Z spocke $
        + *
        + * @author Moxiecode
        + * @copyright Copyright  2004-2007, Moxiecode Systems AB, All rights reserved.
        + */
        +
        +/* Import plugin specific language pack */
        +tinyMCE.importPluginLanguagePack('fullpage');
        +
        +var TinyMCE_FullPagePlugin = {
        +	getInfo : function() {
        +		return {
        +			longname : 'Fullpage',
        +			author : 'Moxiecode Systems AB',
        +			authorurl : 'http://tinymce.moxiecode.com',
        +			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',
        +			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
        +		};
        +	},
        +
        +	getControlHTML : function(cn) {
        +		switch (cn) {
        +			case "fullpage":
        +				return tinyMCE.getButtonHTML(cn, 'lang_fullpage_desc', '{$pluginurl}/images/fullpage.gif', 'mceFullPageProperties');
        +		}
        +
        +		return "";
        +	},
        +
        +	execCommand : function(editor_id, element, command, user_interface, value) {
        +		// Handle commands
        +		switch (command) {
        +			case "mceFullPageProperties":
        +				var template = new Array();
        +
        +				template['file']   = '../../plugins/fullpage/fullpage.htm';
        +				template['width']  = 430;
        +				template['height'] = 485 + (tinyMCE.isOpera ? 5 : 0);
        +
        +				template['width'] += tinyMCE.getLang('lang_fullpage_delta_width', 0);
        +				template['height'] += tinyMCE.getLang('lang_fullpage_delta_height', 0);
        +
        +				tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
        +			return true;
        +
        +			case "mceFullPageUpdate":
        +				TinyMCE_FullPagePlugin._addToHead(tinyMCE.getInstanceById(editor_id));
        +				return true;
        +	   }
        +
        +	   // Pass to next handler in chain
        +	   return false;
        +	},
        +
        +	cleanup : function(type, content, inst) {
        +		switch (type) {
        +			case "insert_to_editor":
        +				var tmp = content.toLowerCase();
        +				var pos = tmp.indexOf('', pos);
        +					pos2 = tmp.lastIndexOf('');
        +					inst.fullpageTopContent = content.substring(0, pos + 1);
        +					content = content.substring(pos + 1, pos2);
        +					// tinyMCE.debug(inst.fullpageTopContent, content);
        +				} else {
        +					if (!inst.fullpageTopContent) {
        +						var docType = tinyMCE.getParam("fullpage_default_doctype", '');
        +						var enc = tinyMCE.getParam("fullpage_default_encoding", 'utf-8');
        +						var title = tinyMCE.getParam("fullpage_default_title", 'Untitled document');
        +						var lang = tinyMCE.getParam("fullpage_default_langcode", 'en');
        +						var pi = tinyMCE.getParam("fullpage_default_xml_pi", true);
        +						var ff = tinyMCE.getParam("fullpage_default_font_family", "");
        +						var fz = tinyMCE.getParam("fullpage_default_font_size", "");
        +						var ds = tinyMCE.getParam("fullpage_default_style", "");
        +						var dtc = tinyMCE.getParam("fullpage_default_text_color", "");
        +
        +						// Xml encode it
        +						title = title.replace(/&/g, '&');
        +						title = title.replace(/\"/g, '"');
        +						title = title.replace(//g, '>');
        +
        +						tmp = '';
        +
        +						// Make default chunk
        +						if (pi)
        +							tmp += '\n';
        +
        +						tmp += docType + '\n';
        +						tmp += '\n';
        +						tmp += '\n';
        +						tmp += '\t' + title + '\n';
        +						tmp += '\t\n';
        +						tmp += '\n';
        +						tmp += ']+(\s|\>)/i, ''); // Remove internal stuff
        +					content = inst.fullpageTopContent + content + "\n\n";
        +				}
        +
        +				break;
        +
        +			case "submit_content":
        +				if (inst.fullpageTopContent && tinyMCE.getParam("fullpage_hide_in_source_view", false))
        +					content = inst.fullpageTopContent + content + "\n\n";
        +
        +				break;
        +		}
        +
        +		// Pass through to next handler in chain
        +		return content;
        +	},
        +
        +	// Private plugin internal methods
        +
        +	_addToHead : function(inst) {
        +		var doc = inst.getDoc();
        +		var head = doc.getElementsByTagName("head")[0];
        +		var body = doc.body;
        +		var h = inst.fullpageTopContent;
        +		var e = doc.createElement("body");
        +		var nl, i, le, tmp;
        +
        +		// Remove stuff we don't want
        +		h = h.replace(/(\r|\n)/gi, '');
        +		h = h.replace(/<\?[^\>]*\>/gi, '');
        +		h = h.replace(/<\/?(!DOCTYPE|head|html)[^\>]*\>/gi, '');
        +		h = h.replace(//gi, '');
        +		h = h.replace(//gi, '');
        +		h = h.replace(/<(meta|base)[^>]*>/gi, '');
        +
        +		// Make link and style elements into pre
        +		h = h.replace(/]*)\/>/gi, '
        ');
        +		//h = h.replace(/]*)>(.*?)<\/style>/gi, '
        $2
        '); + + // Make body a div + h = h.replace(/ 0) { + body.style.cssText = tinyMCE.getAttrib(nl[0], 'style'); + + if ((tmp = tinyMCE.getAttrib(nl[0], 'leftmargin')) != '' && body.style.marginLeft == '') + body.style.marginLeft = tmp + "px"; + + if ((tmp = tinyMCE.getAttrib(nl[0], 'rightmargin')) != '' && body.style.marginRight == '') + body.style.marginRight = tmp + "px"; + + if ((tmp = tinyMCE.getAttrib(nl[0], 'topmargin')) != '' && body.style.marginTop == '') + body.style.marginTop = tmp + "px"; + + if ((tmp = tinyMCE.getAttrib(nl[0], 'bottommargin')) != '' && body.style.marginBottom == '') + body.style.marginBottom = tmp + "px"; + + body.dir = tinyMCE.getAttrib(nl[0], 'dir'); + body.vLink = tinyMCE.getAttrib(nl[0], 'vlink'); + body.aLink = tinyMCE.getAttrib(nl[0], 'alink'); + body.link = tinyMCE.getAttrib(nl[0], 'link'); + body.text = tinyMCE.getAttrib(nl[0], 'text'); + + if ((tmp = tinyMCE.getAttrib(nl[0], 'background')) != '') + body.style.backgroundImage = "url('" + tmp + "')"; + + if ((tmp = tinyMCE.getAttrib(nl[0], 'bgcolor')) != '') + body.style.backgroundColor = tmp; + } + } +}; + +tinyMCE.addPlugin("fullpage", TinyMCE_FullPagePlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm @@ -0,0 +1,577 @@ + + + {$lang_fullpage_title} + + + + + + + + + +
        + + +
        +
        +
        + {$lang_fullpage_meta_props} + + + + + + + + + + + + + + + + + + + + + + + + + + +
         
         
         
         
         
          + +
        +
        + +
        + {$lang_fullpage_langprops} + + + + + + + + + + + + + + + + + + + + + + +
        + +
          + +
         
        + +
         
        +
        +
        + +
        +
        + {$lang_fullpage_appearance_textprops} + + + + + + + + + + + + + + + + +
        + +
        + +
        + + + + + +
         
        +
        +
        + +
        + {$lang_fullpage_appearance_bgprops} + + + + + + + + + + +
        + + + + + +
         
        +
        + + + + + +
         
        +
        +
        + +
        + {$lang_fullpage_appearance_marginprops} + + + + + + + + + + + + + + +
        +
        + +
        + {$lang_fullpage_appearance_linkprops} + + + + + + + + + + + + + + + + + + + +
        + + + + + +
        +
        + + + + + +
         
        +
        + + + + + +
         
        +
          
        +
        + +
        + {$lang_fullpage_appearance_style} + + + + + + + + + + +
        + + + + +
         
        +
        +
        + +
        + + +
        + {$lang_fullpage_head_elements} + +
        +
        +
        + + +
        +
        + + +
        +
        +
        + +
        +
        + +
        + {$lang_fullpage_meta_element} + + + + + + + + + + + + + + +
        + + +
        + +
        + {$lang_fullpage_title_element} + + + + + + +
        + + +
        + +
        + {$lang_fullpage_script_element} + + + +
        + +
        +
        + + + + + + + + + + + + + + + + + +
        + + + + +
         
        +
        + +
        + +
        +
        + + +
        + +
        + {$lang_fullpage_style_element} + + + +
        + +
        +
        + + + + + + + + + +
        +
        + +
        + +
        +
        + + +
        + +
        + {$lang_fullpage_base_element} + + + + + + + + + + +
        + + +
        + + + +
        + {$lang_fullpage_comment_element} + + + + +
        +
        +
        + +
        +
        + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/add.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/add.gif new file mode 100644 index 0000000000000000000000000000000000000000..d6291d97d06d183e7c232652ba356c6b842d7d9a GIT binary patch literal 893 zc${}pLQDo_2x7tFj>=wGNvCzd{ww^{1+CHSApf(Vibluie zm`Lmr5d-ybL6AX7*Gw96(LQxvf~A+H4`S(Qf*$N?y8a6t_&uES~az7Yr$Oemr3*5G{*hg?W( zIoGMk%bTe&GV%Pv)f)@hcMFTlH0R`DlnX8u$w@>RlL{mdwkgXAo|i;OmX~ZzF{QXt zLMf@#$JJF32Xf6>Q7#$JGa)(8Q@JJ}1ccyhc5&syYf1no0cHgxGf3KiaTBMZ%;=l~ zYJuC=&-K9=8SfuX_8EErm-%Bziey8qfz{zdc0(^I8_&&KIod6 zbp>lv!G`*R1Fo8yy4~C7=94=%oN8-6aXI6PzDOP^nu&BA-@AX`mZh$uxBa1(&dx~t zvBKGCm-#(;s3r2bwQ1MMFH2|k{OCPDrgvqRJ%KCs%Ykp%T2_C!t@Nv_r`T$|R2{xJ zRRH`Ajp32lRQvmfje6|QuXtoA>F-$qzpo7r-zg8YCW4`*s4vv*t2})+Ji?zwDhdm< GqyGRrp&|1C diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/move_down.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/move_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bec71fffccb6a29968683ff723186351413cca9 GIT binary patch literal 194 zc${|+;DbZLhJ*1XMf-==d;U!~cMe2L&@eGyoYD7ykeM&wvUP zf3h$#Fi0`zfH)vK8CdNXsP&~}&dXS}F6VWZ8>7IHXdS<=dk!2@=n`kVyg(+(@PNLc k1xxru?jw^VSz?-w9Qk#LgKg3}4+Xv1=Ut<8 diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/move_up.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/move_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f489c909e4609157fcfec8474bd018080a5efeb GIT binary patch literal 200 zc$@*q05|_fNk%w1VH5xq0K^^uAV`p4h~S{W|4@M7kg)%7nBXu_pkSErAW)!ipzy@c z{{R30A^8LW0015UEC2ui02BZe000F=peK%GX`X1Ru59a$N CJz1py diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/remove.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/images/remove.gif new file mode 100644 index 0000000000000000000000000000000000000000..299c684efcd7acc388fd1ebc6c8155c2154177d5 GIT binary patch literal 180 zc${ \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/jscripts/fullpage.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/jscripts/fullpage.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullpage/jscripts/fullpage.js @@ -0,0 +1,580 @@ +// + +var defaultDocTypes = + 'XHTML 1.0 Transitional=,' + + 'XHTML 1.0 Frameset=,' + + 'XHTML 1.0 Strict=,' + + 'XHTML 1.1=,' + + 'HTML 4.01 Transitional=,' + + 'HTML 4.01 Strict=,' + + 'HTML 4.01 Frameset='; + +var defaultEncodings = + 'Western european (iso-8859-1)=iso-8859-1,' + + 'Central European (iso-8859-2)=iso-8859-2,' + + 'Unicode (UTF-8)=utf-8,' + + 'Chinese traditional (Big5)=big5,' + + 'Cyrillic (iso-8859-5)=iso-8859-5,' + + 'Japanese (iso-2022-jp)=iso-2022-jp,' + + 'Greek (iso-8859-7)=iso-8859-7,' + + 'Korean (iso-2022-kr)=iso-2022-kr,' + + 'ASCII (us-ascii)=us-ascii'; + +var defaultMediaTypes = + 'all=all,' + + 'screen=screen,' + + 'print=print,' + + 'tty=tty,' + + 'tv=tv,' + + 'projection=projection,' + + 'handheld=handheld,' + + 'braille=braille,' + + 'aural=aural'; + +var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings'; +var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px'; + +var addMenuLayer = new MCLayer("addmenu"); +var lastElementType = null; +var topDoc; + +function init() { + var f = document.forms['fullpage']; + var i, p, doctypes, encodings, mediaTypes, fonts; + var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')); + + // Setup doctype select box + doctypes = tinyMCE.getParam("fullpage_doctypes", defaultDocTypes).split(','); + for (i=0; i 1) + addSelectValue(f, 'doctypes', p[0], p[1]); + } + + // Setup fonts select box + fonts = tinyMCE.getParam("fullpage_fonts", defaultFontNames).split(';'); + for (i=0; i 1) + addSelectValue(f, 'fontface', p[0], p[1]); + } + + // Setup fontsize select box + fonts = tinyMCE.getParam("fullpage_fontsizes", defaultFontSizes).split(','); + for (i=0; i 1) { + addSelectValue(f, 'element_style_media', p[0], p[1]); + addSelectValue(f, 'element_link_media', p[0], p[1]); + } + } + + // Setup encodings select box + encodings = tinyMCE.getParam("fullpage_encodings", defaultEncodings).split(','); + for (i=0; i 1) { + addSelectValue(f, 'docencoding', p[0], p[1]); + addSelectValue(f, 'element_script_charset', p[0], p[1]); + addSelectValue(f, 'element_link_charset', p[0], p[1]); + } + } + + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); + document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color'); + //document.getElementById('hover_color_pickcontainer').innerHTML = getColorPickerHTML('hover_color_pick','hover_color'); + document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color'); + document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color'); + document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor'); + document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage'); + document.getElementById('link_href_pickcontainer').innerHTML = getBrowserHTML('link_href_browser','element_link_href','file','fullpage'); + document.getElementById('script_src_pickcontainer').innerHTML = getBrowserHTML('script_src_browser','element_script_src','file','fullpage'); + document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage'); + + // Resize some elements + if (isVisible('stylesheetbrowser')) + document.getElementById('stylesheet').style.width = '220px'; + + if (isVisible('link_href_browser')) + document.getElementById('element_link_href').style.width = '230px'; + + if (isVisible('bgimage_browser')) + document.getElementById('bgimage').style.width = '210px'; + + // Create iframe + var iframe = document.createElement('iframe'); + + iframe.id = 'tempFrame'; + iframe.style.display = 'none'; + iframe.src = tinyMCE.baseURL + "/plugins/fullpage/blank.htm"; + + document.body.appendChild(iframe); + + tinyMCEPopup.resizeToInnerSize(); +} + +function setupIframe(doc) { + var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')); + var hc = inst.fullpageTopContent; + var f = document.forms[0]; + var xmlVer, xmlEnc, docType; + var nodes, i, x, name, value, tmp, l; + + // Keep it from not loading/executing stuff + hc = hc.replace(/ + + + + +
        + +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/images/fullscreen.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/images/fullscreen.gif new file mode 100644 index 0000000000000000000000000000000000000000..66fa6d92177f171fd42883474b7dd093bd2d339a GIT binary patch literal 198 zc$@*o06G6hNk%w1VH5xq0K*LcGD>2ivBykw!ot@6bd$)Ew*2Dq{%MuzLU-VNrt;$I z{;0?PSAE;|`To-4{r~^~A^8LW000jFEC2ui02BZe000DY@X1N5y*O(ey8oUPG-PQu zh5=L~;SvlX%mSjURO>jy;xC1Q4L8xD48CAu$Z8M;}RUJf0>sOc_ z4h#giNmy{Z(DeG+E>qDAdHB(q-q8pM40A \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/langs/en.js @@ -0,0 +1,5 @@ +// UK lang variables + +tinyMCE.addToLang('',{ +fullscreen_desc : 'Toggle fullscreen mode' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/fullscreen/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('iespell');var TinyMCE_IESpellPlugin={getInfo:function(){return{longname:'IESpell (MSIE Only)',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){if(cn=="iespell"&&(tinyMCE.isMSIE&&!tinyMCE.isOpera))return tinyMCE.getButtonHTML(cn,'lang_iespell_desc','{$pluginurl}/images/iespell.gif','mceIESpell');return""},execCommand:function(editor_id,element,command,user_interface,value){if(command=="mceIESpell"){try{var ieSpell=new ActiveXObject("ieSpell.ieSpellExtension");ieSpell.CheckDocumentNode(tinyMCE.getInstanceById(editor_id).contentDocument.documentElement)}catch(e){if(e.number==-2146827859){if(confirm(tinyMCE.getLang("lang_iespell_download","",true)))window.open('http://www.iespell.com/download.php','ieSpellDownload','')}else alert("Error Loading ieSpell: Exception "+e.number)}return true}return false}};tinyMCE.addPlugin("iespell",TinyMCE_IESpellPlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js @@ -0,0 +1,58 @@ +/** + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('iespell'); + +var TinyMCE_IESpellPlugin = { + getInfo : function() { + return { + longname : 'IESpell (MSIE Only)', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + /** + * Returns the HTML contents of the iespell control. + */ + getControlHTML : function(cn) { + // Is it the iespell control and is the brower MSIE. + if (cn == "iespell" && (tinyMCE.isMSIE && !tinyMCE.isOpera)) + return tinyMCE.getButtonHTML(cn, 'lang_iespell_desc', '{$pluginurl}/images/iespell.gif', 'mceIESpell'); + + return ""; + }, + + /** + * Executes the mceIESpell command. + */ + execCommand : function(editor_id, element, command, user_interface, value) { + // Handle ieSpellCommand + if (command == "mceIESpell") { + try { + var ieSpell = new ActiveXObject("ieSpell.ieSpellExtension"); + ieSpell.CheckDocumentNode(tinyMCE.getInstanceById(editor_id).contentDocument.documentElement); + } catch (e) { + if (e.number == -2146827859) { + if (confirm(tinyMCE.getLang("lang_iespell_download", "", true))) + window.open('http://www.iespell.com/download.php', 'ieSpellDownload', ''); + } else + alert("Error Loading ieSpell: Exception " + e.number); + } + + return true; + } + + // Pass to next handler in chain + return false; + } +}; + +tinyMCE.addPlugin("iespell", TinyMCE_IESpellPlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/images/iespell.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/images/iespell.gif new file mode 100644 index 0000000000000000000000000000000000000000..a9a2891891f6c44cb58cec06e1df90154fab728a GIT binary patch literal 124 zc${fCS91 \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/langs/en.js @@ -0,0 +1,7 @@ +// UK lang variables + +tinyMCE.addToLang('',{ +iespell_desc : 'Run spell checking', +iespell_download : "ieSpell not detected. Click OK to go to download page." +}); + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/readme.txt b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/readme.txt new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/iespell/readme.txt @@ -0,0 +1,1 @@ +Check the TinyMCE documentation for details on this plugin. diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/css/inlinepopup.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/css/inlinepopup.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/css/inlinepopup.css @@ -0,0 +1,69 @@ +/* Window classes */ + +.mceWindow { + position: absolute; + left: 0; + top: 0; + border: 1px solid black; + background-color: #D4D0C8; +} + +.mceWindowHead { + background-color: #334F8D; + width: 100%; + height: 18px; + cursor: move; + overflow: hidden; +} + +.mceWindowBody { + clear: both; + background-color: white; +} + +.mceWindowStatusbar { + background-color: #D4D0C8; + height: 12px; + border-top: 1px solid black; +} + +.mceWindowTitle { + float: left; + font-family: "MS Sans Serif"; + font-size: 9pt; + font-weight: bold; + line-height: 18px; + color: white; + margin-left: 2px; + overflow: hidden; +} + +.mceWindowHeadTools { + margin-right: 2px; +} + +.mceWindowClose, .mceWindowMinimize, .mceWindowMaximize { + display: block; + float: right; + overflow: hidden; + margin-top: 2px; +} + +.mceWindowClose { + margin-left: 2px; +} + +.mceWindowMinimize { +} + +.mceWindowMaximize { +} + +.mceWindowResize { + display: block; + float: right; + overflow: hidden; + cursor: se-resize; + width: 12px; + height: 12px; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js @@ -0,0 +1,1 @@ +var TinyMCE_InlinePopupsPlugin={getInfo:function(){return{longname:'Inline Popups',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}}};tinyMCE.addPlugin("inlinepopups",TinyMCE_InlinePopupsPlugin);TinyMCE_Engine.prototype.orgOpenWindow=TinyMCE_Engine.prototype.openWindow;TinyMCE_Engine.prototype.orgCloseWindow=TinyMCE_Engine.prototype.closeWindow;TinyMCE_Engine.prototype.openWindow=function(template,args){if(args['inline']!="yes"||tinyMCE.isOpera||tinyMCE.getParam("plugins").indexOf('inlinepopups')==-1){mcWindows.selectedWindow=null;args['mce_inside_iframe']=false;this.orgOpenWindow(template,args);return}var url,resizable,scrollbars;args['mce_inside_iframe']=true;tinyMCE.windowArgs=args;if(template['file'].charAt(0)!='/'&&template['file'].indexOf('://')==-1)url=tinyMCE.baseURL+"/themes/"+tinyMCE.getParam("theme")+"/"+template['file'];else url=template['file'];if(!(width=parseInt(template['width'])))width=320;if(!(height=parseInt(template['height'])))height=200;if(!(minWidth=parseInt(template['minWidth'])))minWidth=100;if(!(minHeight=parseInt(template['minHeight'])))minHeight=100;resizable=(args&&args['resizable'])?args['resizable']:"no";scrollbars=(args&&args['scrollbars'])?args['scrollbars']:"no";height+=18;for(var name in args){if(typeof(args[name])=='function')continue;url=tinyMCE.replaceVar(url,name,escape(args[name]))}var elm=document.getElementById(this.selectedInstance.editorId+'_parent');if(tinyMCE.hasPlugin('fullscreen')&&this.selectedInstance.getData('fullscreen').enabled)pos={absLeft:0,absTop:0};else pos=tinyMCE.getAbsPosition(elm);pos.absLeft+=Math.round((elm.firstChild.clientWidth/ 2) - (width /2));pos.absTop+=Math.round((elm.firstChild.clientHeight/ 2) - (height /2));mcWindows.open(url,mcWindows.idCounter++,"modal=yes,width="+width+",height="+height+",resizable="+resizable+",scrollbars="+scrollbars+",statusbar="+resizable+",left="+pos.absLeft+",top="+pos.absTop+",minWidth="+minWidth+",minHeight="+minHeight)};TinyMCE_Engine.prototype.closeWindow=function(win){var gotit=false,n,w;for(n in mcWindows.windows){w=mcWindows.windows[n];if(typeof(w)=='function')continue;if(win.name==w.id+'_iframe'){w.close();gotit=true}}if(!gotit)this.orgCloseWindow(win);tinyMCE.selectedInstance.getWin().focus()};TinyMCE_Engine.prototype.setWindowTitle=function(win_ref,title){for(var n in mcWindows.windows){var win=mcWindows.windows[n];if(typeof(win)=='function')continue;if(win_ref.name==win.id+"_iframe")window.frames[win.id+"_iframe"].document.getElementById(win.id+'_title').innerHTML=title}};function TinyMCE_Windows(){this.settings=new Array();this.windows=new Array();this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.isGecko=navigator.userAgent.indexOf('Gecko')!=-1;this.isSafari=navigator.userAgent.indexOf('Safari')!=-1;this.isMac=navigator.userAgent.indexOf('Mac')!=-1;this.isMSIE5_0=this.isMSIE&&(navigator.userAgent.indexOf('MSIE 5.0')!=-1);this.action="none";this.selectedWindow=null;this.lastSelectedWindow=null;this.zindex=1001;this.mouseDownScreenX=0;this.mouseDownScreenY=0;this.mouseDownLayerX=0;this.mouseDownLayerY=0;this.mouseDownWidth=0;this.mouseDownHeight=0;this.idCounter=0};TinyMCE_Windows.prototype.init=function(settings){this.settings=settings;if(this.isMSIE)this.addEvent(document,"mousemove",mcWindows.eventDispatcher);else this.addEvent(window,"mousemove",mcWindows.eventDispatcher);this.addEvent(document,"mouseup",mcWindows.eventDispatcher);this.addEvent(window,"resize",mcWindows.eventDispatcher);this.addEvent(document,"scroll",mcWindows.eventDispatcher);this.doc=document};TinyMCE_Windows.prototype.getBounds=function(){if(!this.bounds){var vp=tinyMCE.getViewPort(window);var top,left,bottom,right,docEl=this.doc.documentElement;top=vp.top;left=vp.left;bottom=vp.height+top-2;right=vp.width+left-22;this.bounds=[left,top,right,bottom]}return this.bounds};TinyMCE_Windows.prototype.clampBoxPosition=function(x,y,w,h,minW,minH){var bounds=this.getBounds();x=Math.max(bounds[0],Math.min(bounds[2],x+w)-w);y=Math.max(bounds[1],Math.min(bounds[3],y+h)-h);return this.clampBoxSize(x,y,w,h,minW,minH)};TinyMCE_Windows.prototype.clampBoxSize=function(x,y,w,h,minW,minH){var bounds=this.getBounds();return[x,y,Math.max(minW,Math.min(bounds[2],x+w)-x),Math.max(minH,Math.min(bounds[3],y+h)-y)]};TinyMCE_Windows.prototype.getParam=function(name,default_value){var value=null;value=(typeof(this.settings[name])=="undefined")?default_value:this.settings[name];if(value=="true"||value=="false")return(value=="true");return value};TinyMCE_Windows.prototype.eventDispatcher=function(e){e=typeof(e)=="undefined"?window.event:e;if(mcWindows.selectedWindow==null)return;if(mcWindows.isGecko&&e.type=="mousedown"){var elm=e.currentTarget;for(var n in mcWindows.windows){var win=mcWindows.windows[n];if(win.headElement==elm||win.resizeElement==elm){win.focus();break}}}switch(e.type){case"mousemove":mcWindows.selectedWindow.onMouseMove(e);break;case"mouseup":mcWindows.selectedWindow.onMouseUp(e);break;case"mousedown":mcWindows.selectedWindow.onMouseDown(e);break;case"focus":mcWindows.selectedWindow.onFocus(e);break;case"scroll":case"resize":if(mcWindows.clampUpdateTimeout)clearTimeout(mcWindows.clampUpdateTimeout);mcWindows.clampEventType=e.type;mcWindows.clampUpdateTimeout=setTimeout(function(){mcWindows.updateClamping()},100);break}};TinyMCE_Windows.prototype.updateClamping=function(){var clamp,oversize,etype=mcWindows.clampEventType;this.bounds=null;this.clampUpdateTimeout=null;for(var n in this.windows){win=this.windows[n];if(typeof(win)=='function'||!win.winElement)continue;clamp=mcWindows.clampBoxPosition(win.left,win.top,win.winElement.scrollWidth,win.winElement.scrollHeight,win.features.minWidth,win.features.minHeight);oversize=(clamp[2]!=win.winElement.scrollWidth||clamp[3]!=win.winElement.scrollHeight)?true:false;if(!oversize||win.features.resizable=="yes"||etype!="scroll")win.moveTo(clamp[0],clamp[1]);if(oversize&&win.features.resizable=="yes")win.resizeTo(clamp[2],clamp[3])}};TinyMCE_Windows.prototype.addEvent=function(obj,name,handler){if(this.isMSIE)obj.attachEvent("on"+name,handler);else obj.addEventListener(name,handler,false)};TinyMCE_Windows.prototype.cancelEvent=function(e){if(this.isMSIE){e.returnValue=false;e.cancelBubble=true}else e.preventDefault()};TinyMCE_Windows.prototype.parseFeatures=function(opts){opts=opts.toLowerCase();opts=opts.replace(/;/g,",");opts=opts.replace(/[^0-9a-z=,]/g,"");var optionChunks=opts.split(',');var options=new Array();options['left']="10";options['top']="10";options['width']="300";options['height']="300";options['minwidth']="100";options['minheight']="100";options['resizable']="yes";options['minimizable']="yes";options['maximizable']="yes";options['close']="yes";options['movable']="yes";options['statusbar']="yes";options['scrollbars']="auto";options['modal']="no";if(opts=="")return options;for(var i=0;i';html+='';html+='';html+='Wrapper iframe';html+='';html+='';html+='';html+='';html+='
        ';html+='
        ';html+='
        ';if(features['resizable']=="yes"&&features['maximizable']=="yes")html+=' ';html+='
        ';html+='
        ';html+='
        ';if(features['statusbar']=="yes"){html+='
        ';if(features['resizable']=="yes"){if(this.isGecko)html+='
        ';else html+='
        '}html+='
        '}html+='
        ';html+='';html+='';this.createFloatingIFrame(id,features['left'],features['top'],features['width'],features['height'],html)};TinyMCE_Windows.prototype.setDocumentLock=function(state){var elm=document.getElementById('mcWindowEventBlocker');if(state){if(elm==null){elm=document.createElement("div");elm.id="mcWindowEventBlocker";elm.style.position="absolute";elm.style.left="0";elm.style.top="0";document.body.appendChild(elm)}elm.style.display="none";var imgPath=this.getParam("images_path");var width=document.body.clientWidth;var height=document.body.clientHeight;elm.style.width=width;elm.style.height=height;elm.innerHTML='';elm.style.zIndex=mcWindows.zindex-1;elm.style.display="block"}else if(elm!=null){if(mcWindows.windows.length==0)elm.parentNode.removeChild(elm);else elm.style.zIndex=mcWindows.zindex-1}};TinyMCE_Windows.prototype.onLoad=function(name){var win=mcWindows.windows[name];var id="mcWindow_"+name;var wrapperIframe=window.frames[id+"_iframe"].frames[0];var wrapperDoc=window.frames[id+"_iframe"].document;var doc=window.frames[id+"_iframe"].document;var winDiv=document.getElementById("mcWindow_"+name+"_div");var realIframe=window.frames[id+"_iframe"].frames[0];win.id="mcWindow_"+name;win.winElement=winDiv;win.bodyElement=doc.getElementById(id+'_body');win.iframeElement=doc.getElementById(id+'_iframe');win.headElement=doc.getElementById(id+'_head');win.titleElement=doc.getElementById(id+'_title');win.resizeElement=doc.getElementById(id+'_resize');win.containerElement=doc.getElementById(id+'_container');win.left=win.features['left'];win.top=win.features['top'];win.frame=window.frames[id+'_iframe'].frames[0];win.wrapperFrame=window.frames[id+'_iframe'];win.wrapperIFrameElement=document.getElementById(id+"_iframe");mcWindows.addEvent(win.headElement,"mousedown",mcWindows.eventDispatcher);if(win.resizeElement!=null)mcWindows.addEvent(win.resizeElement,"mousedown",mcWindows.eventDispatcher);if(mcWindows.isMSIE){mcWindows.addEvent(realIframe.document,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(realIframe.document,"mouseup",mcWindows.eventDispatcher)}else{mcWindows.addEvent(realIframe,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(realIframe,"mouseup",mcWindows.eventDispatcher);mcWindows.addEvent(realIframe,"focus",mcWindows.eventDispatcher)}for(var i=0;i'; + html += ''; + html += ''; + + html += '
        '; + html += '
        '; + html += '
        '; + if (features['resizable'] == "yes" && features['maximizable'] == "yes") + html += ' '; + // html += ' '; + html += '
        '; + html += '
        '; + html += '
        '; + + if (features['statusbar'] == "yes") { + html += '
        '; + + if (features['resizable'] == "yes") { + if (this.isGecko) + html += '
        '; + else + html += '
        '; + } + + html += '
        '; + } + + html += '
        '; + + html += ''; + html += ''; + + // Create iframe + this.createFloatingIFrame(id, features['left'], features['top'], features['width'], features['height'], html); +}; + +// Blocks the document events by placing a image over the whole document +TinyMCE_Windows.prototype.setDocumentLock = function(state) { + var elm = document.getElementById('mcWindowEventBlocker'); + + if (state) { + if (elm == null) { + elm = document.createElement("div"); + + elm.id = "mcWindowEventBlocker"; + elm.style.position = "absolute"; + elm.style.left = "0"; + elm.style.top = "0"; + + document.body.appendChild(elm); + } + + elm.style.display = "none"; + + var imgPath = this.getParam("images_path"); + var width = document.body.clientWidth; + var height = document.body.clientHeight; + + elm.style.width = width; + elm.style.height = height; + elm.innerHTML = ''; + + elm.style.zIndex = mcWindows.zindex-1; + elm.style.display = "block"; + } else if (elm != null) { + if (mcWindows.windows.length == 0) + elm.parentNode.removeChild(elm); + else + elm.style.zIndex = mcWindows.zindex-1; + } +}; + +// Gets called when wrapper iframe is initialized +TinyMCE_Windows.prototype.onLoad = function(name) { + var win = mcWindows.windows[name]; + var id = "mcWindow_" + name; + var wrapperIframe = window.frames[id + "_iframe"].frames[0]; + var wrapperDoc = window.frames[id + "_iframe"].document; + var doc = window.frames[id + "_iframe"].document; + var winDiv = document.getElementById("mcWindow_" + name + "_div"); + var realIframe = window.frames[id + "_iframe"].frames[0]; + + // Set window data + win.id = "mcWindow_" + name; + win.winElement = winDiv; + win.bodyElement = doc.getElementById(id + '_body'); + win.iframeElement = doc.getElementById(id + '_iframe'); + win.headElement = doc.getElementById(id + '_head'); + win.titleElement = doc.getElementById(id + '_title'); + win.resizeElement = doc.getElementById(id + '_resize'); + win.containerElement = doc.getElementById(id + '_container'); + win.left = win.features['left']; + win.top = win.features['top']; + win.frame = window.frames[id + '_iframe'].frames[0]; + win.wrapperFrame = window.frames[id + '_iframe']; + win.wrapperIFrameElement = document.getElementById(id + "_iframe"); + + // Add event handlers + mcWindows.addEvent(win.headElement, "mousedown", mcWindows.eventDispatcher); + + if (win.resizeElement != null) + mcWindows.addEvent(win.resizeElement, "mousedown", mcWindows.eventDispatcher); + + if (mcWindows.isMSIE) { + mcWindows.addEvent(realIframe.document, "mousemove", mcWindows.eventDispatcher); + mcWindows.addEvent(realIframe.document, "mouseup", mcWindows.eventDispatcher); + } else { + mcWindows.addEvent(realIframe, "mousemove", mcWindows.eventDispatcher); + mcWindows.addEvent(realIframe, "mouseup", mcWindows.eventDispatcher); + mcWindows.addEvent(realIframe, "focus", mcWindows.eventDispatcher); + } + + for (var i=0; i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/images/spacer.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/images/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc2560981ee1caca400e225e48d282106f907f2d GIT binary patch literal 43 tc${utpmgiAQ=WGCKpBqYXHhR2MquK diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/images/window_close.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/images/window_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..3469e5aea1d1594aded9b9fe41dbf66f7db66e5d GIT binary patch literal 110 zc${xn2j}d-BDCH zrFn9(MU=$x8S~0K6$6;0pU!>3Q5XDcQxW@o)97oFProTKCVJ?IF`rmc)ak>(U=0A8 Cq#>dJ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/images/window_maximize.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/images/window_maximize.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcae73e907b68f2413f3e8b8682d3cd9a05454b1 GIT binary patch literal 111 zc${xm`yBp-7!)) zrFpVjFxm`yEq-7!)) zrFn9;;_IrV_a?GdN|@J43d|7PwJwo;duGkF$u}OY=?b#y5>QZ*==WHXa5BegIwylQ E0O}|s3IG5A diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/images/window_resize.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/images/window_resize.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c402d0b40773a5c25c5d6b1821bd51636408e0b GIT binary patch literal 74 zc${0qr&(y# Yhp@xt>2igkKT_RVr-jd4#mZm}063Tzk^lez diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/jscripts/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/jscripts/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/jscripts/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/jscripts/mcwindows.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/jscripts/mcwindows.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/inlinepopups/jscripts/mcwindows.js @@ -0,0 +1,453 @@ +/** + * $Id: mcwindows.js 18 2006-06-29 14:11:23Z spocke $ + * + * Moxiecode DHTML Windows script. + * + * @author Moxiecode + * @copyright Copyright 2004, Moxiecode Systems AB, All rights reserved. + */ + +// Windows handler +function MCWindows() { + this.settings = new Array(); + this.windows = new Array(); + this.isMSIE = (navigator.appName == "Microsoft Internet Explorer"); + this.isGecko = navigator.userAgent.indexOf('Gecko') != -1; + this.isSafari = navigator.userAgent.indexOf('Safari') != -1; + this.isMac = navigator.userAgent.indexOf('Mac') != -1; + this.isMSIE5_0 = this.isMSIE && (navigator.userAgent.indexOf('MSIE 5.0') != -1); + this.action = "none"; + this.selectedWindow = null; + this.zindex = 100; + this.mouseDownScreenX = 0; + this.mouseDownScreenY = 0; + this.mouseDownLayerX = 0; + this.mouseDownLayerY = 0; + this.mouseDownWidth = 0; + this.mouseDownHeight = 0; +}; + +MCWindows.prototype.init = function(settings) { + this.settings = settings; + + if (this.isMSIE) + this.addEvent(document, "mousemove", mcWindows.eventDispatcher); + else + this.addEvent(window, "mousemove", mcWindows.eventDispatcher); + + this.addEvent(document, "mouseup", mcWindows.eventDispatcher); +}; + +MCWindows.prototype.getParam = function(name, default_value) { + var value = null; + + value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name]; + + // Fix bool values + if (value == "true" || value == "false") + return (value == "true"); + + return value; +}; + +MCWindows.prototype.eventDispatcher = function(e) { + e = typeof(e) == "undefined" ? window.event : e; + + if (mcWindows.selectedWindow == null) + return; + + // Switch focus + if (mcWindows.isGecko && e.type == "mousedown") { + var elm = e.currentTarget; + + for (var n in mcWindows.windows) { + var win = mcWindows.windows[n]; + if (typeof(win) == 'function') + continue; + + if (win.headElement == elm || win.resizeElement == elm) { + win.focus(); + break; + } + } + } + + switch (e.type) { + case "mousemove": + mcWindows.selectedWindow.onMouseMove(e); + break; + + case "mouseup": + mcWindows.selectedWindow.onMouseUp(e); + break; + + case "mousedown": + mcWindows.selectedWindow.onMouseDown(e); + break; + + case "focus": + mcWindows.selectedWindow.onFocus(e); + break; + } +} + +MCWindows.prototype.addEvent = function(obj, name, handler) { + if (this.isMSIE) + obj.attachEvent("on" + name, handler); + else + obj.addEventListener(name, handler, true); +}; + +MCWindows.prototype.cancelEvent = function(e) { + if (this.isMSIE) { + e.returnValue = false; + e.cancelBubble = true; + } else + e.preventDefault(); +}; + +MCWindows.prototype.parseFeatures = function(opts) { + // Cleanup the options + opts = opts.toLowerCase(); + opts = opts.replace(/;/g, ","); + opts = opts.replace(/[^0-9a-z=,]/g, ""); + + var optionChunks = opts.split(','); + var options = new Array(); + + options['left'] = 10; + options['top'] = 10; + options['width'] = 300; + options['height'] = 300; + options['resizable'] = true; + options['minimizable'] = true; + options['maximizable'] = true; + options['close'] = true; + options['movable'] = true; + + if (opts == "") + return options; + + for (var i=0; i'; + + html += '
        '; + html += '
        '; + html += '
        '; +// html += ' '; +// html += ' '; + html += '
        '; + html += '
        '; + html += '
        '; + html += '
        '; + html += '
        '; + html += '
        '; + html += '
        '; + + html += ''; + html += ''; + + // Create iframe + this.createFloatingIFrame(id, features['left'], features['top'], features['width'], features['height'], html); +}; + +// Gets called when wrapper iframe is initialized +MCWindows.prototype.onLoad = function(name) { + var win = mcWindows.windows[name]; + var id = "mcWindow_" + name; + var wrapperIframe = window.frames[id + "_iframe"].frames[0]; + var wrapperDoc = window.frames[id + "_iframe"].document; + var doc = window.frames[id + "_iframe"].document; + var winDiv = document.getElementById("mcWindow_" + name + "_div"); + var realIframe = window.frames[id + "_iframe"].frames[0]; + + // Set window data + win.id = "mcWindow_" + name + "_iframe"; + win.winElement = winDiv; + win.bodyElement = doc.getElementById(id + '_body'); + win.iframeElement = doc.getElementById(id + '_iframe'); + win.headElement = doc.getElementById(id + '_head'); + win.titleElement = doc.getElementById(id + '_title'); + win.resizeElement = doc.getElementById(id + '_resize'); + win.containerElement = doc.getElementById(id + '_container'); + win.left = win.features['left']; + win.top = win.features['top']; + win.frame = window.frames[id + '_iframe'].frames[0]; + win.wrapperFrame = window.frames[id + '_iframe']; + win.wrapperIFrameElement = document.getElementById(id + "_iframe"); + + // Add event handlers + mcWindows.addEvent(win.headElement, "mousedown", mcWindows.eventDispatcher); + mcWindows.addEvent(win.resizeElement, "mousedown", mcWindows.eventDispatcher); + + if (mcWindows.isMSIE) { + mcWindows.addEvent(realIframe.document, "mousemove", mcWindows.eventDispatcher); + mcWindows.addEvent(realIframe.document, "mouseup", mcWindows.eventDispatcher); + } else { + mcWindows.addEvent(realIframe, "mousemove", mcWindows.eventDispatcher); + mcWindows.addEvent(realIframe, "mouseup", mcWindows.eventDispatcher); + mcWindows.addEvent(realIframe, "focus", mcWindows.eventDispatcher); + } + + for (var i=0; i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/images/insertdate.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/images/insertdate.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ad424d3d19b07b05a9a5e6828325dba602bf0ac GIT binary patch literal 287 zc${B%FNo-)U@-!h1l*#K+sgxG=KdOCpWJH7oK&k{F0QClRxK; zUGY6FBdaM3*DEP01;r*^y7l_cpMSIV{WJ1PdiCl@R#_1PZlL&+g^__loIwY~0olpG zI_H6EUrOe@j8*eIZ|faCa3<5}?&aM&K5zBbh38z8mQ)dHIns9dqlddEvp~zqjtd=2 z6+5(4nU*v#O%-71TA?fuz@f#qDezH71dm{g^TG-To@_gNi{_VYXFskV_^UQ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/images/inserttime.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/images/inserttime.gif new file mode 100644 index 0000000000000000000000000000000000000000..6dad3b36d0a89c68b8410a2c11e00b077dc5ad8a GIT binary patch literal 239 zc${oc@(y`xu$f;;3D10?!PKsDbwz}# z0GF!Jh9z9rjyzK6P~d2Ie>q9gLV!(w)k1+AXVZ^~JmpsSm(IrTslm?7#=^qJ!_TWD T%*xFm#@(Vnea6h0iVW5O&8Jxr diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/langs/en.js @@ -0,0 +1,12 @@ +// UK lang variables + +tinyMCE.addToLang('',{ +insertdate_def_fmt : '%Y-%m-%d', +inserttime_def_fmt : '%H:%M:%S', +insertdate_desc : 'Insert date', +inserttime_desc : 'Insert time', +inserttime_months_long : new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"), +inserttime_months_short : new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"), +inserttime_day_long : new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"), +inserttime_day_short : new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun") +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/insertdatetime/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('layer');var TinyMCE_LayerPlugin={getInfo:function(){return{longname:'Layer',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(tinyMCE.isMSIE&&!tinyMCE.isOpera)inst.getDoc().execCommand('2D-Position')},handleEvent:function(e){var inst=tinyMCE.selectedInstance;var w=inst.getWin(),le=inst._lastStyleElm,e;if(tinyMCE.isGecko){e=this._getParentLayer(inst.getFocusElement());if(e){if(!inst._lastStyleElm){e.style.overflow='auto';inst._lastStyleElm=e}}else if(le){le=inst._lastStyleElm;le.style.width=le.scrollWidth+'px';le.style.height=le.scrollHeight+'px';le.style.overflow='';inst._lastStyleElm=null}}return true},handleVisualAid:function(el,deep,state,inst){var nl=inst.getDoc().getElementsByTagName("div"),i;for(i=0;i-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci]}else{if(z[ci]>0)nl[ci].style.zIndex=z[ci]-1}}else{for(i=0;iz[ci]){fi=i;break}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci]}else nl[ci].style.zIndex=z[ci]+1}inst.repaint()},_getParentLayer:function(n){return tinyMCE.getParentNode(n,function(n){return n.nodeType==1&&new RegExp('absolute|relative|static','gi').test(n.style.position)})},_insertLayer:function(){var inst=tinyMCE.selectedInstance;var e=tinyMCE.getParentElement(inst.getFocusElement());var p=tinyMCE.getAbsPosition(e);var d=inst.getDoc();var ne=d.createElement('div');var h=inst.selection.getSelectedHTML();ne.style.position='absolute';ne.style.left=p.absLeft+'px';ne.style.top=(p.absTop>20?p.absTop:20)+'px';ne.style.width='100px';ne.style.height='100px';ne.className='mceVisualAid';if(!h)h=tinyMCE.getLang('lang_layer_content');ne.innerHTML=h;d.body.appendChild(ne)},_toggleAbsolute:function(){var inst=tinyMCE.selectedInstance;var le=this._getParentLayer(inst.getFocusElement());if(le==null)le=tinyMCE.getParentElement(inst.getFocusElement(),'div,p,img');if(le){if(le.style.position.toLowerCase()=="absolute"){le.style.position="";le.style.left="";le.style.top=""}else{le.style.position="absolute";if(le.style.left=="")le.style.left=20+'px';if(le.style.top=="")le.style.top=20+'px';if(le.style.width=="")le.style.width=le.width?(le.width+'px'):'100px';if(le.style.height=="")le.style.height=le.height?(le.height+'px'):'100px';tinyMCE.handleVisualAid(inst.getBody(),true,inst.visualAid,inst)}inst.repaint();tinyMCE.triggerNodeChange()}}};tinyMCE.addPlugin("layer",TinyMCE_LayerPlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js @@ -0,0 +1,248 @@ +/** + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('layer'); + +var TinyMCE_LayerPlugin = { + getInfo : function() { + return { + longname : 'Layer', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + initInstance : function(inst) { + if (tinyMCE.isMSIE && !tinyMCE.isOpera) + inst.getDoc().execCommand('2D-Position'); + }, + + handleEvent : function(e) { + var inst = tinyMCE.selectedInstance; + var w = inst.getWin(), le = inst._lastStyleElm, e; + + if (tinyMCE.isGecko) { + e = this._getParentLayer(inst.getFocusElement()); + + if (e) { + if (!inst._lastStyleElm) { + e.style.overflow = 'auto'; + inst._lastStyleElm = e; + } + } else if (le) { + le = inst._lastStyleElm; + le.style.width = le.scrollWidth + 'px'; + le.style.height = le.scrollHeight + 'px'; + le.style.overflow = ''; + inst._lastStyleElm = null; + } + } + + return true; + }, + + handleVisualAid : function(el, deep, state, inst) { + var nl = inst.getDoc().getElementsByTagName("div"), i; + + for (i=0; i -1) { + nl[ci].style.zIndex = z[fi]; + nl[fi].style.zIndex = z[ci]; + } else { + if (z[ci] > 0) + nl[ci].style.zIndex = z[ci] - 1; + } + } else { + // Move forward + + // Try find a higher one + for (i=0; i z[ci]) { + fi = i; + break; + } + } + + if (fi > -1) { + nl[ci].style.zIndex = z[fi]; + nl[fi].style.zIndex = z[ci]; + } else + nl[ci].style.zIndex = z[ci] + 1; + } + + inst.repaint(); + }, + + _getParentLayer : function(n) { + return tinyMCE.getParentNode(n, function(n) { + return n.nodeType == 1 && new RegExp('absolute|relative|static', 'gi').test(n.style.position); + }); + }, + + _insertLayer : function() { + var inst = tinyMCE.selectedInstance; + var e = tinyMCE.getParentElement(inst.getFocusElement()); + var p = tinyMCE.getAbsPosition(e); + var d = inst.getDoc(); + var ne = d.createElement('div'); + var h = inst.selection.getSelectedHTML(); + + // Move div + ne.style.position = 'absolute'; + ne.style.left = p.absLeft + 'px'; + ne.style.top = (p.absTop > 20 ? p.absTop : 20) + 'px'; + ne.style.width = '100px'; + ne.style.height = '100px'; + ne.className = 'mceVisualAid'; + + if (!h) + h = tinyMCE.getLang('lang_layer_content'); + + ne.innerHTML = h; + + // Add it + d.body.appendChild(ne); + }, + + _toggleAbsolute : function() { + var inst = tinyMCE.selectedInstance; + var le = this._getParentLayer(inst.getFocusElement()); + + if (le == null) + le = tinyMCE.getParentElement(inst.getFocusElement(), 'div,p,img'); + + if (le) { + if (le.style.position.toLowerCase() == "absolute") { + le.style.position = ""; + le.style.left = ""; + le.style.top = ""; + } else { + le.style.position = "absolute"; + + if (le.style.left == "") + le.style.left = 20 + 'px'; + + if (le.style.top == "") + le.style.top = 20 + 'px'; + + if (le.style.width == "") + le.style.width = le.width ? (le.width + 'px') : '100px'; + + if (le.style.height == "") + le.style.height = le.height ? (le.height + 'px') : '100px'; + + tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst); + } + + inst.repaint(); + tinyMCE.triggerNodeChange(); + } + } +}; + +tinyMCE.addPlugin("layer", TinyMCE_LayerPlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/absolute.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/absolute.gif new file mode 100644 index 0000000000000000000000000000000000000000..72cffddc3246c84e1e93ced3f36539b2c6b5a834 GIT binary patch literal 209 zc${zOtII&{KjT1M1 z1Qx9~&)gH)ez{}Ci5o9|y!i2hk&zLoi-8EB_>+Z^fkBu-2gCu{$-wIOK&3Awb6&=( zbvjyGpK(t%(z#o4*URm`Jm2vyaSbuij)jT>odO(8Y}qec9E5nUDLQQ6+YqIfvcW?n bg0EHSVBMT>KDNadHEyK;*i$FZ#9$2oER0G` diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/backward.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/backward.gif new file mode 100644 index 0000000000000000000000000000000000000000..466b1586561bb96767cd6bd4e40dc525ac9c642b GIT binary patch literal 360 zc${L{=CvJS$mfSI8 zdTFTJ_fHqzY_nf6qvQL#4Lf)4(6I3Nbg}UN|Njis28usf7#SE;7<51!ke?XXS{)`8 zc<4y=pIB0KQb$j0e#VuA01a{331TV?JzS^GZ?l#XJm6_KJ;zP?XzY8B;6nMM43$ca z4Hi(@~S>H@PK0ATZ$5 z+2ENoW^7p5Vq|QXQ`z4E0<+6IruNNP@nKu?iWNI{_eq{Oal%wfvSY^d@1HJ|hPvsB zi|^dIW5tY)@9#EfSonOpSor_{e+JqB#h)yU3=B#PIv@_nPYi6$4igJJbfo%EEGasv zVjGh&m;v0A0;7vH+Gg( z#p)U^aamb~<|^iiOng0}eXg8oY-~((#ilSaPIuvC<=~L!;^LE#k!9pr>?zo@kVjyX ZhtT>B0+Ku3`4tWyIpBNz#0f_RYXIrrYN!AJ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/insert_layer.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/insert_layer.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc29af07663334e74e4ebe5b076302db2bc03ec2 GIT binary patch literal 264 zc${$Ag552>}rWAAbCQ@Zy7k zM}oAW`+qP{{K>+|z#z|{!vF*zI~iD8AE@`GWX{W2H7_=N+j{G5T}C?IuPx38A6U|u z?xDkHsMfl11t*7*+QUo98C(|2j&8bngF_%9s5^o;=NuCQqlOg!>F3N06B4?)-lxeN zaNs$lQXwT3%T!d$BG91B8WY#f!XhNrU0%$=!pSMlEFvH*I8|3vW~q$svZZBZ@@v*; MZ`im=U6H{W01ozf?f?J) diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/insertlayer.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/insertlayer.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc29af07663334e74e4ebe5b076302db2bc03ec2 GIT binary patch literal 264 zc${$Ag552>}rWAAbCQ@Zy7k zM}oAW`+qP{{K>+|z#z|{!vF*zI~iD8AE@`GWX{W2H7_=N+j{G5T}C?IuPx38A6U|u z?xDkHsMfl11t*7*+QUo98C(|2j&8bngF_%9s5^o;=NuCQqlOg!>F3N06B4?)-lxeN zaNs$lQXwT3%T!d$BG91B8WY#f!XhNrU0%$=!pSMlEFvH*I8|3vW~q$svZZBZ@@v*; MZ`im=U6H{W01ozf?f?J) diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/movebackward.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/images/movebackward.gif new file mode 100644 index 0000000000000000000000000000000000000000..466b1586561bb96767cd6bd4e40dc525ac9c642b GIT binary patch literal 360 zc${L{=CvJS$mfSI8 zdTFTJ_fHqzY_nf6qvQL#4Lf)4(6I3Nbg}UN|Njis28usf7#SE;7<51!ke?XXS{)`8 zc<4y=pIB0KQb$j0e#VuA01a{331TV?JzS^GZ?l#XJm6_KJ;zP?XzY8B;6nMM43$ca z4Hi(@~S>H@PK0ATZ$5 z+2ENoW^7p5Vq|QXQ`z4E0<+6IruNNP@nKu?iWNI{_eq{Oal%wfvSY^d@1HJ|hPvsB zi|^dIW5tY)@9#EfSonOpSor_{e+JqB#h)yU3=B#PIv@_nPYi6$4igJJbfo%EEGasv zVjGh&m;v0A0;7vH+Gg( z#p)U^aamb~<|^iiOng0}eXg8oY-~((#ilSaPIuvC<=~L!;^LE#k!9pr>?zo@kVjyX ZhtT>B0+Ku3`4tWyIpBNz#0f_RYXIrrYN!AJ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/langs/en.js @@ -0,0 +1,9 @@ +// UK lang variables + +tinyMCE.addToLang('layer',{ +insertlayer_desc : 'Insert new layer', +forward_desc : 'Move forward', +backward_desc : 'Move backward', +absolute_desc : 'Toggle absolute positioning', +content : 'New layer...' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/layer/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/css/content.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/css/content.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/css/content.css @@ -0,0 +1,26 @@ +.mceItemFlash, .mceItemShockWave, .mceItemQuickTime, .mceItemWindowsMedia, .mceItemRealMedia { + border: 1px dotted #cc0000; + background-position: center; + background-repeat: no-repeat; + background-color: #ffffcc; +} + +.mceItemShockWave { + background-image: url('../images/shockwave.gif'); +} + +.mceItemFlash { + background-image: url('../images/flash.gif'); +} + +.mceItemQuickTime { + background-image: url('../images/quicktime.gif'); +} + +.mceItemWindowsMedia { + background-image: url('../images/windowsmedia.gif'); +} + +.mceItemRealMedia { + background-image: url('../images/realmedia.gif'); +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/css/media.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/css/media.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/css/media.css @@ -0,0 +1,68 @@ +#id, #name, #hspace, #vspace, #class_name, #align { + width: 100px; +} + +#hspace, #vspace { + width: 50px; +} + +#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { + width: 100px; +} + +#flash_base, #flash_flashvars { + width: 240px; +} + +#width, #height { + width: 40px; +} + +#src, #media_type { + width: 250px; +} + +#class { + width: 120px; +} + +#prev { + margin: 0; + border: 1px solid black; + width: 99%; + height: 230px; + overflow: auto; +} + +.panel_wrapper div.current { + height: 390px; + overflow: auto; +} + +#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { + display: none; +} + +.mceAddSelectValue { + background-color: #DDDDDD; +} + +#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { + width: 70px; +} + +#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { + width: 70px; +} + +#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { + width: 70px; +} + +#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { + width: 90px; +} + +#qt_qtsrc { + width: 200px; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('media');var TinyMCE_MediaPlugin={getInfo:function(){return{longname:'Media',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(inst.hasPlugin('flash')&&!tinyMCE.flashWarn){alert('Flash plugin is deprecated and should not be used together with the media plugin.');tinyMCE.flashWarn=true}if(!tinyMCE.settings['media_skip_plugin_css'])tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/media/css/content.css")},getControlHTML:function(cn){switch(cn){case"media":return tinyMCE.getButtonHTML(cn,'lang_media_desc','{$pluginurl}/images/media.gif','mceMedia')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceMedia":tinyMCE.openWindow({file:'../../plugins/media/media.htm',width:430+tinyMCE.getLang('lang_media_delta_width',0),height:470+tinyMCE.getLang('lang_media_delta_height',0)},{editor_id:editor_id,inline:"yes"});return true}return false},cleanup:function(type,content,inst){var nl,img,i,ne,d,s,ci;switch(type){case"insert_to_editor":img=tinyMCE.getParam("theme_href")+'/images/spacer.gif';content=content.replace(/]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi,'');content=content.replace(/]*)>/gi,'
        ');content=content.replace(/]*)>/gi,'
        ');content=content.replace(/<\/(object|embed)([^>]*)>/gi,'
        ');content=content.replace(/]*)>/gi,'
        ');content=content.replace(new RegExp('\\/ class="mceItemParam"><\\/div>','gi'),'class="mceItemParam">
        ');break;case"insert_to_editor_dom":d=inst.getDoc();nl=content.getElementsByTagName("img");for(i=0;i',startPos);attribs=TinyMCE_MediaPlugin._parseAttributes(content.substring(startPos+4,endPos));if(!/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(attribs['class']))continue;endPos+=2;at=attribs['title'];if(at){at=at.replace(/&(#39|apos);/g,"'");at=at.replace(/&#quot;/g,'"');try{pl=eval('x={'+at+'};')}catch(ex){pl={}}}if(!tinyMCE.getParam('media_use_script',false)){switch(attribs['class']){case'mceItemFlash':ci='d27cdb6e-ae6d-11cf-96b8-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='application/x-shockwave-flash';break;case'mceItemShockWave':ci='166B1BCA-3F9C-11CF-8075-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';mt='application/x-director';break;case'mceItemWindowsMedia':ci=tinyMCE.getParam('media_wmp6_compatible')?'05589FA1-C356-11CE-BF01-00AA0055595A':'6BF52A52-394A-11D3-B153-00C04F79FAA6';cb='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';mt='application/x-mplayer2';break;case'mceItemQuickTime':ci='02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';cb='http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';mt='video/quicktime';break;case'mceItemRealMedia':ci='CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='audio/x-pn-realaudio-plugin';break}pl.src=tinyMCE.convertURL(pl.src,null,true);embedHTML=TinyMCE_MediaPlugin._getEmbed(ci,cb,mt,pl,attribs)}else{switch(attribs['class']){case'mceItemFlash':s='writeFlash';break;case'mceItemShockWave':s='writeShockWave';break;case'mceItemWindowsMedia':s='writeWindowsMedia';break;case'mceItemQuickTime':s='writeQuickTime';break;case'mceItemRealMedia':s='writeRealMedia';break}if(attribs.width)at=at.replace(/width:[^0-9]?[0-9]+%?[^0-9]?/g,"width:'"+attribs.width+"'");if(attribs.height)at=at.replace(/height:[^0-9]?[0-9]+%?[^0-9]?/g,"height:'"+attribs.height+"'");pl.src=tinyMCE.convertURL(pl.src,null,true);at=at.replace(new RegExp("src:'[^']*'","g"),"src:'"+pl.src+"'");embedHTML=''}chunkBefore=content.substring(0,startPos);chunkAfter=content.substring(endPos);content=chunkBefore+embedHTML+chunkAfter}break}return content},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node==null)return;do{if(node.nodeName=="IMG"&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(node,'class'))){tinyMCE.switchClass(editor_id+'_media','mceButtonSelected');return true}}while((node=node.parentNode));tinyMCE.switchClass(editor_id+'_media','mceButtonNormal');return true},_createImgFromEmbed:function(n,d,cl){var ne,at,i,ti='',an;ne=d.createElement('img');ne.src=tinyMCE.getParam("theme_href")+'/images/spacer.gif';ne.width=tinyMCE.getAttrib(n,'width');ne.height=tinyMCE.getAttrib(n,'height');ne.className=cl;at=n.attributes;for(i=0;i0?ti.substring(0,ti.length-1):ti;ne.title=ti;n.parentNode.replaceChild(ne,n)},_createImg:function(cl,d,n){var i,nl,ti="",an,av,al=new Array();ne=d.createElement('img');ne.src=tinyMCE.getParam("theme_href")+'/images/spacer.gif';ne.width=tinyMCE.getAttrib(n,'width');ne.height=tinyMCE.getAttrib(n,'height');ne.className=cl;al.id=tinyMCE.getAttrib(n,'id');al.name=tinyMCE.getAttrib(n,'name');al.width=tinyMCE.getAttrib(n,'width');al.height=tinyMCE.getAttrib(n,'height');al.bgcolor=tinyMCE.getAttrib(n,'bgcolor');al.align=tinyMCE.getAttrib(n,'align');al.class_name=tinyMCE.getAttrib(n,'mce_class');nl=n.getElementsByTagName('div');for(i=0;i0?ti.substring(0,ti.length-1):ti;ne.title=ti;return ne},_getEmbed:function(cls,cb,mt,p,at){var h='',n;p.width=at.width?at.width:p.width;p.height=at.height?at.height:p.height;h+='';if(n=='src'&&p[n].indexOf('://')!=-1&&mt=='application/x-mplayer2')h+=''}}h+=']*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, ''); + content = content.replace(/]*)>/gi, '
        '); + content = content.replace(/]*)>/gi, '
        '); + content = content.replace(/<\/(object|embed)([^>]*)>/gi, '
        '); + content = content.replace(/]*)>/gi, '
        '); + content = content.replace(new RegExp('\\/ class="mceItemParam"><\\/div>', 'gi'), 'class="mceItemParam">
        '); + break; + + case "insert_to_editor_dom": + d = inst.getDoc(); + nl = content.getElementsByTagName("img"); + for (i=0; i', startPos); + attribs = TinyMCE_MediaPlugin._parseAttributes(content.substring(startPos + 4, endPos)); + + // Is not flash, skip it + if (!/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(attribs['class'])) + continue; + + endPos += 2; + + // Parse attributes + at = attribs['title']; + if (at) { + at = at.replace(/&(#39|apos);/g, "'"); + at = at.replace(/&#quot;/g, '"'); + + try { + pl = eval('x={' + at + '};'); + } catch (ex) { + pl = {}; + } + } + + // Use object/embed + if (!tinyMCE.getParam('media_use_script', false)) { + switch (attribs['class']) { + case 'mceItemFlash': + ci = 'd27cdb6e-ae6d-11cf-96b8-444553540000'; + cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'; + mt = 'application/x-shockwave-flash'; + break; + + case 'mceItemShockWave': + ci = '166B1BCA-3F9C-11CF-8075-444553540000'; + cb = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0'; + mt = 'application/x-director'; + break; + + case 'mceItemWindowsMedia': + ci = tinyMCE.getParam('media_wmp6_compatible') ? '05589FA1-C356-11CE-BF01-00AA0055595A' : '6BF52A52-394A-11D3-B153-00C04F79FAA6'; + cb = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'; + mt = 'application/x-mplayer2'; + break; + + case 'mceItemQuickTime': + ci = '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B'; + cb = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0'; + mt = 'video/quicktime'; + break; + + case 'mceItemRealMedia': + ci = 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'; + cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'; + mt = 'audio/x-pn-realaudio-plugin'; + break; + } + + // Convert the URL + pl.src = tinyMCE.convertURL(pl.src, null, true); + + embedHTML = TinyMCE_MediaPlugin._getEmbed(ci, cb, mt, pl, attribs); + } else { + // Use script version + switch (attribs['class']) { + case 'mceItemFlash': + s = 'writeFlash'; + break; + + case 'mceItemShockWave': + s = 'writeShockWave'; + break; + + case 'mceItemWindowsMedia': + s = 'writeWindowsMedia'; + break; + + case 'mceItemQuickTime': + s = 'writeQuickTime'; + break; + + case 'mceItemRealMedia': + s = 'writeRealMedia'; + break; + } + + if (attribs.width) + at = at.replace(/width:[^0-9]?[0-9]+%?[^0-9]?/g, "width:'" + attribs.width + "'"); + + if (attribs.height) + at = at.replace(/height:[^0-9]?[0-9]+%?[^0-9]?/g, "height:'" + attribs.height + "'"); + + // Force absolute URL + pl.src = tinyMCE.convertURL(pl.src, null, true); + at = at.replace(new RegExp("src:'[^']*'", "g"), "src:'" + pl.src + "'"); + + embedHTML = ''; + } + + // Insert embed/object chunk + chunkBefore = content.substring(0, startPos); + chunkAfter = content.substring(endPos); + content = chunkBefore + embedHTML + chunkAfter; + } + break; + } + + return content; + }, + + handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) { + if (node == null) + return; + + do { + if (node.nodeName == "IMG" && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(node, 'class'))) { + tinyMCE.switchClass(editor_id + '_media', 'mceButtonSelected'); + return true; + } + } while ((node = node.parentNode)); + + tinyMCE.switchClass(editor_id + '_media', 'mceButtonNormal'); + + return true; + }, + + _createImgFromEmbed : function(n, d, cl) { + var ne, at, i, ti = '', an; + + ne = d.createElement('img'); + ne.src = tinyMCE.getParam("theme_href") + '/images/spacer.gif'; + ne.width = tinyMCE.getAttrib(n, 'width'); + ne.height = tinyMCE.getAttrib(n, 'height'); + ne.className = cl; + + at = n.attributes; + for (i=0; i 0 ? ti.substring(0, ti.length - 1) : ti; + ne.title = ti; + + n.parentNode.replaceChild(ne, n); + }, + + _createImg : function(cl, d, n) { + var i, nl, ti = "", an, av, al = new Array(); + + ne = d.createElement('img'); + ne.src = tinyMCE.getParam("theme_href") + '/images/spacer.gif'; + ne.width = tinyMCE.getAttrib(n, 'width'); + ne.height = tinyMCE.getAttrib(n, 'height'); + ne.className = cl; + + al.id = tinyMCE.getAttrib(n, 'id'); + al.name = tinyMCE.getAttrib(n, 'name'); + al.width = tinyMCE.getAttrib(n, 'width'); + al.height = tinyMCE.getAttrib(n, 'height'); + al.bgcolor = tinyMCE.getAttrib(n, 'bgcolor'); + al.align = tinyMCE.getAttrib(n, 'align'); + al.class_name = tinyMCE.getAttrib(n, 'mce_class'); + + nl = n.getElementsByTagName('div'); + for (i=0; i 0 ? ti.substring(0, ti.length - 1) : ti; + ne.title = ti; + + return ne; + }, + + _getEmbed : function(cls, cb, mt, p, at) { + var h = '', n; + + p.width = at.width ? at.width : p.width; + p.height = at.height ? at.height : p.height; + + h += ''; + + // Add extra url parameter if it's an absolute URL on WMP + if (n == 'src' && p[n].indexOf('://') != -1 && mt == 'application/x-mplayer2') + h += ''; + } + } + + h += ''; + + h += ' \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/jscripts/media.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/jscripts/media.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/jscripts/media.js @@ -0,0 +1,594 @@ +var oldWidth, oldHeight; +var url = tinyMCE.getParam("media_external_list_url"); +if (url != null) { + // Fix relative + if (url.charAt(0) != '/' && url.indexOf('://') == -1) + url = tinyMCE.documentBasePath + "/" + url; + + document.write(''); +} + +function init() { + var pl = "", f, val; + var type = "flash", fe, i; + + tinyMCEPopup.resizeToInnerSize(); + f = document.forms[0] + + fe = tinyMCE.selectedInstance.getFocusElement(); + if (/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(fe, 'class'))) { + pl = "x={" + fe.title + "};"; + + switch (tinyMCE.getAttrib(fe, 'class')) { + case 'mceItemFlash': + type = 'flash'; + break; + + case 'mceItemShockWave': + type = 'shockwave'; + break; + + case 'mceItemWindowsMedia': + type = 'wmp'; + break; + + case 'mceItemQuickTime': + type = 'qt'; + break; + + case 'mceItemRealMedia': + type = 'rmp'; + break; + } + + document.forms[0].insert.value = tinyMCE.getLang('lang_update', 'Insert', true); + } + + document.getElementById('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media'); + document.getElementById('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','qt_qtsrc','media','media'); + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); + + var html = getMediaListHTML('filebrowser','src','media','media'); + if (html == "") + document.getElementById("linklistrow").style.display = 'none'; + else + document.getElementById("linklistcontainer").innerHTML = html; + + // Resize some elements + if (isVisible('filebrowsercontainer')) + document.getElementById('src').style.width = '230px'; + + // Setup form + if (pl != "") { + pl = eval(pl); + + switch (type) { + case "flash": + setBool(pl, 'flash', 'play'); + setBool(pl, 'flash', 'loop'); + setBool(pl, 'flash', 'menu'); + setBool(pl, 'flash', 'swliveconnect'); + setStr(pl, 'flash', 'quality'); + setStr(pl, 'flash', 'scale'); + setStr(pl, 'flash', 'salign'); + setStr(pl, 'flash', 'wmode'); + setStr(pl, 'flash', 'base'); + setStr(pl, 'flash', 'flashvars'); + break; + + case "qt": + setBool(pl, 'qt', 'loop'); + setBool(pl, 'qt', 'autoplay'); + setBool(pl, 'qt', 'cache'); + setBool(pl, 'qt', 'controller'); + setBool(pl, 'qt', 'correction'); + setBool(pl, 'qt', 'enablejavascript'); + setBool(pl, 'qt', 'kioskmode'); + setBool(pl, 'qt', 'autohref'); + setBool(pl, 'qt', 'playeveryframe'); + setBool(pl, 'qt', 'tarsetcache'); + setStr(pl, 'qt', 'scale'); + setStr(pl, 'qt', 'starttime'); + setStr(pl, 'qt', 'endtime'); + setStr(pl, 'qt', 'tarset'); + setStr(pl, 'qt', 'qtsrcchokespeed'); + setStr(pl, 'qt', 'volume'); + setStr(pl, 'qt', 'qtsrc'); + break; + + case "shockwave": + setBool(pl, 'shockwave', 'sound'); + setBool(pl, 'shockwave', 'progress'); + setBool(pl, 'shockwave', 'autostart'); + setBool(pl, 'shockwave', 'swliveconnect'); + setStr(pl, 'shockwave', 'swvolume'); + setStr(pl, 'shockwave', 'swstretchstyle'); + setStr(pl, 'shockwave', 'swstretchhalign'); + setStr(pl, 'shockwave', 'swstretchvalign'); + break; + + case "wmp": + setBool(pl, 'wmp', 'autostart'); + setBool(pl, 'wmp', 'enabled'); + setBool(pl, 'wmp', 'enablecontextmenu'); + setBool(pl, 'wmp', 'fullscreen'); + setBool(pl, 'wmp', 'invokeurls'); + setBool(pl, 'wmp', 'mute'); + setBool(pl, 'wmp', 'stretchtofit'); + setBool(pl, 'wmp', 'windowlessvideo'); + setStr(pl, 'wmp', 'balance'); + setStr(pl, 'wmp', 'baseurl'); + setStr(pl, 'wmp', 'captioningid'); + setStr(pl, 'wmp', 'currentmarker'); + setStr(pl, 'wmp', 'currentposition'); + setStr(pl, 'wmp', 'defaultframe'); + setStr(pl, 'wmp', 'playcount'); + setStr(pl, 'wmp', 'rate'); + setStr(pl, 'wmp', 'uimode'); + setStr(pl, 'wmp', 'volume'); + break; + + case "rmp": + setBool(pl, 'rmp', 'autostart'); + setBool(pl, 'rmp', 'loop'); + setBool(pl, 'rmp', 'autogotourl'); + setBool(pl, 'rmp', 'center'); + setBool(pl, 'rmp', 'imagestatus'); + setBool(pl, 'rmp', 'maintainaspect'); + setBool(pl, 'rmp', 'nojava'); + setBool(pl, 'rmp', 'prefetch'); + setBool(pl, 'rmp', 'shuffle'); + setStr(pl, 'rmp', 'console'); + setStr(pl, 'rmp', 'controls'); + setStr(pl, 'rmp', 'numloop'); + setStr(pl, 'rmp', 'scriptcallbacks'); + break; + } + + setStr(pl, null, 'src'); + setStr(pl, null, 'id'); + setStr(pl, null, 'name'); + setStr(pl, null, 'vspace'); + setStr(pl, null, 'hspace'); + setStr(pl, null, 'bgcolor'); + setStr(pl, null, 'align'); + setStr(pl, null, 'width'); + setStr(pl, null, 'height'); + + if ((val = tinyMCE.getAttrib(fe, "width")) != "") + pl.width = f.width.value = val; + + if ((val = tinyMCE.getAttrib(fe, "height")) != "") + pl.height = f.height.value = val; + + oldWidth = pl.width ? parseInt(pl.width) : 0; + oldHeight = pl.height ? parseInt(pl.height) : 0; + } else + oldWidth = oldHeight = 0; + + selectByValue(f, 'media_type', type); + changedType(type); + updateColor('bgcolor_pick', 'bgcolor'); + + TinyMCE_EditableSelects.init(); + generatePreview(); +} + +function insertMedia() { + var fe, f = document.forms[0], h; + + if (!AutoValidator.validate(f)) { + alert(tinyMCE.getLang('lang_invalid_data')); + return false; + } + + f.width.value = f.width.value == "" ? 100 : f.width.value; + f.height.value = f.height.value == "" ? 100 : f.height.value; + + fe = tinyMCE.selectedInstance.getFocusElement(); + if (fe != null && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(fe, 'class'))) { + switch (f.media_type.options[f.media_type.selectedIndex].value) { + case "flash": + fe.className = "mceItemFlash"; + break; + + case "shockwave": + fe.className = "mceItemShockWave"; + break; + + case "qt": + fe.className = "mceItemQuickTime"; + break; + + case "wmp": + fe.className = "mceItemWindowsMedia"; + break; + + case "rmp": + fe.className = "mceItemRealMedia"; + break; + } + + if (fe.width != f.width.value || fe.height != f.height.height) + tinyMCE.selectedInstance.repaint(); + + fe.title = serializeParameters(); + fe.width = f.width.value; + fe.height = f.height.value; + fe.style.width = f.width.value + (f.width.value.indexOf('%') == -1 ? 'px' : ''); + fe.style.height = f.height.value + (f.height.value.indexOf('%') == -1 ? 'px' : ''); + fe.align = f.align.options[f.align.selectedIndex].value; + } else { + h = ' 0) { + var html = ""; + + html += ''; + + return html; + } + + return ""; +} + +function getType(v) { + var fo, i, c, el, x, f = document.forms[0]; + + fo = tinyMCE.getParam("media_types", "flash=swf;shockwave=dcr;qt=mov,qt,mpg,mp3,mp4,mpeg;shockwave=dcr;wmp=avi,wmv,wm,asf,asx,wmx,wvx;rmp=rm,ra,ram").split(';'); + + // YouTube + if (v.indexOf('http://www.youtube.com/watch?v=') == 0 || v.indexOf('http://youtube.com/watch?v=') == 0) { + f.width.value = '425'; + f.height.value = '350'; + + v = v.replace('http://youtube.com/watch?v=', ''); + v = v.replace('http://www.youtube.com/watch?v=', ''); + + f.src.value = 'http://www.youtube.com/v/' + v; + return 'flash'; + } + + // Google video + if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) { + f.width.value = '425'; + f.height.value = '326'; + f.src.value = 'http://video.google.com/googleplayer.swf?docId=' + v.substring('http://video.google.com/videoplay?docid='.length) + '&hl=en'; + return 'flash'; + } + + for (i=0; i 0 ? s.substring(0, s.length - 1) : s; + + return s; +} + +function setBool(pl, p, n) { + if (typeof(pl[n]) == "undefined") + return; + + document.forms[0].elements[p + "_" + n].checked = pl[n]; +} + +function setStr(pl, p, n) { + var f = document.forms[0], e = f.elements[(p != null ? p + "_" : '') + n]; + + if (typeof(pl[n]) == "undefined") + return; + + if (e.type == "text") + e.value = pl[n]; + else + selectByValue(f, (p != null ? p + "_" : '') + n, pl[n]); +} + +function getBool(p, n, d, tv, fv) { + var v = document.forms[0].elements[p + "_" + n].checked; + + tv = typeof(tv) == 'undefined' ? 'true' : "'" + jsEncode(tv) + "'"; + fv = typeof(fv) == 'undefined' ? 'false' : "'" + jsEncode(fv) + "'"; + + return (v == d) ? '' : n + (v ? ':' + tv + ',' : ':' + fv + ','); +} + +function getStr(p, n, d) { + var e = document.forms[0].elements[(p != null ? p + "_" : "") + n]; + var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value; + + return ((n == d || v == '') ? '' : n + ":'" + jsEncode(v) + "',"); +} + +function getInt(p, n, d) { + var e = document.forms[0].elements[(p != null ? p + "_" : "") + n]; + var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value; + + return ((n == d || v == '') ? '' : n + ":" + v.replace(/[^0-9]+/g, '') + ","); +} + +function jsEncode(s) { + s = s.replace(new RegExp('\\\\', 'g'), '\\\\'); + s = s.replace(new RegExp('"', 'g'), '\\"'); + s = s.replace(new RegExp("'", 'g'), "\\'"); + + return s; +} + +function generatePreview(c) { + var f = document.forms[0], p = document.getElementById('prev'), h = '', cls, pl, n, type, codebase, wp, hp, nw, nh; + + p.innerHTML = ''; + + nw = parseInt(f.width.value); + nh = parseInt(f.height.value); + + if (f.width.value != "" && f.height.value != "") { + if (f.constrain.checked) { + if (c == 'width' && oldWidth != 0) { + wp = nw / oldWidth; + nh = Math.round(wp * nh); + f.height.value = nh; + } else if (c == 'height' && oldHeight != 0) { + hp = nh / oldHeight; + nw = Math.round(hp * nw); + f.width.value = nw; + } + } + } + + if (f.width.value != "") + oldWidth = nw; + + if (f.height.value != "") + oldHeight = nh; + + // After constrain + pl = serializeParameters(); + + switch (f.media_type.options[f.media_type.selectedIndex].value) { + case "flash": + cls = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'; + codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'; + type = 'application/x-shockwave-flash'; + break; + + case "shockwave": + cls = 'clsid:166B1BCA-3F9C-11CF-8075-444553540000'; + codebase = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0'; + type = 'application/x-director'; + break; + + case "qt": + cls = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B'; + codebase = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0'; + type = 'video/quicktime'; + break; + + case "wmp": + cls = tinyMCE.getParam('media_wmp6_compatible') ? 'clsid:05589FA1-C356-11CE-BF01-00AA0055595A' : 'clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6'; + codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'; + type = 'application/x-mplayer2'; + break; + + case "rmp": + cls = 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'; + codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'; + type = 'audio/x-pn-realaudio-plugin'; + break; + } + + if (pl == '') { + p.innerHTML = ''; + return; + } + + pl = eval('x={' + pl + '};'); + + if (!pl.src) { + p.innerHTML = ''; + return; + } + + pl.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], pl.src); + pl.width = !pl.width ? 100 : pl.width; + pl.height = !pl.height ? 100 : pl.height; + pl.id = !pl.id ? 'obj' : pl.id; + pl.name = !pl.name ? 'eobj' : pl.name; + pl.align = !pl.align ? '' : pl.align; + + h += ''; + + for (n in pl) { + h += ''; + + // Add extra url parameter if it's an absolute URL + if (n == 'src' && pl[n].indexOf('://') != -1) + h += ''; + } + + h += ' \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/media.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/media.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/media/media.htm @@ -0,0 +1,723 @@ + + + {$lang_media_title} + + + + + + + + + + +
        + + +
        +
        +
        + {$lang_media_general} + + + + + + + + + + + + + + + + + +
        + +
        + + + + + +
         
        +
         
        + + + + + + +
        x   
        +
        +
        + +
        + {$lang_media_preview} + +
        +
        + +
        +
        + {$lang_media_advanced} + + + + + + + + + + + + + + + + + + + + + + + +
        + + + + + + + +
         
        +
        +
        + +
        + {$lang_media_flash_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + +
        + + + +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + + + + + + + +
        +
        + +
        + {$lang_media_qt_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        +  
        + + + + + +
         
        +
        +
        + +
        + {$lang_media_wmp_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        +
        + +
        + {$lang_media_rmp_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        +   +
        +
        + +
        + {$lang_media_shockwave_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + + + +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        + + + + + +
        +
        +
        +
        +
        + +
        +
        + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('nonbreaking');var TinyMCE_NonBreakingPlugin={getInfo:function(){return{longname:'Nonbreaking space',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"nonbreaking":return tinyMCE.getButtonHTML(cn,'lang_nonbreaking_desc','{$pluginurl}/images/nonbreaking.gif','mceNonBreaking',false)}return""},execCommand:function(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id),h;switch(command){case"mceNonBreaking":h=(inst.visualChars&&inst.visualChars.state)?'·':' ';tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,h);return true}return false},handleEvent:function(e){var inst,h;if(!tinyMCE.isOpera&&e.type=='keydown'&&e.keyCode==9&&tinyMCE.getParam('nonbreaking_force_tab',false)){inst=tinyMCE.selectedInstance;h=(inst.visualChars&&inst.visualChars.state)?'···':'   ';tinyMCE.execInstanceCommand(inst.editorId,'mceInsertContent',false,h);tinyMCE.cancelEvent(e);return false}return true}};tinyMCE.addPlugin("nonbreaking",TinyMCE_NonBreakingPlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js @@ -0,0 +1,62 @@ +/** + * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('nonbreaking'); + +var TinyMCE_NonBreakingPlugin = { + getInfo : function() { + return { + longname : 'Nonbreaking space', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + getControlHTML : function(cn) { + switch (cn) { + case "nonbreaking": + return tinyMCE.getButtonHTML(cn, 'lang_nonbreaking_desc', '{$pluginurl}/images/nonbreaking.gif', 'mceNonBreaking', false); + } + + return ""; + }, + + + execCommand : function(editor_id, element, command, user_interface, value) { + var inst = tinyMCE.getInstanceById(editor_id), h; + + switch (command) { + case "mceNonBreaking": + h = (inst.visualChars && inst.visualChars.state) ? '·' : ' '; + tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, h); + return true; + } + + return false; + }, + + handleEvent : function(e) { + var inst, h; + + if (!tinyMCE.isOpera && e.type == 'keydown' && e.keyCode == 9 && tinyMCE.getParam('nonbreaking_force_tab', false)) { + inst = tinyMCE.selectedInstance; + + h = (inst.visualChars && inst.visualChars.state) ? '···' : '   '; + tinyMCE.execInstanceCommand(inst.editorId, 'mceInsertContent', false, h); + + tinyMCE.cancelEvent(e); + return false; + } + + return true; + } +}; + +tinyMCE.addPlugin("nonbreaking", TinyMCE_NonBreakingPlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/images/nonbreaking.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/images/nonbreaking.gif new file mode 100644 index 0000000000000000000000000000000000000000..a731fc91acc2ddcb8a6ecec7ef1698654d766298 GIT binary patch literal 619 zc$}q?+e?!H07rlB_SqDx&7ftGGcC)dNtT8M+G=818P+lqV~xyh6q0$V2NA7L9o1GW zA)G6$FbCnHAe)Oh%h)Z`#@E_KWvsSY7O_2r#mc{-!+AN+r>tC5v`dnTRD={5A0KxD zMx$}Iy4vY<`h31VrIG~ZB$CC&#i5}ghr>bT=3W6lPfz(ODyFzx9dH4- z2s8qB0C!%CBUch`?H9S0QGMVglyT{}4ibRn}q`A5IaeG@6;L6IfTCJ{( zj0PYW47RqmngE;47V~@x1OgOAx!vwgU~q7d%E?gyvo$qLCNoO81_lN~q0m?3i+6N- zUtiz1SH_pX_t#@{wY7F291i;{D_a1~KbsowU2f6q^*`ReX#-}&VzpX5KR<6U7^u8F zGjJ1Nu~-1&@%W#382CEy>B9yy7ka zT`1S~>rRlIL!8q(UGgzyL<1$+P|G351*>%VaXP zk;~<4Sj$#g9kj%h)zhvsn;33F=Jk{1@-6&&nJgz^Ep5l{Q{)~wCBtu&u1h!;vXkK%JOXmL3^t Tuym-{s{{hC?b*5aB`E$2 \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/langs/en.js @@ -0,0 +1,5 @@ +// UK lang variables + +tinyMCE.addToLang('nonbreaking',{ +desc : 'Insert non-breaking space character' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/nonbreaking/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/noneditable/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/noneditable/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/noneditable/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/noneditable/css/noneditable.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/noneditable/css/noneditable.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/noneditable/css/noneditable.css @@ -0,0 +1,9 @@ +/* This is the CSS file for the noneditable elements plugin */ + +.mceEditable { + /*border: 1px dotted #0000cc;*/ +} + +.mceNonEditable { + /*border: 1px dotted #cc0000;*/ +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js @@ -0,0 +1,1 @@ +var TinyMCE_NonEditablePlugin={getInfo:function(){return{longname:'Non editable elements',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/noneditable/css/noneditable.css");if(tinyMCE.isMSIE5_0)tinyMCE.settings['plugins']=tinyMCE.settings['plugins'].replace(/noneditable/gi,'Noneditable')},handleEvent:function(e){return this._moveSelection(e,tinyMCE.selectedInstance)},cleanup:function(type,content,inst){switch(type){case"insert_to_editor_dom":var nodes,i,editClass,nonEditClass,editable,elm;if(tinyMCE.isGecko)return content;nodes=tinyMCE.getNodeTree(content,[],1);editClass=tinyMCE.getParam("noneditable_editable_class","mceEditable");nonEditClass=tinyMCE.getParam("noneditable_noneditable_class","mceNonEditable");for(i=0;i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/blank.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/blank.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/blank.htm @@ -0,0 +1,19 @@ + + + blank_page + + + + + + + + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/css/blank.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/css/blank.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/css/blank.css @@ -0,0 +1,13 @@ +body { + background-color: #FFFFFF; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/css/pasteword.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/css/pasteword.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/css/pasteword.css @@ -0,0 +1,3 @@ +.sourceIframe { + border: 1px solid #808080; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('paste');var TinyMCE_PastePlugin={getInfo:function(){return{longname:'Paste text/word',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(tinyMCE.isMSIE&&tinyMCE.getParam("paste_auto_cleanup_on_paste",false))tinyMCE.addEvent(inst.getBody(),"paste",TinyMCE_PastePlugin._handlePasteEvent)},handleEvent:function(e){if(!tinyMCE.isRealIE&&tinyMCE.getParam("paste_auto_cleanup_on_paste",false)&&e.ctrlKey&&e.keyCode==86&&e.type=="keydown"){window.setTimeout('tinyMCE.selectedInstance.execCommand("mcePasteText",true)',1);return tinyMCE.cancelEvent(e)}return true},getControlHTML:function(cn){switch(cn){case"pastetext":return tinyMCE.getButtonHTML(cn,'lang_paste_text_desc','{$pluginurl}/images/pastetext.gif','mcePasteText',true);case"pasteword":return tinyMCE.getButtonHTML(cn,'lang_paste_word_desc','{$pluginurl}/images/pasteword.gif','mcePasteWord',true);case"selectall":return tinyMCE.getButtonHTML(cn,'lang_selectall_desc','{$pluginurl}/images/selectall.gif','mceSelectAll',true)}return''},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mcePasteText":if(user_interface){if((tinyMCE.isMSIE&&!tinyMCE.isOpera)&&!tinyMCE.getParam('paste_use_dialog',false))TinyMCE_PastePlugin._insertText(clipboardData.getData("Text"),true);else{var template=new Array();template['file']='../../plugins/paste/pastetext.htm';template['width']=450;template['height']=400;var plain_text="";tinyMCE.openWindow(template,{editor_id:editor_id,plain_text:plain_text,resizable:"yes",scrollbars:"no",inline:"yes",mceDo:'insert'})}}else TinyMCE_PastePlugin._insertText(value['html'],value['linebreaks']);return true;case"mcePasteWord":if(user_interface){if((tinyMCE.isMSIE&&!tinyMCE.isOpera)&&!tinyMCE.getParam('paste_use_dialog',false)){TinyMCE_PastePlugin._insertWordContent(TinyMCE_PastePlugin._clipboardHTML())}else{var template=new Array();template['file']='../../plugins/paste/pasteword.htm';template['width']=450;template['height']=400;var plain_text="";tinyMCE.openWindow(template,{editor_id:editor_id,plain_text:plain_text,resizable:"yes",scrollbars:"no",inline:"yes",mceDo:'insert'})}}else TinyMCE_PastePlugin._insertWordContent(value);return true;case"mceSelectAll":tinyMCE.execInstanceCommand(editor_id,'selectall');return true}return false},_handlePasteEvent:function(e){switch(e.type){case"paste":var html=TinyMCE_PastePlugin._clipboardHTML();var r,inst=tinyMCE.selectedInstance;if(inst&&(r=inst.getRng())&&r.text.length>0)tinyMCE.execCommand('delete');if(html&&html.length>0)tinyMCE.execCommand('mcePasteWord',false,html);tinyMCE.cancelEvent(e);return false}return true},_insertText:function(content,bLinebreaks){if(content&&content.length>0){if(bLinebreaks){if(tinyMCE.getParam("paste_create_paragraphs",true)){var rl=tinyMCE.getParam("paste_replace_list",'\u2122,TM,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i

        ","gi");content=tinyMCE.regexpReplace(content,"\r\r","

        ","gi");content=tinyMCE.regexpReplace(content,"\n\n","

        ","gi");if((pos=content.indexOf('

        '))!=-1){tinyMCE.execCommand("Delete");var node=tinyMCE.selectedInstance.getFocusElement();var breakElms=new Array();do{if(node.nodeType==1){if(node.nodeName=="TD"||node.nodeName=="BODY")break;breakElms[breakElms.length]=node}}while(node=node.parentNode);var before="",after="

        ";before+=content.substring(0,pos);for(var i=0;i";after+="<"+breakElms[(breakElms.length-1)-i].nodeName+">"}before+="

        ";content=before+content.substring(pos+7)+after}}if(tinyMCE.getParam("paste_create_linebreaks",true)){content=tinyMCE.regexpReplace(content,"\r\n","
        ","gi");content=tinyMCE.regexpReplace(content,"\r","
        ","gi");content=tinyMCE.regexpReplace(content,"\n","
        ","gi")}}tinyMCE.execCommand("mceInsertRawHTML",false,content)}},_insertWordContent:function(content){if(content&&content.length>0){var bull=String.fromCharCode(8226);var middot=String.fromCharCode(183);var cb;if((cb=tinyMCE.getParam("paste_insert_word_content_callback",""))!="")content=eval(cb+"('before', content)");var rl=tinyMCE.getParam("paste_replace_list",'\u2122,TM,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i(.*?)<\/p>','gi'),'

        $1

        ')}content=content.replace(new RegExp('tab-stops: list [0-9]+.0pt">','gi'),'">'+"--list--");content=content.replace(new RegExp(bull+"(.*?)
        ","gi"),"

        "+middot+"$1

        ");content=content.replace(new RegExp('','gi'),""+bull);content=content.replace(/<\/o:p>/gi,"");content=content.replace(new RegExp('
        ]*>/gi,"");if(tinyMCE.getParam("paste_remove_styles",true))content=content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)','gi'),"<$1$3");content=content.replace(/<\/?font[^>]*>/gi,"");switch(tinyMCE.getParam("paste_strip_class_attributes","all")){case"all":content=content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi,"<$1$3");break;case"mso":content=content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)','gi'),"<$1$3");break}content=content.replace(new RegExp('href="?'+TinyMCE_PastePlugin._reEscape(""+document.location)+'','gi'),'href="'+tinyMCE.settings['document_base_url']);content=content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");content=content.replace(/<\\?\?xml[^>]*>/gi,"");content=content.replace(/<\/?\w+:[^>]*>/gi,"");content=content.replace(/-- page break --\s*

         <\/p>/gi,"");content=content.replace(/-- page break --/gi,"");if(!tinyMCE.settings['force_p_newlines']){content=content.replace('','','gi');content=content.replace('

        ','

        ','gi')}if(!tinyMCE.isMSIE&&!tinyMCE.settings['force_p_newlines']){content=content.replace(/<\/?p[^>]*>/gi,"")}content=content.replace(/<\/?div[^>]*>/gi,"");if(tinyMCE.getParam("paste_convert_middot_lists",true)){var div=document.createElement("div");div.innerHTML=content;var className=tinyMCE.getParam("paste_unindented_list_class","unIndentedList");while(TinyMCE_PastePlugin._convertMiddots(div,"--list--"));while(TinyMCE_PastePlugin._convertMiddots(div,middot,className));while(TinyMCE_PastePlugin._convertMiddots(div,bull));content=div.innerHTML}if(tinyMCE.getParam("paste_convert_headers_to_strong",false)){content=content.replace(/ <\/h[1-6]>/gi,'

          

        ');content=content.replace(//gi,'

        ');content=content.replace(/<\/h[1-6]>/gi,'

        ');content=content.replace(/ <\/b>/gi,'  ');content=content.replace(/^( )*/gi,'')}content=content.replace(/--list--/gi,"");if((cb=tinyMCE.getParam("paste_insert_word_content_callback",""))!="")content=eval(cb+"('after', content)");tinyMCE.execCommand("mceInsertContent",false,content);if(tinyMCE.getParam('paste_force_cleanup_wordpaste',true))window.setTimeout('tinyMCE.execCommand("mceCleanup");',1);}},_reEscape:function(s){var l="?.\\*[](){}+^$:";var o="";for(var i=0;i 0) + tinyMCE.execCommand('delete'); + + if (html && html.length > 0) + tinyMCE.execCommand('mcePasteWord', false, html); + + tinyMCE.cancelEvent(e); + return false; + } + + return true; + }, + + _insertText : function(content, bLinebreaks) { + if (content && content.length > 0) { + if (bLinebreaks) { + // Special paragraph treatment + if (tinyMCE.getParam("paste_create_paragraphs", true)) { + var rl = tinyMCE.getParam("paste_replace_list", '\u2122,TM,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(','); + for (var i=0; i

        ", "gi"); + content = tinyMCE.regexpReplace(content, "\r\r", "

        ", "gi"); + content = tinyMCE.regexpReplace(content, "\n\n", "

        ", "gi"); + + // Has paragraphs + if ((pos = content.indexOf('

        ')) != -1) { + tinyMCE.execCommand("Delete"); + + var node = tinyMCE.selectedInstance.getFocusElement(); + + // Get list of elements to break + var breakElms = new Array(); + + do { + if (node.nodeType == 1) { + // Don't break tables and break at body + if (node.nodeName == "TD" || node.nodeName == "BODY") + break; + + breakElms[breakElms.length] = node; + } + } while(node = node.parentNode); + + var before = "", after = "

        "; + before += content.substring(0, pos); + + for (var i=0; i"; + after += "<" + breakElms[(breakElms.length-1)-i].nodeName + ">"; + } + + before += "

        "; + content = before + content.substring(pos+7) + after; + } + } + + if (tinyMCE.getParam("paste_create_linebreaks", true)) { + content = tinyMCE.regexpReplace(content, "\r\n", "
        ", "gi"); + content = tinyMCE.regexpReplace(content, "\r", "
        ", "gi"); + content = tinyMCE.regexpReplace(content, "\n", "
        ", "gi"); + } + } + + tinyMCE.execCommand("mceInsertRawHTML", false, content); + } + }, + + _insertWordContent : function(content) { + if (content && content.length > 0) { + // Cleanup Word content + var bull = String.fromCharCode(8226); + var middot = String.fromCharCode(183); + var cb; + + if ((cb = tinyMCE.getParam("paste_insert_word_content_callback", "")) != "") + content = eval(cb + "('before', content)"); + + var rl = tinyMCE.getParam("paste_replace_list", '\u2122,TM,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(','); + for (var i=0; i(.*?)<\/p>', 'gi'), '

        $1

        '); + } + + content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt">', 'gi'), '">' + "--list--"); + content = content.replace(new RegExp(bull + "(.*?)
        ", "gi"), "

        " + middot + "$1

        "); + content = content.replace(new RegExp('', 'gi'), "" + bull); // Covert to bull list + content = content.replace(/<\/o:p>/gi, ""); + content = content.replace(new RegExp('
        ]*>/gi, ""); + + if (tinyMCE.getParam("paste_remove_styles", true)) + content = content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)', 'gi'), "<$1$3"); + + content = content.replace(/<\/?font[^>]*>/gi, ""); + + // Strips class attributes. + switch (tinyMCE.getParam("paste_strip_class_attributes", "all")) { + case "all": + content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3"); + break; + + case "mso": + content = content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)', 'gi'), "<$1$3"); + break; + } + + content = content.replace(new RegExp('href="?' + TinyMCE_PastePlugin._reEscape("" + document.location) + '', 'gi'), 'href="' + tinyMCE.settings['document_base_url']); + content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3"); + content = content.replace(/<\\?\?xml[^>]*>/gi, ""); + content = content.replace(/<\/?\w+:[^>]*>/gi, ""); + content = content.replace(/-- page break --\s*

         <\/p>/gi, ""); // Remove pagebreaks + content = content.replace(/-- page break --/gi, ""); // Remove pagebreaks + + // content = content.replace(/\/? */gi, "");   + // content = content.replace(/

         <\/p>/gi, ''); + + if (!tinyMCE.settings['force_p_newlines']) { + content = content.replace('', '' ,'gi'); + content = content.replace('

        ', '

        ' ,'gi'); + } + + if (!tinyMCE.isMSIE && !tinyMCE.settings['force_p_newlines']) { + content = content.replace(/<\/?p[^>]*>/gi, ""); + } + + content = content.replace(/<\/?div[^>]*>/gi, ""); + + // Convert all middlot lists to UL lists + if (tinyMCE.getParam("paste_convert_middot_lists", true)) { + var div = document.createElement("div"); + div.innerHTML = content; + + // Convert all middot paragraphs to li elements + var className = tinyMCE.getParam("paste_unindented_list_class", "unIndentedList"); + + while (TinyMCE_PastePlugin._convertMiddots(div, "--list--")) ; // bull + while (TinyMCE_PastePlugin._convertMiddots(div, middot, className)) ; // Middot + while (TinyMCE_PastePlugin._convertMiddots(div, bull)) ; // bull + + content = div.innerHTML; + } + + // Replace all headers with strong and fix some other issues + if (tinyMCE.getParam("paste_convert_headers_to_strong", false)) { + content = content.replace(/ <\/h[1-6]>/gi, '

          

        '); + content = content.replace(//gi, '

        '); + content = content.replace(/<\/h[1-6]>/gi, '

        '); + content = content.replace(/ <\/b>/gi, '  '); + content = content.replace(/^( )*/gi, ''); + } + + content = content.replace(/--list--/gi, ""); // Remove --list-- + + if ((cb = tinyMCE.getParam("paste_insert_word_content_callback", "")) != "") + content = eval(cb + "('after', content)"); + + // Insert cleaned content + tinyMCE.execCommand("mceInsertContent", false, content); + + if (tinyMCE.getParam('paste_force_cleanup_wordpaste', true)) + window.setTimeout('tinyMCE.execCommand("mceCleanup");', 1); // Do normal cleanup detached from this thread + } + }, + + _reEscape : function(s) { + var l = "?.\\*[](){}+^$:"; + var o = ""; + + for (var i=0; i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/images/pastetext.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/images/pastetext.gif new file mode 100644 index 0000000000000000000000000000000000000000..e381cc617ae1ef48a4e532f7b83b883d082c9e42 GIT binary patch literal 294 zc$@(y0ondXNk%w1VH5xq0Mrx!1_B0_axV75Hbzor!NSXCdX{^Irr^|uM>8k3npWTE z_STXHS!s#*>!gx|Yo@ZsW>!X~or(6f8HSR!`Stns%~QLpkDHB#_S}MbXH&+{=9Zzh z?#yQR^0wxx1^@s6A^8LW0018VEC2ui02BZe000G};3tk`X`X1RuAgN^Z0kBrb7aot zpjKB$4aY6Okz`JhPDhA2R1%QD;%Mpx9h=D{J24ar3{>0WqA)oAG#Wz^+%kwxLXub< z?1lt;BzPh$atCz>8V3d!dm?>*9R(B<6dDo(2@MAWZAKl9j~5yS02%-jm?It;n*|UH x69x?u000uCBpwzJxT_PPyBcT!B@7V}4-dX-X}~EO7|jFE1FA&_VoEyR91$H zhF*o+yUXv_-t_+d{r~^~A^8LW000jFEC2ui02BZe000Df@X1N5y*TU5>o7+Heg`=$ zM>Vb`J5+6XI1YlG<>HNl6DSIVBbTDA90dXakZ|A{FcP9bO8^|GhK^#QC9Oj(LshaR z2ng_D!6;5z$V3ouMKH9x8G>#F1jS?n3^ffjGze^C6ft%K2nKhF0(nntVhjR`9h;n; H5)lA9u4PUG diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/jscripts/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/jscripts/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/jscripts/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/jscripts/pastetext.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/jscripts/pastetext.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/jscripts/pastetext.js @@ -0,0 +1,38 @@ +function saveContent() { + if (document.forms[0].htmlSource.value == '') { + tinyMCEPopup.close(); + return false; + } + + tinyMCEPopup.execCommand('mcePasteText', false, { + html : document.forms[0].htmlSource.value, + linebreaks : document.forms[0].linebreaks.checked + }); + + tinyMCEPopup.close(); +} + +function onLoadInit() { + tinyMCEPopup.resizeToInnerSize(); + + // Remove Gecko spellchecking + if (tinyMCE.isGecko) + document.body.spellcheck = tinyMCE.getParam("gecko_spellcheck"); + + resizeInputs(); +} + +var wHeight=0, wWidth=0, owHeight=0, owWidth=0; + +function resizeInputs() { + if (!tinyMCE.isMSIE) { + wHeight = self.innerHeight-80; + wWidth = self.innerWidth-17; + } else { + wHeight = document.body.clientHeight-80; + wWidth = document.body.clientWidth-17; + } + + document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px'; + document.forms[0].htmlSource.style.width = Math.abs(wWidth) + 'px'; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/jscripts/pasteword.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/jscripts/pasteword.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/jscripts/pasteword.js @@ -0,0 +1,52 @@ +function saveContent() { + var html = document.getElementById("frmData").contentWindow.document.body.innerHTML; + + if (html == ''){ + tinyMCEPopup.close(); + return false; + } + + tinyMCEPopup.execCommand('mcePasteWord', false, html); + tinyMCEPopup.close(); +} + +function onLoadInit() { + tinyMCEPopup.resizeToInnerSize(); + + // Fix for endless reloading in FF + window.setTimeout('createIFrame();', 10); +} + +function createIFrame() { + document.getElementById('iframecontainer').innerHTML = ''; +} + +var wHeight=0, wWidth=0, owHeight=0, owWidth=0; + +function initIframe(doc) { + var dir = tinyMCE.selectedInstance.settings['directionality']; + + doc.body.dir = dir; + + // Remove Gecko spellchecking + if (tinyMCE.isGecko) + doc.body.spellcheck = tinyMCE.getParam("gecko_spellcheck"); + + resizeInputs(); +} + +function resizeInputs() { + if (!tinyMCE.isMSIE) { + wHeight = self.innerHeight - 80; + wWidth = self.innerWidth - 18; + } else { + wHeight = document.body.clientHeight - 80; + wWidth = document.body.clientWidth - 18; + } + + var elm = document.getElementById('frmData'); + if (elm) { + elm.style.height = Math.abs(wHeight) + 'px'; + elm.style.width = Math.abs(wWidth) + 'px'; + } +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/langs/en.js @@ -0,0 +1,10 @@ +// UK lang variables + +tinyMCE.addToLang('',{ +paste_text_desc : 'Paste as Plain Text', +paste_text_title : 'Use CTRL+V on your keyboard to paste the text into the window.', +paste_text_linebreaks : 'Keep linebreaks', +paste_word_desc : 'Paste from Word', +paste_word_title : 'Use CTRL+V on your keyboard to paste the text into the window.', +selectall_desc : 'Select All' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm @@ -0,0 +1,34 @@ + + + {$lang_paste_text_desc} + + + + + + +
        +
        {$lang_paste_text_desc}
        + +
        + +
        + +
        + +
        {$lang_paste_text_title}
        + + + +
        +
        + +
        + +
        + +
        +
        +
        + + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm @@ -0,0 +1,29 @@ + + + + {$lang_paste_word_desc} + + + + + + +
        +
        {$lang_paste_word_desc}
        + +
        {$lang_paste_word_title}
        + +
        + +
        +
        + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('preview');var TinyMCE_PreviewPlugin={getInfo:function(){return{longname:'Preview',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"preview":return tinyMCE.getButtonHTML(cn,'lang_preview_desc','{$pluginurl}/images/preview.gif','mcePreview')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mcePreview":var previewPage=tinyMCE.getParam("plugin_preview_pageurl",null);var previewWidth=tinyMCE.getParam("plugin_preview_width","550");var previewHeight=tinyMCE.getParam("plugin_preview_height","600");if(previewPage){var template=new Array();template['file']=previewPage;template['width']=previewWidth;template['height']=previewHeight;tinyMCE.openWindow(template,{editor_id:editor_id,resizable:"yes",scrollbars:"yes",inline:"yes",content:tinyMCE.getContent(),content_css:tinyMCE.getParam("content_css")})}else{var win=window.open("","mcePreview","menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width="+previewWidth+",height="+previewHeight);var html="",i;var c=tinyMCE.getContent();var pos=c.indexOf('',pos);pos2=c.lastIndexOf('');c=c.substring(pos+1,pos2)}html+=tinyMCE.getParam('doctype');html+='';html+='';html+=''+tinyMCE.getLang('lang_preview_desc')+'';html+='';html+='';for(i=0;i';html+='';html+='';html+='';html+=c;html+='';html+='';win.document.write(html);win.document.close()}return true}return false},_setDoc:function(d){TinyMCE_PreviewPlugin._doc=d;d._embeds=new Array()},_setWin:function(d){TinyMCE_PreviewPlugin._win=d},_onLoad:function(){var nl,i,el=new Array(),d=TinyMCE_PreviewPlugin._doc,sv,ne;nl=d.getElementsByTagName("script");for(i=0;i';for(n in p)h+='';h+='', pos); + pos2 = c.lastIndexOf(''); + c = c.substring(pos + 1, pos2); + } + + html += tinyMCE.getParam('doctype'); + html += ''; + html += ''; + html += '' + tinyMCE.getLang('lang_preview_desc') + ''; + html += ''; + html += ''; + + for (i=0; i'; + + html += ''; + html += ''; + html += ''; + html += c; + html += ''; + html += ''; + + win.document.write(html); + win.document.close(); + } + + return true; + } + + return false; + }, + + _setDoc : function(d) { + TinyMCE_PreviewPlugin._doc = d; + d._embeds = new Array(); + }, + + _setWin : function(d) { + TinyMCE_PreviewPlugin._win = d; + }, + + _onLoad : function() { + var nl, i, el = new Array(), d = TinyMCE_PreviewPlugin._doc, sv, ne; + + nl = d.getElementsByTagName("script"); + for (i=0; i'; + + h += ' + + + +Example of a custom preview page + + + + +Editor contents:
        +{$content} + + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/images/preview.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/images/preview.gif new file mode 100644 index 0000000000000000000000000000000000000000..318936eaac98edd0d40334abcd2f7c1c10abaec9 GIT binary patch literal 286 zc$@(q0pb2fNk%w1VH5xq0MrctLNX#=n%>{t-ZHm6e~^^jl|5qG(t>VEt(9$;rn0=h z!9sF^Hceyu{Qa@O*@D`dO0sseucF4-?uW03pRULFzFJ~vZ(3SX#mU#gdO|Xil9ZX3 zZ+Cy;3tk`X`blmtgJ&}spvFxO)+pf z*Yu0)Jeq<*Oi>zw$YY{tU??18WAZRSAc+luBS5_%gFt}U=_CkVMPL9SG->9@i6RJS z282$nbL>vSb9vQ6%F(nbX9-_S>5dgx&$jBi8JKA7wKL7v# diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js @@ -0,0 +1,73 @@ +/** + * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose. + */ + +function writeFlash(p) { + writeEmbed( + 'D27CDB6E-AE6D-11cf-96B8-444553540000', + 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', + 'application/x-shockwave-flash', + p + ); +} + +function writeShockWave(p) { + writeEmbed( + '166B1BCA-3F9C-11CF-8075-444553540000', + 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0', + 'application/x-director', + p + ); +} + +function writeQuickTime(p) { + writeEmbed( + '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B', + 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0', + 'video/quicktime', + p + ); +} + +function writeRealMedia(p) { + writeEmbed( + 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA', + 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', + 'audio/x-pn-realaudio-plugin', + p + ); +} + +function writeWindowsMedia(p) { + p.url = p.src; + writeEmbed( + '6BF52A52-394A-11D3-B153-00C04F79FAA6', + 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701', + 'application/x-mplayer2', + p + ); +} + +function writeEmbed(cls, cb, mt, p) { + var h = '', n; + + h += ''; + + h += ' \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/langs/en.js @@ -0,0 +1,5 @@ +// UK lang variables + +tinyMCE.addToLang('',{ +preview_desc : 'Preview' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/preview/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('print');var TinyMCE_PrintPlugin={getInfo:function(){return{longname:'Print',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"print":return tinyMCE.getButtonHTML(cn,'lang_print_desc','{$pluginurl}/images/print.gif','mcePrint')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mcePrint":tinyMCE.getInstanceById(editor_id).contentWindow.print();return true}return false}};tinyMCE.addPlugin("print",TinyMCE_PrintPlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js @@ -0,0 +1,47 @@ +/** + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +/* Import theme specific language pack */ +tinyMCE.importPluginLanguagePack('print'); + +var TinyMCE_PrintPlugin = { + getInfo : function() { + return { + longname : 'Print', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + getControlHTML : function(cn) { + switch (cn) { + case "print": + return tinyMCE.getButtonHTML(cn, 'lang_print_desc', '{$pluginurl}/images/print.gif', 'mcePrint'); + } + + return ""; + }, + + /** + * Executes the search/replace commands. + */ + execCommand : function(editor_id, element, command, user_interface, value) { + // Handle commands + switch (command) { + case "mcePrint": + tinyMCE.getInstanceById(editor_id).contentWindow.print(); + return true; + } + + // Pass to next handler in chain + return false; + } +}; + +tinyMCE.addPlugin("print", TinyMCE_PrintPlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/images/print.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/images/print.gif new file mode 100644 index 0000000000000000000000000000000000000000..72104d177b7fb10164fe2dcd5c11833af420ed0d GIT binary patch literal 211 zc$@*#04)DUNk%w1VH5xq0K*3W0-^$glB?9%;yO@jtF_9q{sK~CfBXCW68-|a#?oSO ziL%e~l%llZ>Gg7ing9R*A^8LW000jFEC2ui02BZe000Dl@X1N5y*TUrMEc;T3BqBT z4PgiwVSWT5C`y(zC#n*d;5M+t%)nq+5`;vqkun5Sl>{S3U<4crgF(S?7%GgM_|OPs zD* \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/langs/en.js @@ -0,0 +1,5 @@ +// UK lang variables + +tinyMCE.addToLang('',{ +print_desc : 'Print' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/print/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('save');var TinyMCE_SavePlugin={getInfo:function(){return{longname:'Save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){inst.addShortcut('ctrl','s','lang_save_desc','mceSave')},getControlHTML:function(cn){switch(cn){case"save":return tinyMCE.getButtonHTML(cn,'lang_save_desc','{$pluginurl}/images/save.gif','mceSave');case"cancel":return tinyMCE.getButtonHTML(cn,'lang_cancel_desc','{$pluginurl}/images/cancel.gif','mceCancel')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceSave":return this._save(editor_id,element,command,user_interface,value);case"mceCancel":return this._cancel(editor_id,element,command,user_interface,value)}return false},_save:function(editor_id,element,command,user_interface,value){var inst,formObj,os,i,elementId;if(tinyMCE.getParam("fullscreen_is_enabled"))return true;inst=tinyMCE.selectedInstance;formObj=inst.formElement.form;if(tinyMCE.getParam("save_enablewhendirty")&&!inst.isDirty())return true;if(formObj){tinyMCE.triggerSave();if((os=tinyMCE.getParam("save_onsavecallback"))){if(eval(os+'(inst);')){inst.startContent=tinyMCE.trim(inst.getBody().innerHTML);tinyMCE.triggerNodeChange(false,true)}return true}for(i=0;ip38H1eq{2V*H_g54ftIHrvL~5hya`b z@W*Boaa^1>pBgkQG>S(@;>!vXpAnyz1c#$Hd7X}WXq8H^+u1;XPp4_M8r7D&3WeZu z39VMgpk*Nx$!O1M6Cv!#Wb}*+9URb6g11`F&YhW{Fh9=+z3A{za5@ngJqCbJrD%d+ z=Wa7N-o-G+=VSeTK9lL?V}Ai)NH14RG3g+eNeGW~JV|zqdT!RuXtii%iAnmq5YiqG zlklRoBJy~6i-nF6T^tu6si))d#4$D84A4LC9Kh zB!~1aF_!C5d@>tF%Sxstgyc?is!-p&rEE;1b`Z_ zU%6+XI&ufdzu;_dqjL0iA^@2tU5qblKrHvFN8F+?S>?*oLH{k#I%v0b%`(T zZ`!ZPE;Xxb!6{1RqVxg9abtA&R{ELB@@ \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/images/save.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/images/save.gif new file mode 100644 index 0000000000000000000000000000000000000000..2777bebfe7c66ae969f4580f0fd3ba37b9383a72 GIT binary patch literal 285 zc$@(p0pk8gNk%w1VH5xq0Mr=(0s;cIzQ#^i#^&bsGCEQULZ*(6=0-@G#@6n7a@MAv z=2B8pa(b4&zWyybKUGz+_V)H7LULkb&0=nbDnh10O16%U_Ch*=uBQI|{{EJ(=2BX6 zDoVE2;P}SI+5i9mA^8LW0018VEC2ui02BZe000G=;3tk`X`X1RqD|Xim}1OEVwy!E|{0<7#0>aHWEL6BndDU8;y+&e4jmm66%_}QC6xvn4h#bW3={_x jpoxPV4gmok9t#w=ts@#{Ko1AM7r_@1E5*jg#vuSZ^a*OP diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/langs/en.js @@ -0,0 +1,6 @@ +// UK lang variables + +tinyMCE.addToLang('',{ +save_desc : 'Save', +cancel_desc : 'Cancel all changes' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/save/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css @@ -0,0 +1,20 @@ +/* stylesheet for advsearchreplace plugin*/ + +.panel_wrapper { height: 85px; } +.panel_wrapper div.current { height: 85px; } + +/* MS IE only styles */ +* html .panel_wrapper { height: 100px; } +* html .panel_wrapper div.current { height: 100px; } + +#replaceBtn, #replaceAllBtn { + padding-bottom: 2px; + font-weight: bold; + width: 90px; + height: 21px; + border: 0; + cursor: pointer; +} + +#replaceBtn { background: url(../images/replace_button_bg.gif); } +#replaceAllBtn { background: url(../images/replace_all_button_bg.gif); } diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('searchreplace');var TinyMCE_SearchReplacePlugin={getInfo:function(){return{longname:'Search/Replace',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){inst.addShortcut('ctrl','f','lang_searchreplace_search_desc','mceSearch',true);},getControlHTML:function(cn){switch(cn){case"search":return tinyMCE.getButtonHTML(cn,'lang_searchreplace_search_desc','{$pluginurl}/images/search.gif','mceSearch',true);case"replace":return tinyMCE.getButtonHTML(cn,'lang_searchreplace_replace_desc','{$pluginurl}/images/replace.gif','mceSearchReplace',true)}return""},execCommand:function(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id),selectedText=inst.selection.getSelectedText(),rng;function defValue(key,default_value){value[key]=typeof(value[key])=="undefined"?default_value:value[key]}function replaceSel(search_str,str,back){if(!inst.selection.isCollapsed()){if(tinyMCE.isRealIE)inst.selection.getRng().duplicate().pasteHTML(str);else inst.execCommand('mceInsertContent',false,str)}}if(!value)value=[];defValue("editor_id",editor_id);defValue("searchstring",selectedText);defValue("replacestring",null);defValue("replacemode","none");defValue("casesensitive",false);defValue("backwards",false);defValue("wrap",false);defValue("wholeword",false);defValue("inline","yes");defValue("resizable","no");switch(command){case"mceSearch":if(user_interface){var template=new Array();template['file']='../../plugins/searchreplace/searchreplace.htm';template['width']=380;template['height']=155+(tinyMCE.isNS7?20:0)+(tinyMCE.isMSIE?15:0);template['width']+=tinyMCE.getLang('lang_searchreplace_delta_width',0);template['height']+=tinyMCE.getLang('lang_searchreplace_delta_height',0);inst.selection.collapse(true);tinyMCE.openWindow(template,value)}else{var win=tinyMCE.getInstanceById(editor_id).contentWindow;var doc=tinyMCE.getInstanceById(editor_id).contentWindow.document;var body=tinyMCE.getInstanceById(editor_id).contentWindow.document.body;var awin=value.win,found;if(body.innerHTML==""){awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));return true}if(value['replacemode']=="current"){replaceSel(value['string'],value['replacestring'],value['backwards']);value['replacemode']="none";}inst.selection.collapse(value['backwards']);if(tinyMCE.isMSIE){var rng=inst.selection.getRng();var flags=0;if(value['wholeword'])flags=flags|2;if(value['casesensitive'])flags=flags|4;if(!rng.findText){awin.alert('This operation is currently not supported by this browser.');return true}if(value['replacemode']=="all"){found=false;while(rng.findText(value['string'],value['backwards']?-1:1,flags)){found=true;rng.scrollIntoView();rng.select();replaceSel(value['string'],value['replacestring'],value['backwards'])}if(found)awin.alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));else awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));return true}if(rng.findText(value['string'],value['backwards']?-1:1,flags)){rng.scrollIntoView();rng.select()}else awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'))}else{if(value['replacemode']=="all"){found=false;while(win.find(value['string'],value['casesensitive'],value['backwards'],value['wrap'],value['wholeword'],false,false)){found=true;replaceSel(value['string'],value['replacestring'],value['backwards'])}if(found)awin.alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));else awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));return true}if(!win.find(value['string'],value['casesensitive'],value['backwards'],value['wrap'],value['wholeword'],false,false))awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'))}}return true;case"mceSearchReplace":value['replacestring']="";tinyMCE.execInstanceCommand(editor_id,'mceSearch',user_interface,value,false);return true}return false}};tinyMCE.addPlugin("searchreplace",TinyMCE_SearchReplacePlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js @@ -0,0 +1,173 @@ +/** + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +tinyMCE.importPluginLanguagePack('searchreplace'); + +var TinyMCE_SearchReplacePlugin = { + getInfo : function() { + return { + longname : 'Search/Replace', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + initInstance : function (inst) { + inst.addShortcut('ctrl', 'f', 'lang_searchreplace_search_desc', 'mceSearch', true); + // No CTRL+R for "replace" because browsers will reload page instead of executing plugin + }, + + getControlHTML : function (cn) { + switch (cn) { + case "search" : + return tinyMCE.getButtonHTML(cn, 'lang_searchreplace_search_desc', '{$pluginurl}/images/search.gif','mceSearch', true); + + case "replace" : + return tinyMCE.getButtonHTML(cn, 'lang_searchreplace_replace_desc', '{$pluginurl}/images/replace.gif', 'mceSearchReplace', true); + } + + return ""; + }, + + execCommand : function (editor_id, element, command, user_interface, value) { + var inst = tinyMCE.getInstanceById(editor_id), selectedText = inst.selection.getSelectedText(), rng; + + function defValue(key, default_value) { + value[key] = typeof(value[key]) == "undefined" ? default_value : value[key]; + } + + function replaceSel(search_str, str, back) { + if (!inst.selection.isCollapsed()) { + if (tinyMCE.isRealIE) + inst.selection.getRng().duplicate().pasteHTML(str); // Needs to be duplicated due to selection bug in IE + else + inst.execCommand('mceInsertContent', false, str); + } + } + + if (!value) + value = []; + + defValue("editor_id", editor_id); + defValue("searchstring", selectedText); + defValue("replacestring", null); + defValue("replacemode", "none"); + defValue("casesensitive", false); + defValue("backwards", false); + defValue("wrap", false); + defValue("wholeword", false); + defValue("inline", "yes"); + defValue("resizable", "no"); + + switch (command) { + case "mceSearch" : + if (user_interface) { + var template = new Array(); + + template['file'] = '../../plugins/searchreplace/searchreplace.htm'; + template['width'] = 380; + template['height'] = 155 + (tinyMCE.isNS7 ? 20 : 0) + (tinyMCE.isMSIE ? 15 : 0); + template['width'] += tinyMCE.getLang('lang_searchreplace_delta_width', 0); + template['height'] += tinyMCE.getLang('lang_searchreplace_delta_height', 0); + + inst.selection.collapse(true); + + tinyMCE.openWindow(template, value); + } else { + var win = tinyMCE.getInstanceById(editor_id).contentWindow; + var doc = tinyMCE.getInstanceById(editor_id).contentWindow.document; + var body = tinyMCE.getInstanceById(editor_id).contentWindow.document.body; + var awin = value.win, found; + + if (body.innerHTML == "") { + awin.alert(tinyMCE.getLang('lang_searchreplace_notfound')); + return true; + } + + if (value['replacemode'] == "current") { + replaceSel(value['string'], value['replacestring'], value['backwards']); + value['replacemode'] = "none"; + //tinyMCE.execInstanceCommand(editor_id, 'mceSearch', user_interface, value); + //return true; + } + + inst.selection.collapse(value['backwards']); + + if (tinyMCE.isMSIE) { + var rng = inst.selection.getRng(); + var flags = 0; + if (value['wholeword']) + flags = flags | 2; + + if (value['casesensitive']) + flags = flags | 4; + + if (!rng.findText) { + awin.alert('This operation is currently not supported by this browser.'); + return true; + } + + if (value['replacemode'] == "all") { + found = false; + + while (rng.findText(value['string'], value['backwards'] ? -1 : 1, flags)) { + found = true; + rng.scrollIntoView(); + rng.select(); + replaceSel(value['string'], value['replacestring'], value['backwards']); + } + + if (found) + awin.alert(tinyMCE.getLang('lang_searchreplace_allreplaced')); + else + awin.alert(tinyMCE.getLang('lang_searchreplace_notfound')); + + return true; + } + + if (rng.findText(value['string'], value['backwards'] ? -1 : 1, flags)) { + rng.scrollIntoView(); + rng.select(); + } else + awin.alert(tinyMCE.getLang('lang_searchreplace_notfound')); + } else { + if (value['replacemode'] == "all") { + found = false; + + while (win.find(value['string'], value['casesensitive'], value['backwards'], value['wrap'], value['wholeword'], false, false)) { + found = true; + replaceSel(value['string'], value['replacestring'], value['backwards']); + } + + if (found) + awin.alert(tinyMCE.getLang('lang_searchreplace_allreplaced')); + else + awin.alert(tinyMCE.getLang('lang_searchreplace_notfound')); + + return true; + } + + if (!win.find(value['string'], value['casesensitive'], value['backwards'], value['wrap'], value['wholeword'], false, false)) + awin.alert(tinyMCE.getLang('lang_searchreplace_notfound')); + } + } + + return true; + + case "mceSearchReplace" : + value['replacestring'] = ""; + tinyMCE.execInstanceCommand(editor_id, 'mceSearch', user_interface, value, false); + return true; + } + + return false; + } +}; + +tinyMCE.addPlugin("searchreplace", TinyMCE_SearchReplacePlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/images/replace.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/images/replace.gif new file mode 100644 index 0000000000000000000000000000000000000000..784c73e2a9bb6cf369146a5ea6b1300262376eed GIT binary patch literal 125 zc${+5Tf@nG4qWeF2LOxW<@_Kk}SV4(Pug^_`QjX?**0jXtR zcFNdw=bu26xR!{+1qI&xJJ%DYikVJUs#?Bdp6;1bCe}PHpUs*l9bPo=;qeOA77Hgv Zp-%!;_DN4(tUlD@+_dG`+iOA$)&Nj)FFODL diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/images/replace_all_button_bg.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/images/replace_all_button_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..123fa5bf5fffa279025bc77e260840705d6c0ca7 GIT binary patch literal 669 zc$@*90%H9~Nk%w1VOjtc0E8a^0001~+ncf9r@Z8}#puAz>&esZ(%10T+40)k^4<3K z_V@Sq_xShs`1ttv_xSku`T6_ z{r>&_{{8;`{{R2~EC2ui09pVQ000I4ARvxpX`X1Ru56pUa4gSsZQpo)i%9SPz@TtQ zEEy4Vn*|44@944Gj*do28nr zt)Ho_r=Ab6x39enz^k93a1OYomjDC=4-n1I&Ca=}($Ln>)ezOw+_}=<+2GjQ)Dz1h z%McP05!wu=gon41E6r&OkWuV8VwFBSs9kv0uiC6BiC_crRbPBJgJDpdrHs4xm4C z=-jyjXwVrreAcjm@aPR1R1C}*s)i?zFa_n58I(vAO9S@2k_g`n^*5Vy?OEB-=jZ2zyA2}=kt5O;9W$3 z@9G68;D7`cXyAbe9whjmfB!Y;;DZoGDB*+@R%juG3|^?=h8%WSVGAIJDB_4Bh5!IN D&VOW| diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/images/replace_button_bg.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/images/replace_button_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc2c56e61177a614580b61e367fab32c2da31320 GIT binary patch literal 669 zc$@*90%H9~Nk%w1VOjtc0E8a^0001(__ z{r>&_{{8;`{{R2~EC2ui09pVQ000I4ARvxpX`X1Ru56pUa4gSsZQpo)i%9SPz@TtQ zEEy4Vn*|44@944Gj*do28nr zt)Ho_r=Ab6x39enz^k93a1OYomjDC=4-n1I&Ca=}($Ln>)ezOw+_}=<+2GjQ)Dz1h z%McP05!wu=gon41E6r&OkWuV8VwFBSs9kv0uiC6BiC_crRbPBJgJDpdrHs4xm4C z=-jyjXwVrreAcjm@aPR1R1C}*s)i?zFa_n58I(vAO9S@2k_g`n^*5Vy?OEB-=jZ2zyA2}=kt5O;9W$3 z@9G68;D7`cXyAbe9whjmfB!Y;;DZoGDB*+@R%juG3|^?=h8%WSVGAIJDB_4Bh5!IN Du3Thj{dMSt5;y`fuDmH}Uz$g$9N~Xo| \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/replace.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/replace.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/replace.js @@ -0,0 +1,40 @@ +function init() { + tinyMCEPopup.resizeToInnerSize(); + + var formObj = document.forms[0]; + + formObj.searchstring.value = tinyMCE.getWindowArg("searchstring"); + formObj.replacestring.value = tinyMCE.getWindowArg("replacestring"); + formObj.casesensitivebox.checked = tinyMCE.getWindowArg("casesensitive"); +// formObj.backwards[0].checked = tinyMCE.getWindowArg("backwards"); +// formObj.backwards[1].checked = !tinyMCE.getWindowArg("backwards"); +// formObj.wrapatend.checked = tinyMCE.getWindowArg("wrap"); +// formObj.wholeword.checked = tinyMCE.getWindowArg("wholeword"); + + tinyMCEPopup.execCommand("mceResetSearch", false, {dummy : ""}, false); +} + +function searchNext(replacemode) { + var formObj = document.forms[0]; + + // Whats the point? + if (formObj.searchstring.value == "" || formObj.searchstring.value == formObj.replacestring.value) + return; + + // Do search + tinyMCEPopup.execCommand('mceSearch', false, { + string : formObj.searchstring.value, + replacestring : formObj.replacestring.value, + replacemode : replacemode, + casesensitive : formObj.casesensitivebox.checked, + backwards : false +// wrap : formObj.wrapatend.checked, +// wholeword : formObj.wholeword.checked + }, false); + + window.focus(); +} + +function cancelAction() { + tinyMCEPopup.close(); +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/search.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/search.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/search.js @@ -0,0 +1,36 @@ +function init() { + tinyMCEPopup.resizeToInnerSize(); + + var formObj = document.forms[0]; + + formObj.searchstring.value = tinyMCE.getWindowArg("searchstring"); + formObj.casesensitivebox.checked = tinyMCE.getWindowArg("casesensitive"); + formObj.backwards[0].checked = tinyMCE.getWindowArg("backwards"); + formObj.backwards[1].checked = !tinyMCE.getWindowArg("backwards"); +// formObj.wrapatend.checked = tinyMCE.getWindowArg("wrap"); +// formObj.wholeword.checked = tinyMCE.getWindowArg("wholeword"); + + tinyMCEPopup.execCommand("mceResetSearch", false, {dummy : ""}, false); +} + +function searchNext() { + var formObj = document.forms[0]; + + if (formObj.searchstring.value == "") + return; + + // Do search + tinyMCEPopup.execCommand('mceSearch', false, { + string : formObj.searchstring.value, + casesensitive : formObj.casesensitivebox.checked, + backwards : formObj.backwards[0].checked +// wrap : formObj.wrapatend.checked, +// wholeword : formObj.wholeword.checked + }, false); + + window.focus(); +} + +function cancelAction() { + tinyMCEPopup.close(); +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/searchreplace.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/searchreplace.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/jscripts/searchreplace.js @@ -0,0 +1,86 @@ +function init() { + tinyMCEPopup.resizeToInnerSize(); + + // start with appropiate tab + var task = (tinyMCE.getWindowArg("replacestring") != null) ? "replace" : "search"; + mcTabs.displayTab(task + '_tab', task +'_panel'); + manageReplaceButtons(); + + var formObj = document.forms[0]; + + formObj[task + "_panel_searchstring"].value = tinyMCE.getWindowArg("searchstring"); + formObj["replace_panel_replacestring"].value = (tinyMCE.getWindowArg("replacestring") != null) ? tinyMCE.getWindowArg("replacestring") : ""; + formObj[task + "_panel_casesensitivebox"].checked = tinyMCE.getWindowArg("casesensitive"); + formObj[task + "_panel_backwardsu"].checked = tinyMCE.getWindowArg("backwards"); + formObj[task + "_panel_backwardsd"].checked = !tinyMCE.getWindowArg("backwards"); +} + +function searchNext(replacemode) { + // "search" or "replace" mode of operation? + var task = (document.getElementById("search_tab").className == "current") ? "search" : "replace"; + + var formObj = document.forms[0]; + + if (task == "replace") { + // Whats the point? + if (formObj[task + "_panel_searchstring"].value == "" || formObj[task + "_panel_searchstring"].value == formObj[task + "_panel_replacestring"].value) + return false; + } + + // Do search + tinyMCEPopup.execCommand('mceSearch', false, { + string : formObj[task + "_panel_searchstring"].value, + replacestring : formObj["replace_panel_replacestring"].value, + replacemode : replacemode, + casesensitive : formObj[task + "_panel_casesensitivebox"].checked, + backwards : formObj[task + "_panel_backwardsu"].checked, + win : window + }, false); + + window.focus(); + + return false; +} + +function cancelAction() { + tinyMCEPopup.close(); +} + +function manageReplaceButtons() { + // "search" or "replace" mode of operation? + var task = (document.getElementById("search_tab").className == "current") ? "search" : "replace"; + document.getElementById("replace_buttons").style.visibility = (task == "replace") ? "visible" : "hidden"; +} + +function copyValues(link) { + // check if tab is already active + var tab = link; + while (tab.tagName && tab.tagName.toLowerCase() != "li") tab = tab.parentNode; + if (tab.className) return false; // tab is already active -> no need to copy any values! + + // copy values from one panel to the other (if they exist there) + var from_panel_name = tab.id.match(/^search/i) ? "replace_panel" : "search_panel"; + var to_panel_name = (from_panel_name == "search_panel") ? "replace_panel" : "search_panel"; + + // find all elements with IDs to copy their values + var elms = document.getElementById(from_panel_name).getElementsByTagName("*"); + for (var i = 0; i < elms.length; i++) { + if (elms[i].id && elms[i].id != "") { + var checked = "undefined"; + if (elms[i].type.toLowerCase() == "checkbox" || elms[i].type.toLowerCase() == "radio") + checked = elms[i].checked; + + // copy values if element exists in other panel + var to_elm_name = to_panel_name + elms[i].id.substring(from_panel_name.length, elms[i].id.length); + var to_elm = document.getElementById(to_elm_name); + if (to_elm) { + if (checked != "undefined") + to_elm.checked = checked; + else + to_elm.value = elms[i].value; + } + } + } + + return false; +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en.js @@ -0,0 +1,21 @@ +// UK lang variables + +tinyMCE.addToLang('',{ +searchreplace_search_desc : 'Find', +searchreplace_searchnext_desc : 'Find again', +searchreplace_replace_desc : 'Find/Replace', +searchreplace_notfound : 'The search has been completed. The search string could not be found.', +searchreplace_search_title : 'Find', +searchreplace_replace_title : 'Find/Replace', +searchreplace_allreplaced : 'All occurrences of the search string were replaced.', +searchreplace_findwhat : 'Find what', +searchreplace_replacewith : 'Replace with', +searchreplace_direction : 'Direction', +searchreplace_up : 'Up', +searchreplace_down : 'Down', +searchreplace_case : 'Match case', +searchreplace_findnext : 'Find next', +searchreplace_replace : 'Replace', +searchreplace_replaceall : 'Replace all', +searchreplace_cancel : 'Cancel' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/replace.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/replace.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/replace.htm @@ -0,0 +1,49 @@ + + + {$lang_searchreplace_replace_title} + + + + + +
        + + + + + + + + + + + + + + + +
        + + + + +
        + + + + + + + +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/search.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/search.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/search.htm @@ -0,0 +1,42 @@ + + + {$lang_searchreplace_search_title} + + + + + +
        + + + + + + + + + + +
         
        + + + + + + + +
        + + + + +
        + + + + + +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm @@ -0,0 +1,107 @@ + + + {$lang_searchreplace_replace_title} + + + + + + + + +
        + + +
        + +
        + + + + + + + + + + + +
        + + + + + + + + +
        +
        + + + + + +
        +
        +
        + +
        + + + + + + + + + + + + + + + +
        + + + + + + + + +
        +
        + + + + + +
        +
        +
        + +
        + +
        +
        + + + + + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/css/props.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/css/props.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/css/props.css @@ -0,0 +1,62 @@ +#text_font { + width: 250px; +} + +#text_size { + width: 70px; +} + +.mceAddSelectValue { + background-color: #DDDDDD; +} + +select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left { + width: 70px; +} + +#box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex { + width: 70px; +} + +#positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left { + width: 70px; +} + +#positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left { + width: 70px; +} + +.panel_wrapper div.current { + padding-top: 10px; + height: 230px; +} + +.delim { + border-left: 1px solid gray; +} + +.tdelim { + border-bottom: 1px solid gray; +} + +#block_display { + width: 145px; +} + +#list_type { + width: 115px; +} + +.disabled { + background-color: #EEEEEE; +} + +#apply { + font-weight: bold; + width: 78px; + height: 21px; + border: 0; + background-image: url('../images/apply_button_bg.gif'); + cursor: pointer; +} + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('style');var TinyMCE_StylePlugin={getInfo:function(){return{longname:'Style',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"styleprops":return tinyMCE.getButtonHTML(cn,'lang_style_styleinfo_desc','{$pluginurl}/images/styleprops.gif','mceStyleProps',true)}return""},execCommand:function(editor_id,element,command,user_interface,value){var e,inst;switch(command){case"mceStyleProps":TinyMCE_StylePlugin._styleProps();return true;case"mceSetElementStyle":inst=tinyMCE.getInstanceById(editor_id);e=inst.selection.getFocusElement();if(e){e.style.cssText=value;inst.repaint()}return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node.nodeName=='BODY')tinyMCE.switchClass(editor_id+'_styleprops','mceButtonDisabled');else tinyMCE.switchClass(editor_id+'_styleprops','mceButtonNormal')},_styleProps:function(){var e=tinyMCE.selectedInstance.selection.getFocusElement();if(!e||e.nodeName=='BODY')return;tinyMCE.openWindow({file:'../../plugins/style/props.htm',width:480+tinyMCE.getLang('lang_style_props_delta_width',0),height:320+tinyMCE.getLang('lang_style_props_delta_height',0)},{editor_id:tinyMCE.selectedInstance.editorId,inline:"yes",style_text:e.style.cssText})}};tinyMCE.addPlugin("style",TinyMCE_StylePlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js @@ -0,0 +1,83 @@ +/** + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('style'); + +var TinyMCE_StylePlugin = { + getInfo : function() { + return { + longname : 'Style', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + getControlHTML : function(cn) { + switch (cn) { + case "styleprops": + return tinyMCE.getButtonHTML(cn, 'lang_style_styleinfo_desc', '{$pluginurl}/images/styleprops.gif', 'mceStyleProps', true); + } + + return ""; + }, + + execCommand : function(editor_id, element, command, user_interface, value) { + var e, inst; + + // Handle commands + switch (command) { + case "mceStyleProps": + TinyMCE_StylePlugin._styleProps(); + return true; + + case "mceSetElementStyle": + inst = tinyMCE.getInstanceById(editor_id); + e = inst.selection.getFocusElement(); + + if (e) { + e.style.cssText = value; + inst.repaint(); + } + + return true; + } + + // Pass to next handler in chain + return false; + }, + + handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) { + if (node.nodeName == 'BODY') + tinyMCE.switchClass(editor_id + '_styleprops', 'mceButtonDisabled'); + else + tinyMCE.switchClass(editor_id + '_styleprops', 'mceButtonNormal'); + }, + + // Private plugin specific methods + + _styleProps : function() { + var e = tinyMCE.selectedInstance.selection.getFocusElement(); + + if (!e || e.nodeName == 'BODY') + return; + + tinyMCE.openWindow({ + file : '../../plugins/style/props.htm', + width : 480 + tinyMCE.getLang('lang_style_props_delta_width', 0), + height : 320 + tinyMCE.getLang('lang_style_props_delta_height', 0) + }, { + editor_id : tinyMCE.selectedInstance.editorId, + inline : "yes", + style_text : e.style.cssText + }); + } +}; + +tinyMCE.addPlugin("style", TinyMCE_StylePlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/images/apply_button_bg.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/images/apply_button_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..979e868abb3562f59ac89b3d24bbd47b7aeab075 GIT binary patch literal 1096 zc$}S4`%hDM6u+fFfmOWYwQexi!YnFv3Ye{g{lH`4Ay1cO=;GK4&6pI3Y;$phk<#)g zQ$Q?2Ve&GFx9D+%nl|J5CTdj?px2w?ha4j$yQ&W-yW>?KBOxOaM?g!N54&HW4@h0i;M0 zZp{G*aSR6#U^r%ncCa>v;W)!V5(Kd5sD(~whcxXVNP?WHcI@!e&~~4E+zM?oVC5ER zx=7B{0IQxbs))%_zz|Y^G^rg9nrVt6sij_mB#EgqLSIVg<>XWu+@2%N8rtEYmU@V( zamK+(a?^OFfiX0~s^hChBP?*fcQN@QD&e8^hj0>jZc`4XhK4BLE;_ ztfHRx!c7D9sEvBuMm^M!#wrK^_7($g%;Z!#W5NF4Q2-za#tTVN6qAFYgm28mLOv!jxFZAC6MMS)bqb+SW|)?x8Sl?NFwM=Ijr;Z~qLLmiJTrg0 zID0HZA^MUd<8XLv8Bg}3%xbXN46m)b+5Z0j?1meDY|ftJV%-Z?1!wiqrEuIbjvV=0 zbo{9QXv2ptS9vi)mN!cp_(jx9dGH4; z_goL;nR+&@MJo4984uT|hovk1&RC9=Dtn{7#nmIeQpGi=0JlVeQOS8XJ->Z(-0whB zSb<|XraZE-U}>~)-TFKvcV!toq%Rr^e&;k_r~4}Hy|+7 zYa>JZU9_Ssbfs!AQ|`5qvs}s&YTJu#?g@K}z6lVhJVH0--k0EmX@ldIUM6<4&pE6EVEKB6(ClBH`Nv z>Qq;YRGrdl?yOG=+yC+TlNE)A#vBnErAhvD|7xY1_|A$`W>JLRLouXtVg2HT# \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/images/style_info.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/images/style_info.gif new file mode 100644 index 0000000000000000000000000000000000000000..41f227125bd3218788d800f664ff50a1bd9e9934 GIT binary patch literal 562 zc${*6U@^fVVuC})28W0R0R|Hi92Rt@TyRKOkUHsIbJ&FfhYbM* z2Mi)6q;|iX)O29!tczha2j}(Pm{M_}X%TkuRk78abfk^(@VG9TDj)r zyxLn`bvrs2U5s(;Y*_Ga!R(^}6$jjMH%;$6wR*)xgMbME4G(54KbarCa^?1`i#A>f zE#FoXzHRoJ+W`gz`4e9icx+g`;z~ong`}1XCGMM+Z#r8u|7OF2CrdY9Pq0`}5O83{ zvU3wwJ`FHvDDXJ&|Nno6p$rs%vM@3*I56mdIG{LTVDE2mXlib0ZENr7Y}PaBYL_x# z>T45IXP?}nz`@Pf%&*&J%VEyM(`3ZP(5b~M?7+Otfz6(!Q&gFenR%`ZCzoA^g@9QT zHVka*-gNf;<*6U@^fVVuC})28W0R0R|Hi92Rt@TyRKOkUHsIbJ&FfhYbM* z2Mi)6q;|iX)O29!tczha2j}(Pm{M_}X%TkuRk78abfk^(@VG9TDj)r zyxLn`bvrs2U5s(;Y*_Ga!R(^}6$jjMH%;$6wR*)xgMbME4G(54KbarCa^?1`i#A>f zE#FoXzHRoJ+W`gz`4e9icx+g`;z~ong`}1XCGMM+Z#r8u|7OF2CrdY9Pq0`}5O83{ zvU3wwJ`FHvDDXJ&|Nno6p$rs%vM@3*I56mdIG{LTVDE2mXlib0ZENr7Y}PaBYL_x# z>T45IXP?}nz`@Pf%&*&J%VEyM(`3ZP(5b~M?7+Otfz6(!Q&gFenR%`ZCzoA^g@9QT zHVka*-gNf;< \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/jscripts/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/jscripts/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/jscripts/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/jscripts/props.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/jscripts/props.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/jscripts/props.js @@ -0,0 +1,633 @@ +var defaultFonts = "" + + "Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" + + "Times New Roman, Times, serif=Times New Roman, Times, serif;" + + "Courier New, Courier, mono=Courier New, Courier, mono;" + + "Times New Roman, Times, serif=Times New Roman, Times, serif;" + + "Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" + + "Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" + + "Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif"; + +var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger"; +var defaultMeasurement = "+pixels=px;points=pt;in;cm;mm;picas;ems;exs;%"; +var defaultSpacingMeasurement = "pixels=px;points=pt;in;cm;mm;picas;+ems;exs;%"; +var defaultIndentMeasurement = "pixels=px;+points=pt;in;cm;mm;picas;ems;exs;%"; +var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900"; +var defaultTextStyle = "normal;italic;oblique"; +var defaultVariant = "normal;small-caps"; +var defaultLineHeight = "normal"; +var defaultAttachment = "fixed;scroll"; +var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y"; +var defaultPosH = "left;center;right"; +var defaultPosV = "top;center;bottom"; +var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom"; +var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none"; +var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset"; +var defaultBorderWidth = "thin;medium;thick"; +var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none"; + +function init() { + var ce = document.getElementById('container'), h; + + ce.style.cssText = tinyMCEPopup.getWindowArg('style_text'); + + h = getBrowserHTML('background_image_browser','background_image','image','advimage'); + document.getElementById("background_image_browser").innerHTML = h; + + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color'); + document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color'); + document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top'); + document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right'); + document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom'); + document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left'); + + fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true); + fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true); + fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true); + fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true); + fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true); + fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true); + fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true); + fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true); + fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true); + + fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true); + fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true); + + fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true); + fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true); + fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true); + fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true); + fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true); + fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true); + fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true); + fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true); + fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true); + + fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true); + fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true); + fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true); + fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true); + fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true); + fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true); + + fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true); + fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true); + fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true); + fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true); + + fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true); + fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true); + + fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true); + fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true); + + fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true); + + fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true); + + TinyMCE_EditableSelects.init(); + setupFormData(); + showDisabledControls(); +} + +function setupFormData() { + var ce = document.getElementById('container'), f = document.forms[0], s, b, i; + + // Setup text fields + + selectByValue(f, 'text_font', ce.style.fontFamily, true, true); + selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true); + selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize)); + selectByValue(f, 'text_weight', ce.style.fontWeight, true, true); + selectByValue(f, 'text_style', ce.style.fontStyle, true, true); + selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true); + selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight)); + selectByValue(f, 'text_case', ce.style.textTransform, true, true); + selectByValue(f, 'text_variant', ce.style.fontVariant, true, true); + f.text_color.value = ce.style.color; + updateColor('text_color_pick', 'text_color'); + f.text_underline.checked = inStr(ce.style.textDecoration, 'underline'); + f.text_overline.checked = inStr(ce.style.textDecoration, 'overline'); + f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through'); + f.text_blink.checked = inStr(ce.style.textDecoration, 'blink'); + + // Setup background fields + + f.background_color.value = ce.style.backgroundColor; + updateColor('background_color_pick', 'background_color'); + f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); + selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true); + selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true); + selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true); + selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0))); + selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true); + selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1))); + + // Setup block fields + + selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true); + selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing)); + selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true); + selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing)); + selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true); + selectByValue(f, 'block_text_align', ce.style.textAlign, true, true); + f.block_text_indent.value = getNum(ce.style.textIndent); + selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent)); + selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true); + selectByValue(f, 'block_display', ce.style.display, true, true); + + // Setup box fields + + f.box_width.value = getNum(ce.style.width); + selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width)); + + f.box_height.value = getNum(ce.style.height); + selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height)); + + if (tinyMCE.isGecko) + selectByValue(f, 'box_float', ce.style.cssFloat, true, true); + else + selectByValue(f, 'box_float', ce.style.styleFloat, true, true); + + selectByValue(f, 'box_clear', ce.style.clear, true, true); + + setupBox(f, ce, 'box_padding', 'padding', ''); + setupBox(f, ce, 'box_margin', 'margin', ''); + + // Setup border fields + + setupBox(f, ce, 'border_style', 'border', 'Style'); + setupBox(f, ce, 'border_width', 'border', 'Width'); + setupBox(f, ce, 'border_color', 'border', 'Color'); + + updateColor('border_color_top_pick', 'border_color_top'); + updateColor('border_color_right_pick', 'border_color_right'); + updateColor('border_color_bottom_pick', 'border_color_bottom'); + updateColor('border_color_left_pick', 'border_color_left'); + + // Setup list fields + + selectByValue(f, 'list_type', ce.style.listStyleType, true, true); + selectByValue(f, 'list_position', ce.style.listStylePosition, true, true); + f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); + + // Setup box fields + + selectByValue(f, 'positioning_type', ce.style.position, true, true); + selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true); + selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true); + f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : ""; + + f.positioning_width.value = getNum(ce.style.width); + selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width)); + + f.positioning_height.value = getNum(ce.style.height); + selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height)); + + setupBox(f, ce, 'positioning_placement', '', '', new Array('top', 'right', 'bottom', 'left')); + + s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1"); + s = s.replace(/,/g, ' '); + + if (!hasEqualValues(new Array(getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)))) { + f.positioning_clip_top.value = getNum(getVal(s, 0)); + selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0))); + f.positioning_clip_right.value = getNum(getVal(s, 1)); + selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1))); + f.positioning_clip_bottom.value = getNum(getVal(s, 2)); + selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2))); + f.positioning_clip_left.value = getNum(getVal(s, 3)); + selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3))); + } else { + f.positioning_clip_top.value = getNum(getVal(s, 0)); + selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0))); + f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value; + } + +// setupBox(f, ce, '', 'border', 'Color'); +} + +function getMeasurement(s) { + return s.replace(/^([0-9]+)(.*)$/, "$2"); +} + +function getNum(s) { + if (new RegExp('^[0-9]+[a-z%]+$', 'gi').test(s)) + return s.replace(/[^0-9]/g, ''); + + return s; +} + +function inStr(s, n) { + return new RegExp(n, 'gi').test(s); +} + +function getVal(s, i) { + var a = tinyMCE.explode(' ', s); + + if (a.length > 1) + return a[i]; + + return ""; +} + +function setValue(f, n, v) { + if (f.elements[n].type == "text") + f.elements[n].value = v; + else + selectByValue(f, n, v, true, true); +} + +function setupBox(f, ce, fp, pr, sf, b) { + if (typeof(b) == "undefined") + b = new Array('Top', 'Right', 'Bottom', 'Left'); + + if (isSame(ce, pr, sf, b)) { + f.elements[fp + "_same"].checked = true; + + setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf])); + f.elements[fp + "_top"].disabled = false; + + f.elements[fp + "_right"].value = ""; + f.elements[fp + "_right"].disabled = true; + f.elements[fp + "_bottom"].value = ""; + f.elements[fp + "_bottom"].disabled = true; + f.elements[fp + "_left"].value = ""; + f.elements[fp + "_left"].disabled = true; + + if (f.elements[fp + "_top_measurement"]) { + selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf])); + f.elements[fp + "_left_measurement"].disabled = true; + f.elements[fp + "_bottom_measurement"].disabled = true; + f.elements[fp + "_right_measurement"].disabled = true; + } + } else { + f.elements[fp + "_same"].checked = false; + + setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf])); + f.elements[fp + "_top"].disabled = false; + + setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf])); + f.elements[fp + "_right"].disabled = false; + + setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf])); + f.elements[fp + "_bottom"].disabled = false; + + setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf])); + f.elements[fp + "_left"].disabled = false; + + if (f.elements[fp + "_top_measurement"]) { + selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf])); + selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf])); + selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf])); + selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf])); + f.elements[fp + "_left_measurement"].disabled = false; + f.elements[fp + "_bottom_measurement"].disabled = false; + f.elements[fp + "_right_measurement"].disabled = false; + } + } +} + +function isSame(e, pr, sf, b) { + var a = new Array(), i, x; + + if (typeof(b) == "undefined") + b = new Array('Top', 'Right', 'Bottom', 'Left'); + + if (typeof(sf) == "undefined" || sf == null) + sf = ""; + + a[0] = e.style[pr + b[0] + sf]; + a[1] = e.style[pr + b[1] + sf]; + a[2] = e.style[pr + b[2] + sf]; + a[3] = e.style[pr + b[3] + sf]; + + for (i=0; i 0 ? s.substring(1) : s; + + if (f.text_none.checked) + s = "none"; + + ce.style.textDecoration = s; + + // Build background styles + + ce.style.backgroundColor = f.background_color.value; + ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : ""; + ce.style.backgroundRepeat = f.background_repeat.value; + ce.style.backgroundAttachment = f.background_attachment.value; + + if (f.background_hpos.value != "") { + s = ""; + s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " "; + s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : ""); + ce.style.backgroundPosition = s; + } + + // Build block styles + + ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : ""); + ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : ""); + ce.style.verticalAlign = f.block_vertical_alignment.value; + ce.style.textAlign = f.block_text_align.value; + ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : ""); + ce.style.whiteSpace = f.block_whitespace.value; + ce.style.display = f.block_display.value; + + // Build box styles + + ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : ""); + ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : ""); + ce.style.styleFloat = f.box_float.value; + + if (tinyMCE.isGecko) + ce.style.cssFloat = f.box_float.value; + + ce.style.clear = f.box_clear.value; + + if (!f.box_padding_same.checked) { + ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : ""); + ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : ""); + ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : ""); + ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : ""); + } else + ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : ""); + + if (!f.box_margin_same.checked) { + ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : ""); + ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : ""); + ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : ""); + ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : ""); + } else + ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : ""); + + // Build border styles + + if (!f.border_style_same.checked) { + ce.style.borderTopStyle = f.border_style_top.value; + ce.style.borderRightStyle = f.border_style_right.value; + ce.style.borderBottomStyle = f.border_style_bottom.value; + ce.style.borderLeftStyle = f.border_style_left.value; + } else + ce.style.borderStyle = f.border_style_top.value; + + if (!f.border_width_same.checked) { + ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : ""); + ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : ""); + ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : ""); + ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : ""); + } else + ce.style.borderWidth = f.border_width_top.value; + + if (!f.border_color_same.checked) { + ce.style.borderTopColor = f.border_color_top.value; + ce.style.borderRightColor = f.border_color_right.value; + ce.style.borderBottomColor = f.border_color_bottom.value; + ce.style.borderLeftColor = f.border_color_left.value; + } else + ce.style.borderColor = f.border_color_top.value; + + // Build list styles + + ce.style.listStyleType = f.list_type.value; + ce.style.listStylePosition = f.list_position.value; + ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : ""; + + // Build positioning styles + + ce.style.position = f.positioning_type.value; + ce.style.visibility = f.positioning_visibility.value; + + if (ce.style.width == "") + ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : ""); + + if (ce.style.height == "") + ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : ""); + + ce.style.zIndex = f.positioning_zindex.value; + ce.style.overflow = f.positioning_overflow.value; + + if (!f.positioning_placement_same.checked) { + ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : ""); + ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : ""); + ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : ""); + ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : ""); + } else { + s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : ""); + ce.style.top = s; + ce.style.right = s; + ce.style.bottom = s; + ce.style.left = s; + } + + if (!f.positioning_clip_same.checked) { + s = "rect("; + s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " "; + s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " "; + s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " "; + s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto"); + s += ")"; + + if (s != "rect(auto auto auto auto)") + ce.style.clip = s; + } else { + s = "rect("; + t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto"; + s += t + " "; + s += t + " "; + s += t + " "; + s += t + ")"; + + if (s != "rect(auto auto auto auto)") + ce.style.clip = s; + } + + ce.style.cssText = tinyMCE.serializeStyle(tinyMCE.parseStyle(ce.style.cssText)); +} + +function isNum(s) { + return new RegExp('[0-9]+', 'g').test(s); +} + +function showDisabledControls() { + var f = document.forms, i, a; + + for (i=0; i 1) { + addSelectValue(f, s, p[0], p[1]); + + if (se) + selectByValue(f, s, p[1]); + } else { + addSelectValue(f, s, p[0], p[0]); + + if (se) + selectByValue(f, s, p[0]); + } + } +} + +function toggleSame(ce, pre) { + var el = document.forms[0].elements, i; + + if (ce.checked) { + el[pre + "_top"].disabled = false; + el[pre + "_right"].disabled = true; + el[pre + "_bottom"].disabled = true; + el[pre + "_left"].disabled = true; + + if (el[pre + "_top_measurement"]) { + el[pre + "_top_measurement"].disabled = false; + el[pre + "_right_measurement"].disabled = true; + el[pre + "_bottom_measurement"].disabled = true; + el[pre + "_left_measurement"].disabled = true; + } + } else { + el[pre + "_top"].disabled = false; + el[pre + "_right"].disabled = false; + el[pre + "_bottom"].disabled = false; + el[pre + "_left"].disabled = false; + + if (el[pre + "_top_measurement"]) { + el[pre + "_top_measurement"].disabled = false; + el[pre + "_right_measurement"].disabled = false; + el[pre + "_bottom_measurement"].disabled = false; + el[pre + "_left_measurement"].disabled = false; + } + } + + showDisabledControls(); +} + +function synch(fr, to) { + var f = document.forms[0]; + + f.elements[to].value = f.elements[fr].value; + + if (f.elements[fr + "_measurement"]) + selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value); +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/langs/en.js @@ -0,0 +1,66 @@ +// UK lang variables + +tinyMCE.addToLang('style',{ +title : 'Edit CSS Style', +styleinfo_desc : 'Edit CSS Style', +apply : 'Apply', +text_tab : 'Text', +background_tab : 'Background', +block_tab : 'Block', +box_tab : 'Box', +border_tab : 'Border', +list_tab : 'List', +positioning_tab : 'Positioning', +text_props : 'Text', +text_font : 'Font', +text_size : 'Size', +text_weight : 'Weight', +text_style : 'Style', +text_variant : 'Variant', +text_lineheight : 'Line height', +text_case : 'Case', +text_color : 'Color', +text_decoration : 'Decoration', +text_overline : 'overline', +text_underline : 'underline', +text_striketrough : 'strikethrough', +text_blink : 'blink', +text_none : 'none', +background_color : 'Background color', +background_image : 'Background image', +background_repeat : 'Repeat', +background_attachment : 'Attachment', +background_hpos : 'Horizontal position', +background_vpos : 'Vertical position', +block_wordspacing : 'Word spacing', +block_letterspacing : 'Letter spacing', +block_vertical_alignment : 'Vertical alignment', +block_text_align : 'Text align', +block_text_indent : 'Text indent', +block_whitespace : 'Whitespace', +block_display : 'Display', +box_width : 'Width', +box_height : 'Height', +box_float : 'Float', +box_clear : 'Clear', +padding : 'Padding', +same : 'Same for all', +top : 'Top', +right : 'Right', +bottom : 'Bottom', +left : 'Left', +margin : 'Margin', +style : 'Style', +width : 'Width', +height : 'Height', +color : 'Color', +list_type : 'Type', +bullet_image : 'Bullet image', +position : 'Position', +positioning_type : 'Type', +visibility : 'Visibility', +zindex : 'Z-index', +overflow : 'Overflow', +placement : 'Placement', +clip : 'Clip' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/props.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/props.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/style/props.htm @@ -0,0 +1,729 @@ + + + {$lang_style_title} + + + + + + + + + + +
        + + +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + + + + + + +
         
        +
        + +
        + + + +
        + + + + + + +
        + +  
        +
        + +
        + + + + + +
         
        +
        {$lang_style_text_decoration} + + + + + + + + + + + + + + + + + + + + + +
        +
        +
        + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + + + +
         
        +
        + + + + +
         
        +
        + + + + + + +
         
        +
        + + + + + + +
         
        +
        +
        + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + + + + +
         
        +
        + + + + + + +
         
        +
        + + + + + + +
         
        +
        +
        + +
        + + + + + + + + + + + + + + +
        + + + + + + +
         
        +
           
        + + + + + + +
         
        +
           
        +
        +
        + {$lang_style_padding} + + + + + + + + + + + + + + + + + + + + + + +
         
        + + + + + + +
         
        +
        + + + + + + +
         
        +
        + + + + + + +
         
        +
        + + + + + + +
         
        +
        +
        +
        + +
        +
        + {$lang_style_margin} + + + + + + + + + + + + + + + + + + + + + + +
         
        + + + + + + +
         
        +
        + + + + + + +
         
        +
        + + + + + + +
         
        +
        + + + + + + +
         
        +
        +
        +
        +
        +
        + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          {$lang_style_style} {$lang_style_width} {$lang_style_color}
              
        {$lang_style_top}   + + + + + + +
         
        +
          + + + + + +
         
        +
        {$lang_style_right}   + + + + + + +
         
        +
          + + + + + +
         
        +
        {$lang_style_bottom}   + + + + + + +
         
        +
          + + + + + +
         
        +
        {$lang_style_left}   + + + + + + +
         
        +
          + + + + + +
         
        +
        +
        + +
        + + + + + + + + + + + + + + + +
        +
        + +
        + + + + + + + + + + + + + + + + + + + + + +
           
        + + + + + + +
         
        +
           
        + + + + + + +
         
        +
           
        + +
        +
        + {$lang_style_placement} + + + + + + + + + + + + + + + + + + + + + + +
         
        {$lang_style_top} + + + + + + +
         
        +
        {$lang_style_right} + + + + + + +
         
        +
        {$lang_style_bottom} + + + + + + +
         
        +
        {$lang_style_left} + + + + + + +
         
        +
        +
        +
        + +
        +
        + {$lang_style_clip} + + + + + + + + + + + + + + + + + + + + + + +
         
        {$lang_style_top} + + + + + + +
         
        +
        {$lang_style_right} + + + + + + +
         
        +
        {$lang_style_bottom} + + + + + + +
         
        +
        {$lang_style_left} + + + + + + +
         
        +
        +
        +
        +
        +
        +
        + +
        +
        +
        + +
         
        +
        +
        + +
        + +
        +
        +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/cell.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/cell.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/cell.htm @@ -0,0 +1,182 @@ + + + {$lang_table_cell_title} + + + + + + + + +
        + + +
        +
        +
        + {$lang_table_general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + +
        + + + +
        + +
        +
        +
        + +
        +
        + {$lang_table_advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + +
        + + + + + +
         
        +
        + + + + + +
         
        +
        + + + + + +
         
        +
        +
        +
        +
        + +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css @@ -0,0 +1,17 @@ +/* CSS file for cell dialog in the table plugin */ + +.panel_wrapper div.current { + height: 200px; +} + +.advfield { + width: 200px; +} + +#action { + margin-bottom: 3px; +} + +#class { + width: 150px; +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/row.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/row.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/row.css @@ -0,0 +1,25 @@ +/* CSS file for row dialog in the table plugin */ + +.panel_wrapper div.current { + height: 200px; +} + +.advfield { + width: 200px; +} + +#action { + margin-bottom: 3px; +} + +#rowtype,#align,#valign,#class,#height { + width: 150px; +} + +#height { + width: 50px; +} + +.col2 { + padding-left: 20px; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/table.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/table.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/css/table.css @@ -0,0 +1,13 @@ +/* CSS file for table dialog in the table plugin */ + +.panel_wrapper div.current { + height: 220px; +} + +.advfield { + width: 200px; +} + +#class { + width: 150px; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('table');var TinyMCE_TablePlugin={getInfo:function(){return{longname:'Tables',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(tinyMCE.isGecko){var doc=inst.getDoc();tinyMCE.addEvent(doc,"mouseup",TinyMCE_TablePlugin._mouseDownHandler)}inst.tableRowClipboard=null},getControlHTML:function(control_name){var controls=new Array(['table','table.gif','lang_table_desc','mceInsertTable',true],['delete_table','table_delete.gif','lang_table_del','mceTableDelete'],['delete_col','table_delete_col.gif','lang_table_delete_col_desc','mceTableDeleteCol'],['delete_row','table_delete_row.gif','lang_table_delete_row_desc','mceTableDeleteRow'],['col_after','table_insert_col_after.gif','lang_table_col_after_desc','mceTableInsertColAfter'],['col_before','table_insert_col_before.gif','lang_table_col_before_desc','mceTableInsertColBefore'],['row_after','table_insert_row_after.gif','lang_table_row_after_desc','mceTableInsertRowAfter'],['row_before','table_insert_row_before.gif','lang_table_row_before_desc','mceTableInsertRowBefore'],['row_props','table_row_props.gif','lang_table_row_desc','mceTableRowProps',true],['cell_props','table_cell_props.gif','lang_table_cell_desc','mceTableCellProps',true],['split_cells','table_split_cells.gif','lang_table_split_cells_desc','mceTableSplitCells',true],['merge_cells','table_merge_cells.gif','lang_table_merge_cells_desc','mceTableMergeCells',true]);for(var i=0;i4?but[4]:false)+(but.length>5?', \''+but[5]+'\'':'')+');return false;';if(but[0]==control_name)return tinyMCE.getButtonHTML(control_name,but[2],'{$pluginurl}/images/'+but[1],but[3],(but.length>4?but[4]:false))}if(control_name=="tablecontrols"){var html="";html+=tinyMCE.getControlHTML("table");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("row_props");html+=tinyMCE.getControlHTML("cell_props");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("row_before");html+=tinyMCE.getControlHTML("row_after");html+=tinyMCE.getControlHTML("delete_row");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("col_before");html+=tinyMCE.getControlHTML("col_after");html+=tinyMCE.getControlHTML("delete_col");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("split_cells");html+=tinyMCE.getControlHTML("merge_cells");return html}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceInsertTable":case"mceTableRowProps":case"mceTableCellProps":case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":case"mceTableDelete":var inst=tinyMCE.getInstanceById(editor_id);inst.execCommand('mceBeginUndoLevel');TinyMCE_TablePlugin._doExecCommand(editor_id,element,command,user_interface,value);inst.execCommand('mceEndUndoLevel');return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){var colspan="1",rowspan="1",tdElm;var inst=tinyMCE.getInstanceById(editor_id);tinyMCE.switchClass(editor_id+'_table','mceButtonNormal');tinyMCE.switchClass(editor_id+'_delete_table','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_row_props','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_cell_props','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_row_before','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_row_after','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_delete_row','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_col_before','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_col_after','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_delete_col','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_split_cells','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_merge_cells','mceButtonDisabled');if(tdElm=tinyMCE.getParentElement(node,"td,th")){tinyMCE.switchClass(editor_id+'_cell_props','mceButtonSelected');tinyMCE.switchClass(editor_id+'_delete_table','mceButtonNormal');tinyMCE.switchClass(editor_id+'_row_before','mceButtonNormal');tinyMCE.switchClass(editor_id+'_row_after','mceButtonNormal');tinyMCE.switchClass(editor_id+'_delete_row','mceButtonNormal');tinyMCE.switchClass(editor_id+'_col_before','mceButtonNormal');tinyMCE.switchClass(editor_id+'_col_after','mceButtonNormal');tinyMCE.switchClass(editor_id+'_delete_col','mceButtonNormal');colspan=tinyMCE.getAttrib(tdElm,"colspan");rowspan=tinyMCE.getAttrib(tdElm,"rowspan");colspan=colspan==""?"1":colspan;rowspan=rowspan==""?"1":rowspan;if(colspan!="1"||rowspan!="1")tinyMCE.switchClass(editor_id+'_split_cells','mceButtonNormal')}if(tinyMCE.getParentElement(node,"tr"))tinyMCE.switchClass(editor_id+'_row_props','mceButtonSelected');if(tinyMCE.getParentElement(node,"table")){tinyMCE.switchClass(editor_id+'_table','mceButtonSelected');tinyMCE.switchClass(editor_id+'_merge_cells','mceButtonNormal')}},_mouseDownHandler:function(e){var elm=tinyMCE.isMSIE?event.srcElement:e.target;var focusElm=tinyMCE.selectedInstance.getFocusElement();if(elm.nodeName=="BODY"&&(focusElm.nodeName=="TD"||focusElm.nodeName=="TH"||(focusElm.parentNode&&focusElm.parentNode.nodeName=="TD")||(focusElm.parentNode&&focusElm.parentNode.nodeName=="TH"))){window.setTimeout(function(){var tableElm=tinyMCE.getParentElement(focusElm,"table");tinyMCE.handleVisualAid(tableElm,true,tinyMCE.settings['visual'],tinyMCE.selectedInstance)},10)}},_doExecCommand:function(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id);var focusElm=inst.getFocusElement();var trElm=tinyMCE.getParentElement(focusElm,"tr");var tdElm=tinyMCE.getParentElement(focusElm,"td,th");var tableElm=tinyMCE.getParentElement(focusElm,"table");var doc=inst.contentWindow.document;var tableBorder=tableElm?tableElm.getAttribute("border"):"";if(trElm&&tdElm==null)tdElm=trElm.cells[0];function inArray(ar,v){for(var i=0;i0&&inArray(ar[i],v))return true;if(ar[i]==v)return true}return false}function makeTD(){var newTD=doc.createElement("td");newTD.innerHTML=" "}function getColRowSpan(td){var colspan=tinyMCE.getAttrib(td,"colspan");var rowspan=tinyMCE.getAttrib(td,"rowspan");colspan=colspan==""?1:parseInt(colspan);rowspan=rowspan==""?1:parseInt(rowspan);return{colspan:colspan,rowspan:rowspan}}function getCellPos(grid,td){var x,y;for(y=0;y1){for(var i=x;i1)td.rowSpan=sd.rowspan+1;lastElm=td}deleteMarked(tableElm)}}function prevElm(node,name){while((node=node.previousSibling)!=null){if(node.nodeName==name)return node}return null}function nextElm(node,names){var namesAr=names.split(',');while((node=node.nextSibling)!=null){for(var i=0;i1){do{var nexttd=nextElm(td,"TD,TH");if(td._delete)td.parentNode.removeChild(td)}while((td=nexttd)!=null)}}while((tr=next)!=null)}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,"TR");for(var i=1;i1){var newTD=cells[x].cloneNode(true);var sd=getColRowSpan(cells[x]);newTD.rowSpan=sd.rowspan-1;var nextTD=nextTR.cells[x];if(nextTD==null)nextTR.appendChild(newTD);else nextTR.insertBefore(newTD,nextTD)}}var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd.rowspan>1){tdElm.rowSpan=sd.rowspan-1}else{trElm=tdElm.parentNode;if(trElm.parentNode)trElm._delete=true}lastTDElm=tdElm}}deleteMarked(tableElm);cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;grid=getTableGrid(tableElm);inst.selection.selectNode(getCell(grid,cpos.rowindex,0),tinyMCE.isGecko,true);break;case"mceTableInsertColBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);newTD.innerHTML=" ";newTD.rowSpan=tdElm.rowSpan;tdElm.parentNode.insertBefore(newTD,tdElm)}else tdElm.colSpan++;lastTDElm=tdElm}}grid=getTableGrid(tableElm);inst.selection.selectNode(getCell(grid,cpos.rowindex,cpos.cellindex+1),tinyMCE.isGecko,true);break;case"mceTableInsertColAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);newTD.innerHTML=" ";newTD.rowSpan=tdElm.rowSpan;var nextTD=nextElm(tdElm,"TD,TH");if(nextTD==null)tdElm.parentNode.appendChild(newTD);else nextTD.parentNode.insertBefore(newTD,nextTD)}else tdElm.colSpan++;lastTDElm=tdElm}}grid=getTableGrid(tableElm);inst.selection.selectNode(getCell(grid,cpos.rowindex,cpos.cellindex),tinyMCE.isGecko,true);break;case"mceTableDeleteCol":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;if(grid.length>1&&grid[0].length<=1){tableElm=tinyMCE.getParentElement(tableElm,"table");tableElm.parentNode.removeChild(tableElm);return true}for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']>1)tdElm.colSpan=sd['colspan']-1;else{if(tdElm.parentNode)tdElm.parentNode.removeChild(tdElm)}lastTDElm=tdElm}}cpos.cellindex--;if(cpos.cellindex<0)cpos.cellindex=0;grid=getTableGrid(tableElm);inst.selection.selectNode(getCell(grid,cpos.rowindex,0),tinyMCE.isGecko,true);break;case"mceTableSplitCells":if(!trElm||!tdElm)return true;var spandata=getColRowSpan(tdElm);var colspan=spandata["colspan"];var rowspan=spandata["rowspan"];if(colspan>1||rowspan>1){tdElm.colSpan=1;for(var i=1;i1)addRows(newTD,trElm,rowspan)}addRows(tdElm,trElm,rowspan)}tableElm=tinyMCE.getParentElement(inst.getFocusElement(),"table");break;case"mceTableMergeCells":var rows=new Array();var sel=inst.getSel();var grid=getTableGrid(tableElm);if(tinyMCE.isMSIE||sel.rangeCount==1){if(user_interface){var template=new Array();var sp=getColRowSpan(tdElm);template['file']='../../plugins/table/merge_cells.htm';template['width']=250;template['height']=105+(tinyMCE.isNS7?25:0);template['width']+=tinyMCE.getLang('lang_table_merge_cells_delta_width',0);template['height']+=tinyMCE.getLang('lang_table_merge_cells_delta_height',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,inline:"yes",action:"update",numcols:sp.colspan,numrows:sp.rowspan});return true}else{var numRows=parseInt(value['numrows']);var numCols=parseInt(value['numcols']);var cpos=getCellPos(grid,tdElm);if((""+numRows)=="NaN")numRows=1;if((""+numCols)=="NaN")numCols=1;var tRows=tableElm.rows;for(var y=cpos.rowindex;y0)rows[rows.length]=rowCells}}}else{var cells=new Array();var sel=inst.getSel();var lastTR=null;var curRow=null;var x1=-1,y1=-1,x2,y2;if(sel.rangeCount<2)return true;for(var i=0;i0)rows[rows.length]=rowCells}var curRow=new Array();var lastTR=null;for(var y=0;ycolSpan)colSpan=rowColSpan;lastRowSpan=-1}var lastColSpan=-1;for(var x=0;xrowSpan)rowSpan=colRowSpan;lastColSpan=-1}tdElm=rows[0][0];tdElm.rowSpan=rowSpan;tdElm.colSpan=colSpan;for(var y=0;y0))tdElm.innerHTML+=html;if(rows[y][x]!=tdElm&&!rows[y][x]._deleted){var cpos=getCellPos(grid,rows[y][x]);var tr=rows[y][x].parentNode;tr.removeChild(rows[y][x]);rows[y][x]._deleted=true;if(!tr.hasChildNodes()){tr.parentNode.removeChild(tr);var lastCell=null;for(var x=0;cellElm=getCell(grid,cpos.rowindex,x);x++){if(cellElm!=lastCell&&cellElm.rowSpan>1)cellElm.rowSpan--;lastCell=cellElm}if(tdElm.rowSpan>1)tdElm.rowSpan--}}}}break}tableElm=tinyMCE.getParentElement(inst.getFocusElement(),"table");tinyMCE.handleVisualAid(tableElm,true,tinyMCE.settings['visual'],tinyMCE.selectedInstance);tinyMCE.triggerNodeChange();inst.repaint()}return true}return false}};tinyMCE.addPlugin("table",TinyMCE_TablePlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js @@ -0,0 +1,1073 @@ +/** + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('table'); + +var TinyMCE_TablePlugin = { + getInfo : function() { + return { + longname : 'Tables', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + initInstance : function(inst) { + if (tinyMCE.isGecko) { + var doc = inst.getDoc(); + tinyMCE.addEvent(doc, "mouseup", TinyMCE_TablePlugin._mouseDownHandler); + } + + inst.tableRowClipboard = null; + }, + + /** + * Returns the HTML contents of the table control. + */ + getControlHTML : function(control_name) { + var controls = new Array( + ['table', 'table.gif', 'lang_table_desc', 'mceInsertTable', true], + ['delete_table', 'table_delete.gif', 'lang_table_del', 'mceTableDelete'], + ['delete_col', 'table_delete_col.gif', 'lang_table_delete_col_desc', 'mceTableDeleteCol'], + ['delete_row', 'table_delete_row.gif', 'lang_table_delete_row_desc', 'mceTableDeleteRow'], + ['col_after', 'table_insert_col_after.gif', 'lang_table_col_after_desc', 'mceTableInsertColAfter'], + ['col_before', 'table_insert_col_before.gif', 'lang_table_col_before_desc', 'mceTableInsertColBefore'], + ['row_after', 'table_insert_row_after.gif', 'lang_table_row_after_desc', 'mceTableInsertRowAfter'], + ['row_before', 'table_insert_row_before.gif', 'lang_table_row_before_desc', 'mceTableInsertRowBefore'], + ['row_props', 'table_row_props.gif', 'lang_table_row_desc', 'mceTableRowProps', true], + ['cell_props', 'table_cell_props.gif', 'lang_table_cell_desc', 'mceTableCellProps', true], + ['split_cells', 'table_split_cells.gif', 'lang_table_split_cells_desc', 'mceTableSplitCells', true], + ['merge_cells', 'table_merge_cells.gif', 'lang_table_merge_cells_desc', 'mceTableMergeCells', true]); + + // Render table control + for (var i=0; i 4 ? but[4] : false) + (but.length > 5 ? ', \'' + but[5] + '\'' : '') + ');return false;'; + + if (but[0] == control_name) + return tinyMCE.getButtonHTML(control_name, but[2], '{$pluginurl}/images/'+ but[1], but[3], (but.length > 4 ? but[4] : false)); + } + + // Special tablecontrols + if (control_name == "tablecontrols") { + var html = ""; + + html += tinyMCE.getControlHTML("table"); + html += tinyMCE.getControlHTML("separator"); + html += tinyMCE.getControlHTML("row_props"); + html += tinyMCE.getControlHTML("cell_props"); + html += tinyMCE.getControlHTML("separator"); + html += tinyMCE.getControlHTML("row_before"); + html += tinyMCE.getControlHTML("row_after"); + html += tinyMCE.getControlHTML("delete_row"); + html += tinyMCE.getControlHTML("separator"); + html += tinyMCE.getControlHTML("col_before"); + html += tinyMCE.getControlHTML("col_after"); + html += tinyMCE.getControlHTML("delete_col"); + html += tinyMCE.getControlHTML("separator"); + html += tinyMCE.getControlHTML("split_cells"); + html += tinyMCE.getControlHTML("merge_cells"); + + return html; + } + + return ""; + }, + + /** + * Executes the table commands. + */ + execCommand : function(editor_id, element, command, user_interface, value) { + // Is table command + switch (command) { + case "mceInsertTable": + case "mceTableRowProps": + case "mceTableCellProps": + case "mceTableSplitCells": + case "mceTableMergeCells": + case "mceTableInsertRowBefore": + case "mceTableInsertRowAfter": + case "mceTableDeleteRow": + case "mceTableInsertColBefore": + case "mceTableInsertColAfter": + case "mceTableDeleteCol": + case "mceTableCutRow": + case "mceTableCopyRow": + case "mceTablePasteRowBefore": + case "mceTablePasteRowAfter": + case "mceTableDelete": + var inst = tinyMCE.getInstanceById(editor_id); + + inst.execCommand('mceBeginUndoLevel'); + TinyMCE_TablePlugin._doExecCommand(editor_id, element, command, user_interface, value); + inst.execCommand('mceEndUndoLevel'); + + return true; + } + + // Pass to next handler in chain + return false; + }, + + handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) { + var colspan = "1", rowspan = "1", tdElm; + + var inst = tinyMCE.getInstanceById(editor_id); + + // Reset table controls + tinyMCE.switchClass(editor_id + '_table', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_delete_table', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_row_props', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_cell_props', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_row_before', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_row_after', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_delete_row', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_col_before', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_col_after', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_delete_col', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_split_cells', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_merge_cells', 'mceButtonDisabled'); + + // Within a td element + if (tdElm = tinyMCE.getParentElement(node, "td,th")) { + tinyMCE.switchClass(editor_id + '_cell_props', 'mceButtonSelected'); + tinyMCE.switchClass(editor_id + '_delete_table', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_row_before', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_row_after', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_delete_row', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_col_before', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_col_after', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_delete_col', 'mceButtonNormal'); + + colspan = tinyMCE.getAttrib(tdElm, "colspan"); + rowspan = tinyMCE.getAttrib(tdElm, "rowspan"); + + colspan = colspan == "" ? "1" : colspan; + rowspan = rowspan == "" ? "1" : rowspan; + + if (colspan != "1" || rowspan != "1") + tinyMCE.switchClass(editor_id + '_split_cells', 'mceButtonNormal'); + } + + // Within a tr element + if (tinyMCE.getParentElement(node, "tr")) + tinyMCE.switchClass(editor_id + '_row_props', 'mceButtonSelected'); + + // Within table + if (tinyMCE.getParentElement(node, "table")) { + tinyMCE.switchClass(editor_id + '_table', 'mceButtonSelected'); + tinyMCE.switchClass(editor_id + '_merge_cells', 'mceButtonNormal'); + } + }, + + // Private plugin internal methods + + _mouseDownHandler : function(e) { + var elm = tinyMCE.isMSIE ? event.srcElement : e.target; + var focusElm = tinyMCE.selectedInstance.getFocusElement(); + + // If press on special Mozilla create TD/TR thingie + if (elm.nodeName == "BODY" && (focusElm.nodeName == "TD" || focusElm.nodeName == "TH" || (focusElm.parentNode && focusElm.parentNode.nodeName == "TD") ||(focusElm.parentNode && focusElm.parentNode.nodeName == "TH") )) { + window.setTimeout(function() { + var tableElm = tinyMCE.getParentElement(focusElm, "table"); + tinyMCE.handleVisualAid(tableElm, true, tinyMCE.settings['visual'], tinyMCE.selectedInstance); + }, 10); + } + }, + + /** + * Executes the table commands. + */ + _doExecCommand : function(editor_id, element, command, user_interface, value) { + var inst = tinyMCE.getInstanceById(editor_id); + var focusElm = inst.getFocusElement(); + var trElm = tinyMCE.getParentElement(focusElm, "tr"); + var tdElm = tinyMCE.getParentElement(focusElm, "td,th"); + var tableElm = tinyMCE.getParentElement(focusElm, "table"); + var doc = inst.contentWindow.document; + var tableBorder = tableElm ? tableElm.getAttribute("border") : ""; + + // Get first TD if no TD found + if (trElm && tdElm == null) + tdElm = trElm.cells[0]; + + // ------- Inner functions --------- + function inArray(ar, v) { + for (var i=0; i 0 && inArray(ar[i], v)) + return true; + + // Found value + if (ar[i] == v) + return true; + } + + return false; + } + + function makeTD() { + var newTD = doc.createElement("td"); + newTD.innerHTML = " "; + } + + function getColRowSpan(td) { + var colspan = tinyMCE.getAttrib(td, "colspan"); + var rowspan = tinyMCE.getAttrib(td, "rowspan"); + + colspan = colspan == "" ? 1 : parseInt(colspan); + rowspan = rowspan == "" ? 1 : parseInt(rowspan); + + return {colspan : colspan, rowspan : rowspan}; + } + + function getCellPos(grid, td) { + var x, y; + + for (y=0; y 1) { // Remove due to colspan + for (var i=x; i 1) + td.rowSpan = sd.rowspan + 1; + + lastElm = td; + } + + deleteMarked(tableElm); + } + } + + function prevElm(node, name) { + while ((node = node.previousSibling) != null) { + if (node.nodeName == name) + return node; + } + + return null; + } + + function nextElm(node, names) { + var namesAr = names.split(','); + + while ((node = node.nextSibling) != null) { + for (var i=0; i 1) { + do { + var nexttd = nextElm(td, "TD,TH"); + + if (td._delete) + td.parentNode.removeChild(td); + } while ((td = nexttd) != null); + } + } while ((tr = next) != null); + } + + function addRows(td_elm, tr_elm, rowspan) { + // Add rows + td_elm.rowSpan = 1; + var trNext = nextElm(tr_elm, "TR"); + for (var i=1; i 1) { + var newTD = cells[x].cloneNode(true); + var sd = getColRowSpan(cells[x]); + + newTD.rowSpan = sd.rowspan - 1; + + var nextTD = nextTR.cells[x]; + + if (nextTD == null) + nextTR.appendChild(newTD); + else + nextTR.insertBefore(newTD, nextTD); + } + } + + // Delete cells + var lastTDElm = null; + for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) { + if (tdElm != lastTDElm) { + var sd = getColRowSpan(tdElm); + + if (sd.rowspan > 1) { + tdElm.rowSpan = sd.rowspan - 1; + } else { + trElm = tdElm.parentNode; + + if (trElm.parentNode) + trElm._delete = true; + } + + lastTDElm = tdElm; + } + } + + deleteMarked(tableElm); + + cpos.rowindex--; + if (cpos.rowindex < 0) + cpos.rowindex = 0; + + // Recalculate grid and select + grid = getTableGrid(tableElm); + inst.selection.selectNode(getCell(grid, cpos.rowindex, 0), tinyMCE.isGecko, true); // Only collape on gecko + break; + + case "mceTableInsertColBefore": + if (!trElm || !tdElm) + return true; + + var grid = getTableGrid(tableElm); + var cpos = getCellPos(grid, tdElm); + var lastTDElm = null; + + for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) { + if (tdElm != lastTDElm) { + var sd = getColRowSpan(tdElm); + + if (sd['colspan'] == 1) { + var newTD = doc.createElement(tdElm.nodeName); + + newTD.innerHTML = " "; + newTD.rowSpan = tdElm.rowSpan; + + tdElm.parentNode.insertBefore(newTD, tdElm); + } else + tdElm.colSpan++; + + lastTDElm = tdElm; + } + } + + grid = getTableGrid(tableElm); + inst.selection.selectNode(getCell(grid, cpos.rowindex, cpos.cellindex + 1), tinyMCE.isGecko, true); // Only collape on gecko + break; + + case "mceTableInsertColAfter": + if (!trElm || !tdElm) + return true; + + var grid = getTableGrid(tableElm); + var cpos = getCellPos(grid, tdElm); + var lastTDElm = null; + + for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) { + if (tdElm != lastTDElm) { + var sd = getColRowSpan(tdElm); + + if (sd['colspan'] == 1) { + var newTD = doc.createElement(tdElm.nodeName); + + newTD.innerHTML = " "; + newTD.rowSpan = tdElm.rowSpan; + + var nextTD = nextElm(tdElm, "TD,TH"); + if (nextTD == null) + tdElm.parentNode.appendChild(newTD); + else + nextTD.parentNode.insertBefore(newTD, nextTD); + } else + tdElm.colSpan++; + + lastTDElm = tdElm; + } + } + + grid = getTableGrid(tableElm); + inst.selection.selectNode(getCell(grid, cpos.rowindex, cpos.cellindex), tinyMCE.isGecko, true); // Only collape on gecko + break; + + case "mceTableDeleteCol": + if (!trElm || !tdElm) + return true; + + var grid = getTableGrid(tableElm); + var cpos = getCellPos(grid, tdElm); + var lastTDElm = null; + + // Only one col, remove whole table + if (grid.length > 1 && grid[0].length <= 1) { + tableElm = tinyMCE.getParentElement(tableElm, "table"); // Look for table instead of tbody + tableElm.parentNode.removeChild(tableElm); + return true; + } + + // Delete cells + for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) { + if (tdElm != lastTDElm) { + var sd = getColRowSpan(tdElm); + + if (sd['colspan'] > 1) + tdElm.colSpan = sd['colspan'] - 1; + else { + if (tdElm.parentNode) + tdElm.parentNode.removeChild(tdElm); + } + + lastTDElm = tdElm; + } + } + + cpos.cellindex--; + if (cpos.cellindex < 0) + cpos.cellindex = 0; + + // Recalculate grid and select + grid = getTableGrid(tableElm); + inst.selection.selectNode(getCell(grid, cpos.rowindex, 0), tinyMCE.isGecko, true); // Only collape on gecko + break; + + case "mceTableSplitCells": + if (!trElm || !tdElm) + return true; + + var spandata = getColRowSpan(tdElm); + + var colspan = spandata["colspan"]; + var rowspan = spandata["rowspan"]; + + // Needs splitting + if (colspan > 1 || rowspan > 1) { + // Generate cols + tdElm.colSpan = 1; + for (var i=1; i 1) + addRows(newTD, trElm, rowspan); + } + + addRows(tdElm, trElm, rowspan); + } + + // Apply visual aids + tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table"); + break; + + case "mceTableMergeCells": + var rows = new Array(); + var sel = inst.getSel(); + var grid = getTableGrid(tableElm); + + if (tinyMCE.isMSIE || sel.rangeCount == 1) { + if (user_interface) { + // Setup template + var template = new Array(); + var sp = getColRowSpan(tdElm); + + template['file'] = '../../plugins/table/merge_cells.htm'; + template['width'] = 250; + template['height'] = 105 + (tinyMCE.isNS7 ? 25 : 0); + + // Language specific width and height addons + template['width'] += tinyMCE.getLang('lang_table_merge_cells_delta_width', 0); + template['height'] += tinyMCE.getLang('lang_table_merge_cells_delta_height', 0); + + // Open window + tinyMCE.openWindow(template, {editor_id : inst.editorId, inline : "yes", action : "update", numcols : sp.colspan, numrows : sp.rowspan}); + + return true; + } else { + var numRows = parseInt(value['numrows']); + var numCols = parseInt(value['numcols']); + var cpos = getCellPos(grid, tdElm); + + if (("" + numRows) == "NaN") + numRows = 1; + + if (("" + numCols) == "NaN") + numCols = 1; + + // Get rows and cells + var tRows = tableElm.rows; + for (var y=cpos.rowindex; y 0) + rows[rows.length] = rowCells; + } + + //return true; + } + } else { + var cells = new Array(); + var sel = inst.getSel(); + var lastTR = null; + var curRow = null; + var x1 = -1, y1 = -1, x2, y2; + + // Only one cell selected, whats the point? + if (sel.rangeCount < 2) + return true; + + // Get all selected cells + for (var i=0; i 0) + rows[rows.length] = rowCells; + } + + // Find selected cells in grid and box + var curRow = new Array(); + var lastTR = null; + for (var y=0; y colSpan) + colSpan = rowColSpan; + + lastRowSpan = -1; + } + + // Validate vertical and get total rowspan + var lastColSpan = -1; + for (var x=0; x rowSpan) + rowSpan = colRowSpan; + + lastColSpan = -1; + } + + // Setup td + tdElm = rows[0][0]; + tdElm.rowSpan = rowSpan; + tdElm.colSpan = colSpan; + + // Merge cells + for (var y=0; y 0)) + tdElm.innerHTML += html; + + // Not current cell + if (rows[y][x] != tdElm && !rows[y][x]._deleted) { + var cpos = getCellPos(grid, rows[y][x]); + var tr = rows[y][x].parentNode; + + tr.removeChild(rows[y][x]); + rows[y][x]._deleted = true; + + // Empty TR, remove it + if (!tr.hasChildNodes()) { + tr.parentNode.removeChild(tr); + + var lastCell = null; + for (var x=0; cellElm = getCell(grid, cpos.rowindex, x); x++) { + if (cellElm != lastCell && cellElm.rowSpan > 1) + cellElm.rowSpan--; + + lastCell = cellElm; + } + + if (tdElm.rowSpan > 1) + tdElm.rowSpan--; + } + } + } + } + + break; + } + + tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table"); + tinyMCE.handleVisualAid(tableElm, true, tinyMCE.settings['visual'], tinyMCE.selectedInstance); + tinyMCE.triggerNodeChange(); + inst.repaint(); + } + + return true; + } + + // Pass to next handler in chain + return false; + } +}; + +tinyMCE.addPlugin("table", TinyMCE_TablePlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/buttons.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/buttons.gif new file mode 100644 index 0000000000000000000000000000000000000000..56a7396b8816d949443f4ac7a8f29752fd0393c8 GIT binary patch literal 1787 zc$}4y=~t480>)nu6>&i+!_hJUQ#11@c+F+T0JU6N9A-52mV;>CWNb_R$g;t_0h4 zXLAQ?rR&se4XsE^O%#K@+hCVYIJ7N>HruDR#+SC0n(cuR<s> ztc4`Ae@!ZsgTtf5s8T9JK#gQEvgVtyw5*DMgxk=zhywM^y1OOK}dH@ zD|$WfH^FTnU;vN`xP1v{O7$&F2*q78RH9ORtudR|tfaRn@=Lh-&NV8yXwK zPn-zz}qt7CeTnS_F0! z)1NM?B0vfbVQEE=XaYEsB{pWkl_6HoC#h6=As5%$+Kuq0JyKCzmP3Tjkv)zVn^yCX zK54NJlUEcwORb!v5-lC&6?k$}(Eb@5i<6*%RiVDu_HV8f1|AgEqV8A^X;0X82oFB)N=0^VHb_dXkABG6G8bny9fS=;MY z@W}Ijny3Av(u2O-A@Fuai2`rUnl5DWIvNR#DjJlt6-QbxMi%_}*vN2_&Q?(jQD|KD zhYonhgc@72gSeHcMNZ^zdK+)$c;2n`O$XJo~DkUziG{=u{G)#{vZTh_Wv|B<5~?rbaRI<8$d65#55`6(#>?_{7Jqz*f#Hck$ut}^RT1L! zuvYJAj8nEc&LDg7%iw$W@6T(Qu_LtMI+<=o4asi1zD z(<`ch-)lAX=8G6kaV^+?y@HUsK8BGOhNhZv35p<9NCWeMgRnBr@|{N zfsHO+g!PU2{kQYiT`9!}ZWe;b+iQm14Vh>APWJ!2wgTB2<~RhJ7c6aZ^tN6dD&EK; zZJkW~n;%nl^FhYrKXbrnRM9nV-+z#KhTfRP=&~h;w|7l|L<9OdV=md)7b{6;r1St- z)K{m0JYrxk+aoD$|BYi7Y>`941m?RG*&Gw$ss1k|H>VN6W2tKo&j}llrfav^;}-ti zsx?B&w95Ml>t064m3t~@M?bHB^N{HVBb_|ytU&T1g=`Uh-5Wi7&E}Q zkg`@XkKEo+azCg*6Q}hiDcW47%C?BbDhJht&Lchq*8^f(KfadjZZT3~J^1=pPo4CwY|jtCMd$ld3EizSyhYusbKJiQ@IcutJOvsGC?NS$)VR?+1F zA!znS1bKp(Ge@h*5k@UpwraDq7j<6*hmqwhPJ-Go8ep)qxX;X!8n z9UOI~P#<~H4P6gI+f09BnVrg&yb4D(Rf8YTkP+z1qsYZ}p0#2!-;>MULQsAk@dAD% zE7=t!lEP-+Gfu*Nr(yhkqh!2?x1_^&wG&!pFl#F`f7Sn{8q-g(Y^kjOFcr01#8X# z|LJWhvy!j}ZPgRpTAD&THeqcDa^^13qQ6g7wL1UHl0q>nBy(#-(pKZaC{#}sTe!#V zjBlaUEGDV#dY*fx{LYzAZ>tC68T-F>K+-S+#ces`o~1D}iLUtS2Zh(X+C%R$W8c>< Q&0O=oB|jdBfCK*j2LdoKd;kCd diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table.gif new file mode 100644 index 0000000000000000000000000000000000000000..2911830c3cd9cfb588114b40205ac316ded37716 GIT binary patch literal 287 zc$@(r0pR{eNk%w1VH5xq0Mr-&4-XG=a&q$Gl8~UV)yls!N@Iej^5Wv+vYk|?#{7~x zGT6sxlB&Y;^7(>_g2~h3+KzIM(yqDEw{v33+VWCfYLcq*{{H^LvU=X>{iCqL z#mds6qN19*_y7O^A^8LW0018VEC2ui02BZe000G?;3tk`X`X1B5)?(KB@00mJQCSN zE9B*0hM>X2$p{t>MWmN#dOXbs;)npedOjg>x~OhU6O8zQIdH3l0a%P7cOqTD;bAdt z9{7i*gQ;>J6LlpUY-9lzat#_A1ttt^9EFODjU@vQ92^px5)&Jr43#7UY!VHM8yXcA lp(dna6O$XO2?L@dmz|!U8w?Bswyp)k#Kpum$jK!k06V*Ud_@2N diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_cell_props.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_cell_props.gif new file mode 100644 index 0000000000000000000000000000000000000000..bee7ed652f83476471ca0c0cfa5f2b72c6f98fc8 GIT binary patch literal 189 zc$@*f07CyqNk%w1VH5xq0K*6XGD>2SrMS}4+=8g`!qMXL>f*A!(w4mb{r>)O6%hbCQiN7b diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_delete.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_delete.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a00e6ad66aa907381ff742dfcb6aa2e2ec3df17 GIT binary patch literal 372 zc${*=gj%{@86?GkAPM)PzDr# zvM@3*Xff!3I3PbUuuXKBTHv80)qi41(aD@XJ(Y{9AuV_*PDF<=12pDc_F44e!) zAP&e31{ODilb);hTD(51&8Q&Aa)^=X_}A9t%4OHMIu0c?ZAh13&wangw=w0l2Uk;6 iU$cxz@7eU_8?1G#Ig(XZ&n?*9Q4sz~cDAJ;gEau6gEbfc diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_delete_row.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_delete_row.gif new file mode 100644 index 0000000000000000000000000000000000000000..2fb5f2bab92ba1a48608fd0cde4ee7010e244596 GIT binary patch literal 160 zc${2cXKmsN9JY6{$P@2?AGv(f*v&Sk0i vkH2iq&Ph9$i1eR$;iI%fVciWKrOjGT4epAa6jAmuz4dzM;k@0(f(+IGW8Xg~ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_insert_col_after.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_insert_col_after.gif new file mode 100644 index 0000000000000000000000000000000000000000..85058080ca85586d2631be5402beca3ab5809500 GIT binary patch literal 165 zc$@*H09yY?Nk%w1VH5xq0K*Od0s;b3hwZ}J{xV8pU2lbto3eVM^5XCQa(5s;*CQxUf_d3_{csz*D~813(lGjTD@2z{n9^mxAJO7)Ys5OF}UnY`dU@qbmky T#N$E3kp`{PZ$%b~i~s;TfG0;) diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_insert_row_after.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_insert_row_after.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c14466138007454958671320914d9a7d8a6db5 GIT binary patch literal 163 zc$@*F09^k^Nk%w1VH5xq0K*Od0s;b3hwZ}J{xV8pU2lbto3eVM^5XCQa(@5FN<(eWPqQV3Ig1XGua#QiUNM~QhRb*u41x>1^iLw6v{&bt_E>x1D!Tyq@xq`0#T6LwOvdL|b z(z4F}lDPhYn!-Y4ng9R*A^8LW000jFEC2ui02BZe000DY@X1N5y*TU5Y5HK87$oTl zLW8cziUMcq3atxINz(*;fcy>zVR(}yP=SSVxhOap#m7;QWHz6J=oGb%7 diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_row_props.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_row_props.gif new file mode 100644 index 0000000000000000000000000000000000000000..e5c7cc37aaded685d68a6f1d0f5f204415258489 GIT binary patch literal 187 zc$@*d07U;sNk%w1VH5xq0K*CZGD>2SrMS}5-GZj_!qMXH@&2N=(w4mbqOihJVuJnt z{^sQ3lB)8xz|uleasU7TA^8LW000jFEC2ui02BZe000DN@X1N5y*TU5EBnkKj-9KxjG%0%ik9LBwDPfF*DxWw(Ncc#J3` p0@_Nzrf3x2h<5?KWxL^Wx|%>X2mX2#XaIzThJ+o7ii;Hy06QxAQu6=+ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_split_cells.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/images/table_split_cells.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ccb1b5f89d35619c9fe7a81957305c93f3ed8fc GIT binary patch literal 210 zc$@*!04@JVNk%w1VH5xq0K)FI0=7!2VKkqmrb#i?scsvdKbY znlMRZVtuQCnZ&Zr{r~^~A^8LW000jFEC2ui02BZe000Dk@X1N5y*TU5Y5HK893<%p zLW8c%iY{mB3dRgiNz(*8!x#pIfU#7qN5Q2I~2E2l>h($ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/jscripts/cell.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/jscripts/cell.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/jscripts/cell.js @@ -0,0 +1,249 @@ +function init() { + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor') + + var inst = tinyMCE.selectedInstance; + var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th"); + var formObj = document.forms[0]; + var st = tinyMCE.parseStyle(tinyMCE.getAttrib(tdElm, "style")); + + // Get table cell data + var celltype = tdElm.nodeName.toLowerCase(); + var align = tinyMCE.getAttrib(tdElm, 'align'); + var valign = tinyMCE.getAttrib(tdElm, 'valign'); + var width = trimSize(getStyle(tdElm, 'width', 'width')); + var height = trimSize(getStyle(tdElm, 'height', 'height')); + var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor')); + var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor')); + var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tdElm, 'class'), false); + var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");; + var id = tinyMCE.getAttrib(tdElm, 'id'); + var lang = tinyMCE.getAttrib(tdElm, 'lang'); + var dir = tinyMCE.getAttrib(tdElm, 'dir'); + var scope = tinyMCE.getAttrib(tdElm, 'scope'); + + // Setup form + addClassesToList('class', 'table_cell_styles'); + formObj.bordercolor.value = bordercolor; + formObj.bgcolor.value = bgcolor; + formObj.backgroundimage.value = backgroundimage; + formObj.width.value = width; + formObj.height.value = height; + formObj.id.value = id; + formObj.lang.value = lang; + formObj.style.value = tinyMCE.serializeStyle(st); + selectByValue(formObj, 'align', align); + selectByValue(formObj, 'valign', valign); + selectByValue(formObj, 'class', className); + selectByValue(formObj, 'celltype', celltype); + selectByValue(formObj, 'dir', dir); + selectByValue(formObj, 'scope', scope); + + // Resize some elements + if (isVisible('backgroundimagebrowser')) + document.getElementById('backgroundimage').style.width = '180px'; + + updateColor('bordercolor_pick', 'bordercolor'); + updateColor('bgcolor_pick', 'bgcolor'); +} + +function updateAction() { + tinyMCEPopup.restoreSelection(); + + var inst = tinyMCE.selectedInstance; + var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th"); + var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr"); + var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table"); + var formObj = document.forms[0]; + + inst.execCommand('mceBeginUndoLevel'); + + switch (getSelectValue(formObj, 'action')) { + case "cell": + var celltype = getSelectValue(formObj, 'celltype'); + var scope = getSelectValue(formObj, 'scope'); + + if (tinyMCE.getParam("accessibility_warnings")) { + if (celltype == "th" && scope == "") + var answer = confirm(tinyMCE.getLang('lang_table_missing_scope', '', true)); + else + var answer = true; + + if (!answer) + return; + } + + updateCell(tdElm); + break; + + case "row": + var cell = trElm.firstChild; + + if (cell.nodeName != "TD" && cell.nodeName != "TH") + cell = nextCell(cell); + + do { + cell = updateCell(cell, true); + } while ((cell = nextCell(cell)) != null); + + break; + + case "all": + var rows = tableElm.getElementsByTagName("tr"); + + for (var i=0; i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/jscripts/merge_cells.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/jscripts/merge_cells.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/jscripts/merge_cells.js @@ -0,0 +1,24 @@ +function init() { + tinyMCEPopup.resizeToInnerSize(); + + var formObj = document.forms[0]; + + formObj.numcols.value = tinyMCE.getWindowArg('numcols', 1); + formObj.numrows.value = tinyMCE.getWindowArg('numrows', 1); +} + +function mergeCells() { + var args = new Array(); + var formObj = document.forms[0]; + + if (!AutoValidator.validate(formObj)) { + alert(tinyMCE.getLang('lang_invalid_data')); + return false; + } + + args["numcols"] = formObj.numcols.value; + args["numrows"] = formObj.numrows.value; + + tinyMCEPopup.execCommand("mceTableMergeCells", false, args); + tinyMCEPopup.close(); +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/jscripts/row.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/jscripts/row.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/jscripts/row.js @@ -0,0 +1,200 @@ +function init() { + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); + + var inst = tinyMCE.selectedInstance; + var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr"); + var formObj = document.forms[0]; + var st = tinyMCE.parseStyle(tinyMCE.getAttrib(trElm, "style")); + + // Get table row data + var rowtype = trElm.parentNode.nodeName.toLowerCase(); + var align = tinyMCE.getAttrib(trElm, 'align'); + var valign = tinyMCE.getAttrib(trElm, 'valign'); + var height = trimSize(getStyle(trElm, 'height', 'height')); + var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(trElm, 'class'), false); + var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor')); + var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");; + var id = tinyMCE.getAttrib(trElm, 'id'); + var lang = tinyMCE.getAttrib(trElm, 'lang'); + var dir = tinyMCE.getAttrib(trElm, 'dir'); + + // Setup form + addClassesToList('class', 'table_row_styles'); + formObj.bgcolor.value = bgcolor; + formObj.backgroundimage.value = backgroundimage; + formObj.height.value = height; + formObj.id.value = id; + formObj.lang.value = lang; + formObj.style.value = tinyMCE.serializeStyle(st); + selectByValue(formObj, 'align', align); + selectByValue(formObj, 'valign', valign); + selectByValue(formObj, 'class', className); + selectByValue(formObj, 'rowtype', rowtype); + selectByValue(formObj, 'dir', dir); + + // Resize some elements + if (isVisible('backgroundimagebrowser')) + document.getElementById('backgroundimage').style.width = '180px'; + + updateColor('bgcolor_pick', 'bgcolor'); +} + +function updateAction() { + tinyMCEPopup.restoreSelection(); + + var inst = tinyMCE.selectedInstance; + var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr"); + var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table"); + var formObj = document.forms[0]; + var action = getSelectValue(formObj, 'action'); + + inst.execCommand('mceBeginUndoLevel'); + + switch (action) { + case "row": + updateRow(trElm); + break; + + case "all": + var rows = tableElm.getElementsByTagName("tr"); + + for (var i=0; i colLimit) { + alert(tinyMCE.getLang('lang_table_col_limit', '', true, {cols : colLimit})); + return false; + } else if (rowLimit && rows > rowLimit) { + alert(tinyMCE.getLang('lang_table_row_limit', '', true, {rows : rowLimit})); + return false; + } else if (cellLimit && cols * rows > cellLimit) { + alert(tinyMCE.getLang('lang_table_cell_limit', '', true, {cells : cellLimit})); + return false; + } + + // Update table + if (action == "update") { + inst.execCommand('mceBeginUndoLevel'); + + tinyMCE.setAttrib(elm, 'cellPadding', cellpadding, true); + tinyMCE.setAttrib(elm, 'cellSpacing', cellspacing, true); + tinyMCE.setAttrib(elm, 'border', border, true); + tinyMCE.setAttrib(elm, 'align', align); + tinyMCE.setAttrib(elm, 'class', className); + tinyMCE.setAttrib(elm, 'style', style); + tinyMCE.setAttrib(elm, 'id', id); + tinyMCE.setAttrib(elm, 'summary', summary); + tinyMCE.setAttrib(elm, 'dir', dir); + tinyMCE.setAttrib(elm, 'lang', lang); + + capEl = elm.getElementsByTagName('caption')[0]; + + if (capEl && !caption) + capEl.parentNode.removeChild(capEl); + + if (!capEl && caption) { + capEl = elm.ownerDocument.createElement('caption'); + capEl.innerHTML = ' '; + elm.insertBefore(capEl, elm.firstChild); + } + + // Not inline styles + if (!tinyMCE.getParam("inline_styles")) + tinyMCE.setAttrib(elm, 'width', width, true); + + // Remove these since they are not valid XHTML + tinyMCE.setAttrib(elm, 'borderColor', ''); + tinyMCE.setAttrib(elm, 'bgColor', ''); + tinyMCE.setAttrib(elm, 'background', ''); + tinyMCE.setAttrib(elm, 'height', ''); + + if (background != '') + elm.style.backgroundImage = "url('" + background + "')"; + else + elm.style.backgroundImage = ''; + + if (tinyMCE.getParam("inline_styles")) + elm.style.borderWidth = border + "px"; + + if (tinyMCE.getParam("inline_styles")) { + if (width != '') + elm.style.width = getCSSSize(width); + } + + if (bordercolor != "") { + elm.style.borderColor = bordercolor; + elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle; + elm.style.borderWidth = border == "" ? "1px" : border; + } else + elm.style.borderColor = ''; + + elm.style.backgroundColor = bgcolor; + elm.style.height = getCSSSize(height); + + tinyMCE.handleVisualAid(tinyMCE.tableElm, false, inst.visualAid, inst); + + // Fix for stange MSIE align bug + tinyMCE.tableElm.outerHTML = tinyMCE.tableElm.outerHTML; + + tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst); + tinyMCE.triggerNodeChange(); + inst.execCommand('mceEndUndoLevel'); + + // Repaint if dimensions changed + if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight) + inst.repaint(); + + tinyMCEPopup.close(); + return true; + } + + // Create new table + html += '/g, '>'); + + return ' ' + attrib + '="' + value + '"'; +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); + + var cols = 2, rows = 2, border = tinyMCE.getParam('table_default_border', '0'), cellpadding = tinyMCE.getParam('table_default_cellpadding', ''), cellspacing = tinyMCE.getParam('table_default_cellspacing', ''); + var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = ""; + var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = ""; + var inst = tinyMCE.selectedInstance; + var formObj = document.forms[0]; + var elm = tinyMCE.getParentElement(inst.getFocusElement(), "table"); + + tinyMCE.tableElm = elm; + action = tinyMCE.getWindowArg('action'); + if (action == null) + action = tinyMCE.tableElm ? "update" : "insert"; + + if (tinyMCE.tableElm && action != "insert") { + var rowsAr = tinyMCE.tableElm.rows; + var cols = 0; + for (var i=0; i cols) + cols = rowsAr[i].cells.length; + + cols = cols; + rows = rowsAr.length; + + st = tinyMCE.parseStyle(tinyMCE.getAttrib(tinyMCE.tableElm, "style")); + border = trimSize(getStyle(elm, 'border', 'borderWidth')); + cellpadding = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellpadding', ""); + cellspacing = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellspacing', ""); + width = trimSize(getStyle(elm, 'width', 'width')); + height = trimSize(getStyle(elm, 'height', 'height')); + bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor')); + bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor')); + align = tinyMCE.getAttrib(tinyMCE.tableElm, 'align', align); + className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tinyMCE.tableElm, 'class'), false); + id = tinyMCE.getAttrib(tinyMCE.tableElm, 'id'); + summary = tinyMCE.getAttrib(tinyMCE.tableElm, 'summary'); + style = tinyMCE.serializeStyle(st); + dir = tinyMCE.getAttrib(tinyMCE.tableElm, 'dir'); + lang = tinyMCE.getAttrib(tinyMCE.tableElm, 'lang'); + background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); + formObj.caption.checked = tinyMCE.tableElm.getElementsByTagName('caption').length > 0; + + orgTableWidth = width; + orgTableHeight = height; + + action = "update"; + } + + addClassesToList('class', "table_styles"); + + // Update form + selectByValue(formObj, 'align', align); + selectByValue(formObj, 'class', className); + formObj.cols.value = cols; + formObj.rows.value = rows; + formObj.border.value = border; + formObj.cellpadding.value = cellpadding; + formObj.cellspacing.value = cellspacing; + formObj.width.value = width; + formObj.height.value = height; + formObj.bordercolor.value = bordercolor; + formObj.bgcolor.value = bgcolor; + formObj.id.value = id; + formObj.summary.value = summary; + formObj.style.value = style; + formObj.dir.value = dir; + formObj.lang.value = lang; + formObj.backgroundimage.value = background; + formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true); + + updateColor('bordercolor_pick', 'bordercolor'); + updateColor('bgcolor_pick', 'bgcolor'); + + // Resize some elements + if (isVisible('backgroundimagebrowser')) + document.getElementById('backgroundimage').style.width = '180px'; + + // Disable some fields in update mode + if (action == "update") { + formObj.cols.disabled = true; + formObj.rows.disabled = true; + } +} + +function changedSize() { + var formObj = document.forms[0]; + var st = tinyMCE.parseStyle(formObj.style.value); + + var width = formObj.width.value; + if (width != "") + st['width'] = tinyMCE.getParam("inline_styles") ? getCSSSize(width) : ""; + else + st['width'] = ""; + + var height = formObj.height.value; + if (height != "") + st['height'] = getCSSSize(height); + else + st['height'] = ""; + + formObj.style.value = tinyMCE.serializeStyle(st); +} + +function changedBackgroundImage() { + var formObj = document.forms[0]; + var st = tinyMCE.parseStyle(formObj.style.value); + + st['background-image'] = "url('" + formObj.backgroundimage.value + "')"; + + formObj.style.value = tinyMCE.serializeStyle(st); +} + +function changedBorder() { + var formObj = document.forms[0]; + var st = tinyMCE.parseStyle(formObj.style.value); + + // Update border width if the element has a color + if (formObj.border.value != "" && formObj.bordercolor.value != "") + st['border-width'] = formObj.border.value + "px"; + + formObj.style.value = tinyMCE.serializeStyle(st); +} + +function changedColor() { + var formObj = document.forms[0]; + var st = tinyMCE.parseStyle(formObj.style.value); + + st['background-color'] = formObj.bgcolor.value; + + if (formObj.bordercolor.value != "") { + st['border-color'] = formObj.bordercolor.value; + + // Add border-width if it's missing + if (!st['border-width']) + st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px"; + } + + formObj.style.value = tinyMCE.serializeStyle(st); +} + +function changedStyle() { + var formObj = document.forms[0]; + var st = tinyMCE.parseStyle(formObj.style.value); + + if (st['background-image']) + formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); + else + formObj.backgroundimage.value = ''; + + if (st['width']) + formObj.width.value = trimSize(st['width']); + + if (st['height']) + formObj.height.value = trimSize(st['height']); + + if (st['background-color']) { + formObj.bgcolor.value = st['background-color']; + updateColor('bgcolor_pick','bgcolor'); + } + + if (st['border-color']) { + formObj.bordercolor.value = st['border-color']; + updateColor('bordercolor_pick','bordercolor'); + } +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/langs/en.js @@ -0,0 +1,79 @@ +// UK lang variables + +tinyMCE.addToLang('table',{ +general_tab : 'General', +advanced_tab : 'Advanced', +general_props : 'General properties', +advanced_props : 'Advanced properties', +desc : 'Inserts a new table', +row_before_desc : 'Insert row before', +row_after_desc : 'Insert row after', +delete_row_desc : 'Delete row', +col_before_desc : 'Insert column before', +col_after_desc : 'Insert column after', +delete_col_desc : 'Remove column', +rowtype : 'Row in table part', +title : 'Insert/Modify table', +width : 'Width', +height : 'Height', +cols : 'Columns', +rows : 'Rows', +cellspacing : 'Cellspacing', +cellpadding : 'Cellpadding', +border : 'Border', +align : 'Alignment', +align_default : 'Default', +align_left : 'Left', +align_right : 'Right', +align_middle : 'Center', +row_title : 'Table row properties', +cell_title : 'Table cell properties', +cell_type : 'Cell type', +row_desc : 'Table row properties', +cell_desc : 'Table cell properties', +valign : 'Vertical alignment', +align_top : 'Top', +align_bottom : 'Bottom', +props_desc : 'Table properties', +bordercolor : 'Border color', +bgcolor : 'Background color', +merge_cells_title : 'Merge table cells', +split_cells_desc : 'Split merged table cells', +merge_cells_desc : 'Merge table cells', +cut_row_desc : 'Cut table row', +copy_row_desc : 'Copy table row', +paste_row_before_desc : 'Paste table row before', +paste_row_after_desc : 'Paste table row after', +id : 'Id', +style: 'Style', +langdir : 'Language direction', +langcode : 'Language code', +mime : 'Target MIME type', +ltr : 'Left to right', +rtl : 'Right to left', +bgimage : 'Background image', +summary : 'Summary', +td : "Data", +th : "Header", +cell_cell : 'Update current cell', +cell_row : 'Update all cells in row', +cell_all : 'Update all cells in table', +row_row : 'Update current row', +row_odd : 'Update odd rows in table', +row_even : 'Update even rows in table', +row_all : 'Update all rows in table', +thead : 'Table Head', +tbody : 'Table Body', +tfoot : 'Table Foot', +del : 'Delete table', +scope : 'Scope', +row : 'Row', +col : 'Col', +rowgroup : 'Row Group', +colgroup : 'Col Group', +col_limit : 'You\'ve exceeded the maximum number of columns of {$cols}.', +row_limit : 'You\'ve exceeded the maximum number of rows of {$rows}.', +cell_limit : 'You\'ve exceeded the maximum number of cells of {$cells}.', +missing_scope: 'Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.', +caption : 'Table caption' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm @@ -0,0 +1,38 @@ + + + {$lang_table_merge_cells_title} + + + + + + + +
        +
        + {$lang_table_merge_cells_title} + + + + + + + + + +
        {$lang_table_cols}: +
        {$lang_table_rows}:
        +
        + +
        +
        + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/row.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/row.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/row.htm @@ -0,0 +1,159 @@ + + + {$lang_table_row_title} + + + + + + + + +
        + + +
        +
        +
        + {$lang_table_general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + +
        + +
        + +
        +
        +
        + +
        +
        + {$lang_table_advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + +
        + + + + + +
         
        +
        + + + + + +
         
        +
        +
        +
        +
        + +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/table.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/table.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/table/table.htm @@ -0,0 +1,160 @@ + + + {$lang_table_title} + + + + + + + + + +
        + + +
        +
        +
        + {$lang_table_general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        +
        +
        + +
        +
        + {$lang_table_advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + +
        + + + + + +
         
        +
        + + + + + +
         
        +
        + + + + + +
         
        +
        +
        +
        +
        + +
        +
        + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/blank.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/blank.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/blank.htm @@ -0,0 +1,23 @@ + + + blank_page + + + + + + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/css/template.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/css/template.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/css/template.css @@ -0,0 +1,23 @@ +#frmbody { + padding: 10px; + background-color: #FFF; + border: 1px solid #CCC; +} + +.frmRow { + margin-bottom: 10px; +} + +#templatesrc { + border: none; + width: 320px; + height: 240px; +} + +.title { + padding-bottom: 5px; +} + +.mceActionPanel { + padding-top: 5px; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('template');var TinyMCE_TemplatePlugin={getInfo:function(){return{longname:'Template plugin',author:'Moxiecode Systems AB',authorurl:'http://www.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){var cdate,mdate,content,x=0,key,value,rvals,ds=inst.getData('template');cdate=tinyMCE.getParam("template_cdate_classes",'').split(/\s+/);mdate=tinyMCE.getParam("template_mdate_classes",'').split(/\s+/);content=tinyMCE.getParam("template_selected_content_classes",'').split(/\s+/);for(x=0;x0?nodeArray[0]:null;nodeArray=[];if(ds.currentAction=="insert"){if(telm){tinyMCE.execCommand('mceBeginUndoLevel');ds.currentAction="insert-new";TinyMCE_TemplatePlugin._insertTemplate(editor_id,telm,value.title,value.tsrc,true);ds.currentAction=="insert";tinyMCE.execCommand('mceEndUndoLevel');tinyMCE.execInstanceCommand(editor_id,'mceCleanup',false)}else tinyMCE.execCommand('mceInsertContent',false,this._replaceValues(value.body))}else{nodeArray=TinyMCE_TemplatePlugin._collectTemplateElements(ds.currentTmplNode);current=[];newTmpl=[];tinyMCE.getNodeTree(telm,newTmpl);for(x=0;x','gi'),'');content=content.replace(new RegExp('
        (\s| | )?(|\s)?
        ','gi'),'');content=content.replace(new RegExp('','gi'),'');break;case"insert_to_editor":content=content.replace(new RegExp('','gi'),'
        ');content=content.replace(new RegExp('','gi'),'
        ');break;case"get_from_editor_dom":nodes=tinyMCE.selectNodes(content,function(n){return tinyMCE.hasCSSClass(n,TinyMCE_TemplatePlugin.TMPL_ELEMENT)});TinyMCE_TemplatePlugin._applyFunctions(nodes,type);break;case"insert_to_editor_dom":nodes=tinyMCE.selectNodes(content,function(n){return tinyMCE.hasCSSClass(n,TinyMCE_TemplatePlugin.TMPL_ELEMENT)});TinyMCE_TemplatePlugin._applyFunctions(nodes,type);break}return content},_convertToNode:function(html){var elm=document.createElement('div');elm.innerHTML=html;return elm},_prepareTemplateContent:function(elms){var x,n,nodes=[];if(!elms)return{};if(!elms.length)elms=[elms];for(x=0;x';html+=elm.innerHTML;html+='';tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,html)},functions:{blank:function(elm,editor_event){},cdate:function(elm,editor_event){var d,dsrc;if(editor_event!=TinyMCE_TemplatePlugin.TMPL_TEMPLATE_EVENT)return;d=new Date();dsrc=elm.innerHTML.match(new RegExp("","gi"));if(dsrc)d=new Date(RegExp.$1);elm.innerHTML=TinyMCE_TemplatePlugin._getDateTime(d,tinyMCE.getParam("template_cdate_format",tinyMCE.getLang("lang_template_def_date_format")));elm.innerHTML+=""},mdate:function(elm,editor_event){var d=new Date();elm.innerHTML=TinyMCE_TemplatePlugin._getDateTime(d,tinyMCE.getParam("template_mdate_format",tinyMCE.getLang("lang_template_def_date_format")))},selectedContent:function(elm,editor_event){var ds=tinyMCE.selectedInstance.getData('template');if(editor_event!=TinyMCE_TemplatePlugin.TMPL_TEMPLATE_EVENT)return;if(ds.currentAction=="insert-new"&&!tinyMCE.hasCSSClass(elm,TinyMCE_TemplatePlugin.TMPL_SEL_HTML_DONE)){elm.innerHTML=tinyMCE.selectedInstance.selection.getSelectedHTML();tinyMCE.addCSSClass(elm,TinyMCE_TemplatePlugin.TMPL_SEL_HTML_DONE)}},generateReplacer:function(s){return function(elm,editor_event){elm.innerHTML=""+s}}},_getDateTime:function(d,fmt){if(!fmt)return"";function addZeros(value,len){var i;value=""+value;if(value.length 0 ? nodeArray[0] : null; + nodeArray = []; + + if (ds.currentAction == "insert") { + //insert new template after applying all the template content functions + + // Is it a template or snippet + if (telm) { + tinyMCE.execCommand('mceBeginUndoLevel'); + ds.currentAction = "insert-new"; + TinyMCE_TemplatePlugin._insertTemplate(editor_id, telm, value.title, value.tsrc, true); + ds.currentAction == "insert"; + tinyMCE.execCommand('mceEndUndoLevel'); + tinyMCE.execInstanceCommand(editor_id, 'mceCleanup', false); + } else + tinyMCE.execCommand('mceInsertContent', false, this._replaceValues(value.body)); + } else { + // First collect the selected template in the editor + nodeArray = TinyMCE_TemplatePlugin._collectTemplateElements(ds.currentTmplNode); + current = []; + newTmpl = []; + tinyMCE.getNodeTree(telm, newTmpl); + + for (x=0; x', 'gi'), + '' + ); + + // delete any empty template wrappers + content = content.replace( + new RegExp('
        (\s| | )?(|\s)?
        ', 'gi'), + '' + ); + + // replace the closing wrapper tag + content = content.replace( + new RegExp('', 'gi'), + '' + ); + + break; + + case "insert_to_editor": + // replace HTML comment with DIV wrapper + content = content.replace( + new RegExp('', 'gi'), + '
        ' + ); + + content = content.replace( + new RegExp('', 'gi'), + '
        ' + ); + + break; + + case "get_from_editor_dom": + // apply template content replacement functions + nodes = tinyMCE.selectNodes(content, function(n) { + return tinyMCE.hasCSSClass(n, TinyMCE_TemplatePlugin.TMPL_ELEMENT); + } + ); + + TinyMCE_TemplatePlugin._applyFunctions(nodes, type); + + break; + + case "insert_to_editor_dom": + // apply template content replacement functions + nodes = tinyMCE.selectNodes(content, function(n) { + return tinyMCE.hasCSSClass(n, TinyMCE_TemplatePlugin.TMPL_ELEMENT); + } + ); + + TinyMCE_TemplatePlugin._applyFunctions(nodes, type); + + break; + } + + return content; + }, + + // Private plugin internal methods + + /** + * Creates a HTML DIV element and sets the innerHTML to equal the temlate innerHTML so that the template can be manipulated as DOM nodes. + * + * @param {string} Template innerHTML + * @return a HTML Element + * @type HTMLElement + */ + _convertToNode : function(html) { + var elm = document.createElement('div'); + + elm.innerHTML = html; + + return elm; + }, + + /** + * pass an array of template html elements and they will have the template class name added and any template functions applied + * + * @param {array} template HTML elements + * @return array of template HTML elements + * @type array + */ + _prepareTemplateContent : function(elms) { + var x, n, nodes = []; + + if (!elms) + return {}; + + if (!elms.length) + elms = [elms]; + + for (x = 0; x'; + html += elm.innerHTML; + html += ''; + + tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, html); + }, + + /** + * template functions - functions for modifying template content + */ + functions : { + blank : function(elm, editor_event) {}, + + cdate : function(elm, editor_event) { + var d, dsrc; + + if (editor_event != TinyMCE_TemplatePlugin.TMPL_TEMPLATE_EVENT) + return; + + d = new Date(); + // find out if the creation date was previously stored + dsrc = elm.innerHTML.match(new RegExp("", "gi")); + + if (dsrc) + d = new Date(RegExp.$1); + + elm.innerHTML = TinyMCE_TemplatePlugin._getDateTime(d, tinyMCE.getParam("template_cdate_format", tinyMCE.getLang("lang_template_def_date_format"))); + //now we have to store the date value in a format easily read again, in case a future template change changes the date format... + elm.innerHTML += ""; + }, + + mdate : function(elm, editor_event) { + var d = new Date(); + elm.innerHTML = TinyMCE_TemplatePlugin._getDateTime(d, tinyMCE.getParam("template_mdate_format", tinyMCE.getLang("lang_template_def_date_format"))); + }, + + /** + * This will insert the currently selected editor content into the template element. + * It only does this if the template inserted is a new one and if the element does not have the special class. + * The special class name prevents this from happening more than once. + */ + selectedContent : function(elm, editor_event) { + var ds = tinyMCE.selectedInstance.getData('template'); + + if (editor_event != TinyMCE_TemplatePlugin.TMPL_TEMPLATE_EVENT) + return; + + if (ds.currentAction == "insert-new" && !tinyMCE.hasCSSClass(elm, TinyMCE_TemplatePlugin.TMPL_SEL_HTML_DONE)) { + elm.innerHTML = tinyMCE.selectedInstance.selection.getSelectedHTML(); + tinyMCE.addCSSClass(elm, TinyMCE_TemplatePlugin.TMPL_SEL_HTML_DONE); + } + }, + + /** + * When the plugin is initialised this generates the functions that insert configured strings into template elements. + */ + generateReplacer : function(s) { + return function(elm, editor_event) {elm.innerHTML = "" + s;}; + } + }, + + /** + * formats a date according to the format string - straight from the 'insert date/time' plugin + * + * @param {Date} date object + * @param {string} format string + * @return formatted date + * @type string + */ + _getDateTime : function(d,fmt) { + if (!fmt) + return ""; + + function addZeros(value, len) { + var i; + + value = "" + value; + + if (value.length < len) { + for (i=0; i<(len-value.length); i++) + value = "0" + value; + } + + return value; + } + + fmt = fmt.replace("%D", "%m/%d/%y"); + fmt = fmt.replace("%r", "%I:%M:%S %p"); + fmt = fmt.replace("%Y", "" + d.getFullYear()); + fmt = fmt.replace("%y", "" + d.getYear()); + fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2)); + fmt = fmt.replace("%d", addZeros(d.getDate(), 2)); + fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2)); + fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2)); + fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2)); + fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1)); + fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM")); + fmt = fmt.replace("%B", "" + tinyMCE.getLang("lang_template_months_long")[d.getMonth()]); + fmt = fmt.replace("%b", "" + tinyMCE.getLang("lang_template_months_short")[d.getMonth()]); + fmt = fmt.replace("%A", "" + tinyMCE.getLang("lang_template_day_long")[d.getDay()]); + fmt = fmt.replace("%a", "" + tinyMCE.getLang("lang_template_day_short")[d.getDay()]); + fmt = fmt.replace("%%", "%"); + + return fmt; + }, + + TMPL_ELEMENT : 'mceTmplElm', + TMPL : 'mceTmpl', + TMPL_BEGINS : 'mceTmplBegins', + TMPL_SEL_HTML_DONE : 'mceSelHTMLDone', + TMPL_ENDS : 'mceTmplEnds', + TMPL_DATE_SRC_ATTR : 'mcetmpldtesrc', + TMPL_TEMPLATE_EVENT : 'prepare_template' +}; + +tinyMCE.addPlugin("template", TinyMCE_TemplatePlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/images/template.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/images/template.gif new file mode 100644 index 0000000000000000000000000000000000000000..58c6610fab0db28cbad9f01bfa94976365354b2e GIT binary patch literal 582 zc${owD}Xo3C?@ywyoxfAH3q#7Sp;YIjAq9bK^Pc3j_Szx)+m zHM`;`pNpS#HoS3PaK*Ox31=*dw>2-j7+AI`rstG@(b}krHJMY-WluP<6QYZAXGDcg@@TFtz_g{mL7mb$k5smj#w>G0xl4z2^yY)%j@^wW*>Qb@9BsCV8AdGfZ|UUMg|5C1|1Lw z6ekSqiyJ(enp;}i+B-VCIwUoXcr=zs=I! zOu_y-BjYW1;Wl=6W@Uya&u(kC>Ag{V?{@RKW1Hd|h99#Gtrr~>U`t$}BjMDr_;|OF Xsb7e~LI-wUd1 \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/jscripts/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/jscripts/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/jscripts/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/jscripts/template.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/jscripts/template.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/jscripts/template.js @@ -0,0 +1,143 @@ +// Import external list url javascript +var url = tinyMCE.getParam("template_external_list_url"); +if (url != null) { + // Fix relative + if (url.charAt(0) != '/' && url.indexOf('://') == -1) + url = tinyMCE.documentBasePath + "/" + url; + + document.write(''); +} + +var TPU = { //Template Popup Utils + currentTemplateHTML : null, + templates : [], + inst : tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')), + plugin : tinyMCE.getWindowArg('pluginObj'), + data : tinyMCE.selectedInstance.getData('template'), + + init : function() { + document.forms[0].insert.value = tinyMCE.getLang('lang_' + this.data.currentAction, 'Insert', true); + TPU.loadTemplatePaths(); + + if (this.data.currentAction == "update") + document.getElementById('warning').innerHTML = tinyMCE.getLang('lang_template_warning'); + + this.resizeInputs(); + }, + + loadTemplatePaths : function() { + var tsrc, sel, x, u; + + tsrc = tinyMCE.getParam("template_templates", false); + sel = document.getElementById('tpath'); + + // Setup external template list + if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') { + for (x=0, tsrc = []; x' + + 'blank_page' + + '' + + '' + + '' + + this.currentTemplateHTML + + '' + + ''; + }*/ + + // Write HTML to preview iframe + d.body.innerHTML = this.currentTemplateHTML; + + // Display description + for (x = 0; x < TPU.templates.length; x++) { + if (TPU.templates[x].src == o.value) { + document.getElementById('tmpldesc').innerHTML = TPU.templates[x].description; + break; + } + } + }, + + insertTemplate : function() { + var sel, opt; + + sel = document.getElementById('tpath'); + opt = sel.options[sel.selectedIndex]; + + // Is it a template or snippet + if (TPU.currentTemplateHTML.indexOf('mceTmpl')) + tinyMCEPopup.execCommand('mceTemplate', false, {title : opt.text, tsrc : opt.value, body : TPU.currentTemplateHTML}); + else + tinyMCEPopup.execCommand('mceInsertContent', false, TPU.currentTemplateHTML); + + tinyMCEPopup.close(); + }, + + getFileContents : function(u) { + var x, d, t = 'text/plain'; + + function g(s) { + x = 0; + + try { + x = new ActiveXObject(s); + } catch (s) { + } + + return x; + }; + + x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest(); + + // Synchronous AJAX load file + x.overrideMimeType && x.overrideMimeType(t); + x.open("GET", u, false); + x.send(null); + + return x.responseText; + }, + + resizeInputs : function() { + var wHeight, wWidth, elm; + + if (!self.innerWidth) { + wHeight = document.body.clientHeight - 160; + wWidth = document.body.clientWidth - 40; + } else { + wHeight = self.innerHeight - 160; + wWidth = self.innerWidth - 40; + } + + elm = document.getElementById('templatesrc'); + + if (elm) { + elm.style.height = Math.abs(wHeight) + 'px'; + elm.style.width = Math.abs(wWidth - 5) + 'px'; + } + } +}; diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/langs/en.js @@ -0,0 +1,16 @@ +// UK lang variables + +tinyMCE.addToLang('template',{ +title : 'Templates', +label : 'Template', +desc_label : 'Description', +desc : 'Insert predefined template content', +select : 'Select a template', +preview : 'Preview', +warning : 'Warning: Updating a template with a different one may cause data loss.', +def_date_format : '%Y-%m-%d %H:%M:%S', +months_long : new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"), +months_short : new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"), +day_long : new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"), +day_short : new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun") +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/template.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/template.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/template/template.htm @@ -0,0 +1,37 @@ + + + {$lang_template_title} + + + + + + +
        +
        +
        {$lang_template_desc}
        +
        + +
        +
        +
        +
        + {$lang_template_preview} + +
        +
        + +
        +
        + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('visualchars');var TinyMCE_VisualCharsPlugin={getInfo:function(){return{longname:'Visual characters',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){inst.visualChars={state:false}},getControlHTML:function(cn){switch(cn){case"visualchars":return tinyMCE.getButtonHTML(cn,'lang_visualchars_desc','{$pluginurl}/images/visualchars.gif','mceVisualChars',false)}return""},execCommand:function(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id);switch(command){case"mceVisualChars":this._toggleVisualChars(editor_id,inst);return true}return false},cleanup:function(type,content,inst){if(type=="insert_to_editor_dom"||type=="get_from_editor_dom"){inst.visualChars.state=true;this._toggleVisualChars(inst.editorId,inst)}return content},_toggleVisualChars:function(editor_id,inst){var nl,i,h,d=inst.getDoc(),b=inst.getBody(),nv,s=inst.selection,bo;inst.visualChars.state=!inst.visualChars.state;bo=s.getBookmark(true);tinyMCE.switchClass(editor_id+'_visualchars',inst.visualChars.state?'mceButtonSelected':'mceButtonNormal');if(inst.visualChars.state){nl=tinyMCE.selectNodes(b,function(n){return n.nodeType==3&&n.nodeValue&&n.nodeValue.indexOf('\u00a0')!=-1});for(i=0;i$1');nv=nv.replace(/\u00a0/g,'\u00b7');tinyMCE.setOuterHTML(nl[i],nv,d)}}else{nl=tinyMCE.selectNodes(b,function(n){return n.nodeType==1&&n.nodeName=='SPAN'&&n.className=='mceItemHiddenVisualChar'});for(i=0;i$1'); + nv = nv.replace(/\u00a0/g, '\u00b7'); + tinyMCE.setOuterHTML(nl[i], nv, d); + } + } else { + nl = tinyMCE.selectNodes(b, function(n) {return n.nodeType == 1 && n.nodeName == 'SPAN' && n.className == 'mceItemHiddenVisualChar';}); + + for (i=0; i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/images/visualchars.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/images/visualchars.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b4293e066841e75c4cbe1e7f08d70770fc889d8 GIT binary patch literal 134 zc${69tt_pqET>MMXlZG|z`*eT|9=Kl zp!k!8k%57WK?lSEnZdwf9B|Te^;M1& diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/langs/en.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/langs/en.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/langs/en.js @@ -0,0 +1,5 @@ +// EN lang variables + +tinyMCE.addToLang('visualchars',{ +desc : 'Visual control characters on/off.' +}); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/langs/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/langs/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/visualchars/langs/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm @@ -0,0 +1,148 @@ + + + {$lang_xhtmlxtras_title_abbr_element} + + + + + + + + + + +
        + + +
        +
        +
        + {$lang_xhtmlxtras_fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        : + +
        :
        : + +
        : + +
        +
        +
        +
        +
        + {$lang_xhtmlxtras_fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        +
        +
        +
        +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm @@ -0,0 +1,148 @@ + + + {$lang_xhtmlxtras_title_acronym_element} + + + + + + + + + + +
        + + +
        +
        +
        + {$lang_xhtmlxtras_fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        : + +
        :
        : + +
        : + +
        +
        +
        +
        +
        + {$lang_xhtmlxtras_fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        +
        +
        +
        +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm @@ -0,0 +1,153 @@ + + + {$lang_xhtmlxtras_attribs_title} + + + + + + + + + +
        + + +
        +
        +
        + {$lang_xhtmlxtras_attribute_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        + +
        :
        : + +
        : + +
        +
        +
        +
        +
        + {$lang_xhtmlxtras_attribute_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        +
        +
        +
        +
        +
        + +
        +
        + +
        +
        + +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm @@ -0,0 +1,148 @@ + + + {$lang_xhtmlxtras_title_cite_element} + + + + + + + + + + +
        + + +
        +
        +
        + {$lang_xhtmlxtras_fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        : + +
        :
        : + +
        : + +
        +
        +
        +
        +
        + {$lang_xhtmlxtras_fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        +
        +
        +
        +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css @@ -0,0 +1,11 @@ +.panel_wrapper div.current { + height: 290px; +} + +#id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey { + width: 200px; +} + +#events_panel input { + width: 200px; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css @@ -0,0 +1,46 @@ +a.mceButtonNormal img, a.mceButtonSelected img {border: 1px solid #F0F0EE !important;} +a.mceButtonNormal img:hover, a.mceButtonSelected img:hover {border: 1px solid #0A246A !important; cursor: default; background-color: #B6BDD2;} + +img { + border: 0; +} + +input.field, select.field { + width: 200px; +} + +input.picker { + width: 179px; + margin-left: 5px; +} + +input.disabled { + border-color: #F2F2F2; +} + +img.picker { + vertical-align: text-bottom; + cursor: pointer; +} + +h1 { + padding: 0 0 5px 0; +} + +#remove { + font-weight: bold; + width: 90px; + height: 21px; + border: 0px; + background-image: url('../images/remove_button_bg.gif'); + cursor: pointer; + margin-left: 3px; +} + +.panel_wrapper div.current { + height: 160px; +} + +#xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current { + height: 220px; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/xhtmlxtras.css b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/xhtmlxtras.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/xhtmlxtras.css @@ -0,0 +1,24 @@ +ins { + border-bottom: 1px solid green; + text-decoration: none; + color: green; +} + +del { + color: Red; + text-decoration: line-through; +} + +cite { + border-bottom: 1px dashed blue; +} + +acronym { + border-bottom: 1px dotted #CCC; + cursor: help; +} + +abbr, html\:abbr { + border-bottom: 1px dashed #CCC; + cursor: help; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm @@ -0,0 +1,169 @@ + + + {$lang_xhtmlxtras_title_del_element} + + + + + + + + + + +
        + + +
        +
        +
        + {$lang_xhtmlxtras_fieldset_general_tab} + + + + + + + + + +
        : + + + + + +
        {$lang_xhtmlxtras_insert_date}
        +
        :
        +
        +
        + {$lang_xhtmlxtras_fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        : + +
        :
        : + +
        : + +
        +
        +
        +
        +
        + {$lang_xhtmlxtras_fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        +
        +
        +
        +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        + + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js @@ -0,0 +1,1 @@ +tinyMCE.importPluginLanguagePack('xhtmlxtras');var TinyMCE_XHTMLXtrasPlugin={getInfo:function(){return{longname:'XHTML Xtras Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/xhtmlxtras/css/xhtmlxtras.css")},getControlHTML:function(cn){switch(cn){case"cite":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_cite_desc','{$pluginurl}/images/cite.gif','mceCite',true);case"acronym":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_acronym_desc','{$pluginurl}/images/acronym.gif','mceAcronym',true);case"abbr":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_abbr_desc','{$pluginurl}/images/abbr.gif','mceAbbr',true);case"del":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_del_desc','{$pluginurl}/images/del.gif','mceDel',true);case"ins":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_ins_desc','{$pluginurl}/images/ins.gif','mceIns',true);case"attribs":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_attribs_desc','{$pluginurl}/images/attribs.gif','mceAttributes',true)}return""},execCommand:function(editor_id,element,command,user_interface,value){var template,inst,elm;switch(command){case"mceCite":if(!this._anySel(editor_id))return true;template=new Array();template['file']='../../plugins/xhtmlxtras/cite.htm';template['width']=350;template['height']=250;tinyMCE.openWindow(template,{editor_id:editor_id});return true;case"mceAcronym":if(!this._anySel(editor_id))return true;template=new Array();template['file']='../../plugins/xhtmlxtras/acronym.htm';template['width']=350;template['height']=250;tinyMCE.openWindow(template,{editor_id:editor_id});return true;case"mceAbbr":if(!this._anySel(editor_id))return true;template=new Array();template['file']='../../plugins/xhtmlxtras/abbr.htm';template['width']=350;template['height']=250;tinyMCE.openWindow(template,{editor_id:editor_id});return true;case"mceIns":if(!this._anySel(editor_id))return true;template=new Array();template['file']='../../plugins/xhtmlxtras/ins.htm';template['width']=350;template['height']=310;tinyMCE.openWindow(template,{editor_id:editor_id});return true;case"mceDel":if(!this._anySel(editor_id))return true;template=new Array();template['file']='../../plugins/xhtmlxtras/del.htm';template['width']=350;template['height']=310;tinyMCE.openWindow(template,{editor_id:editor_id});return true;case"mceAttributes":inst=tinyMCE.getInstanceById(editor_id);elm=inst.getFocusElement();if(elm&&elm.nodeName!=='BODY'&&elm.className.indexOf('mceItem')==-1){tinyMCE.openWindow({file:'../../plugins/xhtmlxtras/attributes.htm',width:380,height:370},{editor_id:editor_id})}return true}return false},cleanup:function(type,content,inst){if(type=='insert_to_editor'&&tinyMCE.isIE&&!tinyMCE.isOpera){content=content.replace(/]+)>/gi,'');content=content.replace(/<\/abbr>/gi,'')}return content},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){var elm=tinyMCE.getParentElement(node);if(node==null)return;tinyMCE.switchClass(editor_id+'_attribs','mceButtonDisabled');if(!any_selection){tinyMCE.switchClass(editor_id+'_cite','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_acronym','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_abbr','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_del','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_ins','mceButtonDisabled')}else{tinyMCE.switchClass(editor_id+'_cite','mceButtonNormal');tinyMCE.switchClass(editor_id+'_acronym','mceButtonNormal');tinyMCE.switchClass(editor_id+'_abbr','mceButtonNormal');tinyMCE.switchClass(editor_id+'_del','mceButtonNormal');tinyMCE.switchClass(editor_id+'_ins','mceButtonNormal')}if(elm&&elm.nodeName!='BODY'&&elm.className.indexOf('mceItem')==-1)tinyMCE.switchClass(editor_id+'_attribs','mceButtonNormal');switch(node.nodeName){case"CITE":tinyMCE.switchClass(editor_id+'_cite','mceButtonSelected');return true;case"ACRONYM":tinyMCE.switchClass(editor_id+'_acronym','mceButtonSelected');return true;case"abbr":case"HTML:ABBR":case"ABBR":tinyMCE.switchClass(editor_id+'_abbr','mceButtonSelected');return true;case"DEL":tinyMCE.switchClass(editor_id+'_del','mceButtonSelected');return true;case"INS":tinyMCE.switchClass(editor_id+'_ins','mceButtonSelected');return true}return true},_anySel:function(editor_id){var inst=tinyMCE.getInstanceById(editor_id),t=inst.selection.getSelectedText(),pe;pe=tinyMCE.getParentElement(inst.getFocusElement(),'CITE,ACRONYM,ABBR,HTML:ABBR,DEL,INS');return pe||inst.getFocusElement().nodeName=="IMG"||(t&&t.length>0)}};tinyMCE.addPlugin("xhtmlxtras",TinyMCE_XHTMLXtrasPlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js @@ -0,0 +1,199 @@ + /** + * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $ + * + * @author Moxiecode - based on work by Andrew Tetlaw + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +/* Import plugin specific language pack */ +tinyMCE.importPluginLanguagePack('xhtmlxtras'); + +var TinyMCE_XHTMLXtrasPlugin = { + getInfo : function() { + return { + longname : 'XHTML Xtras Plugin', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + initInstance : function(inst) { + tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/plugins/xhtmlxtras/css/xhtmlxtras.css"); + }, + + getControlHTML : function(cn) { + switch (cn) { + case "cite": + return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_cite_desc', '{$pluginurl}/images/cite.gif', 'mceCite', true); + + case "acronym": + return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_acronym_desc', '{$pluginurl}/images/acronym.gif', 'mceAcronym', true); + + case "abbr": + return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_abbr_desc', '{$pluginurl}/images/abbr.gif', 'mceAbbr', true); + + case "del": + return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_del_desc', '{$pluginurl}/images/del.gif', 'mceDel', true); + + case "ins": + return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_ins_desc', '{$pluginurl}/images/ins.gif', 'mceIns', true); + + case "attribs": + return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_attribs_desc', '{$pluginurl}/images/attribs.gif', 'mceAttributes', true); + } + + return ""; + }, + + execCommand : function(editor_id, element, command, user_interface, value) { + var template, inst, elm; + + switch (command) { + case "mceCite": + if (!this._anySel(editor_id)) + return true; + + template = new Array(); + template['file'] = '../../plugins/xhtmlxtras/cite.htm'; + template['width'] = 350; + template['height'] = 250; + tinyMCE.openWindow(template, {editor_id : editor_id}); + return true; + + case "mceAcronym": + if (!this._anySel(editor_id)) + return true; + + template = new Array(); + template['file'] = '../../plugins/xhtmlxtras/acronym.htm'; + template['width'] = 350; + template['height'] = 250; + tinyMCE.openWindow(template, {editor_id : editor_id}); + return true; + + case "mceAbbr": + if (!this._anySel(editor_id)) + return true; + + template = new Array(); + template['file'] = '../../plugins/xhtmlxtras/abbr.htm'; + template['width'] = 350; + template['height'] = 250; + tinyMCE.openWindow(template, {editor_id : editor_id}); + return true; + + case "mceIns": + if (!this._anySel(editor_id)) + return true; + + template = new Array(); + template['file'] = '../../plugins/xhtmlxtras/ins.htm'; + template['width'] = 350; + template['height'] = 310; + tinyMCE.openWindow(template, {editor_id : editor_id}); + return true; + + case "mceDel": + if (!this._anySel(editor_id)) + return true; + + template = new Array(); + template['file'] = '../../plugins/xhtmlxtras/del.htm'; + template['width'] = 350; + template['height'] = 310; + tinyMCE.openWindow(template, {editor_id : editor_id}); + return true; + + case "mceAttributes": + inst = tinyMCE.getInstanceById(editor_id); + elm = inst.getFocusElement(); + + if (elm && elm.nodeName !== 'BODY' && elm.className.indexOf('mceItem') == -1) { + tinyMCE.openWindow({ + file : '../../plugins/xhtmlxtras/attributes.htm', + width : 380, + height : 370 + }, {editor_id : editor_id}); + } + + return true; + } + + return false; + }, + + cleanup : function(type, content, inst) { + if (type == 'insert_to_editor' && tinyMCE.isIE && !tinyMCE.isOpera) { + content = content.replace(/]+)>/gi, ''); + content = content.replace(/<\/abbr>/gi, ''); + } + + return content; + }, + + handleNodeChange : function(editor_id, node, undo_index,undo_levels, visual_aid, any_selection) { + var elm = tinyMCE.getParentElement(node); + + if (node == null) + return; + + tinyMCE.switchClass(editor_id + '_attribs', 'mceButtonDisabled'); + + if (!any_selection) { + // Disable the buttons + tinyMCE.switchClass(editor_id + '_cite', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_acronym', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_abbr', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_del', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_ins', 'mceButtonDisabled'); + } else { + // A selection means the buttons should be active. + tinyMCE.switchClass(editor_id + '_cite', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_acronym', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_abbr', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_del', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_ins', 'mceButtonNormal'); + } + + if (elm && elm.nodeName != 'BODY' && elm.className.indexOf('mceItem') == -1) + tinyMCE.switchClass(editor_id + '_attribs', 'mceButtonNormal'); + + switch (node.nodeName) { + case "CITE": + tinyMCE.switchClass(editor_id + '_cite', 'mceButtonSelected'); + return true; + + case "ACRONYM": + tinyMCE.switchClass(editor_id + '_acronym', 'mceButtonSelected'); + return true; + + case "abbr": // IE + case "HTML:ABBR": // FF + case "ABBR": + tinyMCE.switchClass(editor_id + '_abbr', 'mceButtonSelected'); + return true; + + case "DEL": + tinyMCE.switchClass(editor_id + '_del', 'mceButtonSelected'); + return true; + + case "INS": + tinyMCE.switchClass(editor_id + '_ins', 'mceButtonSelected'); + return true; + } + + return true; + }, + + _anySel : function(editor_id) { + var inst = tinyMCE.getInstanceById(editor_id), t = inst.selection.getSelectedText(), pe; + + pe = tinyMCE.getParentElement(inst.getFocusElement(), 'CITE,ACRONYM,ABBR,HTML:ABBR,DEL,INS'); + + return pe || inst.getFocusElement().nodeName == "IMG" || (t && t.length > 0); + } +}; + +tinyMCE.addPlugin("xhtmlxtras", TinyMCE_XHTMLXtrasPlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/abbr.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/abbr.gif new file mode 100644 index 0000000000000000000000000000000000000000..d00d83017ffb2281edf45b1165ef4b961b2be99e GIT binary patch literal 144 zc${ay5@GMW>dqmSYB?)19){1~(isiJGJA+U{1c zDW?1E|Ns9Pz(DaQ3nK#qFM|$<12Thw#dgC<&((V^UZ36lKS86YOGIK)fd@m9;Mof- tzLz-8USjYK6y&<8x%Jl0x{Z-Hq)#3^1VhlZBCifrmi{!~vPXz+yh(r043r7O&6l{-2;x#LmhS+8Dy9?8A`kb3{~T ieM!*PtIv9F_*_cfDbc0SwQ<4-qUuiyv4Dun4JD*ff^eaLao{pd(@&q*0GL!MOO)bRZAjou3ZF6wu~gqZ z3e3BORpP4HreVg!cG-X!MAPyk&x>6=hiSxl!h<)@NaSMMAffB}_(PoVn2Ch1tVD#l z0xVzx1ZANGKm{YXV)>j%W_eA*vL&)<=EUs#wVIUDb1lgUG<~2xM9iNfG|Dtn+aZ}Y z`oB~9o7WJkqLJOQ`w41W^{c_7`oiMlu<_(+(3P7wclBD|Da&juX|E0y&i9#T!k4|; z>%%?8!Aia5eMe5ywcf(p@zWQF-gWL{`hLC8KUq3Eb={e}enl@192>ZNq+IX# zI*px^`lSoqv%%35Kb)8&mn# pgGSHxJ-IeN-!keHZwAYg;en+G=C`57`t$P4*zNU?cb74m*a4#<$R+>) diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/cite.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/cite.gif new file mode 100644 index 0000000000000000000000000000000000000000..585bcd1ee2be031a09af278c58028a04ad68bf44 GIT binary patch literal 313 zc${+Z^fkB-? z2gCvSiGeNbz~llC9jX2kONvhBSj|7)(O6+B%FNo-)U@-!h1l*#K+sgxG=KdOCpWJH7oK&k{F0QClRxK; zUGY6FBdaM3*DEP01;r*^y7l_cpMSIV{WJ1PdiCl@R#_1PZlL&+g^__loIwY~0olpG zI_H6EUrOe@j8*eIZ|faCa3<5}?&aM&K5zBbh38z8mQ)dHIns9dqlddEvp~zqjtd=2 z6+5(4nU*v#O%-71TA?fuz@f#qDezH71dm{g^TG-To@_gNi{_VYXFskV_^UQ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/del.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/del.gif new file mode 100644 index 0000000000000000000000000000000000000000..ba494082d4b25fa73e1187f88c427d74db369577 GIT binary patch literal 222 zc${aiyLdox@}$ATHGEp3PuDox-^Icas*9hOfg=xgSG3Z W<_84=E_6{9I25SH}zF5=% diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/ins.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/ins.gif new file mode 100644 index 0000000000000000000000000000000000000000..277a364b26545defce337729f806cb0b154b4ee9 GIT binary patch literal 231 zc$@*}02u#ANk%w1VH5xq0K^{vB0zC9T9PnOkX3P}nWVlVI%=-A&1!_VL}Q^)aImbj z$}&oUNM@Xvp}A0Fk)El^lAXImU6hKPzLcWFoTkEKd8wzd%B8c>uei^Bjjcvqb#REl zqpZb1SfBua0RR90A^8LW0018VEC2ui02BZe000GK;3tk`X`X1RuI&08ZMh{^EMiH5 z*xzv=0*MV_U1{y2qvw;L*#U@EFDIK5m*#BtIB`?flw9zYswHXkSYa0$}(7J hMwvLEpg0*Q1Oy`r1Pz9LBp!;3jE#yskdZ1O06TIDUCICe diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/remove_button_bg.gif b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/images/remove_button_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a069a8ce0da45f32363fb590f02e9eb8dcd3da0 GIT binary patch literal 433 zc${6KQ@b6#0e*FZ2Utsw22MB!s z4#Yt6`}c3(zJ31u`Q5vBuV24@`t<382M?}XxpL;rnVBOPrKVYqt@TZ z`P?L!xGJhEVvX+XcCml&P)#O8q>u=ggfqf5E~W4q?J~2?cKNk zz`;X@j~qRA{NSqH(wt|{vR}A(>GGAU*Dmb4e(UyC{!?-?GOTy5vORnL;^nK?&n`ZH z_vYi(he{7$vi|t_>-V3(|Nj5D!YkpiVZp&>wwH~M1r{tk+%BN(HOFJ)qNCk{qD3!& z9zWJD>)a*dY4qgyBn@A^pgS6in2%2}NIo^kbMms&)AWj8-8s2=`T6+{&0MTq#Val@ T_L$6;dvMFj%gg \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm @@ -0,0 +1,169 @@ + + + {$lang_xhtmlxtras_title_ins_element} + + + + + + + + + + +
        + + +
        +
        +
        + {$lang_xhtmlxtras_fieldset_general_tab} + + + + + + + + + +
        : + + + + + +
        {$lang_xhtmlxtras_insert_date}
        +
        :
        +
        +
        + {$lang_xhtmlxtras_fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        : + +
        :
        : + +
        : + +
        +
        +
        +
        +
        + {$lang_xhtmlxtras_fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :
        +
        +
        +
        +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        + + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/abbr.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/abbr.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/abbr.js @@ -0,0 +1,29 @@ + /** + * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $ + * + * @author Moxiecode - based on work by Andrew Tetlaw + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +function preinit() { + // Initialize + tinyMCE.setWindowArg('mce_windowresize', false); +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + SXE.initElementDialog('abbr'); + if (SXE.currentAction == "update") { + SXE.showRemoveButton(); + } +} + +function insertAbbr() { + SXE.insertElement(tinyMCE.isIE && !tinyMCE.isOpera ? 'html:ABBR' : 'abbr'); + tinyMCEPopup.close(); +} + +function removeAbbr() { + SXE.removeElement('abbr'); + tinyMCEPopup.close(); +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/acronym.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/acronym.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/acronym.js @@ -0,0 +1,29 @@ + /** + * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $ + * + * @author Moxiecode - based on work by Andrew Tetlaw + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +function preinit() { + // Initialize + tinyMCE.setWindowArg('mce_windowresize', false); +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + SXE.initElementDialog('acronym'); + if (SXE.currentAction == "update") { + SXE.showRemoveButton(); + } +} + +function insertAcronym() { + SXE.insertElement('acronym'); + tinyMCEPopup.close(); +} + +function removeAcronym() { + SXE.removeElement('acronym'); + tinyMCEPopup.close(); +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/attributes.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/attributes.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/attributes.js @@ -0,0 +1,130 @@ + /** + * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $ + * + * @author Moxiecode - based on work by Andrew Tetlaw + * @copyright Copyright 2004-2006, Moxiecode Systems AB, All rights reserved. + */ + +function preinit() { + // Initialize + tinyMCE.setWindowArg('mce_windowresize', false); +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')); + var elm = inst.getFocusElement(); + + var f = document.forms[0]; + + var onclick = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onclick')); + + setFormValue('title', tinyMCE.getAttrib(elm, 'title')); + setFormValue('id', tinyMCE.getAttrib(elm, 'id')); + setFormValue('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(tinyMCE.getAttrib(elm, "style")))); + setFormValue('dir', tinyMCE.getAttrib(elm, 'dir')); + setFormValue('lang', tinyMCE.getAttrib(elm, 'lang')); + setFormValue('tabindex', tinyMCE.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : "")); + setFormValue('accesskey', tinyMCE.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : "")); + setFormValue('onfocus', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onfocus'))); + setFormValue('onblur', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onblur'))); + setFormValue('onclick', onclick); + setFormValue('ondblclick', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'ondblclick'))); + setFormValue('onmousedown', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmousedown'))); + setFormValue('onmouseup', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseup'))); + setFormValue('onmouseover', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseover'))); + setFormValue('onmousemove', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmousemove'))); + setFormValue('onmouseout', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseout'))); + setFormValue('onkeypress', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeypress'))); + setFormValue('onkeydown', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeydown'))); + setFormValue('onkeyup', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeyup'))); + + className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(elm, 'class'), false); + + addClassesToList('classlist', 'advlink_styles'); + selectByValue(f, 'classlist', className, true); + + TinyMCE_EditableSelects.init(); +} + +function setFormValue(name, value) { + if(value && document.forms[0].elements[name]){ + document.forms[0].elements[name].value = value; + } +} + +function insertAction() { + var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')); + var elm = inst.getFocusElement(); + + tinyMCEPopup.execCommand("mceBeginUndoLevel"); + tinyMCEPopup.restoreSelection(); + + setAllAttribs(elm); + + tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst); + tinyMCE._setEventsEnabled(inst.getBody(), false); + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); +} + +function setAttrib(elm, attrib, value) { + var formObj = document.forms[0]; + var valueElm = formObj.elements[attrib.toLowerCase()]; + + if (typeof(value) == "undefined" || value == null) { + value = ""; + + if (valueElm) + value = valueElm.value; + } + + if (value != "") { + tinyMCE.setAttrib(elm, attrib.toLowerCase(), value); + + if (attrib == "style") + attrib = "style.cssText"; + + if (attrib.substring(0, 2) == 'on') + value = 'return true;' + value; + + if (attrib == "class") + attrib = "className"; + + eval('elm.' + attrib + "=value;"); + } else + elm.removeAttribute(attrib); +} + +function setAllAttribs(elm) { + var f = document.forms[0]; + + setAttrib(elm, 'title'); + setAttrib(elm, 'id'); + setAttrib(elm, 'style'); + setAttrib(elm, 'class', getSelectValue(f, 'classlist')); + setAttrib(elm, 'dir'); + setAttrib(elm, 'lang'); + setAttrib(elm, 'tabindex'); + setAttrib(elm, 'accesskey'); + setAttrib(elm, 'onfocus'); + setAttrib(elm, 'onblur'); + setAttrib(elm, 'onclick'); + setAttrib(elm, 'ondblclick'); + setAttrib(elm, 'onmousedown'); + setAttrib(elm, 'onmouseup'); + setAttrib(elm, 'onmouseover'); + setAttrib(elm, 'onmousemove'); + setAttrib(elm, 'onmouseout'); + setAttrib(elm, 'onkeypress'); + setAttrib(elm, 'onkeydown'); + setAttrib(elm, 'onkeyup'); + + // Refresh in old MSIE + if (tinyMCE.isMSIE5) + elm.outerHTML = elm.outerHTML; +} + +function insertAttribute() { + tinyMCEPopup.close(); +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/cite.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/cite.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/cite.js @@ -0,0 +1,29 @@ + /** + * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $ + * + * @author Moxiecode - based on work by Andrew Tetlaw + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +function preinit() { + // Initialize + tinyMCE.setWindowArg('mce_windowresize', false); +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + SXE.initElementDialog('cite'); + if (SXE.currentAction == "update") { + SXE.showRemoveButton(); + } +} + +function insertCite() { + SXE.insertElement('cite'); + tinyMCEPopup.close(); +} + +function removeCite() { + SXE.removeElement('cite'); + tinyMCEPopup.close(); +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/del.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/del.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/del.js @@ -0,0 +1,54 @@ + /** + * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $ + * + * @author Moxiecode - based on work by Andrew Tetlaw + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +function preinit() { + // Initialize + tinyMCE.setWindowArg('mce_windowresize', false); +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + SXE.initElementDialog('del'); + if (SXE.currentAction == "update") { + setFormValue('datetime', tinyMCE.getAttrib(SXE.updateElement, 'datetime')); + setFormValue('cite', tinyMCE.getAttrib(SXE.updateElement, 'cite')); + SXE.showRemoveButton(); + } +} + +function setElementAttribs(elm) { + setAllCommonAttribs(elm); + setAttrib(elm, 'datetime'); + setAttrib(elm, 'cite'); +} + +function insertDel() { + var elm = tinyMCE.getParentElement(SXE.focusElement, 'del'); + + tinyMCEPopup.execCommand('mceBeginUndoLevel'); + if (elm == null) { + var s = SXE.inst.selection.getSelectedHTML(); + if(s.length > 0) { + tinyMCEPopup.execCommand('mceInsertContent', false, '' + s + ''); + var elementArray = tinyMCE.getElementsByAttributeValue(SXE.inst.getBody(), 'del', 'id', '#sxe_temp_del#'); + for (var i=0; i 0) { + tagName = element_name; + + if (tinyMCE.isIE && !tinyMCE.isOpera && element_name.indexOf('html:') == 0) + element_name = element_name.substring(5).toLowerCase(); + + h = '<' + tagName + ' id="#sxe_temp_' + element_name + '#">' + s + ''; + + tinyMCEPopup.execCommand('mceInsertContent', false, h); + + var elementArray = tinyMCE.getElementsByAttributeValue(SXE.inst.getBody(), element_name, 'id', '#sxe_temp_' + element_name + '#'); + for (var i=0; i -1) ? true : false; +} + +SXE.removeClass = function(elm,cl) { + if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) { + return true; + } + var classNames = elm.className.split(" "); + var newClassNames = ""; + for (var x = 0, cnl = classNames.length; x < cnl; x++) { + if (classNames[x] != cl) { + newClassNames += (classNames[x] + " "); + } + } + elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end +} + +SXE.addClass = function(elm,cl) { + if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl; + return true; +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/ins.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/ins.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/ins.js @@ -0,0 +1,53 @@ + /** + * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $ + * + * @author Moxiecode - based on work by Andrew Tetlaw + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +function preinit() { + // Initialize + tinyMCE.setWindowArg('mce_windowresize', false); +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + SXE.initElementDialog('ins'); + if (SXE.currentAction == "update") { + setFormValue('datetime', tinyMCE.getAttrib(SXE.updateElement, 'datetime')); + setFormValue('cite', tinyMCE.getAttrib(SXE.updateElement, 'cite')); + SXE.showRemoveButton(); + } +} + +function setElementAttribs(elm) { + setAllCommonAttribs(elm); + setAttrib(elm, 'datetime'); + setAttrib(elm, 'cite'); +} + +function insertIns() { + var elm = tinyMCE.getParentElement(SXE.focusElement, 'ins'); + tinyMCEPopup.execCommand('mceBeginUndoLevel'); + if (elm == null) { + var s = SXE.inst.selection.getSelectedHTML(); + if(s.length > 0) { + tinyMCEPopup.execCommand('mceInsertContent', false, '' + s + ''); + var elementArray = tinyMCE.getElementsByAttributeValue(SXE.inst.getBody(), 'ins', 'id', '#sxe_temp_ins#'); + for (var i=0; i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/editor_plugin.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/editor_plugin.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/editor_plugin.js @@ -0,0 +1,1 @@ +var TinyMCE_ZoomPlugin={getInfo:function(){return{longname:'Zoom',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/zoom',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(control_name){if(!tinyMCE.isMSIE||tinyMCE.isMSIE5_0||tinyMCE.isOpera)return"";switch(control_name){case"zoom":return''}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceZoom":tinyMCE.getInstanceById(editor_id).contentDocument.body.style.zoom=value;tinyMCE.getInstanceById(editor_id).contentDocument.body.style.mozZoom=value;return true}return false}};tinyMCE.addPlugin("zoom",TinyMCE_ZoomPlugin); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/editor_plugin_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/editor_plugin_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/editor_plugin_src.js @@ -0,0 +1,56 @@ +/** + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +var TinyMCE_ZoomPlugin = { + getInfo : function() { + return { + longname : 'Zoom', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/zoom', + version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion + }; + }, + + /** + * Returns the HTML contents of the zoom control. + */ + getControlHTML : function(control_name) { + if (!tinyMCE.isMSIE || tinyMCE.isMSIE5_0 || tinyMCE.isOpera) + return ""; + + switch (control_name) { + case "zoom": + return ''; + } + + return ""; + }, + + /** + * Executes the mceZoom command. + */ + execCommand : function(editor_id, element, command, user_interface, value) { + // Handle commands + switch (command) { + case "mceZoom": + tinyMCE.getInstanceById(editor_id).contentDocument.body.style.zoom = value; + tinyMCE.getInstanceById(editor_id).contentDocument.body.style.mozZoom = value; + return true; + } + + // Pass to next handler in chain + return false; + } +}; + +tinyMCE.addPlugin("zoom", TinyMCE_ZoomPlugin); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/readme.txt b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/readme.txt new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/plugins/zoom/readme.txt @@ -0,0 +1,1 @@ +Check the TinyMCE documentation for details on this plugin. diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/about.htm b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/about.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/about.htm @@ -0,0 +1,52 @@ + + + {$lang_about_title} + + + + + + + + +
        +
        +

        {$lang_about_title}

        +

        Version: {$tinymce_version} ({$tinymce_releasedate})

        +

        TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL + by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.

        +

        Copyright © 2003-2007, Moxiecode Systems AB, All rights reserved.

        +

        For more information about this software visit the TinyMCE website.

        + +
        +
        + +
        +
        +

        {$lang_loaded_plugins}

        + +
        +
        + +

         

        +
        +
        + +
        +
        +
        +
        + +
        +
        + +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm @@ -0,0 +1,33 @@ + + + {$lang_insert_anchor_title} + + + + + +
        + + + + + + + + + +
        {$lang_insert_anchor_title}
        {$lang_insert_anchor_name}:
        + +
        +
        + +
        + +
        + +
        +
        + +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm @@ -0,0 +1,53 @@ + + + {$lang_theme_charmap_title} + + + + + + + + + + + + + + + + + +
        {$lang_theme_charmap_title}
        + + + + + + + + + +
         
         
        +
        + + + + + + + + + + + + + + + + +
        HTML-Code
         
         
        NUM-Code
         
        +
        + + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm @@ -0,0 +1,74 @@ + + + {$lang_theme_colorpicker_title} + + + + + + + + + +
        +
        +
        + {$lang_color_picker} +
        + + +
        + +
        + +
        +
        +
        +
        + +
        +
        + {$lang_web_colors} +
        + +
        + +
        +
        +
        + +
        +
        + {$lang_named_colors} +
        + +
        + +
        + +
        + {$lang_color_name} +
        +
        +
        +
        + +
        +
        + +
        + +
        + +
        + +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/colorpicker.css b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/colorpicker.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/colorpicker.css @@ -0,0 +1,53 @@ +/* Colorpicker dialog specific CSS */ + +#preview { + float: right; + width: 50px; + height: 14px; + line-height: 1px; + border: 1px solid black; + margin-left: 5px; +} + +#colorpicker { + float: left; + cursor: crosshair; +} + +#light { + border: 1px solid gray; + margin-left: 5px; + float: left; + width: 15px; + cursor: crosshair; +} + +#light div { + overflow: hidden; +} + +#previewblock { + float: right; + padding-left: 10px; + height: 20px; +} + +.panel_wrapper div.current { + height: 175px; +} + +#namedcolors { + width: 150px; +} + +#namedcolors a { + display: block; + float: left; + width: 10px; height: 10px; + margin: 1px 1px 0 0; + overflow: hidden; +} + +#colornamecontainer { + margin-top: 5px; +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/editor_content.css b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/editor_content.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/editor_content.css @@ -0,0 +1,58 @@ +/* This file contains the CSS data for the editable area(iframe) of TinyMCE */ +/* You can extend this CSS by adding your own CSS file with the the content_css option */ + +body, td, pre { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +body { + background-color: #FFFFFF; +} + +.mceVisualAid { + border: 1px dashed #BBBBBB !important; +} + +div.mceVisualAid { + background-image:url('../images/spacer.gif'); + visibility: visible !important; +} + +.mceItemAnchor { + width: 12px; + line-height: 6px; + overflow: hidden; + padding-left: 12px; + background-image: url('../images/anchor_symbol.gif'); + background-position: bottom; + background-repeat: no-repeat; +} + +/* Important is needed in Gecko browsers inorder to style links */ +/* +a { + color: green !important; +} +*/ + +/* Style selection range colors in Gecko browsers */ +/* +::-moz-selection { + background-color: red; + color: green; +} +*/ + +/* MSIE specific */ + +* html body { + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/editor_popup.css b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/editor_popup.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/editor_popup.css @@ -0,0 +1,331 @@ +/* This file contains the CSS data for all popups in TinyMCE */ + +body { + background-color: #F0F0EE; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 11px; + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; + margin: 8px; +} + +td { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 11px; +} + +input { + background: #FFFFFF; + border: 1px solid #cccccc; +} + +td, input, select, textarea { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +input, select, textarea { + border: 1px solid #808080; +} + +.input_noborder { + border: 0; +} + +#insert, .updateButton { + font-weight: bold; + width: 90px; + height: 21px; + border: 0; + background-image: url('../images/insert_button_bg.gif'); + cursor: pointer; +} + +#cancel { + font-weight: bold; + width: 90px; + height: 21px; + border: 0; + background-image: url('../images/cancel_button_bg.gif'); + cursor: pointer; +} + +/* Mozilla only style */ +html>body #insert, html>body #cancel { + padding-bottom: 2px; +} + +.title { + font-size: 12px; + font-weight: bold; + color: #2B6FB6; +} + +table.charmap { + border-style: solid; + border-width: 1px; + border-color: #AAAAAA; +} + +td.charmap, td.charmapOver { + color: #000000; + border-color: #AAAAAA; + border-style: solid; + border-width: 1px; + text-align: center; + font-size: 12px; +} + +td.charmapOver { + background-color: #CCCCCC; + cursor: default; +} + +a.charmap { + color: #000000; + text-decoration: none +} + +.wordWrapCode { + vertical-align: middle; + border: 1px none #000000; + background-color: transparent; +} + +input.radio { + border: 1px none #000000; + background-color: transparent; + vertical-align: middle; +} + +input.checkbox { + border: 1px none #000000; + background-color: transparent; + vertical-align: middle; +} + +.mceButtonNormal, .mceButtonOver, .mceButtonDown, .mceSeparator, .mceButtonDisabled, .mceButtonSelected { + margin-left: 1px; +} + +.mceButtonNormal { + border-top: 1px solid; + border-left: 1px solid; + border-bottom: 1px solid; + border-right: 1px solid; + border-color: #F0F0EE; + cursor: default; +} + +.mceButtonOver { + border: 1px solid #0A246A; + cursor: default; + background-color: #B6BDD2; +} + +.mceButtonDown { + cursor: default; + border: 1px solid #0A246A; + background-color: #8592B5; +} + +.mceButtonDisabled { + filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); + -moz-opacity:0.3; + opacity: 0.3; + border-top: 1px solid; + border-left: 1px solid; + border-bottom: 1px solid; + border-right: 1px solid; + border-color: #F0F0EE; + cursor: default; +} + +.mceActionPanel { + margin-top: 5px; +} + +/* Tabs classes */ + +.tabs { + float: left; + width: 100%; + line-height: normal; + background-image: url("../images/xp/tabs_bg.gif"); +} + +.tabs ul { + margin: 0; + padding: 0 0 0; + list-style: none; +} + +.tabs li { + float: left; + background: url("../images/xp/tab_bg.gif") no-repeat left top; + margin: 0; + margin-left: 0; + margin-right: 2px; + padding: 0 0 0 10px; + line-height: 18px; +} + +.tabs li.current { + background: url("../images/xp/tab_sel_bg.gif") no-repeat left top; + margin-right: 2px; +} + +.tabs span { + float: left; + display: block; + background: url("../images/xp/tab_end.gif") no-repeat right top; + padding: 0px 10px 0 0; +} + +.tabs .current span { + background: url("../images/xp/tab_sel_end.gif") no-repeat right top; +} + +.tabs a { + text-decoration: none; + font-family: Verdana, Arial; + font-size: 10px; +} + +.tabs a:link, .tabs a:visited, .tabs a:hover { + color: black; +} + +.tabs a:hover { +} + +.tabs .current { +} + +.tabs .current a, .tabs .current a:link, .tabs .current a:visited { +} + +.panel_wrapper div.panel { + display: none; +} + +.panel_wrapper div.current { + display: block; + width: 100%; + height: 300px; + overflow: visible; /* Should be auto but that breaks Safari */ +} + +.panel_wrapper { + border: 1px solid #919B9C; + border-top: 0px; + padding: 10px; + padding-top: 5px; + clear: both; + background-color: white; +} + +fieldset { + border: 1px solid #919B9C; + font-family: Verdana, Arial; + font-size: 10px; + padding: 0; + margin: 0; + padding: 4px; +} + +legend { + color: #2B6FB6; + font-weight: bold; +} + +.properties { + width: 100%; +} + +.properties .column1 { +} + +.properties .column2 { + text-align: left; +} + +a:link, a:visited { + color: black; +} + +a:hover { + color: #2B6FB6; +} + +#plugintable thead { + font-weight: bold; + background-color: #DDDDDD; +} + +#plugintable, #about #plugintable td { + border: 1px solid #919B9C; +} + +#plugintable { + width: 99%; + margin-top: 10px; +} + +#pluginscontainer { + height: 290px; + overflow: auto; +} + +/* MSIE Specific styles */ + +* html .panel_wrapper { + width: 100%; +} + +.column { + float: left; +} + +h1, h2, h3, h4 { + color: #2B6FB6; + margin: 0; + padding: 0; + padding-top: 5px; +} + +h3 { + font-size: 14px; +} + +#link .panel_wrapper, #link div.current { + height: 125px; +} + +#image .panel_wrapper, #image div.current { + height: 190px; +} + +label.msg { display: none; } +label.invalid { color: #EE0000; display: inline; } +input.invalid { border: 1px solid #EE0000; } + +/* Disables the advanced tab in the table plugin. */ +/* +#table #advanced_tab { + display: none; +} +*/ + +/* Disables the border input field and label in the table plugin. */ +/* +#table #border, #table #borderlabel { + display: none; +} +*/ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/editor_ui.css b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/editor_ui.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/editor_ui.css @@ -0,0 +1,97 @@ +/* This file contains the CSS data for the editor UI of TinyMCE instances */ + +.mceToolbarTop a, .mceToolbarTop a:visited, .mceToolbarTop a:hover, .mceToolbarBottom a, .mceToolbarBottom a:visited, .mceToolbarBottom a:hover {border: 0; margin: 0; padding: 0; background: transparent;} +.mceSeparatorLine {border: 0; padding: 0; margin-left: 4px; margin-right: 2px;} +.mceSelectList {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 7pt !important; font-weight: normal; margin-top: 3px; padding: 0; display: inline; vertical-align: top; background-color: #F0F0EE;} +.mceLabel, .mceLabelDisabled {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt;} +.mceLabel {color: #000000;} +.mceLabelDisabled {cursor: text; color: #999999;} +.mceEditor {background: #F0F0EE; border: 1px solid #cccccc; padding: 0; margin: 0;} +.mceEditorArea { font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; background: #FFFFFF; padding: 0; margin: 0; } +.mceToolbarTop, .mceToolbarBottom {background: #F0F0EE; line-height: 1px; font-size: 1px;} +.mceToolbarTop {border-bottom: 1px solid #cccccc; padding-bottom: 1px;} +.mceToolbarBottom {border-top: 1px solid #cccccc;} +.mceToolbarContainer {display: block; position: relative; left: 0; top: 0; width: 100%;} +.mceStatusbarTop, .mceStatusbarBottom, .mceStatusbar {height: 20px;} +.mceStatusbarTop .mceStatusbarPathText, .mceStatusbarBottom .mceStatusbarPathText, .mceStatusbar .mceStatusbarPathText {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt; padding: 2px; line-height: 16px; overflow: visible;} +.mceStatusbarTop {border-bottom: 1px solid #cccccc;} +.mceStatusbarBottom {border-top: 1px solid #cccccc;} +.mceStatusbar {border-bottom: 1px solid #cccccc;} +.mcePathItem, .mcePathItem:link, .mcePathItem:visited, .mcePathItem:hover {text-decoration: none; font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt; color: #000000;} +.mcePathItem:hover {text-decoration: underline;} +.mceStatusbarPathText {float: left;} +.mceStatusbarResize {float: right; background-image: url('../images/statusbar_resize.gif'); background-repeat: no-repeat; width: 11px; height: 20px; cursor: se-resize;} +.mceResizeBox {width: 10px; height: 10px; display: none; border: 1px dotted gray; margin: 0; padding: 0;} +.mceEditorIframe {border: 0;} + +/* Button CSS rules */ + +a.mceButtonDisabled img, a.mceButtonNormal img, a.mceButtonSelected img {width: 20px; height: 20px; cursor: default; margin-top: 1px; margin-left: 1px;} +a.mceButtonDisabled img {border: 0 !important;} +a.mceButtonNormal img, a.mceButtonSelected img {border: 1px solid #F0F0EE !important;} +a.mceButtonSelected img {border: 1px solid #6779AA !important; background-color: #D4D5D8;} +a.mceButtonNormal img:hover, a.mceButtonSelected img:hover {border: 1px solid #0A246A !important; cursor: default; background-color: #B6BDD2;} +a.mceButtonDisabled img {-moz-opacity:0.3; opacity: 0.3; border: 1px solid #F0F0EE !important; cursor: default;} +a.mceTiledButton img {background-image: url('../images/buttons.gif'); background-repeat: no-repeat;} + +/* Menu button CSS rules */ + +span.mceMenuButton img, span.mceMenuButtonSelected img {border: 1px solid #F0F0EE; margin-left: 1px;} +span.mceMenuButtonSelected img {border: 1px solid #6779AA; background-color: #B6BDD2;} +span.mceMenuButtonSelected img.mceMenuButton {border: 1px solid #F0F0EE; background-color: transparent;} +span.mceMenuButton img.mceMenuButton, span.mceMenuButtonSelected img.mceMenuButton {border-left: 0; margin-left: 0;} +span.mceMenuButton:hover img, span.mceMenuButtonSelected:hover img {border: 1px solid #0A246A; background-color: #B6BDD2;} +span.mceMenuButton:hover img.mceMenuButton, span.mceMenuButtonSelected:hover img.mceMenuButton {border-left: 0;} +span.mceMenuButtonFocus img {border: 1px solid gray; border-right: 0; margin-left: 1px; background-color: #F5F4F2;} +span.mceMenuButtonFocus img.mceMenuButton {border: 1px solid gray; border-left: 1px solid #F5F4F2; margin-left: 0;} +span.mceMenuHover img {border: 1px solid #0A246A; background-color: #B6BDD2;} +span.mceMenuButtonSelected.mceMenuHover img.mceMenuButton {border: 1px solid #0A246A; background-color: #B6BDD2; border-left: 0;} + +/* Menu */ + +.mceMenu {position: absolute; left: 0; top: 0; display: none; z-index: 1000; background-color: white; border: 1px solid gray; font-weight: normal;} +.mceMenu a, .mceMenuTitle, .mceMenuDisabled {display: block; width: 100%; text-decoration: none; background-color: white; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; line-height: 20px; color: black;} +.mceMenu a:hover {background-color: #B6BDD2; color: black; text-decoration: none !important;} +.mceMenu span {padding-left: 10px; padding-right: 10px; display: block; line-height: 20px;} +.mceMenuSeparator {border-bottom: 1px solid gray; background-color: gray; height: 1px;} +.mceMenuTitle span {padding-left: 5px;} +.mceMenuTitle {background-color: #DDDDDD; font-weight: bold;} +.mceMenuDisabled {color: gray;} +span.mceMenuSelectedItem {background-image: url('../images/menu_check.gif'); background-repeat: no-repeat; background-position: 5px 8px; padding-left: 20px;} +span.mceMenuCheckItem {padding-left: 20px;} +span.mceMenuLine {display: block; position: absolute; left: 0; top: -1px; background-color: #F5F4F2; width: 30px; height: 1px; overflow: hidden; padding-left: 0; padding-right: 0;} +.mceColors table, .mceColors td {margin: 0; padding: 2px;} +a.mceMoreColors {width: auto; padding: 0; margin: 0 3px 3px 3px; text-align: center; border: 1px solid white; text-decoration: none !important;} +.mceColorPreview {position: absolute; overflow:hidden; left: 0; top: 0; margin-left: 3px; margin-top: 15px; width: 16px; height: 4px; background-color: red;} +a.mceMoreColors:hover {border: 1px solid #0A246A;} +.mceColors td a {width: 9px; height: 9px; overflow: hidden; border: 1px solid #808080;} + +/* MSIE 6 specific rules */ + +* html a.mceButtonNormal img, * html a.mceButtonSelected img, * html a.mceButtonDisabled img {border: 0 !important; margin-top: 2px; margin-bottom: 1px;} +* html a.mceButtonDisabled img {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); border: 0 !important;} +* html a.mceButtonDisabled {border: 1px solid #F0F0EE !important;} +* html a.mceButtonNormal, * html a.mceButtonSelected {border: 1px solid #F0F0EE !important; cursor: default;} +* html a.mceButtonSelected {border: 1px solid #6779AA !important; background-color: #D4D5D8;} +* html a.mceButtonNormal:hover, * html a.mceButtonSelected:hover {border: 1px solid #0A246A !important; background-color: #B6BDD2; cursor: default;} +* html .mceSelectList {margin-top: 2px;} +* html span.mceMenuButton, * html span.mceMenuButtonFocus {position: relative; left: 0; top: 0;} +* html span.mceMenuButton img, * html span.mceMenuButtonSelected img, * html span.mceMenuButtonFocus img {position: relative; top: 1px;} +* html a.mceMoreColors {width: auto;} +* html .mceColors td a {width: 10px; height: 10px;} +* html .mceColorPreview {margin-left: 2px; margin-top: 14px;} + +/* MSIE 7 specific rules */ + +*:first-child+html a.mceButtonNormal img, *:first-child+html a.mceButtonSelected img, *:first-child+html a.mceButtonDisabled img {border: 0 !important; margin-top: 2px; margin-bottom: 1px;} +*:first-child+html a.mceButtonDisabled img {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); border: 0 !important;} +*:first-child+html a.mceButtonDisabled {border: 1px solid #F0F0EE !important;} +*:first-child+html a.mceButtonNormal, *:first-child+html a.mceButtonSelected {border: 1px solid #F0F0EE !important; cursor: default;} +*:first-child+html a.mceButtonSelected {border: 1px solid #6779AA !important; background-color: #D4D5D8;} +*:first-child+html a.mceButtonNormal:hover, *:first-child+html a.mceButtonSelected:hover {border: 1px solid #0A246A !important; background-color: #B6BDD2; cursor: default;} +*:first-child+html .mceSelectList {margin-top: 2px;} +*:first-child+html span.mceMenuButton, *:first-child+html span.mceMenuButtonFocus {position: relative; left: 0; top: 0;} +*:first-child+html span.mceMenuButton img, *:first-child+html span.mceMenuButtonSelected img, *:first-child+html span.mceMenuButtonFocus img {position: relative; top: 1px;} +*:first-child+html a.mceMoreColors {width: 137px;} +*:first-child+html .mceColors td a {width: 10px; height: 10px;} +*:first-child+html .mceColorPreview {margin: 0; padding-left: 4px; margin-top: 14px; width: 14px;} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js @@ -0,0 +1,1 @@ +tinyMCE.importThemeLanguagePack('advanced');var TinyMCE_AdvancedTheme={_defColors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,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",_autoImportCSSClasses:true,_resizer:{},_buttons:[['bold','{$lang_bold_img}','lang_bold_desc','Bold'],['italic','{$lang_italic_img}','lang_italic_desc','Italic'],['underline','{$lang_underline_img}','lang_underline_desc','Underline'],['strikethrough','strikethrough.gif','lang_striketrough_desc','Strikethrough'],['justifyleft','justifyleft.gif','lang_justifyleft_desc','JustifyLeft'],['justifycenter','justifycenter.gif','lang_justifycenter_desc','JustifyCenter'],['justifyright','justifyright.gif','lang_justifyright_desc','JustifyRight'],['justifyfull','justifyfull.gif','lang_justifyfull_desc','JustifyFull'],['bullist','bullist.gif','lang_bullist_desc','InsertUnorderedList'],['numlist','numlist.gif','lang_numlist_desc','InsertOrderedList'],['outdent','outdent.gif','lang_outdent_desc','Outdent'],['indent','indent.gif','lang_indent_desc','Indent'],['cut','cut.gif','lang_cut_desc','Cut'],['copy','copy.gif','lang_copy_desc','Copy'],['paste','paste.gif','lang_paste_desc','Paste'],['undo','undo.gif','lang_undo_desc','Undo'],['redo','redo.gif','lang_redo_desc','Redo'],['link','link.gif','lang_link_desc','mceLink',true],['unlink','unlink.gif','lang_unlink_desc','unlink'],['image','image.gif','lang_image_desc','mceImage',true],['cleanup','cleanup.gif','lang_cleanup_desc','mceCleanup'],['help','help.gif','lang_help_desc','mceHelp'],['code','code.gif','lang_theme_code_desc','mceCodeEditor'],['hr','hr.gif','lang_theme_hr_desc','inserthorizontalrule'],['removeformat','removeformat.gif','lang_theme_removeformat_desc','removeformat'],['sub','sub.gif','lang_theme_sub_desc','subscript'],['sup','sup.gif','lang_theme_sup_desc','superscript'],['forecolor','forecolor.gif','lang_theme_forecolor_desc','forecolor',true],['forecolorpicker','forecolor.gif','lang_theme_forecolor_desc','forecolorpicker',true],['backcolor','backcolor.gif','lang_theme_backcolor_desc','HiliteColor',true],['backcolorpicker','backcolor.gif','lang_theme_backcolor_desc','backcolorpicker',true],['charmap','charmap.gif','lang_theme_charmap_desc','mceCharMap'],['visualaid','visualaid.gif','lang_theme_visualaid_desc','mceToggleVisualAid'],['anchor','anchor.gif','lang_theme_anchor_desc','mceInsertAnchor'],['newdocument','newdocument.gif','lang_newdocument_desc','mceNewDocument']],_buttonMap:'anchor,backcolor,bold,bullist,charmap,cleanup,code,copy,cut,forecolor,help,hr,image,indent,italic,justifycenter,justifyfull,justifyleft,justifyright,link,newdocument,numlist,outdent,paste,redo,removeformat,strikethrough,sub,sup,underline,undo,unlink,visualaid,advhr,ltr,rtl,emotions,flash,fullpage,fullscreen,iespell,insertdate,inserttime,pastetext,pasteword,selectall,preview,print,save,replace,search,table,cell_props,delete_col,delete_row,col_after,col_before,row_after,row_before,merge_cells,row_props,split_cells,delete_table',getControlHTML:function(button_name){var i,x,but;for(i=0;i4?but[4]:false),(but.length>5?but[5]:null));if(but[0]==button_name)return tinyMCE.getButtonHTML(but[0],but[2],'{$themeurl}/images/'+but[1],but[3],(but.length>4?but[4]:false),(but.length>5?but[5]:null))}switch(button_name){case"formatselect":var html='';return html;case"styleselect":return'';case"fontselect":var fontHTML='';return fontHTML;case"fontsizeselect":return'';case"|":case"separator":return'';case"spacer":return'';case"rowseparator":return'
        '}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case'mceHelp':tinyMCE.openWindow({file:'about.htm',width:480,height:380},{tinymce_version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion,tinymce_releasedate:tinyMCE.releaseDate,inline:"yes"});return true;case"mceLink":var inst=tinyMCE.getInstanceById(editor_id);var doc=inst.getDoc();var selectedText="";if(tinyMCE.isMSIE){var rng=doc.selection.createRange();selectedText=rng.text}else selectedText=inst.getSel().toString();if(!tinyMCE.linkElement){if((tinyMCE.selectedElement.nodeName.toLowerCase()!="img")&&(selectedText.length<=0))return true}var href="",target="",title="",onclick="",action="insert",style_class="";if(tinyMCE.selectedElement.nodeName.toLowerCase()=="a")tinyMCE.linkElement=tinyMCE.selectedElement;if(tinyMCE.linkElement!=null&&tinyMCE.getAttrib(tinyMCE.linkElement,'href')=="")tinyMCE.linkElement=null;if(tinyMCE.linkElement){href=tinyMCE.getAttrib(tinyMCE.linkElement,'href');target=tinyMCE.getAttrib(tinyMCE.linkElement,'target');title=tinyMCE.getAttrib(tinyMCE.linkElement,'title');onclick=tinyMCE.getAttrib(tinyMCE.linkElement,'onclick');style_class=tinyMCE.getAttrib(tinyMCE.linkElement,'class');if(onclick=="")onclick=tinyMCE.getAttrib(tinyMCE.linkElement,'onclick');onclick=tinyMCE.cleanupEventStr(onclick);href=eval(tinyMCE.settings['urlconverter_callback']+"(href, tinyMCE.linkElement, true);");mceRealHref=tinyMCE.getAttrib(tinyMCE.linkElement,'mce_href');if(mceRealHref!=""){href=mceRealHref;if(tinyMCE.getParam('convert_urls'))href=eval(tinyMCE.settings['urlconverter_callback']+"(href, tinyMCE.linkElement, true);")}action="update"}var template=new Array();template['file']='link.htm';template['width']=310;template['height']=200;template['width']+=tinyMCE.getLang('lang_insert_link_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_link_delta_height',0);if(inst.settings['insertlink_callback']){var returnVal=eval(inst.settings['insertlink_callback']+"(href, target, title, onclick, action, style_class);");if(returnVal&&returnVal['href'])TinyMCE_AdvancedTheme._insertLink(returnVal['href'],returnVal['target'],returnVal['title'],returnVal['onclick'],returnVal['style_class'])}else{tinyMCE.openWindow(template,{href:href,target:target,title:title,onclick:onclick,action:action,className:style_class,inline:"yes"})}return true;case"mceImage":var src="",alt="",border="",hspace="",vspace="",width="",height="",align="";var title="",onmouseover="",onmouseout="",action="insert";var img=tinyMCE.imgElement;var inst=tinyMCE.getInstanceById(editor_id);if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="img"){img=tinyMCE.selectedElement;tinyMCE.imgElement=img}if(img){if(tinyMCE.getAttrib(img,'name').indexOf('mce_')==0)return true;src=tinyMCE.getAttrib(img,'src');alt=tinyMCE.getAttrib(img,'alt');if(alt=="")alt=tinyMCE.getAttrib(img,'title');if(tinyMCE.isGecko){var w=img.style.width;if(w!=null&&w!="")img.setAttribute("width",w);var h=img.style.height;if(h!=null&&h!="")img.setAttribute("height",h)}border=tinyMCE.getAttrib(img,'border');hspace=tinyMCE.getAttrib(img,'hspace');vspace=tinyMCE.getAttrib(img,'vspace');width=tinyMCE.getAttrib(img,'width');height=tinyMCE.getAttrib(img,'height');align=tinyMCE.getAttrib(img,'align');onmouseover=tinyMCE.getAttrib(img,'onmouseover');onmouseout=tinyMCE.getAttrib(img,'onmouseout');title=tinyMCE.getAttrib(img,'title');if(tinyMCE.isMSIE){width=img.attributes['width'].specified?width:"";height=img.attributes['height'].specified?height:""}src=eval(tinyMCE.settings['urlconverter_callback']+"(src, img, true);");mceRealSrc=tinyMCE.getAttrib(img,'mce_src');if(mceRealSrc!=""){src=mceRealSrc;if(tinyMCE.getParam('convert_urls'))src=eval(tinyMCE.settings['urlconverter_callback']+"(src, img, true);")}action="update"}var template=new Array();template['file']='image.htm?src={$src}';template['width']=355;template['height']=265+(tinyMCE.isMSIE?25:0);template['width']+=tinyMCE.getLang('lang_insert_image_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_image_delta_height',0);if(inst.settings['insertimage_callback']){var returnVal=eval(inst.settings['insertimage_callback']+"(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action);");if(returnVal&&returnVal['src'])TinyMCE_AdvancedTheme._insertImage(returnVal['src'],returnVal['alt'],returnVal['border'],returnVal['hspace'],returnVal['vspace'],returnVal['width'],returnVal['height'],returnVal['align'],returnVal['title'],returnVal['onmouseover'],returnVal['onmouseout'])}else tinyMCE.openWindow(template,{src:src,alt:alt,border:border,hspace:hspace,vspace:vspace,width:width,height:height,align:align,title:title,onmouseover:onmouseover,onmouseout:onmouseout,action:action,inline:"yes"});return true;case"forecolor":var fcp=new TinyMCE_Layer(editor_id+'_fcPreview',false),p,img,elm;TinyMCE_AdvancedTheme._hideMenus(editor_id);if(!fcp.exists()){fcp.create('div','mceColorPreview',document.getElementById(editor_id+'_toolbar'));elm=fcp.getElement();elm._editor_id=editor_id;elm._command="forecolor";elm._switchId=editor_id+"_forecolor";tinyMCE.addEvent(elm,'click',TinyMCE_AdvancedTheme._handleMenuEvent);tinyMCE.addEvent(elm,'mouseover',TinyMCE_AdvancedTheme._handleMenuEvent);tinyMCE.addEvent(elm,'mouseout',TinyMCE_AdvancedTheme._handleMenuEvent)}img=tinyMCE.selectNodes(document.getElementById(editor_id+"_forecolor"),function(n){return n.nodeName=="IMG"})[0];p=tinyMCE.getAbsPosition(img,document.getElementById(editor_id+'_toolbar'));fcp.moveTo(p.absLeft,p.absTop);fcp.getElement().style.backgroundColor=value!=null?value:tinyMCE.getInstanceById(editor_id).foreColor;fcp.show();return false;case"forecolorpicker":this._pickColor(editor_id,'forecolor');return true;case"forecolorMenu":TinyMCE_AdvancedTheme._hideMenus(editor_id);var ml=new TinyMCE_Layer(editor_id+'_fcMenu');if(!ml.exists())ml.create('div','mceMenu',document.body,TinyMCE_AdvancedTheme._getColorHTML(editor_id,'theme_advanced_text_colors','forecolor'));tinyMCE.switchClass(editor_id+'_forecolor','mceMenuButtonFocus');ml.moveRelativeTo(document.getElementById(editor_id+"_forecolor"),'bl');ml.moveBy(tinyMCE.isMSIE&&!tinyMCE.isOpera?-1:1,-1);if(tinyMCE.isOpera)ml.moveBy(0,-2);ml.show();return true;case"HiliteColor":var bcp=new TinyMCE_Layer(editor_id+'_bcPreview',false),p,img;TinyMCE_AdvancedTheme._hideMenus(editor_id);if(!bcp.exists()){bcp.create('div','mceColorPreview',document.getElementById(editor_id+'_toolbar'));elm=bcp.getElement();elm._editor_id=editor_id;elm._command="HiliteColor";elm._switchId=editor_id+"_backcolor";tinyMCE.addEvent(elm,'click',TinyMCE_AdvancedTheme._handleMenuEvent);tinyMCE.addEvent(elm,'mouseover',TinyMCE_AdvancedTheme._handleMenuEvent);tinyMCE.addEvent(elm,'mouseout',TinyMCE_AdvancedTheme._handleMenuEvent)}img=tinyMCE.selectNodes(document.getElementById(editor_id+"_backcolor"),function(n){return n.nodeName=="IMG"})[0];p=tinyMCE.getAbsPosition(img,document.getElementById(editor_id+'_toolbar'));bcp.moveTo(p.absLeft,p.absTop);bcp.getElement().style.backgroundColor=value!=null?value:tinyMCE.getInstanceById(editor_id).backColor;bcp.show();return false;case"HiliteColorMenu":TinyMCE_AdvancedTheme._hideMenus(editor_id);var ml=new TinyMCE_Layer(editor_id+'_bcMenu');if(!ml.exists())ml.create('div','mceMenu',document.body,TinyMCE_AdvancedTheme._getColorHTML(editor_id,'theme_advanced_background_colors','HiliteColor'));tinyMCE.switchClass(editor_id+'_backcolor','mceMenuButtonFocus');ml.moveRelativeTo(document.getElementById(editor_id+"_backcolor"),'bl');ml.moveBy(tinyMCE.isMSIE&&!tinyMCE.isOpera?-1:1,-1);if(tinyMCE.isOpera)ml.moveBy(0,-2);ml.show();return true;case"backcolorpicker":this._pickColor(editor_id,'HiliteColor');return true;case"mceColorPicker":if(user_interface){var template=[];if(!value['callback']&&!value['color'])value['color']=value['document'].getElementById(value['element_id']).value;template['file']='color_picker.htm';template['width']=380;template['height']=250;template['close_previous']="no";template['width']+=tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_width',0);template['height']+=tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_height',0);if(typeof(value['store_selection'])=="undefined")value['store_selection']=true;tinyMCE.lastColorPickerValue=value;tinyMCE.openWindow(template,{editor_id:editor_id,mce_store_selection:value['store_selection'],inline:"yes",command:"mceColorPicker",input_color:value['color']})}else{var savedVal=tinyMCE.lastColorPickerValue,elm;if(savedVal['callback']){savedVal['callback'](value);return true}elm=savedVal['document'].getElementById(savedVal['element_id']);elm.value=value;if(elm.onchange!=null&&elm.onchange!='')eval('elm.onchange();')}return true;case"mceCodeEditor":var template=new Array();template['file']='source_editor.htm';template['width']=parseInt(tinyMCE.getParam("theme_advanced_source_editor_width",720));template['height']=parseInt(tinyMCE.getParam("theme_advanced_source_editor_height",580));tinyMCE.openWindow(template,{editor_id:editor_id,resizable:"yes",scrollbars:"no",inline:"yes"});return true;case"mceCharMap":var template=new Array();template['file']='charmap.htm';template['width']=550+(tinyMCE.isOpera?40:0);template['height']=250;template['width']+=tinyMCE.getLang('lang_theme_advanced_charmap_delta_width',0);template['height']+=tinyMCE.getLang('lang_theme_advanced_charmap_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true;case"mceInsertAnchor":var template=new Array();template['file']='anchor.htm';template['width']=320;template['height']=90+(tinyMCE.isNS7?30:0);template['width']+=tinyMCE.getLang('lang_theme_advanced_anchor_delta_width',0);template['height']+=tinyMCE.getLang('lang_theme_advanced_anchor_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true;case"mceNewDocument":if(confirm(tinyMCE.entityDecode(tinyMCE.getLang('lang_newdocument'))))tinyMCE.execInstanceCommand(editor_id,'mceSetContent',false,' ');return true}return false},getEditorTemplate:function(settings,editorId){function removeFromArray(in_array,remove_array){var outArray=new Array(),skip;for(var i=0;i 

        ';var layoutManager=tinyMCE.getParam("theme_advanced_layout_manager","SimpleLayout");var styleSelectHTML='';if(settings['theme_advanced_styles']){var stylesAr=settings['theme_advanced_styles'].split(';');for(var i=0;i'+key+''}TinyMCE_AdvancedTheme._autoImportCSSClasses=false}switch(layoutManager){case"SimpleLayout":var toolbarHTML="";var toolbarLocation=tinyMCE.getParam("theme_advanced_toolbar_location","bottom");var toolbarAlign=tinyMCE.getParam("theme_advanced_toolbar_align","center");var pathLocation=tinyMCE.getParam("theme_advanced_path_location","none");var statusbarLocation=tinyMCE.getParam("theme_advanced_statusbar_location",pathLocation);var defVals={theme_advanced_buttons1:"bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,separator,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,separator,sub,sup,separator,charmap"};toolbarHTML+='0){toolbarHTML+="
        ";deltaHeight-=23}}toolbarHTML+='
        ';template['html']='';if(toolbarLocation=="top")template['html']+='';if(statusbarLocation=="top"){template['html']+='';deltaHeight-=23}template['html']+='';if(toolbarLocation=="bottom")template['html']+='';if(toolbarLocation=="external"){var bod=document.body;var elm=document.createElement("div");toolbarHTML=tinyMCE.replaceVar(toolbarHTML,'style_select_options',styleSelectHTML);toolbarHTML=tinyMCE.applyTemplate(toolbarHTML,{editor_id:editorId});elm.className="mceToolbarExternal";elm.id=editorId+"_toolbar";elm.innerHTML='
        '+toolbarHTML+'
        '+statusbarHTML+'
        '+toolbarHTML+'
        '+toolbarHTML+'
        ';bod.appendChild(elm);deltaHeight=0;tinyMCE.getInstanceById(editorId).toolbarElement=elm;}else{tinyMCE.getInstanceById(editorId).toolbarElement=null}if(statusbarLocation=="bottom"){template['html']+=''+statusbarHTML+'';deltaHeight-=23}template['html']+='';break;case"RowLayout":template['html']='';var containers=tinyMCE.getParam("theme_advanced_containers","",true,",");var defaultContainerCSS=tinyMCE.getParam("theme_advanced_containers_default_class","container");var defaultContainerAlign=tinyMCE.getParam("theme_advanced_containers_default_align","center");for(var i=0;i';else if(containers[i]=="mceElementpath"||containers[i]=="mceStatusbar"){var pathClass="mceStatusbar";if(i==containers.length-1){pathClass="mceStatusbarBottom"}else if(i==0){pathClass="mceStatusbar"}else{deltaHeight-=2}template['html']+='';deltaHeight-=22}else{var curContainer=tinyMCE.getParam("theme_advanced_container_"+containers[i],"",true,',');var curContainerHTML="";var curAlign=tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_align",defaultContainerAlign);var curCSS=tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_class",defaultContainerCSS);curContainer=removeFromArray(curContainer,tinyMCE.getParam("theme_advanced_disable","",true,','));for(var j=0;j0){curContainerHTML+="
        ";deltaHeight-=23}template['html']+='
        '}}template['html']+='
        '+statusbarHTML+'
        '+curContainerHTML+'
        ';break;case"CustomLayout":var customLayout=tinyMCE.getParam("theme_advanced_custom_layout","");if(customLayout!=""&&eval("typeof("+customLayout+")")!="undefined"){template=eval(customLayout+"(template);")}break}if(resizing)template['html']+='';template['html']=tinyMCE.replaceVar(template['html'],'style_select_options',styleSelectHTML);if(!template['delta_width'])template['delta_width']=0;if(!template['delta_height'])template['delta_height']=deltaHeight;return template},initInstance:function(inst){if(tinyMCE.getParam("theme_advanced_resizing",false)){if(tinyMCE.getParam("theme_advanced_resizing_use_cookie",true)){var w=TinyMCE_AdvancedTheme._getCookie("TinyMCE_"+inst.editorId+"_width");var h=TinyMCE_AdvancedTheme._getCookie("TinyMCE_"+inst.editorId+"_height");TinyMCE_AdvancedTheme._resizeTo(inst,w,h,tinyMCE.getParam("theme_advanced_resize_horizontal",true))}}inst.addShortcut('ctrl','k','lang_link_desc','mceLink')},removeInstance:function(inst){new TinyMCE_Layer(inst.editorId+'_fcMenu').remove();new TinyMCE_Layer(inst.editorId+'_bcMenu').remove()},hideInstance:function(inst){TinyMCE_AdvancedTheme._hideMenus(inst.editorId)},_handleMenuEvent:function(e){var te=tinyMCE.isMSIE?window.event.srcElement:e.target;tinyMCE._menuButtonEvent(e.type=="mouseover"?"over":"out",document.getElementById(te._switchId));if(e.type=="click")tinyMCE.execInstanceCommand(te._editor_id,te._command)},_hideMenus:function(id){var fcml=new TinyMCE_Layer(id+'_fcMenu'),bcml=new TinyMCE_Layer(id+'_bcMenu');if(fcml.exists()&&fcml.isVisible()){tinyMCE.switchClass(id+'_forecolor','mceMenuButton');fcml.hide()}if(bcml.exists()&&bcml.isVisible()){tinyMCE.switchClass(id+'_backcolor','mceMenuButton');bcml.hide()}},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection,setup_content){var alignNode,breakOut,classNode;function selectByValue(select_elm,value,first_index){first_index=typeof(first_index)=="undefined"?false:true;if(select_elm){for(var i=0;i=0;i--){var nodeName=path[i].nodeName.toLowerCase();var nodeData="";if(nodeName.indexOf("html:")==0)nodeName=nodeName.substring(5);if(nodeName=="b"){nodeName="strong"}if(nodeName=="i"){nodeName="em"}if(nodeName=="span"){var cn=tinyMCE.getAttrib(path[i],"class");if(cn!=""&&cn.indexOf('mceItem')==-1)nodeData+="class: "+cn+" ";var st=tinyMCE.getAttrib(path[i],"style");if(st!=""){st=tinyMCE.serializeStyle(tinyMCE.parseStyle(st));nodeData+="style: "+tinyMCE.xmlEncode(st)+" "}}if(nodeName=="font"){if(tinyMCE.getParam("convert_fonts_to_spans"))nodeName="span";var face=tinyMCE.getAttrib(path[i],"face");if(face!="")nodeData+="font: "+tinyMCE.xmlEncode(face)+" ";var size=tinyMCE.getAttrib(path[i],"size");if(size!="")nodeData+="size: "+tinyMCE.xmlEncode(size)+" ";var color=tinyMCE.getAttrib(path[i],"color");if(color!="")nodeData+="color: "+tinyMCE.xmlEncode(color)+" "}if(tinyMCE.getAttrib(path[i],'id')!=""){nodeData+="id: "+path[i].getAttribute('id')+" "}var className=tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i],"class"),false);if(className!=""&&className.indexOf('mceItem')==-1)nodeData+="class: "+className+" ";if(tinyMCE.getAttrib(path[i],'src')!=""){var src=tinyMCE.getAttrib(path[i],"mce_src");if(src=="")src=tinyMCE.getAttrib(path[i],"src");nodeData+="src: "+tinyMCE.xmlEncode(src)+" "}if(path[i].nodeName=='A'&&tinyMCE.getAttrib(path[i],'href')!=""){var href=tinyMCE.getAttrib(path[i],"mce_href");if(href=="")href=tinyMCE.getAttrib(path[i],"href");nodeData+="href: "+tinyMCE.xmlEncode(href)+" "}className=tinyMCE.getAttrib(path[i],"class");if((nodeName=="img"||nodeName=="span")&&className.indexOf('mceItem')!=-1){nodeName=className.replace(/mceItem([a-z]+)/gi,'$1').toLowerCase();nodeData=path[i].getAttribute('title')}if(nodeName=="a"&&(anchor=tinyMCE.getAttrib(path[i],"name"))!=""){nodeName="a";nodeName+="#"+tinyMCE.xmlEncode(anchor);nodeData=""}if(tinyMCE.getAttrib(path[i],'name').indexOf("mce_")!=0){var className=tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i],"class"),false);if(className!=""&&className.indexOf('mceItem')==-1){nodeName+="."+className}}var cmd='tinyMCE.execInstanceCommand(\''+editor_id+'\',\'mceSelectNodeDepth\',false,\''+i+'\');';html+=''+nodeName+'';if(i>0){html+=" » "}}pathElm.innerHTML=''+tinyMCE.getLang('lang_theme_path')+": "+html+' '}tinyMCE.switchClass(editor_id+'_justifyleft','mceButtonNormal');tinyMCE.switchClass(editor_id+'_justifyright','mceButtonNormal');tinyMCE.switchClass(editor_id+'_justifycenter','mceButtonNormal');tinyMCE.switchClass(editor_id+'_justifyfull','mceButtonNormal');tinyMCE.switchClass(editor_id+'_bold','mceButtonNormal');tinyMCE.switchClass(editor_id+'_italic','mceButtonNormal');tinyMCE.switchClass(editor_id+'_underline','mceButtonNormal');tinyMCE.switchClass(editor_id+'_strikethrough','mceButtonNormal');tinyMCE.switchClass(editor_id+'_bullist','mceButtonNormal');tinyMCE.switchClass(editor_id+'_numlist','mceButtonNormal');tinyMCE.switchClass(editor_id+'_sub','mceButtonNormal');tinyMCE.switchClass(editor_id+'_sup','mceButtonNormal');tinyMCE.switchClass(editor_id+'_anchor','mceButtonNormal');tinyMCE.switchClass(editor_id+'_link','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_unlink','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_outdent','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_image','mceButtonNormal');tinyMCE.switchClass(editor_id+'_hr','mceButtonNormal');if(node.nodeName=="A"&&tinyMCE.getAttrib(node,"class").indexOf('mceItemAnchor')!=-1)tinyMCE.switchClass(editor_id+'_anchor','mceButtonSelected');var anchorLink=tinyMCE.getParentElement(node,"a","href");if(anchorLink||any_selection){tinyMCE.switchClass(editor_id+'_link',anchorLink?'mceButtonSelected':'mceButtonNormal');tinyMCE.switchClass(editor_id+'_unlink',anchorLink?'mceButtonSelected':'mceButtonNormal')}tinyMCE.switchClass(editor_id+'_visualaid',visual_aid?'mceButtonSelected':'mceButtonNormal');if(undo_levels!=-1){tinyMCE.switchClass(editor_id+'_undo','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_redo','mceButtonDisabled')}if(tinyMCE.getParentElement(node,"li,blockquote"))tinyMCE.switchClass(editor_id+'_outdent','mceButtonNormal');if(undo_index!=-1&&(undo_index0))tinyMCE.switchClass(editor_id+'_redo','mceButtonNormal');if(undo_index!=-1&&(undo_index>0&&undo_levels>0))tinyMCE.switchClass(editor_id+'_undo','mceButtonNormal');var selectElm=document.getElementById(editor_id+"_styleSelect");if(selectElm){TinyMCE_AdvancedTheme._setupCSSClasses(editor_id);classNode=node;breakOut=false;var index=0;do{if(classNode&&classNode.className){for(var i=0;i");else selectByValue(selectElm,"")}var selectElm=document.getElementById(editor_id+"_fontNameSelect");if(selectElm){if(!tinyMCE.isSafari&&!(tinyMCE.isMSIE&&!tinyMCE.isOpera)){var face=inst.queryCommandValue('FontName');face=face==null||face==""?"":face;selectByValue(selectElm,face,face!="")}else{var elm=tinyMCE.getParentElement(node,"font","face");if(elm){var family=tinyMCE.getAttrib(elm,"face");if(family=='')family=''+elm.style.fontFamily;if(!selectByValue(selectElm,family,family!=""))selectByValue(selectElm,"")}else selectByValue(selectElm,"")}}var selectElm=document.getElementById(editor_id+"_fontSizeSelect");if(selectElm){if(!tinyMCE.isSafari&&!tinyMCE.isOpera){var size=inst.queryCommandValue('FontSize');selectByValue(selectElm,size==null||size==""?"0":size)}else{var elm=tinyMCE.getParentElement(node,"font","size");if(elm){var size=tinyMCE.getAttrib(elm,"size");if(size==''){var sizes=new Array('','8px','10px','12px','14px','18px','24px','36px');size=''+elm.style.fontSize;for(var i=0;i0)selectElm.setAttribute('cssImported','true')}},_setCookie:function(name,value,expires,path,domain,secure){var curCookie=name+"="+escape(value)+((expires)?"; expires="+expires.toGMTString():"")+((path)?"; path="+escape(path):"")+((domain)?"; domain="+domain:"")+((secure)?"; secure":"");document.cookie=curCookie},_getCookie:function(name){var dc=document.cookie;var prefix=name+"=";var begin=dc.indexOf("; "+prefix);if(begin==-1){begin=dc.indexOf(prefix);if(begin!=0)return null}else begin+=2;var end=document.cookie.indexOf(";",begin);if(end==-1)end=dc.length;return unescape(dc.substring(begin+prefix.length,end))},_resizeTo:function(inst,w,h,set_w){var editorContainer=document.getElementById(inst.editorId+'_parent');var tableElm=editorContainer.firstChild;var iframe=inst.iframeElement;if(w==null||w=="null"){set_w=false;w=0}if(h==null||h=="null")return;w=parseInt(w);h=parseInt(h);if(tinyMCE.isGecko){w+=2;h+=2}var dx=w-tableElm.clientWidth;var dy=h-tableElm.clientHeight;w=w<1?30:w;h=h<1?30:h;if(set_w)tableElm.style.width=w+"px";tableElm.style.height=h+"px";iw=iframe.clientWidth+dx;ih=iframe.clientHeight+dy;iw=iw<1?30:iw;ih=ih<1?30:ih;if(tinyMCE.isGecko){iw-=2;ih-=2}if(set_w)iframe.style.width=iw+"px";iframe.style.height=ih+"px";if(set_w){var tableBodyElm=tableElm.firstChild;var minIframeWidth=tableBodyElm.scrollWidth;if(inst.iframeElement.clientWidth';for(i=0;i';if((i+1)%8==0)h+=''}h+='';if(tinyMCE.getParam("theme_advanced_more_colors",true))h+=''+tinyMCE.getLang('lang_more_colors')+'';return h},_pickColor:function(id,cm){var inputColor,inst=tinyMCE.selectedInstance;if(cm=='forecolor'&&inst)inputColor=inst.foreColor;if((cm=='backcolor'||cm=='HiliteColor')&&inst)inputColor=inst.backColor;tinyMCE.execCommand('mceColorPicker',true,{color:inputColor,callback:function(c){tinyMCE.execInstanceCommand(id,cm,false,c)}})},_insertImage:function(src,alt,border,hspace,vspace,width,height,align,title,onmouseover,onmouseout){tinyMCE.execCommand("mceInsertContent",false,tinyMCE.createTagHTML('img',{src:tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src),mce_src:src,alt:alt,border:border,hspace:hspace,vspace:vspace,width:width,height:height,align:align,title:title,onmouseover:onmouseover,onmouseout:onmouseout}))},_insertLink:function(href,target,title,onclick,style_class){tinyMCE.execCommand('mceBeginUndoLevel');if(tinyMCE.selectedInstance&&tinyMCE.selectedElement&&tinyMCE.selectedElement.nodeName.toLowerCase()=="img"){var doc=tinyMCE.selectedInstance.getDoc();var linkElement=tinyMCE.getParentElement(tinyMCE.selectedElement,"a");var newLink=false;if(!linkElement){linkElement=doc.createElement("a");newLink=true}var mhref=href;var thref=eval(tinyMCE.settings['urlconverter_callback']+"(href, linkElement);");mhref=tinyMCE.getParam('convert_urls')?href:mhref;tinyMCE.setAttrib(linkElement,'href',thref);tinyMCE.setAttrib(linkElement,'mce_href',mhref);tinyMCE.setAttrib(linkElement,'target',target);tinyMCE.setAttrib(linkElement,'title',title);tinyMCE.setAttrib(linkElement,'onclick',onclick);tinyMCE.setAttrib(linkElement,'class',style_class);if(newLink){linkElement.appendChild(tinyMCE.selectedElement.cloneNode(true));tinyMCE.selectedElement.parentNode.replaceChild(linkElement,tinyMCE.selectedElement)}return}if(!tinyMCE.linkElement&&tinyMCE.selectedInstance){if(tinyMCE.isSafari){tinyMCE.execCommand("mceInsertContent",false,''+tinyMCE.selectedInstance.selection.getSelectedHTML()+'')}else tinyMCE.selectedInstance.contentDocument.execCommand("createlink",false,tinyMCE.uniqueURL);tinyMCE.linkElement=tinyMCE.getElementByAttributeValue(tinyMCE.selectedInstance.contentDocument.body,"a","href",tinyMCE.uniqueURL);var elementArray=tinyMCE.getElementsByAttributeValue(tinyMCE.selectedInstance.contentDocument.body,"a","href",tinyMCE.uniqueURL);for(var i=0;i 4 ? but[4] : false), (but.length > 5 ? but[5] : null)); + + if (but[0] == button_name) + return tinyMCE.getButtonHTML(but[0], but[2], '{$themeurl}/images/' + but[1], but[3], (but.length > 4 ? but[4] : false), (but.length > 5 ? but[5] : null)); + } + + // Custom controlls other than buttons + switch (button_name) { + case "formatselect": + var html = ''; + + return html; + + case "styleselect": + return ''; + + case "fontselect": + var fontHTML = ''; + return fontHTML; + + case "fontsizeselect": + return ''; + + case "|": + case "separator": + return ''; + + case "spacer": + return ''; + + case "rowseparator": + return '
        '; + } + + return ""; + }, + + /** + * Theme specific execcommand handling. + */ + execCommand : function(editor_id, element, command, user_interface, value) { + switch (command) { + case 'mceHelp': + tinyMCE.openWindow({ + file : 'about.htm', + width : 480, + height : 380 + }, { + tinymce_version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion, + tinymce_releasedate : tinyMCE.releaseDate, + inline : "yes" + }); + return true; + + case "mceLink": + var inst = tinyMCE.getInstanceById(editor_id); + var doc = inst.getDoc(); + var selectedText = ""; + + if (tinyMCE.isMSIE) { + var rng = doc.selection.createRange(); + selectedText = rng.text; + } else + selectedText = inst.getSel().toString(); + + if (!tinyMCE.linkElement) { + if ((tinyMCE.selectedElement.nodeName.toLowerCase() != "img") && (selectedText.length <= 0)) + return true; + } + + var href = "", target = "", title = "", onclick = "", action = "insert", style_class = ""; + + if (tinyMCE.selectedElement.nodeName.toLowerCase() == "a") + tinyMCE.linkElement = tinyMCE.selectedElement; + + // Is anchor not a link + if (tinyMCE.linkElement != null && tinyMCE.getAttrib(tinyMCE.linkElement, 'href') == "") + tinyMCE.linkElement = null; + + if (tinyMCE.linkElement) { + href = tinyMCE.getAttrib(tinyMCE.linkElement, 'href'); + target = tinyMCE.getAttrib(tinyMCE.linkElement, 'target'); + title = tinyMCE.getAttrib(tinyMCE.linkElement, 'title'); + onclick = tinyMCE.getAttrib(tinyMCE.linkElement, 'onclick'); + style_class = tinyMCE.getAttrib(tinyMCE.linkElement, 'class'); + + // Try old onclick to if copy/pasted content + if (onclick == "") + onclick = tinyMCE.getAttrib(tinyMCE.linkElement, 'onclick'); + + onclick = tinyMCE.cleanupEventStr(onclick); + + href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, tinyMCE.linkElement, true);"); + + // Use mce_href if defined + mceRealHref = tinyMCE.getAttrib(tinyMCE.linkElement, 'mce_href'); + if (mceRealHref != "") { + href = mceRealHref; + + if (tinyMCE.getParam('convert_urls')) + href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, tinyMCE.linkElement, true);"); + } + + action = "update"; + } + + var template = new Array(); + + template['file'] = 'link.htm'; + template['width'] = 310; + template['height'] = 200; + + // Language specific width and height addons + template['width'] += tinyMCE.getLang('lang_insert_link_delta_width', 0); + template['height'] += tinyMCE.getLang('lang_insert_link_delta_height', 0); + + if (inst.settings['insertlink_callback']) { + var returnVal = eval(inst.settings['insertlink_callback'] + "(href, target, title, onclick, action, style_class);"); + if (returnVal && returnVal['href']) + TinyMCE_AdvancedTheme._insertLink(returnVal['href'], returnVal['target'], returnVal['title'], returnVal['onclick'], returnVal['style_class']); + } else { + tinyMCE.openWindow(template, {href : href, target : target, title : title, onclick : onclick, action : action, className : style_class, inline : "yes"}); + } + + return true; + + case "mceImage": + var src = "", alt = "", border = "", hspace = "", vspace = "", width = "", height = "", align = ""; + var title = "", onmouseover = "", onmouseout = "", action = "insert"; + var img = tinyMCE.imgElement; + var inst = tinyMCE.getInstanceById(editor_id); + + if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img") { + img = tinyMCE.selectedElement; + tinyMCE.imgElement = img; + } + + if (img) { + // Is it a internal MCE visual aid image, then skip this one. + if (tinyMCE.getAttrib(img, 'name').indexOf('mce_') == 0) + return true; + + src = tinyMCE.getAttrib(img, 'src'); + alt = tinyMCE.getAttrib(img, 'alt'); + + // Try polling out the title + if (alt == "") + alt = tinyMCE.getAttrib(img, 'title'); + + // Fix width/height attributes if the styles is specified + if (tinyMCE.isGecko) { + var w = img.style.width; + if (w != null && w != "") + img.setAttribute("width", w); + + var h = img.style.height; + if (h != null && h != "") + img.setAttribute("height", h); + } + + border = tinyMCE.getAttrib(img, 'border'); + hspace = tinyMCE.getAttrib(img, 'hspace'); + vspace = tinyMCE.getAttrib(img, 'vspace'); + width = tinyMCE.getAttrib(img, 'width'); + height = tinyMCE.getAttrib(img, 'height'); + align = tinyMCE.getAttrib(img, 'align'); + onmouseover = tinyMCE.getAttrib(img, 'onmouseover'); + onmouseout = tinyMCE.getAttrib(img, 'onmouseout'); + title = tinyMCE.getAttrib(img, 'title'); + + // Is realy specified? + if (tinyMCE.isMSIE) { + width = img.attributes['width'].specified ? width : ""; + height = img.attributes['height'].specified ? height : ""; + } + + //onmouseover = tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseover)); + //onmouseout = tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseout)); + + src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, img, true);"); + + // Use mce_src if defined + mceRealSrc = tinyMCE.getAttrib(img, 'mce_src'); + if (mceRealSrc != "") { + src = mceRealSrc; + + if (tinyMCE.getParam('convert_urls')) + src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, img, true);"); + } + + //if (onmouseover != "") + // onmouseover = eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseover, img, true);"); + + //if (onmouseout != "") + // onmouseout = eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseout, img, true);"); + + action = "update"; + } + + var template = new Array(); + + template['file'] = 'image.htm?src={$src}'; + template['width'] = 355; + template['height'] = 265 + (tinyMCE.isMSIE ? 25 : 0); + + // Language specific width and height addons + template['width'] += tinyMCE.getLang('lang_insert_image_delta_width', 0); + template['height'] += tinyMCE.getLang('lang_insert_image_delta_height', 0); + + if (inst.settings['insertimage_callback']) { + var returnVal = eval(inst.settings['insertimage_callback'] + "(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action);"); + if (returnVal && returnVal['src']) + TinyMCE_AdvancedTheme._insertImage(returnVal['src'], returnVal['alt'], returnVal['border'], returnVal['hspace'], returnVal['vspace'], returnVal['width'], returnVal['height'], returnVal['align'], returnVal['title'], returnVal['onmouseover'], returnVal['onmouseout']); + } else + tinyMCE.openWindow(template, {src : src, alt : alt, border : border, hspace : hspace, vspace : vspace, width : width, height : height, align : align, title : title, onmouseover : onmouseover, onmouseout : onmouseout, action : action, inline : "yes"}); + + return true; + + case "forecolor": + var fcp = new TinyMCE_Layer(editor_id + '_fcPreview', false), p, img, elm; + + TinyMCE_AdvancedTheme._hideMenus(editor_id); + + if (!fcp.exists()) { + fcp.create('div', 'mceColorPreview', document.getElementById(editor_id + '_toolbar')); + elm = fcp.getElement(); + elm._editor_id = editor_id; + elm._command = "forecolor"; + elm._switchId = editor_id + "_forecolor"; + tinyMCE.addEvent(elm, 'click', TinyMCE_AdvancedTheme._handleMenuEvent); + tinyMCE.addEvent(elm, 'mouseover', TinyMCE_AdvancedTheme._handleMenuEvent); + tinyMCE.addEvent(elm, 'mouseout', TinyMCE_AdvancedTheme._handleMenuEvent); + } + + img = tinyMCE.selectNodes(document.getElementById(editor_id + "_forecolor"), function(n) {return n.nodeName == "IMG";})[0]; + p = tinyMCE.getAbsPosition(img, document.getElementById(editor_id + '_toolbar')); + + fcp.moveTo(p.absLeft, p.absTop); + fcp.getElement().style.backgroundColor = value != null ? value : tinyMCE.getInstanceById(editor_id).foreColor; + fcp.show(); + + return false; + + case "forecolorpicker": + this._pickColor(editor_id, 'forecolor'); + return true; + + case "forecolorMenu": + TinyMCE_AdvancedTheme._hideMenus(editor_id); + + // Create color layer + var ml = new TinyMCE_Layer(editor_id + '_fcMenu'); + + if (!ml.exists()) + ml.create('div', 'mceMenu', document.body, TinyMCE_AdvancedTheme._getColorHTML(editor_id, 'theme_advanced_text_colors', 'forecolor')); + + tinyMCE.switchClass(editor_id + '_forecolor', 'mceMenuButtonFocus'); + ml.moveRelativeTo(document.getElementById(editor_id + "_forecolor"), 'bl'); + + ml.moveBy(tinyMCE.isMSIE && !tinyMCE.isOpera ? -1 : 1, -1); + + if (tinyMCE.isOpera) + ml.moveBy(0, -2); + + ml.show(); + return true; + + case "HiliteColor": + var bcp = new TinyMCE_Layer(editor_id + '_bcPreview', false), p, img; + + TinyMCE_AdvancedTheme._hideMenus(editor_id); + + if (!bcp.exists()) { + bcp.create('div', 'mceColorPreview', document.getElementById(editor_id + '_toolbar')); + elm = bcp.getElement(); + elm._editor_id = editor_id; + elm._command = "HiliteColor"; + elm._switchId = editor_id + "_backcolor"; + tinyMCE.addEvent(elm, 'click', TinyMCE_AdvancedTheme._handleMenuEvent); + tinyMCE.addEvent(elm, 'mouseover', TinyMCE_AdvancedTheme._handleMenuEvent); + tinyMCE.addEvent(elm, 'mouseout', TinyMCE_AdvancedTheme._handleMenuEvent); + } + + img = tinyMCE.selectNodes(document.getElementById(editor_id + "_backcolor"), function(n) {return n.nodeName == "IMG";})[0]; + p = tinyMCE.getAbsPosition(img, document.getElementById(editor_id + '_toolbar')); + + bcp.moveTo(p.absLeft, p.absTop); + bcp.getElement().style.backgroundColor = value != null ? value : tinyMCE.getInstanceById(editor_id).backColor; + bcp.show(); + + return false; + + case "HiliteColorMenu": + TinyMCE_AdvancedTheme._hideMenus(editor_id); + + // Create color layer + var ml = new TinyMCE_Layer(editor_id + '_bcMenu'); + + if (!ml.exists()) + ml.create('div', 'mceMenu', document.body, TinyMCE_AdvancedTheme._getColorHTML(editor_id, 'theme_advanced_background_colors', 'HiliteColor')); + + tinyMCE.switchClass(editor_id + '_backcolor', 'mceMenuButtonFocus'); + ml.moveRelativeTo(document.getElementById(editor_id + "_backcolor"), 'bl'); + + ml.moveBy(tinyMCE.isMSIE && !tinyMCE.isOpera ? -1 : 1, -1); + + if (tinyMCE.isOpera) + ml.moveBy(0, -2); + + ml.show(); + return true; + + case "backcolorpicker": + this._pickColor(editor_id, 'HiliteColor'); + return true; + + case "mceColorPicker": + if (user_interface) { + var template = []; + + if (!value['callback'] && !value['color']) + value['color'] = value['document'].getElementById(value['element_id']).value; + + template['file'] = 'color_picker.htm'; + template['width'] = 380; + template['height'] = 250; + template['close_previous'] = "no"; + + template['width'] += tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_width', 0); + template['height'] += tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_height', 0); + + if (typeof(value['store_selection']) == "undefined") + value['store_selection'] = true; + + tinyMCE.lastColorPickerValue = value; + tinyMCE.openWindow(template, {editor_id : editor_id, mce_store_selection : value['store_selection'], inline : "yes", command : "mceColorPicker", input_color : value['color']}); + } else { + var savedVal = tinyMCE.lastColorPickerValue, elm; + + if (savedVal['callback']) { + savedVal['callback'](value); + return true; + } + + elm = savedVal['document'].getElementById(savedVal['element_id']); + elm.value = value; + + if (elm.onchange != null && elm.onchange != '') + eval('elm.onchange();'); + } + return true; + + case "mceCodeEditor": + var template = new Array(); + + template['file'] = 'source_editor.htm'; + template['width'] = parseInt(tinyMCE.getParam("theme_advanced_source_editor_width", 720)); + template['height'] = parseInt(tinyMCE.getParam("theme_advanced_source_editor_height", 580)); + + tinyMCE.openWindow(template, {editor_id : editor_id, resizable : "yes", scrollbars : "no", inline : "yes"}); + return true; + + case "mceCharMap": + var template = new Array(); + + template['file'] = 'charmap.htm'; + template['width'] = 550 + (tinyMCE.isOpera ? 40 : 0); + template['height'] = 250; + + template['width'] += tinyMCE.getLang('lang_theme_advanced_charmap_delta_width', 0); + template['height'] += tinyMCE.getLang('lang_theme_advanced_charmap_delta_height', 0); + + tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"}); + return true; + + case "mceInsertAnchor": + var template = new Array(); + + template['file'] = 'anchor.htm'; + template['width'] = 320; + template['height'] = 90 + (tinyMCE.isNS7 ? 30 : 0); + + template['width'] += tinyMCE.getLang('lang_theme_advanced_anchor_delta_width', 0); + template['height'] += tinyMCE.getLang('lang_theme_advanced_anchor_delta_height', 0); + + tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"}); + return true; + + case "mceNewDocument": + if (confirm(tinyMCE.entityDecode(tinyMCE.getLang('lang_newdocument')))) + tinyMCE.execInstanceCommand(editor_id, 'mceSetContent', false, ' '); + + return true; + } + + return false; + }, + + /** + * Editor instance template function. + */ + getEditorTemplate : function(settings, editorId) { + function removeFromArray(in_array, remove_array) { + var outArray = new Array(), skip; + + for (var i=0; i 

        '; + var layoutManager = tinyMCE.getParam("theme_advanced_layout_manager", "SimpleLayout"); + + // Setup style select options -- MOVED UP FOR EXTERNAL TOOLBAR COMPATABILITY! + var styleSelectHTML = ''; + if (settings['theme_advanced_styles']) { + var stylesAr = settings['theme_advanced_styles'].split(';'); + + for (var i=0; i' + key + ''; + } + + TinyMCE_AdvancedTheme._autoImportCSSClasses = false; + } + + switch(layoutManager) { + case "SimpleLayout" : //the default TinyMCE Layout (for backwards compatibility)... + var toolbarHTML = ""; + var toolbarLocation = tinyMCE.getParam("theme_advanced_toolbar_location", "bottom"); + var toolbarAlign = tinyMCE.getParam("theme_advanced_toolbar_align", "center"); + var pathLocation = tinyMCE.getParam("theme_advanced_path_location", "none"); // Compatiblity + var statusbarLocation = tinyMCE.getParam("theme_advanced_statusbar_location", pathLocation); + var defVals = { + theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,styleselect,formatselect", + theme_advanced_buttons2 : "bullist,numlist,separator,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,image,cleanup,help,code", + theme_advanced_buttons3 : "hr,removeformat,visualaid,separator,sub,sup,separator,charmap" + }; + + // Add accessibility control + toolbarHTML += ' 0) { + toolbarHTML += "
        "; + deltaHeight -= 23; + } + } + + // Add accessibility control + toolbarHTML += '
        '; + + // Setup template html + template['html'] = ''; + + if (toolbarLocation == "top") + template['html'] += ''; + + if (statusbarLocation == "top") { + template['html'] += ''; + deltaHeight -= 23; + } + + template['html'] += ''; + + if (toolbarLocation == "bottom") + template['html'] += ''; + + // External toolbar changes + if (toolbarLocation == "external") { + var bod = document.body; + var elm = document.createElement ("div"); + + toolbarHTML = tinyMCE.replaceVar(toolbarHTML, 'style_select_options', styleSelectHTML); + toolbarHTML = tinyMCE.applyTemplate(toolbarHTML, {editor_id : editorId}); + + elm.className = "mceToolbarExternal"; + elm.id = editorId+"_toolbar"; + elm.innerHTML = '
        ' + toolbarHTML + '
        ' + statusbarHTML + '
        ' + toolbarHTML + '
        '+toolbarHTML+'
        '; + bod.appendChild (elm); + // bod.style.marginTop = elm.offsetHeight + "px"; + + deltaHeight = 0; + tinyMCE.getInstanceById(editorId).toolbarElement = elm; + + //template['html'] = '
        '+toolbarHTML+'
        ' + template["html"]; + } else { + tinyMCE.getInstanceById(editorId).toolbarElement = null; + } + + if (statusbarLocation == "bottom") { + template['html'] += '' + statusbarHTML + ''; + deltaHeight -= 23; + } + + template['html'] += ''; + //"SimpleLayout" + break; + + case "RowLayout" : //Container Layout - containers defined in "theme_advanced_containers" are rendered from top to bottom. + template['html'] = ''; + + var containers = tinyMCE.getParam("theme_advanced_containers", "", true, ","); + var defaultContainerCSS = tinyMCE.getParam("theme_advanced_containers_default_class", "container"); + var defaultContainerAlign = tinyMCE.getParam("theme_advanced_containers_default_align", "center"); + + //Render Containers: + for (var i = 0; i < containers.length; i++) + { + if (containers[i] == "mceEditor") //Exceptions for mceEditor and ... + template['html'] += ''; + else if (containers[i] == "mceElementpath" || containers[i] == "mceStatusbar") // ... mceElementpath: + { + var pathClass = "mceStatusbar"; + + if (i == containers.length-1) + { + pathClass = "mceStatusbarBottom"; + } + else if (i == 0) + { + pathClass = "mceStatusbar"; + } + else + { + deltaHeight-=2; + } + + template['html'] += ''; + deltaHeight -= 22; + } else { // Render normal Container + var curContainer = tinyMCE.getParam("theme_advanced_container_"+containers[i], "", true, ','); + var curContainerHTML = ""; + var curAlign = tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_align", defaultContainerAlign); + var curCSS = tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_class", defaultContainerCSS); + + curContainer = removeFromArray(curContainer, tinyMCE.getParam("theme_advanced_disable", "", true, ',')); + + for (var j=0; j 0) { + curContainerHTML += "
        "; + deltaHeight -= 23; + } + + template['html'] += '
        '; + } + } + + template['html'] += '
        ' + statusbarHTML + '
        ' + curContainerHTML + '
        '; + //RowLayout + break; + + case "CustomLayout" : //User defined layout callback... + var customLayout = tinyMCE.getParam("theme_advanced_custom_layout",""); + + if (customLayout != "" && eval("typeof(" + customLayout + ")") != "undefined") { + template = eval(customLayout + "(template);"); + } + break; + } + + if (resizing) + template['html'] += ''; + + template['html'] = tinyMCE.replaceVar(template['html'], 'style_select_options', styleSelectHTML); + + // Set to default values + if (!template['delta_width']) + template['delta_width'] = 0; + + if (!template['delta_height']) + template['delta_height'] = deltaHeight; + + return template; + }, + + initInstance : function(inst) { + if (tinyMCE.getParam("theme_advanced_resizing", false)) { + if (tinyMCE.getParam("theme_advanced_resizing_use_cookie", true)) { + var w = TinyMCE_AdvancedTheme._getCookie("TinyMCE_" + inst.editorId + "_width"); + var h = TinyMCE_AdvancedTheme._getCookie("TinyMCE_" + inst.editorId + "_height"); + + TinyMCE_AdvancedTheme._resizeTo(inst, w, h, tinyMCE.getParam("theme_advanced_resize_horizontal", true)); + } + } + + inst.addShortcut('ctrl', 'k', 'lang_link_desc', 'mceLink'); + }, + + removeInstance : function(inst) { + new TinyMCE_Layer(inst.editorId + '_fcMenu').remove(); + new TinyMCE_Layer(inst.editorId + '_bcMenu').remove(); + }, + + hideInstance : function(inst) { + TinyMCE_AdvancedTheme._hideMenus(inst.editorId); + }, + + _handleMenuEvent : function(e) { + var te = tinyMCE.isMSIE ? window.event.srcElement : e.target; + tinyMCE._menuButtonEvent(e.type == "mouseover" ? "over" : "out", document.getElementById(te._switchId)); + + if (e.type == "click") + tinyMCE.execInstanceCommand(te._editor_id, te._command); + }, + + _hideMenus : function(id) { + var fcml = new TinyMCE_Layer(id + '_fcMenu'), bcml = new TinyMCE_Layer(id + '_bcMenu'); + + if (fcml.exists() && fcml.isVisible()) { + tinyMCE.switchClass(id + '_forecolor', 'mceMenuButton'); + fcml.hide(); + } + + if (bcml.exists() && bcml.isVisible()) { + tinyMCE.switchClass(id + '_backcolor', 'mceMenuButton'); + bcml.hide(); + } + }, + + /** + * Node change handler. + */ + handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection, setup_content) { + var alignNode, breakOut, classNode; + + function selectByValue(select_elm, value, first_index) { + first_index = typeof(first_index) == "undefined" ? false : true; + + if (select_elm) { + for (var i=0; i=0; i--) { + var nodeName = path[i].nodeName.toLowerCase(); + var nodeData = ""; + + if (nodeName.indexOf("html:") == 0) + nodeName = nodeName.substring(5); + + if (nodeName == "b") { + nodeName = "strong"; + } + + if (nodeName == "i") { + nodeName = "em"; + } + + if (nodeName == "span") { + var cn = tinyMCE.getAttrib(path[i], "class"); + if (cn != "" && cn.indexOf('mceItem') == -1) + nodeData += "class: " + cn + " "; + + var st = tinyMCE.getAttrib(path[i], "style"); + if (st != "") { + st = tinyMCE.serializeStyle(tinyMCE.parseStyle(st)); + nodeData += "style: " + tinyMCE.xmlEncode(st) + " "; + } + } + + if (nodeName == "font") { + if (tinyMCE.getParam("convert_fonts_to_spans")) + nodeName = "span"; + + var face = tinyMCE.getAttrib(path[i], "face"); + if (face != "") + nodeData += "font: " + tinyMCE.xmlEncode(face) + " "; + + var size = tinyMCE.getAttrib(path[i], "size"); + if (size != "") + nodeData += "size: " + tinyMCE.xmlEncode(size) + " "; + + var color = tinyMCE.getAttrib(path[i], "color"); + if (color != "") + nodeData += "color: " + tinyMCE.xmlEncode(color) + " "; + } + + if (tinyMCE.getAttrib(path[i], 'id') != "") { + nodeData += "id: " + path[i].getAttribute('id') + " "; + } + + var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i], "class"), false); + if (className != "" && className.indexOf('mceItem') == -1) + nodeData += "class: " + className + " "; + + if (tinyMCE.getAttrib(path[i], 'src') != "") { + var src = tinyMCE.getAttrib(path[i], "mce_src"); + + if (src == "") + src = tinyMCE.getAttrib(path[i], "src"); + + nodeData += "src: " + tinyMCE.xmlEncode(src) + " "; + } + + if (path[i].nodeName == 'A' && tinyMCE.getAttrib(path[i], 'href') != "") { + var href = tinyMCE.getAttrib(path[i], "mce_href"); + + if (href == "") + href = tinyMCE.getAttrib(path[i], "href"); + + nodeData += "href: " + tinyMCE.xmlEncode(href) + " "; + } + + className = tinyMCE.getAttrib(path[i], "class"); + if ((nodeName == "img" || nodeName == "span") && className.indexOf('mceItem') != -1) { + nodeName = className.replace(/mceItem([a-z]+)/gi, '$1').toLowerCase(); + nodeData = path[i].getAttribute('title'); + } + + if (nodeName == "a" && (anchor = tinyMCE.getAttrib(path[i], "name")) != "") { + nodeName = "a"; + nodeName += "#" + tinyMCE.xmlEncode(anchor); + nodeData = ""; + } + + if (tinyMCE.getAttrib(path[i], 'name').indexOf("mce_") != 0) { + var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i], "class"), false); + if (className != "" && className.indexOf('mceItem') == -1) { + nodeName += "." + className; + } + } + + var cmd = 'tinyMCE.execInstanceCommand(\'' + editor_id + '\',\'mceSelectNodeDepth\',false,\'' + i + '\');'; + html += '' + nodeName + ''; + + if (i > 0) { + html += " » "; + } + } + + pathElm.innerHTML = '' + tinyMCE.getLang('lang_theme_path') + ": " + html + ' '; + } + + // Reset old states + tinyMCE.switchClass(editor_id + '_justifyleft', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_justifyright', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_justifycenter', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_justifyfull', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_bold', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_italic', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_underline', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_strikethrough', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_bullist', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_numlist', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_sub', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_sup', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_anchor', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_link', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_unlink', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_outdent', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_image', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_hr', 'mceButtonNormal'); + + if (node.nodeName == "A" && tinyMCE.getAttrib(node, "class").indexOf('mceItemAnchor') != -1) + tinyMCE.switchClass(editor_id + '_anchor', 'mceButtonSelected'); + + // Get link + var anchorLink = tinyMCE.getParentElement(node, "a", "href"); + + if (anchorLink || any_selection) { + tinyMCE.switchClass(editor_id + '_link', anchorLink ? 'mceButtonSelected' : 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_unlink', anchorLink ? 'mceButtonSelected' : 'mceButtonNormal'); + } + + // Handle visual aid + tinyMCE.switchClass(editor_id + '_visualaid', visual_aid ? 'mceButtonSelected' : 'mceButtonNormal'); + + if (undo_levels != -1) { + tinyMCE.switchClass(editor_id + '_undo', 'mceButtonDisabled'); + tinyMCE.switchClass(editor_id + '_redo', 'mceButtonDisabled'); + } + + // Within li, blockquote + if (tinyMCE.getParentElement(node, "li,blockquote")) + tinyMCE.switchClass(editor_id + '_outdent', 'mceButtonNormal'); + + // Has redo levels + if (undo_index != -1 && (undo_index < undo_levels-1 && undo_levels > 0)) + tinyMCE.switchClass(editor_id + '_redo', 'mceButtonNormal'); + + // Has undo levels + if (undo_index != -1 && (undo_index > 0 && undo_levels > 0)) + tinyMCE.switchClass(editor_id + '_undo', 'mceButtonNormal'); + + // Select class in select box + var selectElm = document.getElementById(editor_id + "_styleSelect"); + + if (selectElm) { + TinyMCE_AdvancedTheme._setupCSSClasses(editor_id); + + classNode = node; + breakOut = false; + var index = 0; + + do { + if (classNode && classNode.className) { + for (var i=0; i"); + else + selectByValue(selectElm, ""); + } + + // Select fontselect + var selectElm = document.getElementById(editor_id + "_fontNameSelect"); + if (selectElm) { + if (!tinyMCE.isSafari && !(tinyMCE.isMSIE && !tinyMCE.isOpera)) { + var face = inst.queryCommandValue('FontName'); + + face = face == null || face == "" ? "" : face; + + selectByValue(selectElm, face, face != ""); + } else { + var elm = tinyMCE.getParentElement(node, "font", "face"); + + if (elm) { + var family = tinyMCE.getAttrib(elm, "face"); + + if (family == '') + family = '' + elm.style.fontFamily; + + if (!selectByValue(selectElm, family, family != "")) + selectByValue(selectElm, ""); + } else + selectByValue(selectElm, ""); + } + } + + // Select fontsize + var selectElm = document.getElementById(editor_id + "_fontSizeSelect"); + if (selectElm) { + if (!tinyMCE.isSafari && !tinyMCE.isOpera) { + var size = inst.queryCommandValue('FontSize'); + selectByValue(selectElm, size == null || size == "" ? "0" : size); + } else { + var elm = tinyMCE.getParentElement(node, "font", "size"); + if (elm) { + var size = tinyMCE.getAttrib(elm, "size"); + + if (size == '') { + var sizes = new Array('', '8px', '10px', '12px', '14px', '18px', '24px', '36px'); + + size = '' + elm.style.fontSize; + + for (var i=0; i 0) + selectElm.setAttribute('cssImported', 'true'); + } + }, + + _setCookie : function(name, value, expires, path, domain, secure) { + var curCookie = name + "=" + escape(value) + + ((expires) ? "; expires=" + expires.toGMTString() : "") + + ((path) ? "; path=" + escape(path) : "") + + ((domain) ? "; domain=" + domain : "") + + ((secure) ? "; secure" : ""); + + document.cookie = curCookie; + }, + + _getCookie : function(name) { + var dc = document.cookie; + var prefix = name + "="; + var begin = dc.indexOf("; " + prefix); + + if (begin == -1) { + begin = dc.indexOf(prefix); + + if (begin != 0) + return null; + } else + begin += 2; + + var end = document.cookie.indexOf(";", begin); + + if (end == -1) + end = dc.length; + + return unescape(dc.substring(begin + prefix.length, end)); + }, + + _resizeTo : function(inst, w, h, set_w) { + var editorContainer = document.getElementById(inst.editorId + '_parent'); + var tableElm = editorContainer.firstChild; + var iframe = inst.iframeElement; + + if (w == null || w == "null") { + set_w = false; + w = 0; + } + + if (h == null || h == "null") + return; + + w = parseInt(w); + h = parseInt(h); + + if (tinyMCE.isGecko) { + w += 2; + h += 2; + } + + var dx = w - tableElm.clientWidth; + var dy = h - tableElm.clientHeight; + + w = w < 1 ? 30 : w; + h = h < 1 ? 30 : h; + + if (set_w) + tableElm.style.width = w + "px"; + + tableElm.style.height = h + "px"; + + iw = iframe.clientWidth + dx; + ih = iframe.clientHeight + dy; + + iw = iw < 1 ? 30 : iw; + ih = ih < 1 ? 30 : ih; + + if (tinyMCE.isGecko) { + iw -= 2; + ih -= 2; + } + + if (set_w) + iframe.style.width = iw + "px"; + + iframe.style.height = ih + "px"; + + // Is it to small, make it bigger again + if (set_w) { + var tableBodyElm = tableElm.firstChild; + var minIframeWidth = tableBodyElm.scrollWidth; + if (inst.iframeElement.clientWidth < minIframeWidth) { + dx = minIframeWidth - inst.iframeElement.clientWidth; + + inst.iframeElement.style.width = (iw + dx) + "px"; + } + } + + // Remove pesky table controls + inst.useCSS = false; + }, + + /** + * Handles resizing events. + */ + _resizeEventHandler : function(e) { + var resizer = TinyMCE_AdvancedTheme._resizer; + + // Do nothing + if (!resizer.resizing) + return; + + e = typeof(e) == "undefined" ? window.event : e; + + var dx = e.screenX - resizer.downX; + var dy = e.screenY - resizer.downY; + var resizeBox = resizer.resizeBox; + var editorId = resizer.editorId; + + switch (e.type) { + case "mousemove": + var w, h; + + w = resizer.width + dx; + h = resizer.height + dy; + + w = w < 1 ? 1 : w; + h = h < 1 ? 1 : h; + + if (resizer.horizontal) + resizeBox.style.width = w + "px"; + + resizeBox.style.height = h + "px"; + break; + + case "mouseup": + TinyMCE_AdvancedTheme._setResizing(e, editorId, false); + TinyMCE_AdvancedTheme._resizeTo(tinyMCE.getInstanceById(editorId), resizer.width + dx, resizer.height + dy, resizer.horizontal); + + // Expire in a month + if (tinyMCE.getParam("theme_advanced_resizing_use_cookie", true)) { + var expires = new Date(); + expires.setTime(expires.getTime() + 3600000 * 24 * 30); + + // Set the cookies + TinyMCE_AdvancedTheme._setCookie("TinyMCE_" + editorId + "_width", "" + (resizer.horizontal ? resizer.width + dx : ""), expires); + TinyMCE_AdvancedTheme._setCookie("TinyMCE_" + editorId + "_height", "" + (resizer.height + dy), expires); + } + break; + } + }, + + /** + * Starts/stops the editor resizing. + */ + _setResizing : function(e, editor_id, state) { + e = typeof(e) == "undefined" ? window.event : e; + + var resizer = TinyMCE_AdvancedTheme._resizer; + var editorContainer = document.getElementById(editor_id + '_parent'); + var editorArea = document.getElementById(editor_id + '_parent').firstChild; + var resizeBox = document.getElementById(editor_id + '_resize_box'); + var inst = tinyMCE.getInstanceById(editor_id); + + if (state) { + // Place box over editor area + var width = editorArea.clientWidth; + var height = editorArea.clientHeight; + + resizeBox.style.width = width + "px"; + resizeBox.style.height = height + "px"; + + resizer.iframeWidth = inst.iframeElement.clientWidth; + resizer.iframeHeight = inst.iframeElement.clientHeight; + + // Hide editor and show resize box + editorArea.style.display = "none"; + resizeBox.style.display = "block"; + + // Add event handlers, only once + if (!resizer.eventHandlers) { + if (tinyMCE.isMSIE) + tinyMCE.addEvent(document, "mousemove", TinyMCE_AdvancedTheme._resizeEventHandler); + else + tinyMCE.addEvent(window, "mousemove", TinyMCE_AdvancedTheme._resizeEventHandler); + + tinyMCE.addEvent(document, "mouseup", TinyMCE_AdvancedTheme._resizeEventHandler); + + resizer.eventHandlers = true; + } + + resizer.resizing = true; + resizer.downX = e.screenX; + resizer.downY = e.screenY; + resizer.width = parseInt(resizeBox.style.width); + resizer.height = parseInt(resizeBox.style.height); + resizer.editorId = editor_id; + resizer.resizeBox = resizeBox; + resizer.horizontal = tinyMCE.getParam("theme_advanced_resize_horizontal", true); + } else { + resizer.resizing = false; + resizeBox.style.display = "none"; + editorArea.style.display = tinyMCE.isMSIE && !tinyMCE.isOpera ? "block" : "table"; + tinyMCE.execCommand('mceResetDesignMode'); + } + }, + + _getColorHTML : function(id, n, cm) { + var i, h, cl; + + h = ''; + cl = tinyMCE.getParam(n, TinyMCE_AdvancedTheme._defColors).split(','); + + h += ''; + for (i=0; i'; + + if ((i+1) % 8 == 0) + h += ''; + } + + h += '
        '; + + if (tinyMCE.getParam("theme_advanced_more_colors", true)) + h += '' + tinyMCE.getLang('lang_more_colors') + ''; + + return h; + }, + + _pickColor : function(id, cm) { + var inputColor, inst = tinyMCE.selectedInstance; + + if (cm == 'forecolor' && inst) + inputColor = inst.foreColor; + + if ((cm == 'backcolor' || cm == 'HiliteColor') && inst) + inputColor = inst.backColor; + + tinyMCE.execCommand('mceColorPicker', true, {color : inputColor, callback : function(c) { + tinyMCE.execInstanceCommand(id, cm, false, c); + }}); + }, + + _insertImage : function(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout) { + tinyMCE.execCommand("mceInsertContent", false, tinyMCE.createTagHTML('img', { + src : tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src), // Force absolute + mce_src : src, + alt : alt, + border : border, + hspace : hspace, + vspace : vspace, + width : width, + height : height, + align : align, + title : title, + onmouseover : onmouseover, + onmouseout : onmouseout + })); + }, + + _insertLink : function(href, target, title, onclick, style_class) { + tinyMCE.execCommand('mceBeginUndoLevel'); + + if (tinyMCE.selectedInstance && tinyMCE.selectedElement && tinyMCE.selectedElement.nodeName.toLowerCase() == "img") { + var doc = tinyMCE.selectedInstance.getDoc(); + var linkElement = tinyMCE.getParentElement(tinyMCE.selectedElement, "a"); + var newLink = false; + + if (!linkElement) { + linkElement = doc.createElement("a"); + newLink = true; + } + + var mhref = href; + var thref = eval(tinyMCE.settings['urlconverter_callback'] + "(href, linkElement);"); + mhref = tinyMCE.getParam('convert_urls') ? href : mhref; + + tinyMCE.setAttrib(linkElement, 'href', thref); + tinyMCE.setAttrib(linkElement, 'mce_href', mhref); + tinyMCE.setAttrib(linkElement, 'target', target); + tinyMCE.setAttrib(linkElement, 'title', title); + tinyMCE.setAttrib(linkElement, 'onclick', onclick); + tinyMCE.setAttrib(linkElement, 'class', style_class); + + if (newLink) { + linkElement.appendChild(tinyMCE.selectedElement.cloneNode(true)); + tinyMCE.selectedElement.parentNode.replaceChild(linkElement, tinyMCE.selectedElement); + } + + return; + } + + if (!tinyMCE.linkElement && tinyMCE.selectedInstance) { + if (tinyMCE.isSafari) { + tinyMCE.execCommand("mceInsertContent", false, '' + tinyMCE.selectedInstance.selection.getSelectedHTML() + ''); + } else + tinyMCE.selectedInstance.contentDocument.execCommand("createlink", false, tinyMCE.uniqueURL); + + tinyMCE.linkElement = tinyMCE.getElementByAttributeValue(tinyMCE.selectedInstance.contentDocument.body, "a", "href", tinyMCE.uniqueURL); + + var elementArray = tinyMCE.getElementsByAttributeValue(tinyMCE.selectedInstance.contentDocument.body, "a", "href", tinyMCE.uniqueURL); + + for (var i=0; i + + {$lang_insert_image_title} + + + + + + + +
        + + +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + + +
         
        + x +
        +
        +
        + +
        +
        + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/anchor.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/anchor.gif new file mode 100644 index 0000000000000000000000000000000000000000..34ab71534b74e1f8eb01a822d2073cde4cd878cb GIT binary patch literal 171 zc$@*N095}+Nk%w1VH5xq0K*0VDLrY1lc!y3io(UtI8lV8tiaOK*PC=h8YL;9lhufQV@{Qv1;Q^ z1CN9aCpLWeabVHPfD1Po9zQKUa3H|IK=i|h0tE$u0|yFDoLI16K|_GA>4F&r|37SK zt%&~c;lqUs7iP|!2{fF6mO$|*3nK%A0)q~S1M(9CTZ_Yl0uLRjeh=l;oofs*YXZ^guMbd&2qRRtiHb@Gu3*71|zhmdF-SRGb V_V3(xVE>`RySJS<>Fmg04FJ-%aohj^ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/bold.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/bold.gif new file mode 100644 index 0000000000000000000000000000000000000000..d6a9cc2cd4117526156fa29c06156ba5971823c4 GIT binary patch literal 76 zc${3a?E=Bm(Rqw7V Z4AWqey4jFcx$b3$*C(Ir-+DzDtN~+a79aos diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/bold_de_se.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/bold_de_se.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b129de25e916946792c89f08a7b30b2f9dc8b72 GIT binary patch literal 73 zc${jEB<6*$FFxbIg;(p2 i&djr5P5jX#dNVh}IZO5VUiUMXvRj`2I%m$xU=0AHn;dum diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/bold_fr.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/bold_fr.gif new file mode 100644 index 0000000000000000000000000000000000000000..2816454515a2b3d031ee1762f9308db99e9d3940 GIT binary patch literal 78 zc${+8$Fz@Ye(g^_`QkwFK@W&p`BFsbzPuRQ&he=&V4Auam85Vf} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/bold_tw.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/bold_tw.gif new file mode 100644 index 0000000000000000000000000000000000000000..82085432c622fb9b195d45480ce0c00f80d24027 GIT binary patch literal 207 zc$@*x05JbYNk%w1VH5xq0J9DNySuyH-QDi)?jj;0%*@PHRaKdpnGq2YcXxM0L_~;) zh%+-YW@csp00960{{R30A^8LW000gEEC2ui02BZe000Dh(8)=wy*N7}G;WM{HHkzh zs6t%9fi%d0HcQepm#{3&(I_#A0+$;m0FJ}}WxKp?w}cH!tRNB$k|H1#RxPhVL6BGg z09nkC_M1X4*#RtJD4)}o#(?mXbR9t%Fa-%dPzMPG0V6gC3@He52a9TEFU_>xB^?a&6>B~^ R#bfrS$(b43?=Ue~0{~-MC*lAA diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/bullist.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/bullist.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e19467c70e337bbfb2a3fe3eff1bc3acab0eaec GIT binary patch literal 108 zc${1h#Kfdz)l@%W&!*iMf|{-?85Jc}En;9`Q2fcl$iTqPpaWzx zfYdTD8&>SP^UvUv=WT(-MvhHP2^@CL3KjEB<5wG8q|kKzxu41Cu~c|H{*E`Gsc$hp{fYx2K(n G!5RQ}Dh{In diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/buttons.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/buttons.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ad99a7c4321610124833ba05bdf0df236f5d5a9 GIT binary patch literal 5662 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 MOZg;}3;>4z2Y$7PF8}}l diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/cancel_button_bg.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/cancel_button_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b4aeefcbbba8ed33383d99e3ad38a2b9683044e GIT binary patch literal 677 zc$@*H0$Tk?Nk%w1VOjtc0K@)fLs#+_}=< z+2GjQ)C|ia%M}g|2-*$|4jAv++6)X8?f3NB2<-a^7%Bu**N)yjcm?$#=+|zcKYj)I zIjF!OVTE%a3KYO_;R1$_A3cH`Nit-~lPFRDiUhfmW6G2Q3W(6yv1UzC}*s)i?z8nAt58I(vAO9Tu2JqX_n^*5Vy?OEB-=jZ2zyA2} z=ksr%;9UfV@9G68;D7`cXyAbe9{8UkfB!Y;;DZoGDB*+@R%juG3|^?=h8%WSVGAIJ LDB_4Bh5!IN$Y@?j diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/charmap.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/charmap.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cdc4ac9134258a9a1a83b6afd5c7055bebbcbf9 GIT binary patch literal 245 zc$@+C01E#{Nk%w1VH5xq0MrWrCQ7P`mf9kF)@pOQz`oR6i`Xtt!h(*@9+vKJ7UM8qsvB8x<;Dr zSg7=Nn%Hi7)&KwiA^8LW0018VEC2ui02BZe000GY;3tk`X`X1RuI#x~)x&X5LaDKL zBuP+gmjjC8P!LL;h9PruTqdW2VQ_jhm?kOJM8RlI0sywOkQfrBgdlP}Q6Q310n$b# v>y*a!grF>@BLxiv8314c77P(14Hy;xh9(V(3=AWV77>droSmMZC?Nnljc8>f diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/cleanup.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/cleanup.gif new file mode 100644 index 0000000000000000000000000000000000000000..16491f6cfcf3e1123f08352c895f8010f791c469 GIT binary patch literal 256 zc$@(M0ssC-Nk%w1VH5xq0MrlwMm#2xdP3^ge4>(aXJcF2&#c0@g7@*TXJyAiI+Bx- z!osRT%E{EUw6tz+enw7G^6K)^$d=yS-J+Ue{{6y&f`-z%VxXFs!L^y{+>(HFVv>^L zOipLAk}~7mu>b%7A^8LW0018VEC2ui02BZe000Gj;3tk`X`X1RuBfCa3_CK)hB&I! z?6jS5DV>BNxhN371`1>FG$6!^gQF}JB8CHn;<-pFjYq{)@NCbANaf;iJjfX><#5Od z41@~dZSq94bpiqw6C4j!WCnJE77HB!h$k2WjE(>oEEpP%kC-wT1Ob;aBcK|jsHv(a GApkq`d~Wvu diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/close.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/close.gif new file mode 100644 index 0000000000000000000000000000000000000000..679ca2aa47644793fc7096142233af6d18cfc9ac GIT binary patch literal 102 zc${kgyRDb3@HEuthi uXU;40To}M5{dDdNj=JDqn~K=yn?_%YeELo4K!S&k81soGMV&qj4Aubob0FOS diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/code.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/code.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5d5a67275c504e85e93da488aca85f4b2aa240d GIT binary patch literal 110 zc${1B=+vSZwA88iSX|!)1|*>PlZBCifrUW_!~v;gU^e#Hb?2YK zDbLk=cQ9^kR(FyRV%{v6zJMbkTF+t5I^Ewz77MSfoB4i?LT15fiT)EyiZXo|7_0&5 Cg&`pT diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/color.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/color.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ecd5743b64464068d80fe0c306375bc0f36a3f9 GIT binary patch literal 125 zc${mzXRH=pKYwZWOr?gDO&r}E WQznT77&6ApIg)ei@KZGg25SKIc`;M~ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/colors.jpg b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/colors.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4c542d107b25f68a9d4f9d7a109d0565d1f1437 GIT binary patch literal 3189 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 diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/copy.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/copy.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc146865c5952aa48b82fc54677db621322465b9 GIT binary patch literal 263 zc$@(T0r>t$Nk%w1VH5xq0MrKnGD>2SrMb<|)0(p4GF`Q=%=coD-uwLia-!n0ztXb8 z>SB7D(cbRC&Eb``_99D}N_N7cveI&z@*+Zl!qxWT>hhwp!g8A0g0kXLg3_YG@}jE3 za+1=5r|rPV)BpegA^8LW0018VEC2ui02BZe000Gq;3tk`X`X1Rt}Ll2NgN5Sa@>ct z&})Jp0ne^?pcEK^!b{_DFiw_VrSR(z8m7&Gi9u+7k^;d~3fw9c#^BIo7zl(%`OrmN z*0>5KA}5&{3=It(2OS6o85w+K0F8|tI1CgD7JVrO2Z)Io8#2N9wc8v&jt5O5Ex Ns}n7+u(2f}06RB$bN>JU diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/custom_1.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/custom_1.gif new file mode 100644 index 0000000000000000000000000000000000000000..4cbccdadf60dfccaf532fd56a567c47b131f80a8 GIT binary patch literal 76 zc${|Nli|1^K bVmxqW)~8vOa|LodDi=dm7`y6hp@H0TzRe{O`Us&m(k6|m7uZ$S-vl0 zv81W9YJ#%8z`z1cvH$=8A^8LW000jFEC2ui02BZe000DN@X1N5y*RH`2hYzS9F#DC z&mja;FrrU@G*7b_@UslKvE>g#z<@B2axx(c_%I2W2u49rARu4_N5ZktItZW!fI&z+ p0E8?Jvj7|jibsJV{#*tC#rVODXii?U706WgML@)pV diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/forecolor.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/forecolor.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b703616081fa7e20cb176d77a750ef15006d390 GIT binary patch literal 342 zc${*CKPz+NcEpknb;7hBro2% z`NWPGonR%ljV$ z;UXX+>&Y$6EAK4XFDt_7&cP}y?93_5wq&-8!itrvRx2!Dvwp?84Qn=SUX`#T(viU$ E0CtUHQvd(} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/help.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/help.gif new file mode 100644 index 0000000000000000000000000000000000000000..51a1ee42073402ce787b60d151219ef7ce367615 GIT binary patch literal 295 zc$@(z0oeXWNk%w1VH5xq0Mrfu6i>3FyW3udp6K!Ub&;kbTH+f8tqUysbN$lQ^w;v!hW z!pq(wXY{hj_W%F@A^8LW0018VEC2ui02BZe000G~;3tk`X`X1Ru1KI+h83(|W>rq^ zR7RF&f!#zRnN$X{6T;$HBo?`WVllvQOo2)zp>TL49!J8HVVDe#NumhpbS0R9z=Ux~ zAoz}Cx7j!jCJ$n5dR`j5{)+~RJ$w}+Xh M?UBc{1V#pH0B+0Sa+3=zusNGZfNrz9ht9 i9nSdU){UIHY6f=qw$={!=Hi}e$^HowCkY8MSOWl@;6e`o diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/indent.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/indent.gif new file mode 100644 index 0000000000000000000000000000000000000000..acd315bb16c47c2f1679bdf440b511497f9d633b GIT binary patch literal 112 zc${en~1 Q7%x9x_%qo`os+>D07#xF8UO$Q diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/insert_button_bg.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/insert_button_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c131ce2992df593b0f4299bca3b823819bfafa GIT binary patch literal 703 zc$@*h0zmyoNk%w1VOjtc0K@s=_xSkz{{8#>`}z9$_xShz{{8*^{QUg;`}_L%`1kks_WJqx{r&y?{QUd-`}+F& z`T6KpoHUDH@N+q;kn@I-kkc5K66DuS_Z6KrDKY7RyI09*;fWvU%-gtB;niQErU0 zm*isj!{r@5Xn}%*gn@BrfQ5mHij9PfUyfe}2OBRWtq`cJq8+WUnh>9$sjjjey0H)tuAaQc9f1|Fwgs1#2OS*J)Y8+b*w@wD)!H1| z*x};Wufcfgl`*#qaLw)i7 z zoH>KW+zFGYhMgLD9zY-h0fGes24t9!p{j-j6DCB>;GpUR4OAyM=(>QbRjLa#3_uGO z>HrN@Gf0g)AZ^&Gar5dmTXybOr%e$Eh>L-6)xsGhB#tWqL*v4b9V>pE7=z`>iZc|> ztl2VQ$DKVp7OfcZVa0#}IK>dbvVaB+6ueeo*>VKfu`$SQfI)y|-o6|7?%lifYXPr$ z!>-Mob%f^%8bpZhntE^Fvsq(UkUGIr1<%7n7f-%?_yFe9t6xtZ{rU9?5{QT&pnm=7 z5zyOrUtfX!=lcb?pMU?kmmhlI6)505fd}4aAAtcXfPj1e&?n%97-p#9h8%WyVSMw& lC*p`CmT2OMD5j|5iYbQ3;)^iGD5Huk)M(?4INlfn06R=DYYYGY diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/italic.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/italic.gif new file mode 100644 index 0000000000000000000000000000000000000000..8bb330bd0bbf61fdb5ce86388ecbeae16465bc17 GIT binary patch literal 79 zc${_+b+wcJF`jEB<5wG8q|kK!gZ`FaraVVo(3d({K5uXIu`5a6TsH a;#+zDYvZ#Uy^qv#6FHB6^105+U=0A})fi&{ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/italic_ru.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/italic_ru.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2bb69a725e823b8e671f0640098c4fa80939b2f GIT binary patch literal 78 zc${+8$Fz@Ye(g^_`QkwFK@W&p`BFsb(RuRQ&hf3e8|rl>@| g-;s5$k$uy}dmH1H=FS{~1UDia%Kx85jf@bU+-CoeZq~3Mzdmne#HN^t7sMoHaM3 zKeDON5$Z4EYhX`qtk99-JldR4#mcjY<*+8l94Yoj UgwLW=vT`Q(s%`JMrCAxQ0qpY;qW}N^ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/justifyright.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/justifyright.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4cea971489cf2526bd45b5044e6d3435741f830 GIT binary patch literal 70 zc${;nh!jN=5Xl<{ELAJRLi`OvPeCwL9EE`(0V^O727v-Gs1O*6fC9h;473EtqJph4 d4hzK!aZXzV=z)RofG^|jEB<5wG8q|kKzxu40~1#dfBJzLcf(v(F)&yI02q@C APXGV_ diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/newdocument.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/newdocument.gif new file mode 100644 index 0000000000000000000000000000000000000000..a9d293842354bade04fc9607e55763fd0ea9efec GIT binary patch literal 170 zc$@*M09F4-Nk%w1VH5xq0K*0VGD>2SqO#J~;-aN z((?HJ(%tf+t-`|0-T(jqA^8LW000jFEC2ui02BZe000D6@X1N5y*TTfdRNNeY>8o> z4KQZPc^-wzx@G{}*+AEJzAuCxrm-U+gcqV~fj9y(hozB$v;>w-LA7!<0TB$xmeMs$ Y1>z^>8fd%Q>Wl40uW#=7ygmW|J7pwMu>b%7 diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/numlist.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/numlist.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2683522f4fbca7c59cdce63c7ac20211e006f49 GIT binary patch literal 111 zc${2$|NLMcr)@lr3G4b21>PvGV9&5-I=QIi%&s}{E7Q0w PIrj2oy~qv|Vz34P1?eX! diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/opacity.png b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/opacity.png new file mode 100644 index 0000000000000000000000000000000000000000..b4217cb212926ce7abfde5e045380e3f6a5d54b7 GIT binary patch literal 147 zc%17D@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VOS+@4BLl_jZKS5jZLdL qklCGA#xkX{UyXMU`oN>#hy=Lc( O>hK6Evh-wNum%A9#3rEt diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/paste.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/paste.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b45000a0140b8f9e04c933154c915f4322d7533 GIT binary patch literal 286 zc$@(q0pb2fNk%w1VH5xq0Mr}+LNg;3tk`X`X1Rt{>*It?NM0VL6(E zVp#@75XZ#A7$__!UdC~NbOwn>K!P;!f|hLd!H_&o5ubBI-bl_Ku=A;)xD5t@Ks^{# z+MN7ifk2od9Tj&Q6dVnQ7YGCeB^rSW3L6F-dlv)<1qEp%4jqtY1`CG`6a;PnBn}E^ kX95eB1O$f^sHqkY9smLtZoQ`}2mr#v!!X9j$Rr^EJMbBDr~m)} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/redo.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/redo.gif new file mode 100644 index 0000000000000000000000000000000000000000..3af90697f0b74d0b6b07b585614a6dc67ff87f1d GIT binary patch literal 169 zc$@*L09OA;Nk%w1VH5xq0K*FaEl-kjqwqa)*O$8QUUsNeit)O{)H!9gj;!cSf8=SD z@4U+CH(H=qeZQ%{>Hq)$A^8LW000jFEC2ui02BZe000D5@X1N5y*TU5@mkK(Nsfb@ zh`52taWqPx3Yb$cP21Nib_4)BqDn)z diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/removeformat.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/removeformat.gif new file mode 100644 index 0000000000000000000000000000000000000000..0fa3cb79734b6ddadaded7a30dbbab4cdf7ee11a GIT binary patch literal 168 zc$@*K09XG3d^!9RvqL!@E;^*>mjX*~6o0ZXGB7YP=m6OaAbAERt|_b&SD$^K#C1@F G!5RSXJ`hL% diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/spacer.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a GIT binary patch literal 43 nc${X*~6o0ZXGB7YP=m6OaAbAERg(>|jPrv0~%%#ha d_MXKm)lqT2YSDtso)?w9Z@gz^T^C`n1_07v8bkm9 diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/strikethrough.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/strikethrough.gif new file mode 100644 index 0000000000000000000000000000000000000000..3264635918e2237257811a745f3a7e31b4369432 GIT binary patch literal 83 zc${5`RB^ury^=8j) h^eUTr??>*V8C&%_D;C}?e9svC>)iK$`!yICtN}048)X0h diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/sub.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/sub.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d7ce30ff9147412d24dafd5ebeef67479edfa58 GIT binary patch literal 148 zc${Q)HHe0gtl3SJX}2%FIo^(b}BP7-N@8v{qD<7Nz0X_ zl!BTbZCbxRC@hG9fkE*n3nK#qKZ6dC%>XikfyME|Nzc`LEnc79{r^g#Nzh}R7)J|V zX9lNm3qGd$rrH|42gm2Mtqu5LE78W7#;D=Z#o+10Smh%e+N>1twrc+a9~K5{0GD(# AWdHyG diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/sup.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/sup.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7145e019a92a53ba6831d7da62c67419bb3ae03 GIT binary patch literal 147 zc${XikfyLp&Nzc`LEnc7fZNvUJkj=)iK!0SpY*0G3P}*Z=?k diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/underline_es.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/underline_es.gif new file mode 100644 index 0000000000000000000000000000000000000000..551d9148d302c5f58b3b20d2c6a642450889a7ef GIT binary patch literal 79 zc${+8$Fz@Ye(g^_`QkwFK@W&p`BFsbzPuRQ&he=&b6$oQ-^4DvkU-JNSuB@*WkdRx^dDpvoXMfpGVe^t0s*%M50L^JPNgOW9=DY{ zwRUPR{VJ=i!y~Yn|5a^3pX^@$7R;GXz&U2_VU>FP2yDM T6q-JRmwm<@?$-GliVW5OQO`~G diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/undo.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/undo.gif new file mode 100644 index 0000000000000000000000000000000000000000..520796d69defa118055d191eec33cc67f7551710 GIT binary patch literal 175 zc$@*R08sx&Nk%w1VH5xq0K*FaI$fTWtk6Go+_}Zyr?=K#e#T#ZwX4DHa-Hu#XSz{; z-OtzKVv^{Tv+z=g@&Et;A^8LW000jFEC2ui02BZe000DB@X1N5y*TU5^*Z3vJx60U zVAe<_A|#2DUTDd{g#kDRhWrRvKmt&#E(`|)VHiweM~gz>Krlp-Snncu!2ps)!r>e} d2m*##Qg9H=3xcDt9yk2euEN*a>RflBvc=VMi?aIs{*Scsi=V=*#PZ+j z{;astf|jzv(Biz+@&Et;A^8LW000jFEC2ui02BZe000Dg@X1N5y*TU5Y5N}`E=ypZ zo?#$r>naM6uI>xVQ-d%k;xmkbaDbB#Q~{NMWoQ&&iQ?mEND2guCgGWgQWh%TE;t;R zrC?g~sYnb2jsrT}bhh1bIVEWT3JYd|XL~9PPy-4A2LldqQhZ!)ii>%V0GF7VnjM^- Io)i%PJHdZeUH||9 diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/xp/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/xp/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/xp/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/xp/tab_bg.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/xp/tab_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..897a01f2baea1ae5f61f642f508c27f356b35260 GIT binary patch literal 694 zc$@*Y0!jTxNk%w1VUPh50K@Fo9O z^8Eb#`uh6u@89F;?DO;Q@$v2O@aq2l{`U6r`uh3s@ay>a_VV)W^z`ua^X~Tc^Y!)d z@$u}Dr?mh7{{R30A^8LV00000EC2ui0FVI^000I5U_%&PX`X1Ru59bRa4gSsZQppV z?|kpu1Vq9^EE3jl(HgoTEOh>41ejE#aB*8r|OC z;Njxq>Ry;kxw7TUm@{kM z%(=7Y&!9t#9!C>oFt6t5TbcX>0AjqCgySDAyxO3~?&AYen-@t=y!-i+yC*K5ef#nAwj*aBzkGe++J%)n_rHGi z_~ZNgpFh5P|L(<$r}sa8c>VI(gJ+NLe*5z2!~0iHAKiNQ_Sx$f58u3gI&t|H25dm_ zCkvR?0TCcO8Cca8IOw!CGPnzQ%rHqj(`tJy#$Vvtlc~*LXPj1$P)rgL=~3;>Y-3=s F1^~o$RVDxc diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/xp/tab_sel_bg.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/images/xp/tab_sel_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dc8abe1a4f20643367ea9548fa2d93be7f0fb0b GIT binary patch literal 428 zc$@*O0aN}*Nk%w1VJrbC0J8u9k(-?1#*X>8IO~@#-Jw(NpE2?8-}$*X|HwS%i!A@g zJpcdy{QUj^0000000000A^8LV00000EC2ui04xD0000F4(1ekyy*TU5yZ>M)j$~<` zXsV(?aUgIk&vb3yc&_h!@BhG{a7Zi;2?B+3$!t2G(5Q4uty-_xtai)odcR%(V@xia z&uH^v&2GEj@VIuMl4*~XmY0~BntqX! zo@AS$qNAjxdYzx1rmL*2u8ydwlCQM2wzqGwvV^$3zQ3WmyOhAi#>ard!)M6N&d+hm z%Vp5j*2mJ*W7pi>w%OX=;^U>@)8y#sm*(2-?(gvN^7Hid)9m*7`uqI-{{IZ{0USuM zpuvOl1R`9>u%W|(3Li?GNU@@fG5cC(oZi \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/about.js b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/about.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/about.js @@ -0,0 +1,75 @@ +function init() { + var inst; + + tinyMCEPopup.resizeToInnerSize(); + inst = tinyMCE.selectedInstance; + + // Give FF some time + window.setTimeout('insertHelpIFrame();', 10); + + var tcont = document.getElementById('plugintablecontainer'); + var plugins = tinyMCE.getParam('plugins', '', true, ','); + if (plugins.length == 0) + document.getElementById('plugins_tab').style.display = 'none'; + + var html = ""; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + + for (var i=0; i' + info.longname + ''; + else + html += ''; + + if (info.authorurl != null && info.authorurl != '') + html += ''; + else + html += ''; + + html += ''; + html += ''; + } + + html += ''; + html += '
        ' + tinyMCE.getLang('lang_plugin') + '' + tinyMCE.getLang('lang_author') + '' + tinyMCE.getLang('lang_version') + '
        ' + info.longname + '' + info.author + '' + info.author + '' + info.version + '
        '; + + tcont.innerHTML = html; +} + +function getPluginInfo(name) { + if (tinyMCE.plugins[name].getInfo) + return tinyMCE.plugins[name].getInfo(); + + return { + longname : name, + authorurl : '', + infourl : '', + author : '--', + version : '--' + }; +} + +function insertHelpIFrame() { + var html = ''; + + document.getElementById('iframecontainer').innerHTML = html; + + html = ''; + html += 'Got Moxie? '; + html += 'Hosted By Sourceforge '; + html += 'Also on freshmeat '; + + document.getElementById('buttoncontainer').innerHTML = html; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/anchor.js b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/anchor.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/anchor.js @@ -0,0 +1,74 @@ +var action, element; + +function init() { + tinyMCEPopup.resizeToInnerSize(); + + var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')); + var anchor = tinyMCE.getParentElement(inst.getFocusElement(), "a", "name"); + var img = inst.getFocusElement(); + action = 'insert'; + + if (anchor != null) { + element = anchor; + action = "update"; + } + + if (tinyMCE.getAttrib(img, "class") == "mceItemAnchor") { + element = img; + action = "update"; + } + + if (action == "update") + document.forms[0].anchorName.value = element.nodeName == "IMG" ? element.getAttribute("title") : element.getAttribute("name"); + + document.forms[0].insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true); +} + +function insertAnchor() { + var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')); + var name = document.forms[0].anchorName.value, e; + + tinyMCEPopup.execCommand("mceBeginUndoLevel"); + + if (action == "update") { + if (element.nodeName == "IMG") + element.setAttribute("title", name); + else + element.setAttribute("name", name); + } else { + var rng = inst.getRng(); + + if (rng.collapse) + rng.collapse(false); + + name = name.replace(/&/g, '&'); + name = name.replace(/\"/g, '"'); + name = name.replace(//g, '>'); + + // Fix for bug #1447335 + if (tinyMCE.isGecko) + html = ''; + else + html = ''; + + tinyMCEPopup.execCommand("mceInsertContent", false, html); + + // Fix for bug #1447335 force cursor after the anchor element + if (tinyMCE.isGecko) { + e = inst.getDoc().getElementById('mceNewAnchor'); + + if (e) { + inst.selection.selectNode(e, true, false, false); + e.removeAttribute('id'); + } + } + + tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst); + } + + tinyMCEPopup.execCommand("mceEndUndoLevel"); + + tinyMCE.triggerNodeChange(); + tinyMCEPopup.close(); +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/charmap.js b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/charmap.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/charmap.js @@ -0,0 +1,326 @@ +function init() { + tinyMCEPopup.resizeToInnerSize(); +} + +var charmap = new Array(); + +// for mor details please see w3c.org +// now here is the complete list ;) + +charmap = [ + [' ', ' ', true, 'no-break space'], + ['&', '&', true, 'ampersand'], + ['"', '"', true, 'quotation mark'], +// finance + ['¢', '¢', true, 'cent sign'], + ['€', '€', true, 'euro sign'], + ['£', '£', true, 'pound sign'], + ['¥', '¥', true, 'yen sign'], +// signs + ['©', '©', true, 'copyright sign'], + ['®', '®', true, 'registered sign'], + ['™', '™', true, 'trade mark sign'], + ['‰', '‰', true, 'per mille sign'], + ['µ', 'µ', true, 'micro sign'], + ['·', '·', true, 'middle dot'], + ['•', '•', true, 'bullet'], + ['…', '…', true, 'three dot leader'], + ['′', '′', true, 'minutes / feet'], + ['″', '″', true, 'seconds / inches'], + ['§', '§', true, 'section sign'], + ['¶', '¶', true, 'paragraph sign'], + ['ß', 'ß', true, 'sharp s / ess-zed'], +// quotations + ['‹', '‹', true, 'single left-pointing angle quotation mark'], + ['›', '›', true, 'single right-pointing angle quotation mark'], + ['«', '«', true, 'left pointing guillemet'], + ['»', '»', true, 'right pointing guillemet'], + ['‘', '‘', true, 'left single quotation mark'], + ['’', '’', true, 'right single quotation mark'], + ['“', '“', true, 'left double quotation mark'], + ['”', '”', true, 'right double quotation mark'], + ['‚', '‚', true, 'single low-9 quotation mark'], + ['„', '„', true, 'double low-9 quotation mark'], + ['<', '<', true, 'less-than sign'], + ['>', '>', true, 'greater-than sign'], + ['≤', '≤', true, 'less-than or equal to'], + ['≥', '≥', true, 'greater-than or equal to'], + ['–', '–', true, 'en dash'], + ['—', '—', true, 'em dash'], + ['¯', '¯', true, 'macron'], + ['‾', '‾', true, 'overline'], + ['¤', '¤', true, 'currency sign'], + ['¦', '¦', true, 'broken bar'], + ['¨', '¨', true, 'diaeresis'], + ['¡', '¡', true, 'inverted exclamation mark'], + ['¿', '¿', true, 'turned question mark'], + ['ˆ', 'ˆ', true, 'circumflex accent'], + ['˜', '˜', true, 'small tilde'], + ['°', '°', true, 'degree sign'], + ['−', '−', true, 'minus sign'], + ['±', '±', true, 'plus-minus sign'], + ['÷', '÷', true, 'division sign'], + ['⁄', '⁄', true, 'fraction slash'], + ['×', '×', true, 'multiplication sign'], + ['¹', '¹', true, 'superscript one'], + ['²', '²', true, 'superscript two'], + ['³', '³', true, 'superscript three'], + ['¼', '¼', true, 'fraction one quarter'], + ['½', '½', true, 'fraction one half'], + ['¾', '¾', true, 'fraction three quarters'], +// math / logical + ['ƒ', 'ƒ', true, 'function / florin'], + ['∫', '∫', true, 'integral'], + ['∑', '∑', true, 'n-ary sumation'], + ['∞', '∞', true, 'infinity'], + ['√', '√', true, 'square root'], + ['∼', '∼', false,'similar to'], + ['≅', '≅', false,'approximately equal to'], + ['≈', '≈', true, 'almost equal to'], + ['≠', '≠', true, 'not equal to'], + ['≡', '≡', true, 'identical to'], + ['∈', '∈', false,'element of'], + ['∉', '∉', false,'not an element of'], + ['∋', '∋', false,'contains as member'], + ['∏', '∏', true, 'n-ary product'], + ['∧', '∧', false,'logical and'], + ['∨', '∨', false,'logical or'], + ['¬', '¬', true, 'not sign'], + ['∩', '∩', true, 'intersection'], + ['∪', '∪', false,'union'], + ['∂', '∂', true, 'partial differential'], + ['∀', '∀', false,'for all'], + ['∃', '∃', false,'there exists'], + ['∅', '∅', false,'diameter'], + ['∇', '∇', false,'backward difference'], + ['∗', '∗', false,'asterisk operator'], + ['∝', '∝', false,'proportional to'], + ['∠', '∠', false,'angle'], +// undefined + ['´', '´', true, 'acute accent'], + ['¸', '¸', true, 'cedilla'], + ['ª', 'ª', true, 'feminine ordinal indicator'], + ['º', 'º', true, 'masculine ordinal indicator'], + ['†', '†', true, 'dagger'], + ['‡', '‡', true, 'double dagger'], +// alphabetical special chars + ['À', 'À', true, 'A - grave'], + ['Á', 'Á', true, 'A - acute'], + ['Â', 'Â', true, 'A - circumflex'], + ['Ã', 'Ã', true, 'A - tilde'], + ['Ä', 'Ä', true, 'A - diaeresis'], + ['Å', 'Å', true, 'A - ring above'], + ['Æ', 'Æ', true, 'ligature AE'], + ['Ç', 'Ç', true, 'C - cedilla'], + ['È', 'È', true, 'E - grave'], + ['É', 'É', true, 'E - acute'], + ['Ê', 'Ê', true, 'E - circumflex'], + ['Ë', 'Ë', true, 'E - diaeresis'], + ['Ì', 'Ì', true, 'I - grave'], + ['Í', 'Í', true, 'I - acute'], + ['Î', 'Î', true, 'I - circumflex'], + ['Ï', 'Ï', true, 'I - diaeresis'], + ['Ð', 'Ð', true, 'ETH'], + ['Ñ', 'Ñ', true, 'N - tilde'], + ['Ò', 'Ò', true, 'O - grave'], + ['Ó', 'Ó', true, 'O - acute'], + ['Ô', 'Ô', true, 'O - circumflex'], + ['Õ', 'Õ', true, 'O - tilde'], + ['Ö', 'Ö', true, 'O - diaeresis'], + ['Ø', 'Ø', true, 'O - slash'], + ['Œ', 'Œ', true, 'ligature OE'], + ['Š', 'Š', true, 'S - caron'], + ['Ù', 'Ù', true, 'U - grave'], + ['Ú', 'Ú', true, 'U - acute'], + ['Û', 'Û', true, 'U - circumflex'], + ['Ü', 'Ü', true, 'U - diaeresis'], + ['Ý', 'Ý', true, 'Y - acute'], + ['Ÿ', 'Ÿ', true, 'Y - diaeresis'], + ['Þ', 'Þ', true, 'THORN'], + ['à', 'à', true, 'a - grave'], + ['á', 'á', true, 'a - acute'], + ['â', 'â', true, 'a - circumflex'], + ['ã', 'ã', true, 'a - tilde'], + ['ä', 'ä', true, 'a - diaeresis'], + ['å', 'å', true, 'a - ring above'], + ['æ', 'æ', true, 'ligature ae'], + ['ç', 'ç', true, 'c - cedilla'], + ['è', 'è', true, 'e - grave'], + ['é', 'é', true, 'e - acute'], + ['ê', 'ê', true, 'e - circumflex'], + ['ë', 'ë', true, 'e - diaeresis'], + ['ì', 'ì', true, 'i - grave'], + ['í', 'í', true, 'i - acute'], + ['î', 'î', true, 'i - circumflex'], + ['ï', 'ï', true, 'i - diaeresis'], + ['ð', 'ð', true, 'eth'], + ['ñ', 'ñ', true, 'n - tilde'], + ['ò', 'ò', true, 'o - grave'], + ['ó', 'ó', true, 'o - acute'], + ['ô', 'ô', true, 'o - circumflex'], + ['õ', 'õ', true, 'o - tilde'], + ['ö', 'ö', true, 'o - diaeresis'], + ['ø', 'ø', true, 'o slash'], + ['œ', 'œ', true, 'ligature oe'], + ['š', 'š', true, 's - caron'], + ['ù', 'ù', true, 'u - grave'], + ['ú', 'ú', true, 'u - acute'], + ['û', 'û', true, 'u - circumflex'], + ['ü', 'ü', true, 'u - diaeresis'], + ['ý', 'ý', true, 'y - acute'], + ['þ', 'þ', true, 'thorn'], + ['ÿ', 'ÿ', true, 'y - diaeresis'], + ['Α', 'Α', true, 'Alpha'], + ['Β', 'Β', true, 'Beta'], + ['Γ', 'Γ', true, 'Gamma'], + ['Δ', 'Δ', true, 'Delta'], + ['Ε', 'Ε', true, 'Epsilon'], + ['Ζ', 'Ζ', true, 'Zeta'], + ['Η', 'Η', true, 'Eta'], + ['Θ', 'Θ', true, 'Theta'], + ['Ι', 'Ι', true, 'Iota'], + ['Κ', 'Κ', true, 'Kappa'], + ['Λ', 'Λ', true, 'Lambda'], + ['Μ', 'Μ', true, 'Mu'], + ['Ν', 'Ν', true, 'Nu'], + ['Ξ', 'Ξ', true, 'Xi'], + ['Ο', 'Ο', true, 'Omicron'], + ['Π', 'Π', true, 'Pi'], + ['Ρ', 'Ρ', true, 'Rho'], + ['Σ', 'Σ', true, 'Sigma'], + ['Τ', 'Τ', true, 'Tau'], + ['Υ', 'Υ', true, 'Upsilon'], + ['Φ', 'Φ', true, 'Phi'], + ['Χ', 'Χ', true, 'Chi'], + ['Ψ', 'Ψ', true, 'Psi'], + ['Ω', 'Ω', true, 'Omega'], + ['α', 'α', true, 'alpha'], + ['β', 'β', true, 'beta'], + ['γ', 'γ', true, 'gamma'], + ['δ', 'δ', true, 'delta'], + ['ε', 'ε', true, 'epsilon'], + ['ζ', 'ζ', true, 'zeta'], + ['η', 'η', true, 'eta'], + ['θ', 'θ', true, 'theta'], + ['ι', 'ι', true, 'iota'], + ['κ', 'κ', true, 'kappa'], + ['λ', 'λ', true, 'lambda'], + ['μ', 'μ', true, 'mu'], + ['ν', 'ν', true, 'nu'], + ['ξ', 'ξ', true, 'xi'], + ['ο', 'ο', true, 'omicron'], + ['π', 'π', true, 'pi'], + ['ρ', 'ρ', true, 'rho'], + ['ς', 'ς', true, 'final sigma'], + ['σ', 'σ', true, 'sigma'], + ['τ', 'τ', true, 'tau'], + ['υ', 'υ', true, 'upsilon'], + ['φ', 'φ', true, 'phi'], + ['χ', 'χ', true, 'chi'], + ['ψ', 'ψ', true, 'psi'], + ['ω', 'ω', true, 'omega'], +// symbols + ['ℵ', 'ℵ', false,'alef symbol'], + ['ϖ', 'ϖ', false,'pi symbol'], + ['ℜ', 'ℜ', false,'real part symbol'], + ['ϑ','ϑ', false,'theta symbol'], + ['ϒ', 'ϒ', false,'upsilon - hook symbol'], + ['℘', '℘', false,'Weierstrass p'], + ['ℑ', 'ℑ', false,'imaginary part'], +// arrows + ['←', '←', true, 'leftwards arrow'], + ['↑', '↑', true, 'upwards arrow'], + ['→', '→', true, 'rightwards arrow'], + ['↓', '↓', true, 'downwards arrow'], + ['↔', '↔', true, 'left right arrow'], + ['↵', '↵', false,'carriage return'], + ['⇐', '⇐', false,'leftwards double arrow'], + ['⇑', '⇑', false,'upwards double arrow'], + ['⇒', '⇒', false,'rightwards double arrow'], + ['⇓', '⇓', false,'downwards double arrow'], + ['⇔', '⇔', false,'left right double arrow'], + ['∴', '∴', false,'therefore'], + ['⊂', '⊂', false,'subset of'], + ['⊃', '⊃', false,'superset of'], + ['⊄', '⊄', false,'not a subset of'], + ['⊆', '⊆', false,'subset of or equal to'], + ['⊇', '⊇', false,'superset of or equal to'], + ['⊕', '⊕', false,'circled plus'], + ['⊗', '⊗', false,'circled times'], + ['⊥', '⊥', false,'perpendicular'], + ['⋅', '⋅', false,'dot operator'], + ['⌈', '⌈', false,'left ceiling'], + ['⌉', '⌉', false,'right ceiling'], + ['⌊', '⌊', false,'left floor'], + ['⌋', '⌋', false,'right floor'], + ['⟨', '〈', false,'left-pointing angle bracket'], + ['⟩', '〉', false,'right-pointing angle bracket'], + ['◊', '◊', true,'lozenge'], + ['♠', '♠', false,'black spade suit'], + ['♣', '♣', true, 'black club suit'], + ['♥', '♥', true, 'black heart suit'], + ['♦', '♦', true, 'black diamond suit'], + [' ', ' ', false,'en space'], + [' ', ' ', false,'em space'], + [' ', ' ', false,'thin space'], + ['‌', '‌', false,'zero width non-joiner'], + ['‍', '‍', false,'zero width joiner'], + ['‎', '‎', false,'left-to-right mark'], + ['‏', '‏', false,'right-to-left mark'], + ['­', '­', false,'soft hyphen'] +]; + +function renderCharMapHTML() { + var charsPerRow = 20, tdWidth=20, tdHeight=20; + var html = ''; + var cols=-1; + for (var i=0; i' + + charmap[i][1] + + ''; + if ((cols+1) % charsPerRow == 0) + html += ''; + } + } + if (cols % charsPerRow > 0) { + var padd = charsPerRow - (cols % charsPerRow); + for (var i=0; i '; + } + html += '
        '; + document.write(html); +} + +function insertChar(chr) { + tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';'); + + // Refocus in window + if (tinyMCEPopup.isWindow) + window.focus(); + + tinyMCEPopup.close(); +} + +function previewChar(codeA, codeB, codeN) { + var elmA = document.getElementById('codeA'); + var elmB = document.getElementById('codeB'); + var elmV = document.getElementById('codeV'); + var elmN = document.getElementById('codeN'); + + if (codeA=='#160;') { + elmV.innerHTML = '__'; + } else { + elmV.innerHTML = '&' + codeA; + } + + elmB.innerHTML = '&' + codeA; + elmA.innerHTML = '&' + codeB; + elmN.innerHTML = codeN; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/color_picker.js b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/color_picker.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/color_picker.js @@ -0,0 +1,240 @@ +var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false; + +var colors = new Array( + "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033", + "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099", + "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff", + "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033", + "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399", + "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff", + "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333", + "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399", + "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff", + "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633", + "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699", + "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff", + "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633", + "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999", + "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff", + "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933", + "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999", + "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff", + "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33", + "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99", + "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff", + "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33", + "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99", + "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff", + "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33", + "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99", + "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff" +); + +var named = { + '#F0F8FF':'AliceBlue','#FAEBD7':'AntiqueWhite','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige', + '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'BlanchedAlmond','#0000FF':'Blue','#8A2BE2':'BlueViolet','#A52A2A':'Brown', + '#DEB887':'BurlyWood','#5F9EA0':'CadetBlue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'CornflowerBlue', + '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'DarkBlue','#008B8B':'DarkCyan','#B8860B':'DarkGoldenRod', + '#A9A9A9':'DarkGray','#A9A9A9':'DarkGrey','#006400':'DarkGreen','#BDB76B':'DarkKhaki','#8B008B':'DarkMagenta','#556B2F':'DarkOliveGreen', + '#FF8C00':'Darkorange','#9932CC':'DarkOrchid','#8B0000':'DarkRed','#E9967A':'DarkSalmon','#8FBC8F':'DarkSeaGreen','#483D8B':'DarkSlateBlue', + '#2F4F4F':'DarkSlateGray','#2F4F4F':'DarkSlateGrey','#00CED1':'DarkTurquoise','#9400D3':'DarkViolet','#FF1493':'DeepPink','#00BFFF':'DeepSkyBlue', + '#696969':'DimGray','#696969':'DimGrey','#1E90FF':'DodgerBlue','#B22222':'FireBrick','#FFFAF0':'FloralWhite','#228B22':'ForestGreen', + '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'GhostWhite','#FFD700':'Gold','#DAA520':'GoldenRod','#808080':'Gray','#808080':'Grey', + '#008000':'Green','#ADFF2F':'GreenYellow','#F0FFF0':'HoneyDew','#FF69B4':'HotPink','#CD5C5C':'IndianRed','#4B0082':'Indigo','#FFFFF0':'Ivory', + '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'LavenderBlush','#7CFC00':'LawnGreen','#FFFACD':'LemonChiffon','#ADD8E6':'LightBlue', + '#F08080':'LightCoral','#E0FFFF':'LightCyan','#FAFAD2':'LightGoldenRodYellow','#D3D3D3':'LightGray','#D3D3D3':'LightGrey','#90EE90':'LightGreen', + '#FFB6C1':'LightPink','#FFA07A':'LightSalmon','#20B2AA':'LightSeaGreen','#87CEFA':'LightSkyBlue','#778899':'LightSlateGray','#778899':'LightSlateGrey', + '#B0C4DE':'LightSteelBlue','#FFFFE0':'LightYellow','#00FF00':'Lime','#32CD32':'LimeGreen','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon', + '#66CDAA':'MediumAquaMarine','#0000CD':'MediumBlue','#BA55D3':'MediumOrchid','#9370D8':'MediumPurple','#3CB371':'MediumSeaGreen','#7B68EE':'MediumSlateBlue', + '#00FA9A':'MediumSpringGreen','#48D1CC':'MediumTurquoise','#C71585':'MediumVioletRed','#191970':'MidnightBlue','#F5FFFA':'MintCream','#FFE4E1':'MistyRose','#FFE4B5':'Moccasin', + '#FFDEAD':'NavajoWhite','#000080':'Navy','#FDF5E6':'OldLace','#808000':'Olive','#6B8E23':'OliveDrab','#FFA500':'Orange','#FF4500':'OrangeRed','#DA70D6':'Orchid', + '#EEE8AA':'PaleGoldenRod','#98FB98':'PaleGreen','#AFEEEE':'PaleTurquoise','#D87093':'PaleVioletRed','#FFEFD5':'PapayaWhip','#FFDAB9':'PeachPuff', + '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'PowderBlue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'RosyBrown','#4169E1':'RoyalBlue', + '#8B4513':'SaddleBrown','#FA8072':'Salmon','#F4A460':'SandyBrown','#2E8B57':'SeaGreen','#FFF5EE':'SeaShell','#A0522D':'Sienna','#C0C0C0':'Silver', + '#87CEEB':'SkyBlue','#6A5ACD':'SlateBlue','#708090':'SlateGray','#708090':'SlateGrey','#FFFAFA':'Snow','#00FF7F':'SpringGreen', + '#4682B4':'SteelBlue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet', + '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'WhiteSmoke','#FFFF00':'Yellow','#9ACD32':'YellowGreen' +}; + +function init() { + var inputColor = convertRGBToHex(tinyMCE.getWindowArg('input_color')); + + if (tinyMCE.isMSIE) + tinyMCEPopup.resizeToInnerSize(); + + generatePicker(); + + if (inputColor) { + changeFinalColor(inputColor); + + col = convertHexToRGB(inputColor); + + if (col) + updateLight(col.r, col.g, col.b); + } +} + +function insertAction() { + var color = document.getElementById("color").value; + + tinyMCEPopup.execCommand(tinyMCE.getWindowArg('command'), false, color); + tinyMCEPopup.close(); +} + +function showColor(color, name) { + if (name) + document.getElementById("colorname").innerHTML = name; + + document.getElementById("preview").style.backgroundColor = color; + document.getElementById("color").value = color; +} + +function convertRGBToHex(col) { + var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi"); + + if (!col) + return col; + + var rgb = col.replace(re, "$1,$2,$3").split(','); + if (rgb.length == 3) { + r = parseInt(rgb[0]).toString(16); + g = parseInt(rgb[1]).toString(16); + b = parseInt(rgb[2]).toString(16); + + r = r.length == 1 ? '0' + r : r; + g = g.length == 1 ? '0' + g : g; + b = b.length == 1 ? '0' + b : b; + + return "#" + r + g + b; + } + + return col; +} + +function convertHexToRGB(col) { + if (col.indexOf('#') != -1) { + col = col.replace(new RegExp('[^0-9A-F]', 'gi'), ''); + + r = parseInt(col.substring(0, 2), 16); + g = parseInt(col.substring(2, 4), 16); + b = parseInt(col.substring(4, 6), 16); + + return {r : r, g : g, b : b}; + } + + return null; +} + +function generatePicker() { + var el = document.getElementById('light'), h = '', i; + + for (i = 0; i < detail; i++){ + h += '
        '; + } + + el.innerHTML = h; +} + +function generateWebColors() { + var el = document.getElementById('webcolors'), h = '', i; + + if (el.className == 'generated') + return; + + h += '' + + ''; + + for (i=0; i' + + '' + + '' + colors[i] +  ''; + if ((i+1) % 18 == 0) + h += ''; + } + + h += '
        '; + + el.innerHTML = h; + el.className = 'generated'; +} + +function generateNamedColors() { + var el = document.getElementById('namedcolors'), h = '', n, v, i = 0; + + if (el.className == 'generated') + return; + + for (n in named) { + v = named[n]; + h += '' + } + + el.innerHTML = h; + el.className = 'generated'; +} + +function dechex(n) { + return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16); +} + +function computeColor(e) { + var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB; + + x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0); + y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0); + + partWidth = document.getElementById('colorpicker').width / 6; + partDetail = detail / 2; + imHeight = document.getElementById('colorpicker').height; + + r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255; + g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255 + (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth); + b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth); + + coef = (imHeight - y) / imHeight; + r = 128 + (r - 128) * coef; + g = 128 + (g - 128) * coef; + b = 128 + (b - 128) * coef; + + changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b)); + updateLight(r, g, b); +} + +function updateLight(r, g, b) { + var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color; + + for (i=0; i=0) && (i'); +} + +function insertImage() { + var src = document.forms[0].src.value; + var alt = document.forms[0].alt.value; + var border = document.forms[0].border.value; + var vspace = document.forms[0].vspace.value; + var hspace = document.forms[0].hspace.value; + var width = document.forms[0].width.value; + var height = document.forms[0].height.value; + var align = document.forms[0].align.options[document.forms[0].align.selectedIndex].value; + + tinyMCEPopup.restoreSelection(); + tinyMCE.themes['advanced']._insertImage(src, alt, border, hspace, vspace, width, height, align); + tinyMCEPopup.close(); +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image'); + + var formObj = document.forms[0]; + + for (var i=0; i 0) { + for (var i=0; i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/link.js b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/link.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/jscripts/link.js @@ -0,0 +1,74 @@ +var url = tinyMCE.getParam("external_link_list_url"); +if (url != null) { + // Fix relative + if (url.charAt(0) != '/' && url.indexOf('://') == -1) + url = tinyMCE.documentBasePath + "/" + url; + + document.write(''); +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','theme_advanced_link'); + + // Handle file browser + if (isVisible('hrefbrowser')) + document.getElementById('href').style.width = '180px'; + + var formObj = document.forms[0]; + + for (var i=0; i 0) { + var formObj = document.forms[0]; + + for (var i=0; i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/link.htm b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/link.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/link.htm @@ -0,0 +1,101 @@ + + + {$lang_insert_link_title} + + + + + + + + +
        + + +
        +
        + + + + + + + + + + + + + + + + + + + + + +
        + + + + +
         
        +
        +
        +
        + +
        +
        + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm @@ -0,0 +1,32 @@ + + + + {$lang_theme_code_title} + + + + + +
        +
        {$lang_theme_code_title}
        + +
        + +
        + +
        + + + +
        +
        + +
        + +
        + +
        +
        +
        + + diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/themes/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/editor_content.css b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/editor_content.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/editor_content.css @@ -0,0 +1,25 @@ +body, td, pre { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +body { + background-color: #FFFFFF; +} + +.mceVisualAid { + border: 1px dashed #BBBBBB; +} + +/* MSIE specific */ + +* html body { + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/editor_popup.css b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/editor_popup.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/editor_popup.css @@ -0,0 +1,41 @@ +body { + background-color: #F0F0EE; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 11px; + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} + +td { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 11px; +} + +input { + background: #FFFFFF; + border: 1px solid #cccccc; +} + +td, input, select, textarea { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +input, select, textarea { + border: 1px solid #808080; +} + +.input_noborder { + border: 0; +} + +.title { + font-size: 12px; + font-weight: bold; +} \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/editor_ui.css b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/editor_ui.css new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/editor_ui.css @@ -0,0 +1,125 @@ +.mceSeparatorLine { + border: 0; + padding: 0; + margin-left: 4px; + margin-right: 2px; +} + +.mceSelectList { + font-family: "MS Sans Serif"; + font-size: 7pt; + font-weight: normal; + margin-top: 2px; +} + +.mceLabel, .mceLabelDisabled { + font-family: "MS Sans Serif"; + font-size: 9pt; +} + +.mceLabel { + color: #000000; +} + +.mceLabelDisabled { + cursor: text; + color: #999999; +} + +.mceEditor { + background: #F0F0EE; + border: 1px solid #cccccc; +} + +.mceEditorArea { + font-family: "MS Sans Serif"; + background: #FFFFFF; +} + +.mceToolbar { + background: #F0F0EE; + border-top: 1px solid #cccccc; + line-height: 1px; + font-size: 1px; + padding-bottom: 1px; +} + +.mceEditorIframe { + border: 0; +} + +/* Button CSS rules */ + +a.mceButtonDisabled img, a.mceButtonNormal img, a.mceButtonSelected img { + width: 20px; + height: 20px; + cursor: default; + margin-top: 1px; + margin-left: 1px; +} + +a.mceButtonDisabled img { + border: 0 !important; +} + +a.mceButtonNormal img, a.mceButtonSelected img { + border: 1px solid #F0F0EE !important; +} + +a.mceButtonSelected img { + border: 1px solid #C0C0BB !important; +} + +a.mceButtonNormal img:hover, a.mceButtonSelected img:hover { + border: 1px solid #0A246A !important; + cursor: default; + background-color: #B6BDD2; +} + +a.mceButtonDisabled img { + -moz-opacity:0.3; + opacity: 0.3; + border: 1px solid #F0F0EE !important; + cursor: default; +} + +a.mceTiledButton img { + background-image: url('../images/buttons.gif'); + background-repeat: no-repeat; +} + +/* MSIE specific rules */ + +* html a.mceButtonNormal img, * html a.mceButtonSelected img, * html a.mceButtonDisabled img { + border: 0px !important; + margin-top: 2px; + margin-bottom: 1px; +} + +* html a.mceButtonDisabled img { + filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); + border: 0px !important; +} + +* html a.mceButtonDisabled { + border: 1px solid #F0F0EE !important; +} + +* html a.mceButtonNormal, * html a.mceButtonSelected { + border: 1px solid #F0F0EE; + cursor: default; +} + +* html a.mceButtonSelected { + border: 1px solid #C0C0BB; +} + +* html a.mceButtonNormal:hover, * html a.mceButtonSelected:hover { + border: 1px solid #0A246A; + cursor: default; + background-color: #B6BDD2; +} + +* html .mceSelectList { + margin-top: 2px; +} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/css/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js @@ -0,0 +1,1 @@ +var TinyMCE_SimpleTheme={_buttonMap:'bold,bullist,cleanup,italic,numlist,redo,strikethrough,underline,undo',getEditorTemplate:function(){var html='';html+='';html+='';html+='
        ';html+='IFRAME';html+='
        ';html+=tinyMCE.getButtonHTML('bold','lang_bold_desc','{$themeurl}/images/{$lang_bold_img}','Bold');html+=tinyMCE.getButtonHTML('italic','lang_italic_desc','{$themeurl}/images/{$lang_italic_img}','Italic');html+=tinyMCE.getButtonHTML('underline','lang_underline_desc','{$themeurl}/images/{$lang_underline_img}','Underline');html+=tinyMCE.getButtonHTML('strikethrough','lang_striketrough_desc','{$themeurl}/images/strikethrough.gif','Strikethrough');html+='';html+=tinyMCE.getButtonHTML('undo','lang_undo_desc','{$themeurl}/images/undo.gif','Undo');html+=tinyMCE.getButtonHTML('redo','lang_redo_desc','{$themeurl}/images/redo.gif','Redo');html+='';html+=tinyMCE.getButtonHTML('cleanup','lang_cleanup_desc','{$themeurl}/images/cleanup.gif','mceCleanup');html+='';html+=tinyMCE.getButtonHTML('bullist','lang_bullist_desc','{$themeurl}/images/bullist.gif','InsertUnorderedList');html+=tinyMCE.getButtonHTML('numlist','lang_numlist_desc','{$themeurl}/images/numlist.gif','InsertOrderedList');html+='
        ';return{delta_width:0,delta_height:20,html:html}},handleNodeChange:function(editor_id,node){tinyMCE.switchClass(editor_id+'_bold','mceButtonNormal');tinyMCE.switchClass(editor_id+'_italic','mceButtonNormal');tinyMCE.switchClass(editor_id+'_underline','mceButtonNormal');tinyMCE.switchClass(editor_id+'_strikethrough','mceButtonNormal');tinyMCE.switchClass(editor_id+'_bullist','mceButtonNormal');tinyMCE.switchClass(editor_id+'_numlist','mceButtonNormal');do{switch(node.nodeName.toLowerCase()){case"b":case"strong":tinyMCE.switchClass(editor_id+'_bold','mceButtonSelected');break;case"i":case"em":tinyMCE.switchClass(editor_id+'_italic','mceButtonSelected');break;case"u":tinyMCE.switchClass(editor_id+'_underline','mceButtonSelected');break;case"strike":tinyMCE.switchClass(editor_id+'_strikethrough','mceButtonSelected');break;case"ul":tinyMCE.switchClass(editor_id+'_bullist','mceButtonSelected');break;case"ol":tinyMCE.switchClass(editor_id+'_numlist','mceButtonSelected');break}}while((node=node.parentNode)!=null)}};tinyMCE.addTheme("simple",TinyMCE_SimpleTheme);tinyMCE.addButtonMap(TinyMCE_SimpleTheme._buttonMap); \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js @@ -0,0 +1,84 @@ +/** + * $Id: editor_template_src.js 162 2007-01-03 16:16:52Z spocke $ + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +var TinyMCE_SimpleTheme = { + // List of button ids in tile map + _buttonMap : 'bold,bullist,cleanup,italic,numlist,redo,strikethrough,underline,undo', + + getEditorTemplate : function() { + var html = ''; + + html += ''; + html += ''; + html += '
        '; + html += 'IFRAME'; + html += '
        '; + html += tinyMCE.getButtonHTML('bold', 'lang_bold_desc', '{$themeurl}/images/{$lang_bold_img}', 'Bold'); + html += tinyMCE.getButtonHTML('italic', 'lang_italic_desc', '{$themeurl}/images/{$lang_italic_img}', 'Italic'); + html += tinyMCE.getButtonHTML('underline', 'lang_underline_desc', '{$themeurl}/images/{$lang_underline_img}', 'Underline'); + html += tinyMCE.getButtonHTML('strikethrough', 'lang_striketrough_desc', '{$themeurl}/images/strikethrough.gif', 'Strikethrough'); + html += ''; + html += tinyMCE.getButtonHTML('undo', 'lang_undo_desc', '{$themeurl}/images/undo.gif', 'Undo'); + html += tinyMCE.getButtonHTML('redo', 'lang_redo_desc', '{$themeurl}/images/redo.gif', 'Redo'); + html += ''; + html += tinyMCE.getButtonHTML('cleanup', 'lang_cleanup_desc', '{$themeurl}/images/cleanup.gif', 'mceCleanup'); + html += ''; + html += tinyMCE.getButtonHTML('bullist', 'lang_bullist_desc', '{$themeurl}/images/bullist.gif', 'InsertUnorderedList'); + html += tinyMCE.getButtonHTML('numlist', 'lang_numlist_desc', '{$themeurl}/images/numlist.gif', 'InsertOrderedList'); + html += '
        '; + + return { + delta_width : 0, + delta_height : 20, + html : html + }; + }, + + handleNodeChange : function(editor_id, node) { + // Reset old states + tinyMCE.switchClass(editor_id + '_bold', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_italic', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_underline', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_strikethrough', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_bullist', 'mceButtonNormal'); + tinyMCE.switchClass(editor_id + '_numlist', 'mceButtonNormal'); + + // Handle elements + do { + switch (node.nodeName.toLowerCase()) { + case "b": + case "strong": + tinyMCE.switchClass(editor_id + '_bold', 'mceButtonSelected'); + break; + + case "i": + case "em": + tinyMCE.switchClass(editor_id + '_italic', 'mceButtonSelected'); + break; + + case "u": + tinyMCE.switchClass(editor_id + '_underline', 'mceButtonSelected'); + break; + + case "strike": + tinyMCE.switchClass(editor_id + '_strikethrough', 'mceButtonSelected'); + break; + + case "ul": + tinyMCE.switchClass(editor_id + '_bullist', 'mceButtonSelected'); + break; + + case "ol": + tinyMCE.switchClass(editor_id + '_numlist', 'mceButtonSelected'); + break; + } + } while ((node = node.parentNode) != null); + } +}; + +tinyMCE.addTheme("simple", TinyMCE_SimpleTheme); +tinyMCE.addButtonMap(TinyMCE_SimpleTheme._buttonMap); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/bold.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/bold.gif new file mode 100644 index 0000000000000000000000000000000000000000..d6a9cc2cd4117526156fa29c06156ba5971823c4 GIT binary patch literal 76 zc${3a?E=Bm(Rqw7V Z4AWqey4jFcx$b3$*C(Ir-+DzDtN~+a79aos diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/bold_de_se.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/bold_de_se.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b129de25e916946792c89f08a7b30b2f9dc8b72 GIT binary patch literal 73 zc${+8$Fz@Ye(g^_`QkwFK@W&p`BFsbzPuRQ&he=&V4Auam85Vf} diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/bold_tw.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/bold_tw.gif new file mode 100644 index 0000000000000000000000000000000000000000..82085432c622fb9b195d45480ce0c00f80d24027 GIT binary patch literal 207 zc$@*x05JbYNk%w1VH5xq0J9DNySuyH-QDi)?jj;0%*@PHRaKdpnGq2YcXxM0L_~;) zh%+-YW@csp00960{{R30A^8LW000gEEC2ui02BZe000Dh(8)=wy*N7}G;WM{HHkzh zs6t%9fi%d0HcQepm#{3&(I_#A0+$;m0FJ}}WxKp?w}cH!tRNB$k|H1#RxPhVL6BGg z09nkC_M1X4*#RtJD4)}o#(?mXbR9t%Fa-%dPzMPG0V6gC3@He52a91h#Kfdz)l@%W&!*iMf|{-?85Jc}En;9`Q2fcl$iTqPpaWzx zfYdTD8&>SP^UvUv=WT(-MvhHP2^@CL3Kgu4H>o$?I%%c|6PuTPQj@ zlcU}If|RV9+-%ftpI?)gR~OWD-L~lZr4!TAQ;%E4&f7G}D6a0<&ZGBr{U;q-D8x}mX=9XPKzcL zEt-|Yz`y_$WEgxv@h1x-1A`xf4u}Ja69)GG4Sr3{Ev;?s9i3g>J-vPX6DCfYJZ0*% z=`&`|nmuRky!i_jE)-Q%R9>`V<*H^*0nXXViY_JwGwpb%GBdL?ukhXP>v!N_uQ=mz z@t(tny95k%n;0%#zSJYia%1CWTh;Ew2#bJF#RG|!BEw_rwy;_@KWn*T;;bLiqbs1;#Ko!-RuOS==IdxT z={hm@oz zK2r`b`E}M@JHf_dxuqe_?}WfbX3H7n_kwD+ZVwdB*PPM8p*A<9SwWn`;9%a5+!czd z`V&6PY0!L;(9F&8uk5apZKil9n}*0k54+y8*Y255nxnwP5ySfPWHr0@0gc7n5-Ka_ zsXLZ#@KQ7PDR5HfdQ7YnwZ zVAs}QRMp@$*)n%t=Z0hFrcQcb;K&wTB*{`g<-<>B4YwB-oq8R9LJR_5QeUl9wB`Ku Va>bHqS+7>EShgxly^(>z8UTl=n>+vj diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/cleanup.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/cleanup.gif new file mode 100644 index 0000000000000000000000000000000000000000..16491f6cfcf3e1123f08352c895f8010f791c469 GIT binary patch literal 256 zc$@(M0ssC-Nk%w1VH5xq0MrlwMm#2xdP3^ge4>(aXJcF2&#c0@g7@*TXJyAiI+Bx- z!osRT%E{EUw6tz+enw7G^6K)^$d=yS-J+Ue{{6y&f`-z%VxXFs!L^y{+>(HFVv>^L zOipLAk}~7mu>b%7A^8LW0018VEC2ui02BZe000Gj;3tk`X`X1RuBfCa3_CK)hB&I! z?6jS5DV>BNxhN371`1>FG$6!^gQF}JB8CHn;<-pFjYq{)@NCbANaf;iJjfX><#5Od z41@~dZSq94bpiqw6C4j!WCnJE77HB!h$k2WjE(>oEEpP%kC-wT1Ob;aBcK|jsHv(a GApkq`d~Wvu diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/index.html b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/italic.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/italic.gif new file mode 100644 index 0000000000000000000000000000000000000000..8bb330bd0bbf61fdb5ce86388ecbeae16465bc17 GIT binary patch literal 79 zc${_+b+wcJF`+8$Fz@Ye(g^_`QkwFK@W&p`BFsb(RuRQ&hf3e8|rl>@| g-;s5$k$uy}dmH1H=FS{~1UDia%Kx85jf@bU+-CoeZq~3Mzdmne#HN^t7sMoHaM3 zKeDON5$Z4EYhX`qtk99-JldR4#mcjY<*+8l94Yoj2$|NLMcr)@lr3G4b21>PvGV9&5-I=QIi%&s}{E7Q0w PIrj2oy~qv|Vz34P1?eX! diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/redo.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/redo.gif new file mode 100644 index 0000000000000000000000000000000000000000..3af90697f0b74d0b6b07b585614a6dc67ff87f1d GIT binary patch literal 169 zc$@*L09OA;Nk%w1VH5xq0K*FaEl-kjqwqa)*O$8QUUsNeit)O{)H!9gj;!cSf8=SD z@4U+CH(H=qeZQ%{>Hq)$A^8LW000jFEC2ui02BZe000D5@X1N5y*TU5@mkK(Nsfb@ zh`52taWqPx3Yb$cP21Nib_4)BqDn)z diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/separator.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/separator.gif new file mode 100644 index 0000000000000000000000000000000000000000..4f39b809e98103422a7a8815d9e0ff23123034b5 GIT binary patch literal 57 zc${X*~6o0ZXGB7YP=m6OaAbAERt|_b&SD$^K#C1@F G!5RSXJ`hL% diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/spacer.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a GIT binary patch literal 43 nc${5`RB^ury^=8j) h^eUTr??>*V8C&%_D;C}?e9svC>)iK$`!yICtN}048)X0h diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/underline.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/underline.gif new file mode 100644 index 0000000000000000000000000000000000000000..1dfeb5f6d06e21a25615a9eb0cbd2a74ab0efa42 GIT binary patch literal 88 zc${)iK!0SpY*0G3P}*Z=?k diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/underline_fr.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/underline_fr.gif new file mode 100644 index 0000000000000000000000000000000000000000..551d9148d302c5f58b3b20d2c6a642450889a7ef GIT binary patch literal 79 zc${+8$Fz@Ye(g^_`QkwFK@W&p`BFsbzPuRQ&he=&b6$oQ-^4DvkU-JNSuB@*WkdRx^dDpvoXMfpGVe^t0s*%M50L^JPNgOW9=DY{ zwRUPR{VJ=i!y~Yn|5a^3pX^@$7R;GXz&U2_VU>FP2yDM T6q-JRmwm<@?$-GliVW5OQO`~G diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/undo.gif b/plugins/editors/tinymce/jscripts/tiny_mce/themes/simple/images/undo.gif new file mode 100644 index 0000000000000000000000000000000000000000..520796d69defa118055d191eec33cc67f7551710 GIT binary patch literal 175 zc$@*R08sx&Nk%w1VH5xq0K*FaI$fTWtk6Go+_}Zyr?=K#e#T#ZwX4DHa-Hu#XSz{; z-OtzKVv^{Tv+z=g@&Et;A^8LW000jFEC2ui02BZe000DB@X1N5y*TU5^*Z3vJx60U zVAe<_A|#2DUTDd{g#kDRhWrRvKmt&#E(`|)VHiweM~gz>Krlp-Snncu!2ps)!r>e} d2m*##Qg9H=3xcDt9yk \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce.js b/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce.js @@ -0,0 +1,1 @@ +function TinyMCE_Engine(){var ua;this.majorVersion="2";this.minorVersion="1.2";this.releaseDate="2007-08-21";this.instances=[];this.switchClassCache=[];this.windowArgs=[];this.loadedFiles=[];this.pendingFiles=[];this.loadingIndex=0;this.configs=[];this.currentConfig=0;this.eventHandlers=[];this.log=[];this.undoLevels=[];this.undoIndex=0;this.typingUndoIndex=-1;this.settings=[];ua=navigator.userAgent;this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.isMSIE5=this.isMSIE&&(ua.indexOf('MSIE 5')!=-1);this.isMSIE5_0=this.isMSIE&&(ua.indexOf('MSIE 5.0')!=-1);this.isMSIE7=this.isMSIE&&(ua.indexOf('MSIE 7')!=-1);this.isGecko=ua.indexOf('Gecko')!=-1;this.isSafari=ua.indexOf('Safari')!=-1;this.isOpera=window['opera']&&opera.buildNumber?true:false;this.isMac=ua.indexOf('Mac')!=-1;this.isNS7=ua.indexOf('Netscape/7')!=-1;this.isNS71=ua.indexOf('Netscape/7.1')!=-1;this.dialogCounter=0;this.plugins=[];this.themes=[];this.menus=[];this.loadedPlugins=[];this.buttonMap=[];this.isLoaded=false;if(this.isOpera){this.isMSIE=true;this.isGecko=false;this.isSafari=false}this.isIE=this.isMSIE;this.isRealIE=this.isMSIE&&!this.isOpera;this.idCounter=0};TinyMCE_Engine.prototype={init:function(settings){var theme,nl,baseHREF="",i,cssPath,entities,h,p,src,elements=[],head;if(this.isMSIE5_0)return;this.settings=settings;if(typeof(document.execCommand)=='undefined')return;if(!tinyMCE.baseURL){head=document.getElementsByTagName('head')[0];if(head){for(i=0,nl=head.getElementsByTagName('script');i');this._def("font_size_classes",'');this._def("font_size_style_values",'xx-small,x-small,small,medium,large,x-large,xx-large',true);this._def("event_elements",'a,img',true);this._def("convert_urls",true);this._def("table_inline_editing",false);this._def("object_resizing",true);this._def("custom_shortcuts",true);this._def("convert_on_click",false);this._def("content_css",'');this._def("fix_list_elements",true);this._def("fix_table_elements",false);this._def("strict_loading_mode",document.contentType=='application/xhtml+xml');this._def("hidden_tab_class",'');this._def("display_tab_class",'');this._def("gecko_spellcheck",false);this._def("hide_selects_on_submit",true);this._def("forced_root_block",false);this._def("remove_trailing_nbsp",false);this._def("save_on_tinymce_forms",false);if(this.isMSIE&&!this.isOpera)this.settings.strict_loading_mode=false;if(this.isMSIE&&this.settings.browsers.indexOf('msie')==-1)return;if(this.isGecko&&this.settings.browsers.indexOf('gecko')==-1)return;if(this.isSafari&&this.settings.browsers.indexOf('safari')==-1)return;if(this.isOpera&&this.settings.browsers.indexOf('opera')==-1)return;baseHREF=tinyMCE.settings.document_base_url;h=document.location.href;p=h.indexOf('://');if(p>0&&document.location.protocol!="file:"){p=h.indexOf('/',p+3);h=h.substring(0,p);if(baseHREF.indexOf('://')==-1)baseHREF=h+baseHREF;tinyMCE.settings.document_base_url=baseHREF;tinyMCE.settings.document_base_prefix=h}if(baseHREF.indexOf('?')!=-1)baseHREF=baseHREF.substring(0,baseHREF.indexOf('?'));this.settings.base_href=baseHREF.substring(0,baseHREF.lastIndexOf('/'))+"/";theme=this.settings.theme;this.inlineStrict='A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';this.inlineTransitional='A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';this.blockElms='H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';this.blockRegExp=new RegExp("^("+this.blockElms+")$","i");this.posKeyCodes=[13,45,36,35,33,34,37,38,39,40];this.uniqueURL='javascript:void(091039730);';this.uniqueTag='';this.callbacks=['onInit','getInfo','getEditorTemplate','setupContent','onChange','onPageLoad','handleNodeChange','initInstance','execCommand','getControlHTML','handleEvent','cleanup','removeInstance'];this.settings.theme_href=tinyMCE.baseURL+"/themes/"+theme;if(!tinyMCE.isIE||tinyMCE.isOpera)this.settings.force_br_newlines=false;if(tinyMCE.getParam("popups_css",false)){cssPath=tinyMCE.getParam("popups_css","");if(cssPath.indexOf('://')==-1&&cssPath.charAt(0)!='/')this.settings.popups_css=this.documentBasePath+"/"+cssPath;else this.settings.popups_css=cssPath}else this.settings.popups_css=tinyMCE.baseURL+"/themes/"+theme+"/css/editor_popup.css";if(tinyMCE.getParam("editor_css",false)){cssPath=tinyMCE.getParam("editor_css","");if(cssPath.indexOf('://')==-1&&cssPath.charAt(0)!='/')this.settings.editor_css=this.documentBasePath+"/"+cssPath;else this.settings.editor_css=cssPath}else{if(this.settings.editor_css!=='')this.settings.editor_css=tinyMCE.baseURL+"/themes/"+theme+"/css/editor_ui.css"}if(this.configs.length==0){if(typeof(TinyMCECompressed)=="undefined"){tinyMCE.addEvent(window,"DOMContentLoaded",TinyMCE_Engine.prototype.onLoad);if(tinyMCE.isRealIE){if(document.body)tinyMCE.addEvent(document.body,"readystatechange",TinyMCE_Engine.prototype.onLoad);else tinyMCE.addEvent(document,"readystatechange",TinyMCE_Engine.prototype.onLoad)}tinyMCE.addEvent(window,"load",TinyMCE_Engine.prototype.onLoad);tinyMCE._addUnloadEvents()}}this.loadScript(tinyMCE.baseURL+'/themes/'+this.settings.theme+'/editor_template'+tinyMCE.srcMode+'.js');this.loadScript(tinyMCE.baseURL+'/langs/'+this.settings.language+'.js');this.loadCSS(this.settings.editor_css);p=tinyMCE.getParam('plugins','',true,',');if(p.length>0){for(i=0;i&"]','g')},_addUnloadEvents:function(){var st=tinyMCE.settings.add_unload_trigger;if(tinyMCE.isIE){if(st){tinyMCE.addEvent(window,"unload",TinyMCE_Engine.prototype.unloadHandler);tinyMCE.addEvent(window.document,"beforeunload",TinyMCE_Engine.prototype.unloadHandler)}}else{if(st)tinyMCE.addEvent(window,"unload",function(){tinyMCE.triggerSave(true,true)})}},_def:function(key,def_val,t){var v=tinyMCE.getParam(key,def_val);v=t?v.replace(/\s+/g,""):v;this.settings[key]=v},hasPlugin:function(n){return typeof(this.plugins[n])!="undefined"&&this.plugins[n]!=null},addPlugin:function(n,p){var op=this.plugins[n];p.baseURL=op?op.baseURL:tinyMCE.baseURL+"/plugins/"+n;this.plugins[n]=p;this.loadNextScript()},setPluginBaseURL:function(n,u){var op=this.plugins[n];if(op)op.baseURL=u;else this.plugins[n]={baseURL:u}},loadPlugin:function(n,u){u=u.indexOf('.js')!=-1?u.substring(0,u.lastIndexOf('/')):u;u=u.charAt(u.length-1)=='/'?u.substring(0,u.length-1):u;this.plugins[n]={baseURL:u};this.loadScript(u+"/editor_plugin"+(tinyMCE.srcMode?'_src':'')+".js")},hasTheme:function(n){return typeof(this.themes[n])!="undefined"&&this.themes[n]!=null},addTheme:function(n,t){this.themes[n]=t;this.loadNextScript()},addMenu:function(n,m){this.menus[n]=m},hasMenu:function(n){return typeof(this.plugins[n])!="undefined"&&this.plugins[n]!=null},loadScript:function(url){var i;for(i=0;i');this.loadedFiles[this.loadedFiles.length]=url},loadNextScript:function(){var d=document,se;if(!tinyMCE.settings.strict_loading_mode)return;if(this.loadingIndex0){for(i=0,lflen=this.loadedFiles.length;i');this.loadedFiles[this.loadedFiles.length]=ar[x]}}}},importCSS:function(doc,css){var css_ary=css.replace(/\s+/,'').split(',');var csslen,elm,headArr,x,css_file;for(x=0,csslen=css_ary.length;x0){if(css_file.indexOf('://')==-1&&css_file.charAt(0)!='/')css_file=this.documentBasePath+"/"+css_file;if(typeof(doc.createStyleSheet)=="undefined"){elm=doc.createElement("link");elm.rel="stylesheet";elm.href=css_file;if((headArr=doc.getElementsByTagName("head"))!=null&&headArr.length>0)headArr[0].appendChild(elm)}else doc.createStyleSheet(css_file)}}},confirmAdd:function(e,settings){var elm=tinyMCE.isIE?event.srcElement:e.target;var elementId=elm.name?elm.name:elm.id;tinyMCE.settings=settings;if(tinyMCE.settings.convert_on_click||(!elm.getAttribute('mce_noask')&&confirm(tinyMCELang.lang_edit_confirm)))tinyMCE.addMCEControl(elm,elementId);elm.setAttribute('mce_noask','true')},updateContent:function(form_element_name){var formElement,n,inst,doc;formElement=document.getElementById(form_element_name);for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;inst.switchSettings();if(inst.formElement==formElement){doc=inst.getDoc();tinyMCE._setHTML(doc,inst.formElement.value);if(!tinyMCE.isIE)doc.body.innerHTML=tinyMCE._cleanupHTML(inst,doc,this.settings,doc.body,inst.visualAid)}}},addMCEControl:function(replace_element,form_element_name,target_document){var id="mce_editor_"+tinyMCE.idCounter++;var inst=new TinyMCE_Control(tinyMCE.settings);inst.editorId=id;this.instances[id]=inst;inst._onAdd(replace_element,form_element_name,target_document)},removeInstance:function(ti){var t=[],n,i;for(n in tinyMCE.instances){i=tinyMCE.instances[n];if(tinyMCE.isInstance(i)&&ti!=i)t[n]=i}tinyMCE.instances=t;n=[];t=tinyMCE.undoLevels;for(i=0;i0){tinyMCE.nextUndoRedoAction='Undo';inst=this.undoLevels[--this.undoIndex];inst.select();if(!tinyMCE.nextUndoRedoInstanceId)inst.execCommand('Undo')}}else inst.execCommand('Undo');return true;case"Redo":if(this.getParam('custom_undo_redo_global')){if(this.undoIndex<=this.undoLevels.length-1){tinyMCE.nextUndoRedoAction='Redo';inst=this.undoLevels[this.undoIndex++];inst.select();if(!tinyMCE.nextUndoRedoInstanceId)inst.execCommand('Redo')}}else inst.execCommand('Redo');return true;case'mceFocus':inst=tinyMCE.getInstanceById(value);if(inst)inst.getWin().focus();return;case"mceAddControl":case"mceAddEditor":tinyMCE.addMCEControl(tinyMCE._getElementById(value),value);return;case"mceAddFrameControl":tinyMCE.addMCEControl(tinyMCE._getElementById(value.element,value.document),value.element,value.document);return;case"mceRemoveControl":case"mceRemoveEditor":tinyMCE.removeMCEControl(value);return;case"mceToggleEditor":inst=tinyMCE.getInstanceById(value);if(inst){pe=document.getElementById(inst.editorId+'_parent');te=inst.oldTargetElement;if(typeof(inst.enabled)=='undefined')inst.enabled=true;inst.enabled=!inst.enabled;if(!inst.enabled){pe.style.display='none';if(te.nodeName=='TEXTAREA'||te.nodeName=='INPUT')te.value=inst.getHTML();else te.innerHTML=inst.getHTML();te.style.display=inst.oldTargetDisplay;tinyMCE.dispatchCallback(inst,'hide_instance_callback','hideInstance',inst)}else{pe.style.display='block';te.style.display='none';if(te.nodeName=='TEXTAREA'||te.nodeName=='INPUT')inst.setHTML(te.value);else inst.setHTML(te.innerHTML);inst.useCSS=false;tinyMCE.dispatchCallback(inst,'show_instance_callback','showInstance',inst)}}else tinyMCE.addMCEControl(tinyMCE._getElementById(value),value);return;case"mceResetDesignMode":if(tinyMCE.isGecko){for(n in tinyMCE.instances){if(!tinyMCE.isInstance(tinyMCE.instances[n]))continue;try{tinyMCE.instances[n].getDoc().designMode="off";tinyMCE.instances[n].getDoc().designMode="on";tinyMCE.instances[n].useCSS=false}catch(e){}}}return}if(inst){inst.execCommand(command,user_interface,value)}else if(tinyMCE.settings.focus_alert)alert(tinyMCELang.lang_focus_alert)},_createIFrame:function(replace_element,doc,win){var iframe,id=replace_element.getAttribute("id");var aw,ah;if(typeof(doc)=="undefined")doc=document;if(typeof(win)=="undefined")win=window;iframe=doc.createElement("iframe");aw=""+tinyMCE.settings.area_width;ah=""+tinyMCE.settings.area_height;if(aw.indexOf('%')==-1){aw=parseInt(aw);aw=(isNaN(aw)||aw<0)?300:aw;aw=aw+"px"}if(ah.indexOf('%')==-1){ah=parseInt(ah);ah=(isNaN(ah)||ah<0)?240:ah;ah=ah+"px"}iframe.setAttribute("id",id);iframe.setAttribute("name",id);iframe.setAttribute("class","mceEditorIframe");iframe.setAttribute("border","0");iframe.setAttribute("frameBorder","0");iframe.setAttribute("marginWidth","0");iframe.setAttribute("marginHeight","0");iframe.setAttribute("leftMargin","0");iframe.setAttribute("topMargin","0");iframe.setAttribute("width",aw);iframe.setAttribute("height",ah);iframe.setAttribute("allowtransparency","true");iframe.className='mceEditorIframe';if(tinyMCE.settings.auto_resize)iframe.setAttribute("scrolling","no");if(tinyMCE.isRealIE)iframe.setAttribute("src",this.settings.default_document);iframe.style.width=aw;iframe.style.height=ah;if(tinyMCE.settings.strict_loading_mode)iframe.style.marginBottom='-5px';if(tinyMCE.isRealIE)replace_element.outerHTML=iframe.outerHTML;else replace_element.parentNode.replaceChild(iframe,replace_element);if(tinyMCE.isRealIE)return win.frames[id];else return iframe},setupContent:function(editor_id){var inst=tinyMCE.instances[editor_id],i,doc=inst.getDoc(),head=doc.getElementsByTagName('head').item(0);var content=inst.startContent,contentElement,body;if(tinyMCE.settings.strict_loading_mode){content=content.replace(/</g,'<');content=content.replace(/>/g,'>');content=content.replace(/"/g,'"');content=content.replace(/&/g,'&')}tinyMCE.selectedInstance=inst;inst.switchSettings();if(!tinyMCE.isIE&&tinyMCE.getParam("setupcontent_reload",false)&&doc.title!="blank_page"){try{doc.location.href=tinyMCE.baseURL+"/blank.htm"}catch(ex){}window.setTimeout("tinyMCE.setupContent('"+editor_id+"');",1000);return}if(!head||!doc.body){window.setTimeout("tinyMCE.setupContent('"+editor_id+"');",10);return}tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/themes/"+inst.settings.theme+"/css/editor_content.css");tinyMCE.importCSS(inst.getDoc(),inst.settings.content_css);tinyMCE.dispatchCallback(inst,'init_instance_callback','initInstance',inst);if(tinyMCE.getParam('custom_undo_redo_keyboard_shortcuts')){inst.addShortcut('ctrl','z','lang_undo_desc','Undo');inst.addShortcut('ctrl','y','lang_redo_desc','Redo')}for(i=1;i<=6;i++)inst.addShortcut('ctrl',''+i,'','FormatBlock',false,'');inst.addShortcut('ctrl','7','','FormatBlock',false,'

        ');inst.addShortcut('ctrl','8','','FormatBlock',false,'

        ');inst.addShortcut('ctrl','9','','FormatBlock',false,'
        ');if(tinyMCE.isGecko){inst.addShortcut('ctrl','b','lang_bold_desc','Bold');inst.addShortcut('ctrl','i','lang_italic_desc','Italic');inst.addShortcut('ctrl','u','lang_underline_desc','Underline')}if(tinyMCE.getParam("convert_fonts_to_spans"))inst.getBody().setAttribute('id','mceSpanFonts');if(tinyMCE.settings.nowrap)doc.body.style.whiteSpace="nowrap";doc.body.dir=this.settings.directionality;doc.editorId=editor_id;if(!tinyMCE.isIE)doc.documentElement.editorId=editor_id;inst.setBaseHREF(tinyMCE.settings.base_href);if(tinyMCE.settings.convert_newlines_to_brs){content=tinyMCE.regexpReplace(content,"\r\n","
        ","gi");content=tinyMCE.regexpReplace(content,"\r","
        ","gi");content=tinyMCE.regexpReplace(content,"\n","
        ","gi")}content=tinyMCE.storeAwayURLs(content);content=tinyMCE._customCleanup(inst,"insert_to_editor",content);if(tinyMCE.isIE){window.setInterval('try{tinyMCE.getCSSClasses(tinyMCE.instances["'+editor_id+'"].getDoc(), "'+editor_id+'");}catch(e){}',500);if(tinyMCE.settings.force_br_newlines)doc.styleSheets[0].addRule("p","margin: 0;");body=inst.getBody();body.editorId=editor_id}content=tinyMCE.cleanupHTMLCode(content);if(!tinyMCE.isIE){contentElement=inst.getDoc().createElement("body");doc=inst.getDoc();contentElement.innerHTML=content;if(tinyMCE.settings.cleanup_on_startup)tinyMCE.setInnerHTML(inst.getBody(),tinyMCE._cleanupHTML(inst,doc,this.settings,contentElement));else tinyMCE.setInnerHTML(inst.getBody(),content);tinyMCE.convertAllRelativeURLs(inst.getBody())}else{if(tinyMCE.settings.cleanup_on_startup){tinyMCE._setHTML(inst.getDoc(),content);try{tinyMCE.setInnerHTML(inst.getBody(),tinyMCE._cleanupHTML(inst,inst.contentDocument,this.settings,inst.getBody()))}catch(e){}}else tinyMCE._setHTML(inst.getDoc(),content)}tinyMCE.handleVisualAid(inst.getBody(),true,tinyMCE.settings.visual,inst);tinyMCE.dispatchCallback(inst,'setupcontent_callback','setupContent',editor_id,inst.getBody(),inst.getDoc());if(!tinyMCE.isIE)tinyMCE.addEventHandlers(inst);if(tinyMCE.isIE){tinyMCE.addEvent(inst.getBody(),"blur",TinyMCE_Engine.prototype._eventPatch);tinyMCE.addEvent(inst.getBody(),"beforedeactivate",TinyMCE_Engine.prototype._eventPatch);if(!tinyMCE.isOpera){tinyMCE.addEvent(doc.body,"mousemove",TinyMCE_Engine.prototype.onMouseMove);tinyMCE.addEvent(doc.body,"beforepaste",TinyMCE_Engine.prototype._eventPatch);tinyMCE.addEvent(doc.body,"drop",TinyMCE_Engine.prototype._eventPatch)}}inst.select();tinyMCE.selectedElement=inst.contentWindow.document.body;tinyMCE._customCleanup(inst,"insert_to_editor_dom",inst.getBody());tinyMCE._customCleanup(inst,"setup_content_dom",inst.getBody());tinyMCE._setEventsEnabled(inst.getBody(),false);tinyMCE.cleanupAnchors(inst.getDoc());if(tinyMCE.getParam("convert_fonts_to_spans"))tinyMCE.convertSpansToFonts(inst.getDoc());inst.startContent=tinyMCE.trim(inst.getBody().innerHTML);inst.undoRedo.add({content:inst.startContent});if(tinyMCE.isGecko){tinyMCE.selectNodes(inst.getBody(),function(n){if(n.nodeType==3||n.nodeType==8)n.nodeValue=n.nodeValue.replace(new RegExp('\\s(mce_src|mce_href)=\"[^\"]*\"','gi'),"");return false})}if(tinyMCE.isGecko)inst.getBody().spellcheck=tinyMCE.getParam("gecko_spellcheck");tinyMCE._removeInternal(inst.getBody());inst.select();tinyMCE.triggerNodeChange(false,true)},storeAwayURLs:function(s){if(!s.match(/(mce_src|mce_href)/gi,s)){s=s.replace(new RegExp('src\\s*=\\s*\"([^ >\"]*)\"','gi'),'src="$1" mce_src="$1"');s=s.replace(new RegExp('href\\s*=\\s*\"([^ >\"]*)\"','gi'),'href="$1" mce_href="$1"')}return s},_removeInternal:function(n){if(tinyMCE.isGecko){tinyMCE.selectNodes(n,function(n){if(n.nodeType==3||n.nodeType==8)n.nodeValue=n.nodeValue.replace(new RegExp('\\s(mce_src|mce_href)=\"[^\"]*\"','gi'),"");return false})}},removeTinyMCEFormElements:function(form_obj){var i,elementId;if(!tinyMCE.getParam('hide_selects_on_submit'))return;if(typeof(form_obj)=="undefined"||form_obj==null)return;if(form_obj.nodeName!="FORM"){if(form_obj.form)form_obj=form_obj.form;else form_obj=tinyMCE.getParentElement(form_obj,"form")}if(form_obj==null)return;for(i=0;i");rng.collapse(false);rng.select();tinyMCE.execCommand("mceAddUndoLevel");tinyMCE.triggerNodeChange(false);return false}}if(e.keyCode==8||e.keyCode==46){tinyMCE.selectedElement=e.target;tinyMCE.linkElement=tinyMCE.getParentElement(e.target,"a");tinyMCE.imgElement=tinyMCE.getParentElement(e.target,"img");tinyMCE.triggerNodeChange(false)}return false;case"keyup":case"keydown":tinyMCE.hideMenus();tinyMCE.hasMouseMoved=false;if(inst&&inst.handleShortcut(e))return false;inst._fixRootBlocks();if(inst.settings.remove_trailing_nbsp)inst._fixTrailingNbsp();if(e.target.editorId)tinyMCE.instances[e.target.editorId].select();if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.switchSettings();inst=tinyMCE.selectedInstance;if(tinyMCE.isGecko&&tinyMCE.settings.force_p_newlines&&(e.keyCode==8||e.keyCode==46)&&!e.shiftKey){if(TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance,e.type)){tinyMCE.execCommand("mceAddUndoLevel");e.preventDefault();return false}}tinyMCE.selectedElement=null;tinyMCE.selectedNode=null;elm=tinyMCE.selectedInstance.getFocusElement();tinyMCE.linkElement=tinyMCE.getParentElement(elm,"a");tinyMCE.imgElement=tinyMCE.getParentElement(elm,"img");tinyMCE.selectedElement=elm;if(tinyMCE.isGecko&&e.type=="keyup"&&e.keyCode==9)tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(),true,tinyMCE.settings.visual,tinyMCE.selectedInstance);if(tinyMCE.isIE&&e.type=="keydown"&&e.keyCode==13)tinyMCE.enterKeyElement=tinyMCE.selectedInstance.getFocusElement();if(tinyMCE.isIE&&e.type=="keyup"&&e.keyCode==13){elm=tinyMCE.enterKeyElement;if(elm){var re=new RegExp('^HR|IMG|BR$','g');var dre=new RegExp('^H[1-6]$','g');if(!elm.hasChildNodes()&&!re.test(elm.nodeName)){if(dre.test(elm.nodeName))elm.innerHTML="  ";else elm.innerHTML=" "}}}keys=tinyMCE.posKeyCodes;var posKey=false;for(i=0;i';h+='{$'+lang+'}';h+=''}else{h+='';h+='{$'+lang+'}';h+=''}return h},getMenuButtonHTML:function(id,lang,img,mcmd,cmd,ui,val){var h='',m,x;mcmd='tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+mcmd+'\');';cmd='tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+cmd+'\'';if(typeof(ui)!="undefined"&&ui!=null)cmd+=','+ui;if(typeof(val)!="undefined"&&val!=null)cmd+=",'"+val+"'";cmd+=');';if(tinyMCE.getParam('button_tile_map')&&(!tinyMCE.isIE||tinyMCE.isOpera)&&(m=tinyMCE.buttonMap[id])!=null&&(tinyMCE.getParam("language")=="en"||img.indexOf('$lang')==-1)){x=0-(m*20)==0?'0':0-(m*20);if(tinyMCE.isRealIE)h+='';else h+='';h+='';h+='';h+='';h+=''}else{if(tinyMCE.isRealIE)h+='';else h+='';h+='';h+='';h+='';h+=''}return h},_menuButtonEvent:function(e,o){if(o.className=='mceMenuButtonFocus')return;if(e=='over')o.className=o.className+' mceMenuHover';else o.className=o.className.replace(/\s.*$/,'')},addButtonMap:function(m){var i,a=m.replace(/\s+/,'').split(',');for(i=0;i0);if(tinyMCE.settings.custom_undo_redo){undoIndex=inst.undoRedo.undoIndex;undoLevels=inst.undoRedo.undoLevels.length}tinyMCE.dispatchCallback(inst,'handle_node_change_callback','handleNodeChange',editorId,elm,undoIndex,undoLevels,inst.visualAid,anySelection,setup_content)}if(this.selectedInstance&&(typeof(focus)=="undefined"||focus))this.selectedInstance.contentWindow.focus()},_customCleanup:function(inst,type,content){var pl,po,i,customCleanup;customCleanup=tinyMCE.settings.cleanup_callback;if(customCleanup!='')content=tinyMCE.resolveDots(tinyMCE.settings.cleanup_callback,window)(type,content,inst);po=tinyMCE.themes[tinyMCE.settings.theme];if(po&&po.cleanup)content=po.cleanup(type,content,inst);pl=inst.plugins;for(i=0;i0)className+=" ";className+=classNames[i]}return className},handleVisualAid:function(el,deep,state,inst,skip_dispatch){var i,x,y,tableElement,anchorName,oldW,oldH,bo,cn;if(!el)return;if(!skip_dispatch)tinyMCE.dispatchCallback(inst,'handle_visual_aid_callback','handleVisualAid',el,deep,state,inst);tableElement=null;switch(el.nodeName){case"TABLE":oldW=el.style.width;oldH=el.style.height;bo=tinyMCE.getAttrib(el,"border");bo=bo==''||bo=="0"?true:false;tinyMCE.setAttrib(el,"class",tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el,"class"),state&&bo));el.style.width=oldW;el.style.height=oldH;for(y=0;y0)return inst.cssClasses;if(!doc)return;styles=doc.styleSheets;if(styles&&styles.length>0){for(x=0;x'+tinyMCE.replaceVar(v,"pluginurl",o.baseURL)+'';return tinyMCE.replaceVar(v,"pluginurl",o.baseURL)}}o=tinyMCE.themes[tinyMCE.settings.theme];if(o.getControlHTML&&(v=o.getControlHTML(c))!==''){if(rtl)return''+v+'';return v}return''},evalFunc:function(f,idx,a,o){o=!o?window:o;f=typeof(f)=='function'?f:o[f];return f.apply(o,Array.prototype.slice.call(a,idx))},dispatchCallback:function(i,p,n){return this.callFunc(i,p,n,0,this.dispatchCallback.arguments)},executeCallback:function(i,p,n){return this.callFunc(i,p,n,1,this.executeCallback.arguments)},execCommandCallback:function(i,p,n){return this.callFunc(i,p,n,2,this.execCommandCallback.arguments)},callFunc:function(ins,p,n,m,a){var l,i,on,o,s,v;s=m==2;l=tinyMCE.getParam(p,'');if(l!==''&&(v=tinyMCE.evalFunc(l,3,a))==s&&m>0)return true;if(ins!=null){for(i=0,l=ins.plugins;i0)return true}}l=tinyMCE.themes;for(on in l){o=l[on];if(o[n]&&(v=tinyMCE.evalFunc(n,3,a,o))==s&&m>0)return true}return false},resolveDots:function(s,o){var i;if(typeof(s)=='string'){for(i=0,s=s.split('.');i':return'>'}return c}):s},add:function(c,m){var n;for(n in m){if(m.hasOwnProperty(n))c.prototype[n]=m[n]}},extend:function(p,np){var o={},n;o.parent=p;for(n in p){if(p.hasOwnProperty(n))o[n]=p[n]}for(n in np){if(np.hasOwnProperty(n))o[n]=np[n]}return o},hideMenus:function(){var e=tinyMCE.lastSelectedMenuBtn;if(tinyMCE.lastMenu){tinyMCE.lastMenu.hide();tinyMCE.lastMenu=null}if(e){tinyMCE.switchClass(e,tinyMCE.lastMenuBtnClass);tinyMCE.lastSelectedMenuBtn=null}}};var TinyMCE=TinyMCE_Engine;var tinyMCE=new TinyMCE_Engine();var tinyMCELang={};function TinyMCE_Control(settings){var t,i,tos,fu,p,x,fn,fu,pn,s=settings;this.undoRedoLevel=true;this.isTinyMCE_Control=true;this.enabled=true;this.settings=s;this.settings.theme=tinyMCE.getParam("theme","default");this.settings.width=tinyMCE.getParam("width",-1);this.settings.height=tinyMCE.getParam("height",-1);this.selection=new TinyMCE_Selection(this);this.undoRedo=new TinyMCE_UndoRedo(this);this.cleanup=new TinyMCE_Cleanup();this.shortcuts=[];this.hasMouseMoved=false;this.foreColor=this.backColor="#999999";this.data={};this.cssClasses=[];this.cleanup.init({valid_elements:s.valid_elements,extended_valid_elements:s.extended_valid_elements,valid_child_elements:s.valid_child_elements,entities:s.entities,entity_encoding:s.entity_encoding,debug:s.cleanup_debug,indent:s.apply_source_formatting,invalid_elements:s.invalid_elements,verify_html:s.verify_html,fix_content_duplication:s.fix_content_duplication,convert_fonts_to_spans:s.convert_fonts_to_spans});t=this.settings.theme;if(!tinyMCE.hasTheme(t)){fn=tinyMCE.callbacks;tos={};for(i=0;i0){for(i=0;i1&&tinyMCE.currentConfig!=this.settings.index){tinyMCE.settings=this.settings;tinyMCE.currentConfig=this.settings.index}},select:function(){var oldInst=tinyMCE.selectedInstance;if(oldInst!=this){if(oldInst)oldInst.execCommand('mceEndTyping');tinyMCE.dispatchCallback(this,'select_instance_callback','selectInstance',this,oldInst);tinyMCE.selectedInstance=this}},getBody:function(){return this.contentBody?this.contentBody:this.getDoc().body},getDoc:function(){return this.contentWindow.document},getWin:function(){return this.contentWindow},getContainerWin:function(){return this.containerWindow?this.containerWindow:window},getViewPort:function(){return tinyMCE.getViewPort(this.getWin())},getParentNode:function(n,f){return tinyMCE.getParentNode(n,f,this.getBody())},getParentElement:function(n,na,f){return tinyMCE.getParentElement(n,na,f,this.getBody())},getParentBlockElement:function(n){return tinyMCE.getParentBlockElement(n,this.getBody())},resizeToContent:function(){var d=this.getDoc(),b=d.body,de=d.documentElement;this.iframeElement.style.height=(tinyMCE.isRealIE)?b.scrollHeight:de.offsetHeight+'px'},addShortcut:function(m,k,d,cmd,ui,va){var n=typeof(k)=="number",ie=tinyMCE.isIE,c,sc,i,scl=this.shortcuts;if(!tinyMCE.getParam('custom_shortcuts'))return false;m=m.toLowerCase();k=ie&&!n?k.toUpperCase():k;c=n?null:k.charCodeAt(0);d=d&&d.indexOf('lang_')==0?tinyMCE.getLang(d):d;sc={alt:m.indexOf('alt')!=-1,ctrl:m.indexOf('ctrl')!=-1,shift:m.indexOf('shift')!=-1,charCode:c,keyCode:n?k:(ie?c:null),desc:d,cmd:cmd,ui:ui,val:va};for(i=0;i1&&/(^\u00a0|\u00a0$)/.test(v)){e.firstChild.nodeValue=v.replace(/(^\u00a0|\u00a0$)/,'');s.selectNode(e.firstChild,true,false,false);}}},_setUseCSS:function(b){var d=this.getDoc();try{d.execCommand("useCSS",false,!b)}catch(ex){}try{d.execCommand("styleWithCSS",false,b)}catch(ex){}if(!tinyMCE.getParam("table_inline_editing"))try{d.execCommand('enableInlineTableEditing',false,"false")}catch(ex){}if(!tinyMCE.getParam("object_resizing"))try{d.execCommand('enableObjectResizing',false,"false")}catch(ex){}},execCommand:function(command,user_interface,value){var i,x,z,align,img,div,doc=this.getDoc(),win=this.getWin(),focusElm=this.getFocusElement();if(!new RegExp('mceStartTyping|mceEndTyping|mceBeginUndoLevel|mceEndUndoLevel|mceAddUndoLevel','gi').test(command))this.undoBookmark=null;if(!tinyMCE.isIE&&!this.useCSS){this._setUseCSS(false);this.useCSS=true}this.contentDocument=doc;if(!/mceStartTyping|mceEndTyping/.test(command)){if(tinyMCE.execCommandCallback(this,'execcommand_callback','execCommand',this.editorId,this.getBody(),command,user_interface,value))return}if(focusElm&&focusElm.nodeName=="IMG"){align=focusElm.getAttribute('align');img=command=="JustifyCenter"?focusElm.cloneNode(false):focusElm;switch(command){case"JustifyLeft":if(align=='left'){img.setAttribute('align','');img.removeAttribute('align')}else img.setAttribute('align','left');div=focusElm.parentNode;if(div&&div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div);this.selection.selectNode(img);this.repaint();tinyMCE.triggerNodeChange();return;case"JustifyCenter":img.setAttribute('align','');img.removeAttribute('align');div=tinyMCE.getParentElement(focusElm,"div");if(div&&div.style.textAlign=="center"){if(div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div)}else{div=this.getDoc().createElement("div");div.style.textAlign='center';div.appendChild(img);focusElm.parentNode.replaceChild(div,focusElm)}this.selection.selectNode(img);this.repaint();tinyMCE.triggerNodeChange();return;case"JustifyRight":if(align=='right'){img.setAttribute('align','');img.removeAttribute('align')}else img.setAttribute('align','right');div=focusElm.parentNode;if(div&&div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div);this.selection.selectNode(img);this.repaint();tinyMCE.triggerNodeChange();return}}if(tinyMCE.settings.force_br_newlines){var alignValue="";if(doc.selection.type!="Control"){switch(command){case"JustifyLeft":alignValue="left";break;case"JustifyCenter":alignValue="center";break;case"JustifyFull":alignValue="justify";break;case"JustifyRight":alignValue="right";break}if(alignValue!==''){var rng=doc.selection.createRange();if((divElm=tinyMCE.getParentElement(rng.parentElement(),"div"))!=null)divElm.setAttribute("align",alignValue);else if(rng.pasteHTML&&rng.htmlText.length>0)rng.pasteHTML('
        '+rng.htmlText+"
        ");tinyMCE.triggerNodeChange();return}}}switch(command){case"mceRepaint":this.repaint();return true;case"JustifyLeft":case"JustifyCenter":case"JustifyFull":case"JustifyRight":var el=tinyMCE.getParentNode(focusElm,function(n){return tinyMCE.getAttrib(n,'align')});if(el){el.setAttribute('align','');el.removeAttribute('align')}else this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();return true;case"unlink":if(tinyMCE.isGecko&&this.getSel().isCollapsed){focusElm=tinyMCE.getParentElement(focusElm,'A');if(focusElm)this.selection.selectNode(focusElm,false)}this.getDoc().execCommand(command,user_interface,value);tinyMCE.isGecko&&this.getSel().collapseToEnd();tinyMCE.triggerNodeChange();return true;case"InsertUnorderedList":case"InsertOrderedList":this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();break;case"Strikethrough":this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();break;case"mceSelectNode":this.selection.selectNode(value);tinyMCE.triggerNodeChange();tinyMCE.selectedNode=value;break;case"FormatBlock":if(value==null||value==''){var elm=tinyMCE.getParentElement(this.getFocusElement(),"p,div,h1,h2,h3,h4,h5,h6,pre,address,blockquote,dt,dl,dd,samp");if(elm)this.execCommand("mceRemoveNode",false,elm)}else{if(!this.cleanup.isValid(value))return true;if(tinyMCE.isGecko&&new RegExp('<(div|blockquote|code|dt|dd|dl|samp)>','gi').test(value))value=value.replace(/[^a-z]/gi,'');if(tinyMCE.isIE&&new RegExp('blockquote|code|samp','gi').test(value)){var b=this.selection.getBookmark();this.getDoc().execCommand("FormatBlock",false,'

        ');tinyMCE.renameElement(tinyMCE.getParentBlockElement(this.getFocusElement()),value);this.selection.moveToBookmark(b)}else this.getDoc().execCommand("FormatBlock",false,value)}tinyMCE.triggerNodeChange();break;case"mceRemoveNode":if(!value)value=tinyMCE.getParentElement(this.getFocusElement());if(tinyMCE.isIE){value.outerHTML=value.innerHTML}else{var rng=value.ownerDocument.createRange();rng.setStartBefore(value);rng.setEndAfter(value);rng.deleteContents();rng.insertNode(rng.createContextualFragment(value.innerHTML))}tinyMCE.triggerNodeChange();break;case"mceSelectNodeDepth":var parentNode=this.getFocusElement();for(i=0;parentNode;i++){if(parentNode.nodeName.toLowerCase()=="body")break;if(parentNode.nodeName.toLowerCase()=="#text"){i--;parentNode=parentNode.parentNode;continue}if(i==value){this.selection.selectNode(parentNode,false);tinyMCE.triggerNodeChange();tinyMCE.selectedNode=parentNode;return}parentNode=parentNode.parentNode}break;case"mceSetStyleInfo":case"SetStyleInfo":var rng=this.getRng();var sel=this.getSel();var scmd=value.command;var sname=value.name;var svalue=value.value==null?'':value.value;var wrapper=value.wrapper?value.wrapper:"span";var parentElm=null;var invalidRe=new RegExp("^BODY|HTML$","g");var invalidParentsRe=tinyMCE.settings.merge_styles_invalid_parents!==''?new RegExp(tinyMCE.settings.merge_styles_invalid_parents,"gi"):null;if(tinyMCE.isIE){if(rng.item)parentElm=rng.item(0);else{var pelm=rng.parentElement();var prng=doc.selection.createRange();prng.moveToElementText(pelm);if(rng.htmlText==prng.htmlText||rng.boundingWidth==0){if(invalidParentsRe==null||!invalidParentsRe.test(pelm.nodeName))parentElm=pelm}}}else{var felm=this.getFocusElement();if(sel.isCollapsed||(new RegExp('td|tr|tbody|table|img','gi').test(felm.nodeName)&&sel.anchorNode==felm.parentNode))parentElm=felm}if(parentElm&&!invalidRe.test(parentElm.nodeName)){if(scmd=="setstyle")tinyMCE.setStyleAttrib(parentElm,sname,svalue);if(scmd=="setattrib")tinyMCE.setAttrib(parentElm,sname,svalue);if(scmd=="removeformat"){parentElm.style.cssText='';tinyMCE.setAttrib(parentElm,'class','')}var ch=tinyMCE.getNodeTree(parentElm,[],1);for(z=0;z=0;i--){var elm=nodes[i];var isNew=tinyMCE.getAttrib(elm,"mce_new")=="true";elm.removeAttribute("mce_new");if(elm.childNodes&&elm.childNodes.length==1&&elm.childNodes[0].nodeType==1){this._mergeElements(scmd,elm,elm.childNodes[0],isNew);continue}if(elm.parentNode.childNodes.length==1&&!invalidRe.test(elm.nodeName)&&!invalidRe.test(elm.parentNode.nodeName)){if(invalidParentsRe==null||!invalidParentsRe.test(elm.parentNode.nodeName))this._mergeElements(scmd,elm.parentNode,elm,false)}}var nodes=doc.getElementsByTagName(wrapper);for(i=nodes.length-1;i>=0;i--){var elm=nodes[i],isEmpty=true;var tmp=doc.createElement("body");tmp.appendChild(elm.cloneNode(false));tmp.innerHTML=tmp.innerHTML.replace(new RegExp('style=""|class=""','gi'),'');if(new RegExp('','gi').test(tmp.innerHTML)){for(x=0;x0){value=tinyMCE.replaceVar(value,"selection",selectedText);tinyMCE.execCommand('mceInsertContent',false,value)}this._addBogusBR();tinyMCE.triggerNodeChange();break;case"mceSetAttribute":if(typeof(value)=='object'){var targetElms=(typeof(value.targets)=="undefined")?"p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address":value.targets;var targetNode=tinyMCE.getParentElement(this.getFocusElement(),targetElms);if(targetNode){targetNode.setAttribute(value.name,value.value);tinyMCE.triggerNodeChange()}}break;case"mceSetCSSClass":this.execCommand("mceSetStyleInfo",false,{command:"setattrib",name:"class",value:value});break;case"mceInsertRawHTML":var key='tiny_mce_marker';this.execCommand('mceBeginUndoLevel');this.execCommand('mceInsertContent',false,key);var scrollX=this.getBody().scrollLeft+this.getDoc().documentElement.scrollLeft;var scrollY=this.getBody().scrollTop+this.getDoc().documentElement.scrollTop;var html=this.getBody().innerHTML;if((pos=html.indexOf(key))!=-1)tinyMCE.setInnerHTML(this.getBody(),html.substring(0,pos)+value+html.substring(pos+key.length));this.contentWindow.scrollTo(scrollX,scrollY);this.execCommand('mceEndUndoLevel');break;case"mceInsertContent":if(!value)value='';var insertHTMLFailed=false;if(tinyMCE.isGecko||tinyMCE.isOpera){try{if(value.indexOf('<')==-1&&!value.match(/(&| |<|>)/g)){var r=this.getRng();var n=this.getDoc().createTextNode(tinyMCE.entityDecode(value));var s=this.getSel();var r2=r.cloneRange();s.removeAllRanges();r.deleteContents();r.insertNode(n);r2.selectNode(n);r2.collapse(false);s.removeAllRanges();s.addRange(r2)}else{value=tinyMCE.fixGeckoBaseHREFBug(1,this.getDoc(),value);this.getDoc().execCommand('inserthtml',false,value);tinyMCE.fixGeckoBaseHREFBug(2,this.getDoc(),value)}}catch(ex){insertHTMLFailed=true}if(!insertHTMLFailed){tinyMCE.triggerNodeChange();return}}if(!tinyMCE.isIE){var isHTML=value.indexOf('<')!=-1;var sel=this.getSel();var rng=this.getRng();if(isHTML){if(tinyMCE.isSafari){var tmpRng=this.getDoc().createRange();tmpRng.setStart(this.getBody(),0);tmpRng.setEnd(this.getBody(),0);value=tmpRng.createContextualFragment(value)}else value=rng.createContextualFragment(value)}else{value=doc.createTextNode(tinyMCE.entityDecode(value))}if(tinyMCE.isSafari&&!isHTML){this.execCommand('InsertText',false,value.nodeValue);tinyMCE.triggerNodeChange();return true}else if(tinyMCE.isSafari&&isHTML){rng.deleteContents();rng.insertNode(value);tinyMCE.triggerNodeChange();return true}rng.deleteContents();if(rng.startContainer.nodeType==3){var node=rng.startContainer.splitText(rng.startOffset);node.parentNode.insertBefore(value,node)}else rng.insertNode(value);if(!isHTML){sel.selectAllChildren(doc.body);sel.removeAllRanges();var rng=doc.createRange();rng.selectNode(value);rng.collapse(false);sel.addRange(rng)}else rng.collapse(false);tinyMCE.fixGeckoBaseHREFBug(2,this.getDoc(),value)}else{var rng=doc.selection.createRange(),tmpRng=null;var c=value.indexOf('"}if(hc){cn=n.childNodes;for(i=0,l=cn.length;i';return h},_serializeAttribute:function(n,r,an){var av='',t,os=this.settings.on_save;if(os&&(an.indexOf('mce_')==0||an.indexOf('_moz')==0))return'';if(os&&this.mceAttribs[an])av=this._getAttrib(n,this.mceAttribs[an]);if(av.length==0)av=this._getAttrib(n,an);if(av.length==0&&r.defaultAttribs&&(t=r.defaultAttribs[an])){av=t;if(av=="mce_empty")return" "+an+'=""'}if(r.forceAttribs&&(t=r.forceAttribs[an]))av=t;if(os&&av.length!=0&&/^(src|href|longdesc)$/.test(an))av=this._urlConverter(this,n,av);if(av.length!=0&&r.validAttribValues&&r.validAttribValues[an]&&!r.validAttribValues[an].test(av))return"";if(av.length!=0&&av=="{$uid}")av="uid_"+(this.idCount++);if(av.length!=0){if(an.indexOf('on')!=0)av=this.xmlEncode(av,1);return" "+an+"="+'"'+av+'"'}return""},formatHTML:function(h){var s=this.settings,p='',i=0,li=0,o='',l;h=h.replace(/]*)>(.*?)<\/pre>/gi,function(a,b,c){c=c.replace(//gi,'\n');return''+c+''});h=h.replace(/\r/g,'');h='\n'+h;h=h.replace(new RegExp('\\n\\s+','gi'),'\n');h=h.replace(this.nlBeforeRe,'\n<$1$2>');h=h.replace(this.nlAfterRe,'<$1$2>\n');h=h.replace(this.nlBeforeAfterRe,'\n<$1$2$3>\n');h+='\n';while((i=h.indexOf('\n',i+1))!=-1){if((l=h.substring(li+1,i)).length!=0){if(this.ouRe.test(l)&&p.length>=s.indent_levels)p=p.substring(s.indent_levels);o+=p+l+'\n';if(this.inRe.test(l))p+=this.inStr}li=i}return o},xmlEncode:function(s){var cl=this,re=this.xmlEncodeRe;if(!this.entitiesDone)this._setupEntities();switch(this.settings.entity_encoding){case"raw":return tinyMCE.xmlEncode(s);case"named":return s.replace(re,function(c){var b=cl.entities[c.charCodeAt(0)];return b?'&'+b+';':c});case"numeric":return s.replace(re,function(c){return'&#'+c.charCodeAt(0)+';'})}return s},split:function(re,s){var i,l,o=[],c=s.split(re);for(i=0,l=c.length;i':'>'+h+'';return o},createTag:function(d,tn,a,h){var o=d.createElement(tn),n;if(a){for(n in a){if(typeof(a[n])!='function'&&a[n]!=null)tinyMCE.setAttrib(o,n,a[n])}}if(h)o.innerHTML=h;return o},getElementByAttributeValue:function(n,e,a,v){return(n=this.getElementsByAttributeValue(n,e,a,v)).length==0?null:n[0]},getElementsByAttributeValue:function(n,e,a,v){var i,nl=n.getElementsByTagName(e),o=[];for(i=0;i]*)>/gi,'');h=h.replace(/]*)>/gi,'');h=h.replace(/]*)>/gi,'');h=h.replace(/]*)>/gi,'');h=h.replace(/<\/strong>/gi,'');h=h.replace(/<\/em>/gi,'')}if(tinyMCE.isRealIE){h=h.replace(/\s\/>/g,'>');h=h.replace(/]*)>\u00A0?<\/p>/gi,' 

        ');h=h.replace(/]*)>\s* \s*<\/p>/gi,' 

        ');h=h.replace(/]*)>\s+<\/p>/gi,' 

        ');e.innerHTML=tinyMCE.uniqueTag+h;e.firstChild.removeNode(true);nl=e.getElementsByTagName("p");for(i=nl.length-1;i>=0;i--){n=nl[i];if(n.nodeName=='P'&&!n.hasChildNodes()&&!n.mce_keep)n.parentNode.removeChild(n)}}else{h=this.fixGeckoBaseHREFBug(1,e,h);e.innerHTML=h;this.fixGeckoBaseHREFBug(2,e,h)}},getOuterHTML:function(e){var d;if(tinyMCE.isIE)return e.outerHTML;d=e.ownerDocument.createElement("body");d.appendChild(e.cloneNode(true));return d.innerHTML},setOuterHTML:function(e,h,d){var d=typeof(d)=="undefined"?e.ownerDocument:d,i,nl,t;if(tinyMCE.isIE&&e.nodeType==1)e.outerHTML=h;else{t=d.createElement("body");t.innerHTML=h;for(i=0,nl=t.childNodes;i-1;i--){if(ar[i].specified&&ar[i].nodeValue)ne.setAttribute(ar[i].nodeName.toLowerCase(),ar[i].nodeValue)}ar=e.childNodes;for(i=0;i=strTok2.length){for(i=0;i=strTok2.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;break}}}if(strTok1.length=strTok1.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;break}}}if(breakPoint==1)return targetURL.path;for(i=0;i<(strTok1.length-(breakPoint-1));i++)outPath+="../";for(i=breakPoint-1;i=0;i--){if(baseURLParts[i].length==0)continue;newBaseURLParts[newBaseURLParts.length]=baseURLParts[i]}baseURLParts=newBaseURLParts.reverse();newRelURLParts=[];numBack=0;for(i=relURLParts.length-1;i>=0;i--){if(relURLParts[i].length==0||relURLParts[i]==".")continue;if(relURLParts[i]=='..'){numBack++;continue}if(numBack>0){numBack--;continue}newRelURLParts[newRelURLParts.length]=relURLParts[i]}relURLParts=newRelURLParts.reverse();len=baseURLParts.length-numBack;absPath=(len<=0?"":"/")+baseURLParts.slice(0,len).join('/')+"/"+relURLParts.join('/');start="";end="";relURL.protocol=baseURL.protocol;relURL.host=baseURL.host;relURL.port=baseURL.port;if(relURL.path.charAt(relURL.path.length-1)=="/")absPath+="/";relURL.path=absPath;return this.serializeURL(relURL)},convertURL:function(url,node,on_save){var dl=document.location,start,portPart,urlParts,baseUrlParts,tmpUrlParts,curl;var prot=dl.protocol,host=dl.hostname,port=dl.port;if(prot=="file:")return url;url=tinyMCE.regexpReplace(url,'(http|https):///','/');if(url.indexOf('mailto:')!=-1||url.indexOf('javascript:')!=-1||/^[ \t\r\n\+]*[#\?]/.test(url))return url;if(!tinyMCE.isIE&&!on_save&&url.indexOf("://")==-1&&url.charAt(0)!='/')return tinyMCE.settings.base_href+url;if(on_save&&tinyMCE.getParam('relative_urls')){curl=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href,url);if(curl.charAt(0)=='/')curl=tinyMCE.settings.document_base_prefix+curl;urlParts=tinyMCE.parseURL(curl);tmpUrlParts=tinyMCE.parseURL(tinyMCE.settings.document_base_url);if(urlParts.host==tmpUrlParts.host&&(urlParts.port==tmpUrlParts.port))return tinyMCE.convertAbsoluteURLToRelativeURL(tinyMCE.settings.document_base_url,curl)}if(!tinyMCE.getParam('relative_urls')){urlParts=tinyMCE.parseURL(url);baseUrlParts=tinyMCE.parseURL(tinyMCE.settings.base_href);url=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href,url);if(urlParts.anchor&&urlParts.path==baseUrlParts.path)return"#"+urlParts.anchor}if(tinyMCE.getParam('remove_script_host')){start="";portPart="";if(port!=='')portPart=":"+port;start=prot+"//"+host+portPart+"/";if(url.indexOf(start)==0)url=url.substring(start.length-1)}return url},convertAllRelativeURLs:function(body){var i,elms,src,href,mhref,msrc;elms=body.getElementsByTagName("img");for(i=0;ibookmark.index){try{rng.addElement(nl[bookmark.index])}catch(ex){}}}else{try{if(bookmark.start<0)return true;rng=inst.getSel().createRange();rng.moveToElementText(inst.getBody());rng.collapse(true);rng.moveStart('character',bookmark.start);rng.moveEnd('character',bookmark.length)}catch(ex){return true}}rng.select();win.scrollTo(bookmark.scrollX,bookmark.scrollY);return true}if(tinyMCE.isGecko||tinyMCE.isOpera){if(!sel)return false;if(bookmark.rng){sel.removeAllRanges();sel.addRange(bookmark.rng)}if(bookmark.start!=-1&&bookmark.end!=-1){try{sd=this._getTextPos(b,bookmark.start,bookmark.end);rng=doc.createRange();rng.setStart(sd.startNode,sd.startOffset);rng.setEnd(sd.endNode,sd.endOffset);sel.removeAllRanges();sel.addRange(rng);if(!tinyMCE.isOpera)win.focus()}catch(ex){}}win.scrollTo(bookmark.scrollX,bookmark.scrollY);return true}return false},_getPosText:function(r,sn,en){var w=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){if(n==sn)d.start=p;if(n==en){d.end=p;return d}p+=n.nodeValue?n.nodeValue.length:0}return null},_getTextPos:function(r,sp,ep){var w=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){p+=n.nodeValue?n.nodeValue.length:0;if(p>=sp&&!d.startNode){d.startNode=n;d.startOffset=sp-(p-n.nodeValue.length)}if(p>=ep){d.endNode=n;d.endOffset=ep-(p-n.nodeValue.length);return d}}return null},selectNode:function(node,collapse,select_text_node,to_start){var inst=this.instance,sel,rng,nodes;if(!node)return;if(typeof(collapse)=="undefined")collapse=true;if(typeof(select_text_node)=="undefined")select_text_node=false;if(typeof(to_start)=="undefined")to_start=true;if(inst.settings.auto_resize)inst.resizeToContent();if(tinyMCE.isRealIE){rng=inst.getDoc().body.createTextRange();try{rng.moveToElementText(node);if(collapse)rng.collapse(to_start);rng.select()}catch(e){}}else{sel=this.getSel();if(!sel)return;if(tinyMCE.isSafari){sel.setBaseAndExtent(node,0,node,node.innerText.length);if(collapse){if(to_start)sel.collapseToStart();else sel.collapseToEnd()}this.scrollToNode(node);return}rng=inst.getDoc().createRange();if(select_text_node){nodes=tinyMCE.getNodeTree(node,[],3);if(nodes.length>0)rng.selectNodeContents(nodes[0]);else rng.selectNodeContents(node)}else rng.selectNode(node);if(collapse){if(!to_start&&node.nodeType==3){rng.setStart(node,node.nodeValue.length);rng.setEnd(node,node.nodeValue.length)}else rng.collapse(to_start)}sel.removeAllRanges();sel.addRange(rng)}this.scrollToNode(node);tinyMCE.selectedElement=null;if(node.nodeType==1)tinyMCE.selectedElement=node},scrollToNode:function(node){var inst=this.instance,w=inst.getWin(),vp=inst.getViewPort(),pos=tinyMCE.getAbsPosition(node),cvp,p,cwin;if(pos.absLeftvp.left+vp.width||pos.absTopvp.top+(vp.height-25))w.scrollTo(pos.absLeft,pos.absTop-vp.height+25);if(inst.settings.auto_resize){cwin=inst.getContainerWin();cvp=tinyMCE.getViewPort(cwin);p=this.getAbsPosition(node);if(p.absLeftcvp.left+cvp.width||p.absTopcvp.top+cvp.height)cwin.scrollTo(p.absLeft,p.absTop-cvp.height+25)}},getAbsPosition:function(n){var pos=tinyMCE.getAbsPosition(n),ipos=tinyMCE.getAbsPosition(this.instance.iframeElement);return{absLeft:ipos.absLeft+pos.absLeft,absTop:ipos.absTop+pos.absTop}},getSel:function(){var inst=this.instance;if(tinyMCE.isRealIE)return inst.getDoc().selection;return inst.contentWindow.getSelection()},getRng:function(){var s=this.getSel();if(s==null)return null;if(tinyMCE.isRealIE)return s.createRange();if(tinyMCE.isSafari&&!s.getRangeAt)return''+window.getSelection();if(s.rangeCount>0)return s.getRangeAt(0);return null},isCollapsed:function(){var r=this.getRng();if(r.item)return false;return r.boundingWidth==0||this.getSel().isCollapsed},collapse:function(b){var r=this.getRng(),s=this.getSel();if(r.select){r.collapse(b);r.select()}else{if(b)s.collapseToStart();else s.collapseToEnd()}},getFocusElement:function(){var inst=this.instance,doc,rng,sel,elm;if(tinyMCE.isRealIE){doc=inst.getDoc();rng=doc.selection.createRange();elm=rng.item?rng.item(0):rng.parentElement()}else{if(!tinyMCE.isSafari&&inst.isHidden())return inst.getBody();sel=this.getSel();rng=this.getRng();if(!sel||!rng)return null;elm=rng.commonAncestorContainer;if(!rng.collapsed){if(rng.startContainer==rng.endContainer){if(rng.startOffset-rng.endOffset<2){if(rng.startContainer.hasChildNodes())elm=rng.startContainer.childNodes[rng.startOffset]}}}elm=tinyMCE.getParentElement(elm);}return elm}};function TinyMCE_UndoRedo(inst){this.instance=inst;this.undoLevels=[];this.undoIndex=0;this.typingUndoIndex=-1;this.undoRedo=true};TinyMCE_UndoRedo.prototype={add:function(l){var b,customUndoLevels,newHTML,inst=this.instance,i,ul,ur;if(l){this.undoLevels[this.undoLevels.length]=l;return true}if(this.typingUndoIndex!=-1){this.undoIndex=this.typingUndoIndex;if(tinyMCE.typingUndoIndex!=-1)tinyMCE.undoIndex=tinyMCE.typingUndoIndex}newHTML=tinyMCE.trim(inst.getBody().innerHTML);if(this.undoLevels[this.undoIndex]&&newHTML!=this.undoLevels[this.undoIndex].content){inst.isNotDirty=false;tinyMCE.dispatchCallback(inst,'onchange_callback','onChange',inst);customUndoLevels=tinyMCE.settings.custom_undo_redo_levels;if(customUndoLevels!=-1&&this.undoLevels.length>customUndoLevels){for(i=0;i0){this.undoIndex--;tinyMCE.setInnerHTML(inst.getBody(),this.undoLevels[this.undoIndex].content);inst.repaint();if(inst.settings.custom_undo_redo_restore_selection)inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark)}},redo:function(){var inst=this.instance;tinyMCE.execCommand("mceEndTyping");if(this.undoIndex<(this.undoLevels.length-1)){this.undoIndex++;tinyMCE.setInnerHTML(inst.getBody(),this.undoLevels[this.undoIndex].content);inst.repaint();if(inst.settings.custom_undo_redo_restore_selection)inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark)}tinyMCE.triggerNodeChange()}};var TinyMCE_ForceParagraphs={_insertPara:function(inst,e){var doc=inst.getDoc(),sel=inst.getSel(),body=inst.getBody(),win=inst.contentWindow,rng=sel.getRangeAt(0);var rootElm=doc.documentElement,blockName="P",startNode,endNode,startBlock,endBlock;var rngBefore,rngAfter,direct,startNode,startOffset,endNode,endOffset,b=tinyMCE.isOpera?inst.selection.getBookmark():null;var paraBefore,paraAfter,startChop,endChop,contents,i;function isEmpty(para){var nodes;function isEmptyHTML(html){return html.replace(new RegExp('[ \t\r\n]+','g'),'').toLowerCase()==''}if(para.getElementsByTagName("img").length>0)return false;if(para.getElementsByTagName("table").length>0)return false;if(para.getElementsByTagName("hr").length>0)return false;nodes=tinyMCE.getNodeTree(para,[],3);for(i=0;i <"+blockName+"> ";paraAfter=body.childNodes[1]}inst.selection.moveToBookmark(b);inst.selection.selectNode(paraAfter,true,true);return true}if(startChop.nodeName==blockName)rngBefore.setStart(startChop,0);else rngBefore.setStartBefore(startChop);rngBefore.setEnd(startNode,startOffset);paraBefore.appendChild(rngBefore.cloneContents());rngAfter.setEndAfter(endChop);rngAfter.setStart(endNode,endOffset);contents=rngAfter.cloneContents();if(contents.firstChild&&contents.firstChild.nodeName==blockName){paraAfter.innerHTML=contents.firstChild.innerHTML}else paraAfter.appendChild(contents);if(isEmpty(paraBefore))paraBefore.innerHTML=" ";if(isEmpty(paraAfter))paraAfter.innerHTML=" ";rng=doc.createRange();if(!startChop.previousSibling&&startChop.parentNode.nodeName.toUpperCase()==blockName){rng.setStartBefore(startChop.parentNode)}else{if(rngBefore.startContainer.nodeName.toUpperCase()==blockName&&rngBefore.startOffset==0)rng.setStartBefore(rngBefore.startContainer);else rng.setStart(rngBefore.startContainer,rngBefore.startOffset)}if(!endChop.nextSibling&&endChop.parentNode.nodeName.toUpperCase()==blockName)rng.setEndAfter(endChop.parentNode);else rng.setEnd(rngAfter.endContainer,rngAfter.endOffset);rng.deleteContents();if(tinyMCE.isOpera){rng.insertNode(paraBefore);rng.insertNode(paraAfter)}else{rng.insertNode(paraAfter);rng.insertNode(paraBefore)}paraAfter.normalize();paraBefore.normalize();inst.selection.moveToBookmark(b);inst.selection.selectNode(paraAfter,true,true);return true},_handleBackSpace:function(inst){var r=inst.getRng(),sn=r.startContainer,nv,s=false;if(sn&&sn.nextSibling&&sn.nextSibling.nodeName=="BR"&&sn.parentNode.nodeName!="BODY"){nv=sn.nodeValue;if(nv!=null&&r.startOffset==nv.length)sn.nextSibling.parentNode.removeChild(sn.nextSibling)}if(inst.settings.auto_resize)inst.resizeToContent();return s}};function TinyMCE_Layer(id,bm){this.id=id;this.blockerElement=null;this.events=false;this.element=null;this.blockMode=typeof(bm)!='undefined'?bm:true;this.doc=document};TinyMCE_Layer.prototype={moveRelativeTo:function(re,p){var rep=this.getAbsPosition(re),e=this.getElement(),x,y;var w=parseInt(re.offsetWidth),h=parseInt(re.offsetHeight);var ew=parseInt(e.offsetWidth),eh=parseInt(e.offsetHeight);switch(p){case"tl":x=rep.absLeft;y=rep.absTop;break;case"tr":x=rep.absLeft+w;y=rep.absTop;break;case"bl":x=rep.absLeft;y=rep.absTop+h;break;case"br":x=rep.absLeft+w;y=rep.absTop+h;break;case"cc":x=rep.absLeft+(w/ 2) - (ew /2);y=rep.absTop+(h/ 2) - (eh /2);break}this.moveTo(x,y)},moveBy:function(x,y){var e=this.getElement();this.moveTo(parseInt(e.style.left)+x,parseInt(e.style.top)+y)},moveTo:function(x,y){var e=this.getElement();e.style.left=x+"px";e.style.top=y+"px";this.updateBlocker()},resizeBy:function(w,h){var e=this.getElement();this.resizeTo(parseInt(e.style.width)+w,parseInt(e.style.height)+h)},resizeTo:function(w,h){var e=this.getElement();if(w!=null)e.style.width=w+"px";if(h!=null)e.style.height=h+"px";this.updateBlocker()},show:function(){var el=this.getElement();if(el){el.style.display='block';this.updateBlocker()}},hide:function(){var el=this.getElement();if(el){el.style.display='none';this.updateBlocker()}},isVisible:function(){return this.getElement().style.display=='block'},getElement:function(){if(!this.element)this.element=this.doc.getElementById(this.id);return this.element},setBlockMode:function(s){this.blockMode=s},updateBlocker:function(){var e,b,x,y,w,h;b=this.getBlocker();if(b){if(this.blockMode){e=this.getElement();x=this.parseInt(e.style.left);y=this.parseInt(e.style.top);w=this.parseInt(e.offsetWidth);h=this.parseInt(e.offsetHeight);b.style.left=x+'px';b.style.top=y+'px';b.style.width=w+'px';b.style.height=h+'px';b.style.display=e.style.display}else b.style.display='none'}},getBlocker:function(){var d,b;if(!this.blockerElement&&this.blockMode){d=this.doc;b=d.getElementById(this.id+"_blocker");if(!b){b=d.createElement("iframe");b.setAttribute('id',this.id+"_blocker");b.style.cssText='display: none; position: absolute; left: 0; top: 0';b.src='javascript:false;';b.frameBorder='0';b.scrolling='no';d.body.appendChild(b)}this.blockerElement=b}return this.blockerElement},getAbsPosition:function(n){var p={absLeft:0,absTop:0};while(n){p.absLeft+=n.offsetLeft;p.absTop+=n.offsetTop;n=n.offsetParent}return p},create:function(n,c,p,h){var d=this.doc,e=d.createElement(n);e.setAttribute('id',this.id);if(c)e.className=c;if(!p)p=d.body;if(h)e.innerHTML=h;p.appendChild(e);return this.element=e},exists:function(){return this.doc.getElementById(this.id)!=null},parseInt:function(s){if(s==null||s=='')return 0;return parseInt(s)},remove:function(){var e=this.getElement(),b=this.getBlocker();if(e)e.parentNode.removeChild(e);if(b)b.parentNode.removeChild(b)}};function TinyMCE_Menu(){var id;if(typeof(tinyMCE.menuCounter)=="undefined")tinyMCE.menuCounter=0;id="mc_menu_"+tinyMCE.menuCounter++;TinyMCE_Layer.call(this,id,true);this.id=id;this.items=[];this.needsUpdate=true};TinyMCE_Menu.prototype=tinyMCE.extend(TinyMCE_Layer.prototype,{init:function(s){var n;this.settings={separator_class:'mceMenuSeparator',title_class:'mceMenuTitle',disabled_class:'mceMenuDisabled',menu_class:'mceMenu',drop_menu:true};for(n in s)this.settings[n]=s[n];this.create('div',this.settings.menu_class)},clear:function(){this.items=[]},addTitle:function(t){this.add({type:'title',text:t})},addDisabled:function(t){this.add({type:'disabled',text:t})},addSeparator:function(){this.add({type:'separator'})},addItem:function(t,js){this.add({text:t,js:js})},add:function(mi){this.items[this.items.length]=mi;this.needsUpdate=true},update:function(){var e=this.getElement(),h='',i,t,m=this.items,s=this.settings;if(this.settings.drop_menu)h+='';h+='';for(i=0;i'}h+='
        ';break;case'title':h+='
        '+t+'';break;case'disabled':h+='
        '+t+'';break;default:h+='
        '+t+''}h+='
        ';e.innerHTML=h;this.needsUpdate=false;this.updateBlocker()},show:function(){var nl,i;if(tinyMCE.lastMenu==this)return;if(this.needsUpdate)this.update();if(tinyMCE.lastMenu&&tinyMCE.lastMenu!=this)tinyMCE.lastMenu.hide();TinyMCE_Layer.prototype.show.call(this);if(!tinyMCE.isOpera){}tinyMCE.lastMenu=this}});tinyMCE.add(TinyMCE_Engine,{debug:function(){var m="",a,i,l=tinyMCE.log.length;for(i=0,a=this.debug.arguments;i= 6 && sp2) + return 1; + + // IE 7.0+ seems fine + if (ver >= 7) + return 1; + + // All others might fail + return 0; + }, + + loadFile : function(u) { + var x, ex; + + if (this.settings['debug']) + alert('JS: ' + u); + + if (this.isIE) { + // Synchronous AJAX load gzip JS file + try { + x = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (ex) { + x = new ActiveXObject("Msxml2.XMLHTTP"); + } + + x.open("GET", u.replace(/%2C/g, ','), false); + x.send(null); + + this.scriptData = x.responseText; + + document.write(''); + } else + document.write(''); + }, + + start : function() { + var s = this.settings, p = TinyMCE_Engine.prototype; + + p.__loadScript = p.loadScript; + p.__importThemeLanguagePack = p.importThemeLanguagePack; + p.__importPluginLanguagePack = p.importPluginLanguagePack; + p.__loadNextScript = p.loadNextScript; + p.loadScript = p.importThemeLanguagePack = p.importPluginLanguagePack = p.loadNextScript = function() {}; + tinyMCE.baseURL = this.baseURL.substring(0, this.baseURL.length - 1); + tinyMCE.settings = {}; + tinyMCE.srcMode = ''; + }, + + end : function() { + var s = this.settings, l = tinyMCE.loadedFiles, la, i, p = TinyMCE_Engine.prototype; + + this.addFiles(s.plugins, 'plugins', 'editor_plugin.js'); + this.addFiles(s.themes, 'themes', 'editor_template.js'); + + la = s.languages.replace(/\s+/, '').split(',') + for (i=0; i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce_popup.js b/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce_popup.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce_popup.js @@ -0,0 +1,294 @@ +// Some global instances, this will be filled later +var tinyMCE = null, tinyMCELang = null; + +function TinyMCE_Popup() { +}; + +TinyMCE_Popup.prototype = { + findWin : function(w) { + var c; + + // Check parents + c = w; + while (c && (c = c.parent) != null) { + if (typeof(c.tinyMCE) != "undefined") + return c; + } + + // Check openers + c = w; + while (c && (c = c.opener) != null) { + if (typeof(c.tinyMCE) != "undefined") + return c; + } + + // Try top + if (typeof(top.tinyMCE) != "undefined") + return top; + + return null; + }, + + init : function() { + var win = window.opener ? window.opener : window.dialogArguments, c; + var inst, re, title, divElm; + + if (!win) + win = this.findWin(window); + + if (!win) { + alert("tinyMCE object reference not found from popup."); + return; + } + + window.opener = win; + this.windowOpener = win; + this.onLoadEval = ""; + + // Setup parent references + tinyMCE = win.tinyMCE; + tinyMCELang = win.tinyMCELang; + + inst = tinyMCE.selectedInstance; + this.isWindow = tinyMCE.getWindowArg('mce_inside_iframe', false) == false; + this.storeSelection = (tinyMCE.isRealIE) && !this.isWindow && tinyMCE.getWindowArg('mce_store_selection', true); + + if (this.isWindow) + window.focus(); + + // Store selection + if (this.storeSelection) + inst.selectionBookmark = inst.selection.getBookmark(true); + + // Setup dir + if (tinyMCELang.lang_dir) + document.dir = tinyMCELang.lang_dir; + + // Setup title + re = new RegExp('{|\\\$|}', 'g'); + title = document.title.replace(re, ""); + if (typeof(tinyMCELang[title]) != "undefined") { + divElm = document.createElement("div"); + divElm.innerHTML = tinyMCELang[title]; + document.title = divElm.innerHTML; + + if (typeof(tinyMCE.setWindowTitle) != 'undefined') + tinyMCE.setWindowTitle(window, divElm.innerHTML); + } + + // Output Popup CSS class + document.write(''); + + if (tinyMCE.getParam("popups_css_add")) { + c = tinyMCE.getParam("popups_css_add"); + + // Is relative + if (c.indexOf('://') == -1 && c.charAt(0) != '/') + c = tinyMCE.documentBasePath + "/" + c; + + document.write(''); + } + + tinyMCE.addEvent(window, "load", this.onLoad); + }, + + onLoad : function() { + var dir, i, elms, body = document.body; + + if (tinyMCE.getWindowArg('mce_replacevariables', true)) + body.innerHTML = tinyMCE.applyTemplate(body.innerHTML, tinyMCE.windowArgs); + + dir = tinyMCE.selectedInstance.settings.directionality; + if (dir == "rtl" && document.forms && document.forms.length > 0) { + elms = document.forms[0].elements; + for (i=0; i=0; i--) { + if (wrapper.hasChildNodes()) + wrapper.insertBefore(nodes[i].cloneNode(true), wrapper.firstChild); + else + wrapper.appendChild(nodes[i].cloneNode(true)); + + nodes[i].parentNode.removeChild(nodes[i]); + } + + // Add wrapper + doc.body.appendChild(wrapper); + + // Create iframe + iframe = document.createElement("iframe"); + iframe.id = "mcWinIframe"; + iframe.src = document.location.href.toLowerCase().indexOf('https') == -1 ? "about:blank" : tinyMCE.settings.default_document; + iframe.width = "100%"; + iframe.height = "100%"; + iframe.style.margin = '0'; + + // Add iframe + doc.body.appendChild(iframe); + + // Measure iframe + iframe = document.getElementById('mcWinIframe'); + dx = tinyMCE.getWindowArg('mce_width') - iframe.clientWidth; + dy = tinyMCE.getWindowArg('mce_height') - iframe.clientHeight; + + // Resize window + // tinyMCE.debug(tinyMCE.getWindowArg('mce_width') + "," + tinyMCE.getWindowArg('mce_height') + " - " + dx + "," + dy); + window.resizeBy(dx, dy); + + // Hide iframe and show wrapper + body.style.margin = oldMargin; + iframe.style.display = 'none'; + wrapper.style.display = 'block'; + } + }, + + resizeToContent : function() { + var isMSIE = (navigator.appName == "Microsoft Internet Explorer"); + var isOpera = (navigator.userAgent.indexOf("Opera") != -1); + var elm, width, height, x, y, dx, dy; + + if (isOpera) + return; + + if (isMSIE) { + try { window.resizeTo(10, 10); } catch (e) {} + + elm = document.body; + width = elm.offsetWidth; + height = elm.offsetHeight; + dx = (elm.scrollWidth - width) + 4; + dy = elm.scrollHeight - height; + + try { window.resizeBy(dx, dy); } catch (e) {} + } else { + window.scrollBy(1000, 1000); + if (window.scrollX > 0 || window.scrollY > 0) { + window.resizeBy(window.innerWidth * 2, window.innerHeight * 2); + window.sizeToContent(); + window.scrollTo(0, 0); + x = parseInt(screen.width / 2.0) - (window.outerWidth / 2.0); + y = parseInt(screen.height / 2.0) - (window.outerHeight / 2.0); + window.moveTo(x, y); + } + } + }, + + getWindowArg : function(name, default_value) { + return tinyMCE.getWindowArg(name, default_value); + }, + + restoreSelection : function() { + var inst; + + if (this.storeSelection) { + inst = tinyMCE.selectedInstance; + + inst.getWin().focus(); + + if (inst.selectionBookmark) + inst.selection.moveToBookmark(inst.selectionBookmark); + } + }, + + execCommand : function(command, user_interface, value) { + var inst = tinyMCE.selectedInstance; + + this.restoreSelection(); + inst.execCommand(command, user_interface, value); + + // Store selection + if (this.storeSelection) + inst.selectionBookmark = inst.selection.getBookmark(true); + }, + + close : function() { + tinyMCE.closeWindow(window); + }, + + pickColor : function(e, element_id) { + tinyMCE.selectedInstance.execCommand('mceColorPicker', true, { + element_id : element_id, + document : document, + window : window, + store_selection : false + }); + }, + + openBrowser : function(element_id, type, option) { + var cb = tinyMCE.getParam(option, tinyMCE.getParam("file_browser_callback")); + var url = document.getElementById(element_id).value; + + tinyMCE.setWindowArg("window", window); + tinyMCE.setWindowArg("document", document); + + // Call to external callback + if (eval('typeof(tinyMCEPopup.windowOpener.' + cb + ')') == "undefined") + alert("Callback function: " + cb + " could not be found."); + else + eval("tinyMCEPopup.windowOpener." + cb + "(element_id, url, type, window);"); + }, + + importClass : function(c) { + var n; + + window[c] = function() {}; + + for (n in window.opener[c].prototype) + window[c].prototype[n] = window.opener[c].prototype[n]; + + window[c].constructor = window.opener[c].constructor; + } + + }; + +// Setup global instance +var tinyMCEPopup = new TinyMCE_Popup(); + +tinyMCEPopup.init(); diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce_src.js b/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce_src.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce_src.js @@ -0,0 +1,7612 @@ + +/* file:jscripts/tiny_mce/classes/TinyMCE_Engine.class.js */ + +function TinyMCE_Engine() { + var ua; + + this.majorVersion = "2"; + this.minorVersion = "1.2"; + this.releaseDate = "2007-08-21"; + + this.instances = []; + this.switchClassCache = []; + this.windowArgs = []; + this.loadedFiles = []; + this.pendingFiles = []; + this.loadingIndex = 0; + this.configs = []; + this.currentConfig = 0; + this.eventHandlers = []; + this.log = []; + this.undoLevels = []; + this.undoIndex = 0; + this.typingUndoIndex = -1; + this.settings = []; + + // Browser check + ua = navigator.userAgent; + this.isMSIE = (navigator.appName == "Microsoft Internet Explorer"); + this.isMSIE5 = this.isMSIE && (ua.indexOf('MSIE 5') != -1); + this.isMSIE5_0 = this.isMSIE && (ua.indexOf('MSIE 5.0') != -1); + this.isMSIE7 = this.isMSIE && (ua.indexOf('MSIE 7') != -1); + this.isGecko = ua.indexOf('Gecko') != -1; // Will also be true on Safari + this.isSafari = ua.indexOf('Safari') != -1; + this.isOpera = window['opera'] && opera.buildNumber ? true : false; + this.isMac = ua.indexOf('Mac') != -1; + this.isNS7 = ua.indexOf('Netscape/7') != -1; + this.isNS71 = ua.indexOf('Netscape/7.1') != -1; + this.dialogCounter = 0; + this.plugins = []; + this.themes = []; + this.menus = []; + this.loadedPlugins = []; + this.buttonMap = []; + this.isLoaded = false; + + // Fake MSIE on Opera and if Opera fakes IE, Gecko or Safari cancel those + if (this.isOpera) { + this.isMSIE = true; + this.isGecko = false; + this.isSafari = false; + } + + this.isIE = this.isMSIE; + this.isRealIE = this.isMSIE && !this.isOpera; + + // TinyMCE editor id instance counter + this.idCounter = 0; +}; + +TinyMCE_Engine.prototype = { + init : function(settings) { + var theme, nl, baseHREF = "", i, cssPath, entities, h, p, src, elements = [], head; + + // IE 5.0x is no longer supported since 5.5, 6.0 and 7.0 now exists. We can't support old browsers forever, sorry. + if (this.isMSIE5_0) + return; + + this.settings = settings; + + // Check if valid browser has execcommand support + if (typeof(document.execCommand) == 'undefined') + return; + + // Get script base path + if (!tinyMCE.baseURL) { + // Search through head + head = document.getElementsByTagName('head')[0]; + + if (head) { + for (i=0, nl = head.getElementsByTagName('script'); i'); + this._def("font_size_classes", ''); + this._def("font_size_style_values", 'xx-small,x-small,small,medium,large,x-large,xx-large', true); + this._def("event_elements", 'a,img', true); + this._def("convert_urls", true); + this._def("table_inline_editing", false); + this._def("object_resizing", true); + this._def("custom_shortcuts", true); + this._def("convert_on_click", false); + this._def("content_css", ''); + this._def("fix_list_elements", true); + this._def("fix_table_elements", false); + this._def("strict_loading_mode", document.contentType == 'application/xhtml+xml'); + this._def("hidden_tab_class", ''); + this._def("display_tab_class", ''); + this._def("gecko_spellcheck", false); + this._def("hide_selects_on_submit", true); + this._def("forced_root_block", false); + this._def("remove_trailing_nbsp", false); + this._def("save_on_tinymce_forms", false); + + // Force strict loading mode to false on non Gecko browsers + if (this.isMSIE && !this.isOpera) + this.settings.strict_loading_mode = false; + + // Browser check IE + if (this.isMSIE && this.settings.browsers.indexOf('msie') == -1) + return; + + // Browser check Gecko + if (this.isGecko && this.settings.browsers.indexOf('gecko') == -1) + return; + + // Browser check Safari + if (this.isSafari && this.settings.browsers.indexOf('safari') == -1) + return; + + // Browser check Opera + if (this.isOpera && this.settings.browsers.indexOf('opera') == -1) + return; + + // If not super absolute make it so + baseHREF = tinyMCE.settings.document_base_url; + h = document.location.href; + p = h.indexOf('://'); + if (p > 0 && document.location.protocol != "file:") { + p = h.indexOf('/', p + 3); + h = h.substring(0, p); + + if (baseHREF.indexOf('://') == -1) + baseHREF = h + baseHREF; + + tinyMCE.settings.document_base_url = baseHREF; + tinyMCE.settings.document_base_prefix = h; + } + + // Trim away query part + if (baseHREF.indexOf('?') != -1) + baseHREF = baseHREF.substring(0, baseHREF.indexOf('?')); + + this.settings.base_href = baseHREF.substring(0, baseHREF.lastIndexOf('/')) + "/"; + + theme = this.settings.theme; + this.inlineStrict = 'A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment'; + this.inlineTransitional = 'A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment'; + this.blockElms = 'H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP'; + this.blockRegExp = new RegExp("^(" + this.blockElms + ")$", "i"); + this.posKeyCodes = [13,45,36,35,33,34,37,38,39,40]; + this.uniqueURL = 'javascript:void(091039730);'; // Make unique URL non real URL + this.uniqueTag = ''; + this.callbacks = ['onInit', 'getInfo', 'getEditorTemplate', 'setupContent', 'onChange', 'onPageLoad', 'handleNodeChange', 'initInstance', 'execCommand', 'getControlHTML', 'handleEvent', 'cleanup', 'removeInstance']; + + // Theme url + this.settings.theme_href = tinyMCE.baseURL + "/themes/" + theme; + + if (!tinyMCE.isIE || tinyMCE.isOpera) + this.settings.force_br_newlines = false; + + if (tinyMCE.getParam("popups_css", false)) { + cssPath = tinyMCE.getParam("popups_css", ""); + + // Is relative + if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/') + this.settings.popups_css = this.documentBasePath + "/" + cssPath; + else + this.settings.popups_css = cssPath; + } else + this.settings.popups_css = tinyMCE.baseURL + "/themes/" + theme + "/css/editor_popup.css"; + + if (tinyMCE.getParam("editor_css", false)) { + cssPath = tinyMCE.getParam("editor_css", ""); + + // Is relative + if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/') + this.settings.editor_css = this.documentBasePath + "/" + cssPath; + else + this.settings.editor_css = cssPath; + } else { + if (this.settings.editor_css !== '') + this.settings.editor_css = tinyMCE.baseURL + "/themes/" + theme + "/css/editor_ui.css"; + } + + // Only do this once + if (this.configs.length == 0) { + if (typeof(TinyMCECompressed) == "undefined") { + tinyMCE.addEvent(window, "DOMContentLoaded", TinyMCE_Engine.prototype.onLoad); + + if (tinyMCE.isRealIE) { + if (document.body) + tinyMCE.addEvent(document.body, "readystatechange", TinyMCE_Engine.prototype.onLoad); + else + tinyMCE.addEvent(document, "readystatechange", TinyMCE_Engine.prototype.onLoad); + } + + tinyMCE.addEvent(window, "load", TinyMCE_Engine.prototype.onLoad); + tinyMCE._addUnloadEvents(); + } + } + + this.loadScript(tinyMCE.baseURL + '/themes/' + this.settings.theme + '/editor_template' + tinyMCE.srcMode + '.js'); + this.loadScript(tinyMCE.baseURL + '/langs/' + this.settings.language + '.js'); + this.loadCSS(this.settings.editor_css); + + // Add plugins + p = tinyMCE.getParam('plugins', '', true, ','); + if (p.length > 0) { + for (i=0; i&"]', 'g'); + }, + + _addUnloadEvents : function() { + var st = tinyMCE.settings.add_unload_trigger; + + if (tinyMCE.isIE) { + if (st) { + tinyMCE.addEvent(window, "unload", TinyMCE_Engine.prototype.unloadHandler); + tinyMCE.addEvent(window.document, "beforeunload", TinyMCE_Engine.prototype.unloadHandler); + } + } else { + if (st) + tinyMCE.addEvent(window, "unload", function () {tinyMCE.triggerSave(true, true);}); + } + }, + + _def : function(key, def_val, t) { + var v = tinyMCE.getParam(key, def_val); + + v = t ? v.replace(/\s+/g, "") : v; + + this.settings[key] = v; + }, + + hasPlugin : function(n) { + return typeof(this.plugins[n]) != "undefined" && this.plugins[n] != null; + }, + + addPlugin : function(n, p) { + var op = this.plugins[n]; + + // Use the previous plugin object base URL used when loading external plugins + p.baseURL = op ? op.baseURL : tinyMCE.baseURL + "/plugins/" + n; + this.plugins[n] = p; + + this.loadNextScript(); + }, + + setPluginBaseURL : function(n, u) { + var op = this.plugins[n]; + + if (op) + op.baseURL = u; + else + this.plugins[n] = {baseURL : u}; + }, + + loadPlugin : function(n, u) { + u = u.indexOf('.js') != -1 ? u.substring(0, u.lastIndexOf('/')) : u; + u = u.charAt(u.length-1) == '/' ? u.substring(0, u.length-1) : u; + this.plugins[n] = {baseURL : u}; + this.loadScript(u + "/editor_plugin" + (tinyMCE.srcMode ? '_src' : '') + ".js"); + }, + + hasTheme : function(n) { + return typeof(this.themes[n]) != "undefined" && this.themes[n] != null; + }, + + addTheme : function(n, t) { + this.themes[n] = t; + + this.loadNextScript(); + }, + + addMenu : function(n, m) { + this.menus[n] = m; + }, + + hasMenu : function(n) { + return typeof(this.plugins[n]) != "undefined" && this.plugins[n] != null; + }, + + loadScript : function(url) { + var i; + + for (i=0; i'); + + this.loadedFiles[this.loadedFiles.length] = url; + }, + + loadNextScript : function() { + var d = document, se; + + if (!tinyMCE.settings.strict_loading_mode) + return; + + if (this.loadingIndex < this.pendingFiles.length) { + se = d.createElementNS('http://www.w3.org/1999/xhtml', 'script'); + se.setAttribute('language', 'javascript'); + se.setAttribute('type', 'text/javascript'); + se.setAttribute('src', this.pendingFiles[this.loadingIndex++]); + + d.getElementsByTagName("head")[0].appendChild(se); + } else + this.loadingIndex = -1; // Done with loading + }, + + loadCSS : function(url) { + var ar = url.replace(/\s+/, '').split(','); + var lflen = 0, csslen = 0, skip = false; + var x = 0, i = 0, nl, le; + + for (x = 0,csslen = ar.length; x 0) { + /* Make sure it doesn't exist. */ + for (i=0, lflen=this.loadedFiles.length; i'); + + this.loadedFiles[this.loadedFiles.length] = ar[x]; + } + } + } + }, + + importCSS : function(doc, css) { + var css_ary = css.replace(/\s+/, '').split(','); + var csslen, elm, headArr, x, css_file; + + for (x = 0, csslen = css_ary.length; x 0) { + // Is relative, make absolute + if (css_file.indexOf('://') == -1 && css_file.charAt(0) != '/') + css_file = this.documentBasePath + "/" + css_file; + + if (typeof(doc.createStyleSheet) == "undefined") { + elm = doc.createElement("link"); + + elm.rel = "stylesheet"; + elm.href = css_file; + + if ((headArr = doc.getElementsByTagName("head")) != null && headArr.length > 0) + headArr[0].appendChild(elm); + } else + doc.createStyleSheet(css_file); + } + } + }, + + confirmAdd : function(e, settings) { + var elm = tinyMCE.isIE ? event.srcElement : e.target; + var elementId = elm.name ? elm.name : elm.id; + + tinyMCE.settings = settings; + + if (tinyMCE.settings.convert_on_click || (!elm.getAttribute('mce_noask') && confirm(tinyMCELang.lang_edit_confirm))) + tinyMCE.addMCEControl(elm, elementId); + + elm.setAttribute('mce_noask', 'true'); + }, + + updateContent : function(form_element_name) { + var formElement, n, inst, doc; + + // Find MCE instance linked to given form element and copy it's value + formElement = document.getElementById(form_element_name); + for (n in tinyMCE.instances) { + inst = tinyMCE.instances[n]; + + if (!tinyMCE.isInstance(inst)) + continue; + + inst.switchSettings(); + + if (inst.formElement == formElement) { + doc = inst.getDoc(); + + tinyMCE._setHTML(doc, inst.formElement.value); + + if (!tinyMCE.isIE) + doc.body.innerHTML = tinyMCE._cleanupHTML(inst, doc, this.settings, doc.body, inst.visualAid); + } + } + }, + + addMCEControl : function(replace_element, form_element_name, target_document) { + var id = "mce_editor_" + tinyMCE.idCounter++; + var inst = new TinyMCE_Control(tinyMCE.settings); + + inst.editorId = id; + this.instances[id] = inst; + + inst._onAdd(replace_element, form_element_name, target_document); + }, + + removeInstance : function(ti) { + var t = [], n, i; + + // Remove from instances + for (n in tinyMCE.instances) { + i = tinyMCE.instances[n]; + + if (tinyMCE.isInstance(i) && ti != i) + t[n] = i; + } + + tinyMCE.instances = t; + + // Remove from global undo/redo + n = []; + t = tinyMCE.undoLevels; + + for (i=0; i 0) { + tinyMCE.nextUndoRedoAction = 'Undo'; + inst = this.undoLevels[--this.undoIndex]; + inst.select(); + + if (!tinyMCE.nextUndoRedoInstanceId) + inst.execCommand('Undo'); + } + } else + inst.execCommand('Undo'); + return true; + + case "Redo": + if (this.getParam('custom_undo_redo_global')) { + if (this.undoIndex <= this.undoLevels.length - 1) { + tinyMCE.nextUndoRedoAction = 'Redo'; + inst = this.undoLevels[this.undoIndex++]; + inst.select(); + + if (!tinyMCE.nextUndoRedoInstanceId) + inst.execCommand('Redo'); + } + } else + inst.execCommand('Redo'); + + return true; + + case 'mceFocus': + inst = tinyMCE.getInstanceById(value); + + if (inst) + inst.getWin().focus(); + return; + + case "mceAddControl": + case "mceAddEditor": + tinyMCE.addMCEControl(tinyMCE._getElementById(value), value); + return; + + case "mceAddFrameControl": + tinyMCE.addMCEControl(tinyMCE._getElementById(value.element, value.document), value.element, value.document); + return; + + case "mceRemoveControl": + case "mceRemoveEditor": + tinyMCE.removeMCEControl(value); + return; + + case "mceToggleEditor": + inst = tinyMCE.getInstanceById(value); + + if (inst) { + pe = document.getElementById(inst.editorId + '_parent'); + te = inst.oldTargetElement; + + if (typeof(inst.enabled) == 'undefined') + inst.enabled = true; + + inst.enabled = !inst.enabled; + + if (!inst.enabled) { + pe.style.display = 'none'; + + if (te.nodeName == 'TEXTAREA' || te.nodeName == 'INPUT') + te.value = inst.getHTML(); + else + te.innerHTML = inst.getHTML(); + + te.style.display = inst.oldTargetDisplay; + tinyMCE.dispatchCallback(inst, 'hide_instance_callback', 'hideInstance', inst); + } else { + pe.style.display = 'block'; + te.style.display = 'none'; + + if (te.nodeName == 'TEXTAREA' || te.nodeName == 'INPUT') + inst.setHTML(te.value); + else + inst.setHTML(te.innerHTML); + + inst.useCSS = false; + tinyMCE.dispatchCallback(inst, 'show_instance_callback', 'showInstance', inst); + } + } else + tinyMCE.addMCEControl(tinyMCE._getElementById(value), value); + + return; + + case "mceResetDesignMode": + // Resets the designmode state of the editors in Gecko + if (tinyMCE.isGecko) { + for (n in tinyMCE.instances) { + if (!tinyMCE.isInstance(tinyMCE.instances[n])) + continue; + + try { + tinyMCE.instances[n].getDoc().designMode = "off"; + tinyMCE.instances[n].getDoc().designMode = "on"; + tinyMCE.instances[n].useCSS = false; + } catch (e) { + // Ignore any errors + } + } + } + + return; + } + + if (inst) { + inst.execCommand(command, user_interface, value); + } else if (tinyMCE.settings.focus_alert) + alert(tinyMCELang.lang_focus_alert); + }, + + _createIFrame : function(replace_element, doc, win) { + var iframe, id = replace_element.getAttribute("id"); + var aw, ah; + + if (typeof(doc) == "undefined") + doc = document; + + if (typeof(win) == "undefined") + win = window; + + iframe = doc.createElement("iframe"); + + aw = "" + tinyMCE.settings.area_width; + ah = "" + tinyMCE.settings.area_height; + + if (aw.indexOf('%') == -1) { + aw = parseInt(aw); + aw = (isNaN(aw) || aw < 0) ? 300 : aw; + aw = aw + "px"; + } + + if (ah.indexOf('%') == -1) { + ah = parseInt(ah); + ah = (isNaN(ah) || ah < 0) ? 240 : ah; + ah = ah + "px"; + } + + iframe.setAttribute("id", id); + iframe.setAttribute("name", id); + iframe.setAttribute("class", "mceEditorIframe"); + iframe.setAttribute("border", "0"); + iframe.setAttribute("frameBorder", "0"); + iframe.setAttribute("marginWidth", "0"); + iframe.setAttribute("marginHeight", "0"); + iframe.setAttribute("leftMargin", "0"); + iframe.setAttribute("topMargin", "0"); + iframe.setAttribute("width", aw); + iframe.setAttribute("height", ah); + iframe.setAttribute("allowtransparency", "true"); + iframe.className = 'mceEditorIframe'; + + if (tinyMCE.settings.auto_resize) + iframe.setAttribute("scrolling", "no"); + + // Must have a src element in MSIE HTTPs breaks aswell as absoute URLs + if (tinyMCE.isRealIE) + iframe.setAttribute("src", this.settings.default_document); + + iframe.style.width = aw; + iframe.style.height = ah; + + // Ugly hack for Gecko problem in strict mode + if (tinyMCE.settings.strict_loading_mode) + iframe.style.marginBottom = '-5px'; + + // MSIE 5.0 issue + if (tinyMCE.isRealIE) + replace_element.outerHTML = iframe.outerHTML; + else + replace_element.parentNode.replaceChild(iframe, replace_element); + + if (tinyMCE.isRealIE) + return win.frames[id]; + else + return iframe; + }, + + setupContent : function(editor_id) { + var inst = tinyMCE.instances[editor_id], i, doc = inst.getDoc(), head = doc.getElementsByTagName('head').item(0); + var content = inst.startContent, contentElement, body; + + // HTML values get XML encoded in strict mode + if (tinyMCE.settings.strict_loading_mode) { + content = content.replace(/</g, '<'); + content = content.replace(/>/g, '>'); + content = content.replace(/"/g, '"'); + content = content.replace(/&/g, '&'); + } + + tinyMCE.selectedInstance = inst; + inst.switchSettings(); + + // Not loaded correctly hit it again, Mozilla bug #997860 + if (!tinyMCE.isIE && tinyMCE.getParam("setupcontent_reload", false) && doc.title != "blank_page") { + // This part will remove the designMode status + // Failes first time in Firefox 1.5b2 on Mac + try {doc.location.href = tinyMCE.baseURL + "/blank.htm";} catch (ex) {} + window.setTimeout("tinyMCE.setupContent('" + editor_id + "');", 1000); + return; + } + + // Wait for it to load + if (!head || !doc.body) { + window.setTimeout("tinyMCE.setupContent('" + editor_id + "');", 10); + return; + } + + // Import theme specific content CSS the user specific + tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/themes/" + inst.settings.theme + "/css/editor_content.css"); + tinyMCE.importCSS(inst.getDoc(), inst.settings.content_css); + tinyMCE.dispatchCallback(inst, 'init_instance_callback', 'initInstance', inst); + + // Setup keyboard shortcuts + if (tinyMCE.getParam('custom_undo_redo_keyboard_shortcuts')) { + inst.addShortcut('ctrl', 'z', 'lang_undo_desc', 'Undo'); + inst.addShortcut('ctrl', 'y', 'lang_redo_desc', 'Redo'); + } + + // BlockFormat shortcuts keys + for (i=1; i<=6; i++) + inst.addShortcut('ctrl', '' + i, '', 'FormatBlock', false, ''); + + inst.addShortcut('ctrl', '7', '', 'FormatBlock', false, '

        '); + inst.addShortcut('ctrl', '8', '', 'FormatBlock', false, '

        '); + inst.addShortcut('ctrl', '9', '', 'FormatBlock', false, '
        '); + + // Add default shortcuts for gecko + if (tinyMCE.isGecko) { + inst.addShortcut('ctrl', 'b', 'lang_bold_desc', 'Bold'); + inst.addShortcut('ctrl', 'i', 'lang_italic_desc', 'Italic'); + inst.addShortcut('ctrl', 'u', 'lang_underline_desc', 'Underline'); + } + + // Setup span styles + if (tinyMCE.getParam("convert_fonts_to_spans")) + inst.getBody().setAttribute('id', 'mceSpanFonts'); + + if (tinyMCE.settings.nowrap) + doc.body.style.whiteSpace = "nowrap"; + + doc.body.dir = this.settings.directionality; + doc.editorId = editor_id; + + // Add on document element in Mozilla + if (!tinyMCE.isIE) + doc.documentElement.editorId = editor_id; + + inst.setBaseHREF(tinyMCE.settings.base_href); + + // Replace new line characters to BRs + if (tinyMCE.settings.convert_newlines_to_brs) { + content = tinyMCE.regexpReplace(content, "\r\n", "
        ", "gi"); + content = tinyMCE.regexpReplace(content, "\r", "
        ", "gi"); + content = tinyMCE.regexpReplace(content, "\n", "
        ", "gi"); + } + + // Open closed anchors + // content = content.replace(new RegExp('', 'gi'), ''); + + // Call custom cleanup code + content = tinyMCE.storeAwayURLs(content); + content = tinyMCE._customCleanup(inst, "insert_to_editor", content); + + if (tinyMCE.isIE) { + // Ugly!!! + window.setInterval('try{tinyMCE.getCSSClasses(tinyMCE.instances["' + editor_id + '"].getDoc(), "' + editor_id + '");}catch(e){}', 500); + + if (tinyMCE.settings.force_br_newlines) + doc.styleSheets[0].addRule("p", "margin: 0;"); + + body = inst.getBody(); + body.editorId = editor_id; + } + + content = tinyMCE.cleanupHTMLCode(content); + + // Fix for bug #958637 + if (!tinyMCE.isIE) { + contentElement = inst.getDoc().createElement("body"); + doc = inst.getDoc(); + + contentElement.innerHTML = content; + + if (tinyMCE.settings.cleanup_on_startup) + tinyMCE.setInnerHTML(inst.getBody(), tinyMCE._cleanupHTML(inst, doc, this.settings, contentElement)); + else + tinyMCE.setInnerHTML(inst.getBody(), content); + + tinyMCE.convertAllRelativeURLs(inst.getBody()); + } else { + if (tinyMCE.settings.cleanup_on_startup) { + tinyMCE._setHTML(inst.getDoc(), content); + + // Produces permission denied error in MSIE 5.5 + try { + tinyMCE.setInnerHTML(inst.getBody(), tinyMCE._cleanupHTML(inst, inst.contentDocument, this.settings, inst.getBody())); + } catch(e) { + // Ignore + } + } else + tinyMCE._setHTML(inst.getDoc(), content); + } + + // Fix for bug #957681 + //inst.getDoc().designMode = inst.getDoc().designMode; + + tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings.visual, inst); + tinyMCE.dispatchCallback(inst, 'setupcontent_callback', 'setupContent', editor_id, inst.getBody(), inst.getDoc()); + + // Re-add design mode on mozilla + if (!tinyMCE.isIE) + tinyMCE.addEventHandlers(inst); + + // Add blur handler + if (tinyMCE.isIE) { + tinyMCE.addEvent(inst.getBody(), "blur", TinyMCE_Engine.prototype._eventPatch); + tinyMCE.addEvent(inst.getBody(), "beforedeactivate", TinyMCE_Engine.prototype._eventPatch); // Bug #1439953 + + // Workaround for drag drop/copy paste base href bug + if (!tinyMCE.isOpera) { + tinyMCE.addEvent(doc.body, "mousemove", TinyMCE_Engine.prototype.onMouseMove); + tinyMCE.addEvent(doc.body, "beforepaste", TinyMCE_Engine.prototype._eventPatch); + tinyMCE.addEvent(doc.body, "drop", TinyMCE_Engine.prototype._eventPatch); + } + } + + // Trigger node change, this call locks buttons for tables and so forth + inst.select(); + tinyMCE.selectedElement = inst.contentWindow.document.body; + + // Call custom DOM cleanup + tinyMCE._customCleanup(inst, "insert_to_editor_dom", inst.getBody()); + tinyMCE._customCleanup(inst, "setup_content_dom", inst.getBody()); + tinyMCE._setEventsEnabled(inst.getBody(), false); + tinyMCE.cleanupAnchors(inst.getDoc()); + + if (tinyMCE.getParam("convert_fonts_to_spans")) + tinyMCE.convertSpansToFonts(inst.getDoc()); + + inst.startContent = tinyMCE.trim(inst.getBody().innerHTML); + inst.undoRedo.add({ content : inst.startContent }); + + // Cleanup any mess left from storyAwayURLs + if (tinyMCE.isGecko) { + // Remove mce_src from textnodes and comments + tinyMCE.selectNodes(inst.getBody(), function(n) { + if (n.nodeType == 3 || n.nodeType == 8) + n.nodeValue = n.nodeValue.replace(new RegExp('\\s(mce_src|mce_href)=\"[^\"]*\"', 'gi'), ""); + + return false; + }); + } + + // Remove Gecko spellchecking + if (tinyMCE.isGecko) + inst.getBody().spellcheck = tinyMCE.getParam("gecko_spellcheck"); + + // Cleanup any mess left from storyAwayURLs + tinyMCE._removeInternal(inst.getBody()); + + inst.select(); + tinyMCE.triggerNodeChange(false, true); + }, + + storeAwayURLs : function(s) { + // Remove all mce_src, mce_href and replace them with new ones + // s = s.replace(new RegExp('mce_src\\s*=\\s*\"[^ >\"]*\"', 'gi'), ''); + // s = s.replace(new RegExp('mce_href\\s*=\\s*\"[^ >\"]*\"', 'gi'), ''); + + if (!s.match(/(mce_src|mce_href)/gi, s)) { + s = s.replace(new RegExp('src\\s*=\\s*\"([^ >\"]*)\"', 'gi'), 'src="$1" mce_src="$1"'); + s = s.replace(new RegExp('href\\s*=\\s*\"([^ >\"]*)\"', 'gi'), 'href="$1" mce_href="$1"'); + } + + return s; + }, + + _removeInternal : function(n) { + if (tinyMCE.isGecko) { + // Remove mce_src from textnodes and comments + tinyMCE.selectNodes(n, function(n) { + if (n.nodeType == 3 || n.nodeType == 8) + n.nodeValue = n.nodeValue.replace(new RegExp('\\s(mce_src|mce_href)=\"[^\"]*\"', 'gi'), ""); + + return false; + }); + } + }, + + removeTinyMCEFormElements : function(form_obj) { + var i, elementId; + + // Skip form element removal + if (!tinyMCE.getParam('hide_selects_on_submit')) + return; + + // Check if form is valid + if (typeof(form_obj) == "undefined" || form_obj == null) + return; + + // If not a form, find the form + if (form_obj.nodeName != "FORM") { + if (form_obj.form) + form_obj = form_obj.form; + else + form_obj = tinyMCE.getParentElement(form_obj, "form"); + } + + // Still nothing + if (form_obj == null) + return; + + // Disable all UI form elements that TinyMCE created + for (i=0; i"); + rng.collapse(false); + rng.select(); + + tinyMCE.execCommand("mceAddUndoLevel"); + tinyMCE.triggerNodeChange(false); + return false; + } + } + + // Backspace or delete + if (e.keyCode == 8 || e.keyCode == 46) { + tinyMCE.selectedElement = e.target; + tinyMCE.linkElement = tinyMCE.getParentElement(e.target, "a"); + tinyMCE.imgElement = tinyMCE.getParentElement(e.target, "img"); + tinyMCE.triggerNodeChange(false); + } + + return false; + + case "keyup": + case "keydown": + tinyMCE.hideMenus(); + tinyMCE.hasMouseMoved = false; + + if (inst && inst.handleShortcut(e)) + return false; + + inst._fixRootBlocks(); + + if (inst.settings.remove_trailing_nbsp) + inst._fixTrailingNbsp(); + + if (e.target.editorId) + tinyMCE.instances[e.target.editorId].select(); + + if (tinyMCE.selectedInstance) + tinyMCE.selectedInstance.switchSettings(); + + inst = tinyMCE.selectedInstance; + + // Handle backspace + if (tinyMCE.isGecko && tinyMCE.settings.force_p_newlines && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) { + // Insert P element instead of BR + if (TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance, e.type)) { + // Cancel event + tinyMCE.execCommand("mceAddUndoLevel"); + e.preventDefault(); + return false; + } + } + + tinyMCE.selectedElement = null; + tinyMCE.selectedNode = null; + elm = tinyMCE.selectedInstance.getFocusElement(); + tinyMCE.linkElement = tinyMCE.getParentElement(elm, "a"); + tinyMCE.imgElement = tinyMCE.getParentElement(elm, "img"); + tinyMCE.selectedElement = elm; + + // Update visualaids on tabs + if (tinyMCE.isGecko && e.type == "keyup" && e.keyCode == 9) + tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(), true, tinyMCE.settings.visual, tinyMCE.selectedInstance); + + // Fix empty elements on return/enter, check where enter occured + if (tinyMCE.isIE && e.type == "keydown" && e.keyCode == 13) + tinyMCE.enterKeyElement = tinyMCE.selectedInstance.getFocusElement(); + + // Fix empty elements on return/enter + if (tinyMCE.isIE && e.type == "keyup" && e.keyCode == 13) { + elm = tinyMCE.enterKeyElement; + if (elm) { + var re = new RegExp('^HR|IMG|BR$','g'); // Skip these + var dre = new RegExp('^H[1-6]$','g'); // Add double on these + + if (!elm.hasChildNodes() && !re.test(elm.nodeName)) { + if (dre.test(elm.nodeName)) + elm.innerHTML = "  "; + else + elm.innerHTML = " "; + } + } + } + + // Check if it's a position key + keys = tinyMCE.posKeyCodes; + var posKey = false; + for (i=0; i'; + h += '{$'+lang+'}'; + h += ''; + } else { + // Normal button + h += ''; + h += '{$'+lang+'}'; + h += ''; + } + + return h; + }, + + getMenuButtonHTML : function(id, lang, img, mcmd, cmd, ui, val) { + var h = '', m, x; + + mcmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + mcmd + '\');'; + cmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + cmd + '\''; + + if (typeof(ui) != "undefined" && ui != null) + cmd += ',' + ui; + + if (typeof(val) != "undefined" && val != null) + cmd += ",'" + val + "'"; + + cmd += ');'; + + // Use tilemaps when enabled and found and never in MSIE since it loads the tile each time from cache if cahce is disabled + if (tinyMCE.getParam('button_tile_map') && (!tinyMCE.isIE || tinyMCE.isOpera) && (m = tinyMCE.buttonMap[id]) != null && (tinyMCE.getParam("language") == "en" || img.indexOf('$lang') == -1)) { + x = 0 - (m * 20) == 0 ? '0' : 0 - (m * 20); + + if (tinyMCE.isRealIE) + h += ''; + else + h += ''; + + h += ''; + h += ''; + h += ''; + h += ''; + } else { + if (tinyMCE.isRealIE) + h += ''; + else + h += ''; + + h += ''; + h += ''; + h += ''; + h += ''; + } + + return h; + }, + + _menuButtonEvent : function(e, o) { + if (o.className == 'mceMenuButtonFocus') + return; + + if (e == 'over') + o.className = o.className + ' mceMenuHover'; + else + o.className = o.className.replace(/\s.*$/, ''); + }, + + addButtonMap : function(m) { + var i, a = m.replace(/\s+/, '').split(','); + + for (i=0; i 0); + + if (tinyMCE.settings.custom_undo_redo) { + undoIndex = inst.undoRedo.undoIndex; + undoLevels = inst.undoRedo.undoLevels.length; + } + + tinyMCE.dispatchCallback(inst, 'handle_node_change_callback', 'handleNodeChange', editorId, elm, undoIndex, undoLevels, inst.visualAid, anySelection, setup_content); + } + + if (this.selectedInstance && (typeof(focus) == "undefined" || focus)) + this.selectedInstance.contentWindow.focus(); + }, + + _customCleanup : function(inst, type, content) { + var pl, po, i, customCleanup; + + // Call custom cleanup + customCleanup = tinyMCE.settings.cleanup_callback; + if (customCleanup != '') + content = tinyMCE.resolveDots(tinyMCE.settings.cleanup_callback, window)(type, content, inst); + + // Trigger theme cleanup + po = tinyMCE.themes[tinyMCE.settings.theme]; + if (po && po.cleanup) + content = po.cleanup(type, content, inst); + + // Trigger plugin cleanups + pl = inst.plugins; + for (i=0; i 0) + className += " "; + + className += classNames[i]; + } + + return className; + }, + + handleVisualAid : function(el, deep, state, inst, skip_dispatch) { + var i, x, y, tableElement, anchorName, oldW, oldH, bo, cn; + + if (!el) + return; + + if (!skip_dispatch) + tinyMCE.dispatchCallback(inst, 'handle_visual_aid_callback', 'handleVisualAid', el, deep, state, inst); + + tableElement = null; + + switch (el.nodeName) { + case "TABLE": + oldW = el.style.width; + oldH = el.style.height; + bo = tinyMCE.getAttrib(el, "border"); + + bo = bo == '' || bo == "0" ? true : false; + + tinyMCE.setAttrib(el, "class", tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el, "class"), state && bo)); + + el.style.width = oldW; + el.style.height = oldH; + + for (y=0; y 0) + return inst.cssClasses; + + if (!doc) + return; + + styles = doc.styleSheets; + + if (styles && styles.length > 0) { + for (x=0; x' + tinyMCE.replaceVar(v, "pluginurl", o.baseURL) + ''; + + return tinyMCE.replaceVar(v, "pluginurl", o.baseURL); + } + } + + o = tinyMCE.themes[tinyMCE.settings.theme]; + if (o.getControlHTML && (v = o.getControlHTML(c)) !== '') { + if (rtl) + return '' + v + ''; + + return v; + } + + return ''; + }, + + evalFunc : function(f, idx, a, o) { + o = !o ? window : o; + f = typeof(f) == 'function' ? f : o[f]; + + return f.apply(o, Array.prototype.slice.call(a, idx)); + }, + + dispatchCallback : function(i, p, n) { + return this.callFunc(i, p, n, 0, this.dispatchCallback.arguments); + }, + + executeCallback : function(i, p, n) { + return this.callFunc(i, p, n, 1, this.executeCallback.arguments); + }, + + execCommandCallback : function(i, p, n) { + return this.callFunc(i, p, n, 2, this.execCommandCallback.arguments); + }, + + callFunc : function(ins, p, n, m, a) { + var l, i, on, o, s, v; + + s = m == 2; + + l = tinyMCE.getParam(p, ''); + + if (l !== '' && (v = tinyMCE.evalFunc(l, 3, a)) == s && m > 0) + return true; + + if (ins != null) { + for (i=0, l = ins.plugins; i 0) + return true; + } + } + + l = tinyMCE.themes; + for (on in l) { + o = l[on]; + + if (o[n] && (v = tinyMCE.evalFunc(n, 3, a, o)) == s && m > 0) + return true; + } + + return false; + }, + + resolveDots : function(s, o) { + var i; + + if (typeof(s) == 'string') { + for (i=0, s=s.split('.'); i': + return '>'; + } + + return c; + }) : s; + }, + + add : function(c, m) { + var n; + + for (n in m) { + if (m.hasOwnProperty(n)) + c.prototype[n] = m[n]; + } + }, + + extend : function(p, np) { + var o = {}, n; + + o.parent = p; + + for (n in p) { + if (p.hasOwnProperty(n)) + o[n] = p[n]; + } + + for (n in np) { + if (np.hasOwnProperty(n)) + o[n] = np[n]; + } + + return o; + }, + + hideMenus : function() { + var e = tinyMCE.lastSelectedMenuBtn; + + if (tinyMCE.lastMenu) { + tinyMCE.lastMenu.hide(); + tinyMCE.lastMenu = null; + } + + if (e) { + tinyMCE.switchClass(e, tinyMCE.lastMenuBtnClass); + tinyMCE.lastSelectedMenuBtn = null; + } + } + + }; + +// Global instances +var TinyMCE = TinyMCE_Engine; // Compatiblity with gzip compressors +var tinyMCE = new TinyMCE_Engine(); +var tinyMCELang = {}; + +/* file:jscripts/tiny_mce/classes/TinyMCE_Control.class.js */ + +function TinyMCE_Control(settings) { + var t, i, tos, fu, p, x, fn, fu, pn, s = settings; + + this.undoRedoLevel = true; + this.isTinyMCE_Control = true; + + // Default settings + this.enabled = true; + this.settings = s; + this.settings.theme = tinyMCE.getParam("theme", "default"); + this.settings.width = tinyMCE.getParam("width", -1); + this.settings.height = tinyMCE.getParam("height", -1); + this.selection = new TinyMCE_Selection(this); + this.undoRedo = new TinyMCE_UndoRedo(this); + this.cleanup = new TinyMCE_Cleanup(); + this.shortcuts = []; + this.hasMouseMoved = false; + this.foreColor = this.backColor = "#999999"; + this.data = {}; + this.cssClasses = []; + + this.cleanup.init({ + valid_elements : s.valid_elements, + extended_valid_elements : s.extended_valid_elements, + valid_child_elements : s.valid_child_elements, + entities : s.entities, + entity_encoding : s.entity_encoding, + debug : s.cleanup_debug, + indent : s.apply_source_formatting, + invalid_elements : s.invalid_elements, + verify_html : s.verify_html, + fix_content_duplication : s.fix_content_duplication, + convert_fonts_to_spans : s.convert_fonts_to_spans + }); + + // Wrap old theme + t = this.settings.theme; + if (!tinyMCE.hasTheme(t)) { + fn = tinyMCE.callbacks; + tos = {}; + + for (i=0; i 0) { + for (i=0; i 1 && tinyMCE.currentConfig != this.settings.index) { + tinyMCE.settings = this.settings; + tinyMCE.currentConfig = this.settings.index; + } + }, + + select : function() { + var oldInst = tinyMCE.selectedInstance; + + if (oldInst != this) { + if (oldInst) + oldInst.execCommand('mceEndTyping'); + + tinyMCE.dispatchCallback(this, 'select_instance_callback', 'selectInstance', this, oldInst); + tinyMCE.selectedInstance = this; + } + }, + + getBody : function() { + return this.contentBody ? this.contentBody : this.getDoc().body; + }, + + getDoc : function() { +// return this.contentDocument ? this.contentDocument : this.contentWindow.document; // Removed due to IE 5.5 ? + return this.contentWindow.document; + }, + + getWin : function() { + return this.contentWindow; + }, + + getContainerWin : function() { + return this.containerWindow ? this.containerWindow : window; + }, + + getViewPort : function() { + return tinyMCE.getViewPort(this.getWin()); + }, + + getParentNode : function(n, f) { + return tinyMCE.getParentNode(n, f, this.getBody()); + }, + + getParentElement : function(n, na, f) { + return tinyMCE.getParentElement(n, na, f, this.getBody()); + }, + + getParentBlockElement : function(n) { + return tinyMCE.getParentBlockElement(n, this.getBody()); + }, + + resizeToContent : function() { + var d = this.getDoc(), b = d.body, de = d.documentElement; + + this.iframeElement.style.height = (tinyMCE.isRealIE) ? b.scrollHeight : de.offsetHeight + 'px'; + }, + + addShortcut : function(m, k, d, cmd, ui, va) { + var n = typeof(k) == "number", ie = tinyMCE.isIE, c, sc, i, scl = this.shortcuts; + + if (!tinyMCE.getParam('custom_shortcuts')) + return false; + + m = m.toLowerCase(); + k = ie && !n ? k.toUpperCase() : k; + c = n ? null : k.charCodeAt(0); + d = d && d.indexOf('lang_') == 0 ? tinyMCE.getLang(d) : d; + + sc = { + alt : m.indexOf('alt') != -1, + ctrl : m.indexOf('ctrl') != -1, + shift : m.indexOf('shift') != -1, + charCode : c, + keyCode : n ? k : (ie ? c : null), + desc : d, + cmd : cmd, + ui : ui, + val : va + }; + + for (i=0; i 1 && /(^\u00a0|\u00a0$)/.test(v)) { + e.firstChild.nodeValue = v.replace(/(^\u00a0|\u00a0$)/, ''); + s.selectNode(e.firstChild, true, false, false); // Select and collapse + } + } + }, + + _setUseCSS : function(b) { + var d = this.getDoc(); + + try {d.execCommand("useCSS", false, !b);} catch (ex) {} + try {d.execCommand("styleWithCSS", false, b);} catch (ex) {} + + if (!tinyMCE.getParam("table_inline_editing")) + try {d.execCommand('enableInlineTableEditing', false, "false");} catch (ex) {} + + if (!tinyMCE.getParam("object_resizing")) + try {d.execCommand('enableObjectResizing', false, "false");} catch (ex) {} + }, + + execCommand : function(command, user_interface, value) { + var i, x, z, align, img, div, doc = this.getDoc(), win = this.getWin(), focusElm = this.getFocusElement(); + + // Is not a undo specific command + if (!new RegExp('mceStartTyping|mceEndTyping|mceBeginUndoLevel|mceEndUndoLevel|mceAddUndoLevel', 'gi').test(command)) + this.undoBookmark = null; + + // Mozilla issue + if (!tinyMCE.isIE && !this.useCSS) { + this._setUseCSS(false); + this.useCSS = true; + } + + //debug("command: " + command + ", user_interface: " + user_interface + ", value: " + value); + this.contentDocument = doc; // <-- Strange, unless this is applied Mozilla 1.3 breaks + + // Don't dispatch key commands + if (!/mceStartTyping|mceEndTyping/.test(command)) { + if (tinyMCE.execCommandCallback(this, 'execcommand_callback', 'execCommand', this.editorId, this.getBody(), command, user_interface, value)) + return; + } + + // Fix align on images + if (focusElm && focusElm.nodeName == "IMG") { + align = focusElm.getAttribute('align'); + img = command == "JustifyCenter" ? focusElm.cloneNode(false) : focusElm; + + switch (command) { + case "JustifyLeft": + if (align == 'left') { + img.setAttribute('align', ''); // Needed for IE + img.removeAttribute('align'); + } else + img.setAttribute('align', 'left'); + + // Remove the div + div = focusElm.parentNode; + if (div && div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode) + div.parentNode.replaceChild(img, div); + + this.selection.selectNode(img); + this.repaint(); + tinyMCE.triggerNodeChange(); + return; + + case "JustifyCenter": + img.setAttribute('align', ''); // Needed for IE + img.removeAttribute('align'); + + // Is centered + div = tinyMCE.getParentElement(focusElm, "div"); + if (div && div.style.textAlign == "center") { + // Remove div + if (div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode) + div.parentNode.replaceChild(img, div); + } else { + // Add div + div = this.getDoc().createElement("div"); + div.style.textAlign = 'center'; + div.appendChild(img); + focusElm.parentNode.replaceChild(div, focusElm); + } + + this.selection.selectNode(img); + this.repaint(); + tinyMCE.triggerNodeChange(); + return; + + case "JustifyRight": + if (align == 'right') { + img.setAttribute('align', ''); // Needed for IE + img.removeAttribute('align'); + } else + img.setAttribute('align', 'right'); + + // Remove the div + div = focusElm.parentNode; + if (div && div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode) + div.parentNode.replaceChild(img, div); + + this.selection.selectNode(img); + this.repaint(); + tinyMCE.triggerNodeChange(); + return; + } + } + + if (tinyMCE.settings.force_br_newlines) { + var alignValue = ""; + + if (doc.selection.type != "Control") { + switch (command) { + case "JustifyLeft": + alignValue = "left"; + break; + + case "JustifyCenter": + alignValue = "center"; + break; + + case "JustifyFull": + alignValue = "justify"; + break; + + case "JustifyRight": + alignValue = "right"; + break; + } + + if (alignValue !== '') { + var rng = doc.selection.createRange(); + + if ((divElm = tinyMCE.getParentElement(rng.parentElement(), "div")) != null) + divElm.setAttribute("align", alignValue); + else if (rng.pasteHTML && rng.htmlText.length > 0) + rng.pasteHTML('
        ' + rng.htmlText + "
        "); + + tinyMCE.triggerNodeChange(); + return; + } + } + } + + switch (command) { + case "mceRepaint": + this.repaint(); + return true; + + case "JustifyLeft": + case "JustifyCenter": + case "JustifyFull": + case "JustifyRight": + var el = tinyMCE.getParentNode(focusElm, function(n) {return tinyMCE.getAttrib(n, 'align');}); + + if (el) { + el.setAttribute('align', ''); // Needed for IE + el.removeAttribute('align'); + } else + this.getDoc().execCommand(command, user_interface, value); + + tinyMCE.triggerNodeChange(); + + return true; + + case "unlink": + // Unlink if caret is inside link + if (tinyMCE.isGecko && this.getSel().isCollapsed) { + focusElm = tinyMCE.getParentElement(focusElm, 'A'); + + if (focusElm) + this.selection.selectNode(focusElm, false); + } + + this.getDoc().execCommand(command, user_interface, value); + + tinyMCE.isGecko && this.getSel().collapseToEnd(); + + tinyMCE.triggerNodeChange(); + + return true; + + case "InsertUnorderedList": + case "InsertOrderedList": + this.getDoc().execCommand(command, user_interface, value); + tinyMCE.triggerNodeChange(); + break; + + case "Strikethrough": + this.getDoc().execCommand(command, user_interface, value); + tinyMCE.triggerNodeChange(); + break; + + case "mceSelectNode": + this.selection.selectNode(value); + tinyMCE.triggerNodeChange(); + tinyMCE.selectedNode = value; + break; + + case "FormatBlock": + if (value == null || value == '') { + var elm = tinyMCE.getParentElement(this.getFocusElement(), "p,div,h1,h2,h3,h4,h5,h6,pre,address,blockquote,dt,dl,dd,samp"); + + if (elm) + this.execCommand("mceRemoveNode", false, elm); + } else { + if (!this.cleanup.isValid(value)) + return true; + + if (tinyMCE.isGecko && new RegExp('<(div|blockquote|code|dt|dd|dl|samp)>', 'gi').test(value)) + value = value.replace(/[^a-z]/gi, ''); + + if (tinyMCE.isIE && new RegExp('blockquote|code|samp', 'gi').test(value)) { + var b = this.selection.getBookmark(); + this.getDoc().execCommand("FormatBlock", false, '

        '); + tinyMCE.renameElement(tinyMCE.getParentBlockElement(this.getFocusElement()), value); + this.selection.moveToBookmark(b); + } else + this.getDoc().execCommand("FormatBlock", false, value); + } + + tinyMCE.triggerNodeChange(); + + break; + + case "mceRemoveNode": + if (!value) + value = tinyMCE.getParentElement(this.getFocusElement()); + + if (tinyMCE.isIE) { + value.outerHTML = value.innerHTML; + } else { + var rng = value.ownerDocument.createRange(); + rng.setStartBefore(value); + rng.setEndAfter(value); + rng.deleteContents(); + rng.insertNode(rng.createContextualFragment(value.innerHTML)); + } + + tinyMCE.triggerNodeChange(); + + break; + + case "mceSelectNodeDepth": + var parentNode = this.getFocusElement(); + for (i=0; parentNode; i++) { + if (parentNode.nodeName.toLowerCase() == "body") + break; + + if (parentNode.nodeName.toLowerCase() == "#text") { + i--; + parentNode = parentNode.parentNode; + continue; + } + + if (i == value) { + this.selection.selectNode(parentNode, false); + tinyMCE.triggerNodeChange(); + tinyMCE.selectedNode = parentNode; + return; + } + + parentNode = parentNode.parentNode; + } + + break; + + case "mceSetStyleInfo": + case "SetStyleInfo": + var rng = this.getRng(); + var sel = this.getSel(); + var scmd = value.command; + var sname = value.name; + var svalue = value.value == null ? '' : value.value; + //var svalue = value['value'] == null ? '' : value['value']; + var wrapper = value.wrapper ? value.wrapper : "span"; + var parentElm = null; + var invalidRe = new RegExp("^BODY|HTML$", "g"); + var invalidParentsRe = tinyMCE.settings.merge_styles_invalid_parents !== '' ? new RegExp(tinyMCE.settings.merge_styles_invalid_parents, "gi") : null; + + // Whole element selected check + if (tinyMCE.isIE) { + // Control range + if (rng.item) + parentElm = rng.item(0); + else { + var pelm = rng.parentElement(); + var prng = doc.selection.createRange(); + prng.moveToElementText(pelm); + + if (rng.htmlText == prng.htmlText || rng.boundingWidth == 0) { + if (invalidParentsRe == null || !invalidParentsRe.test(pelm.nodeName)) + parentElm = pelm; + } + } + } else { + var felm = this.getFocusElement(); + if (sel.isCollapsed || (new RegExp('td|tr|tbody|table|img', 'gi').test(felm.nodeName) && sel.anchorNode == felm.parentNode)) + parentElm = felm; + } + + // Whole element selected + if (parentElm && !invalidRe.test(parentElm.nodeName)) { + if (scmd == "setstyle") + tinyMCE.setStyleAttrib(parentElm, sname, svalue); + + if (scmd == "setattrib") + tinyMCE.setAttrib(parentElm, sname, svalue); + + if (scmd == "removeformat") { + parentElm.style.cssText = ''; + tinyMCE.setAttrib(parentElm, 'class', ''); + } + + // Remove style/attribs from all children + var ch = tinyMCE.getNodeTree(parentElm, [], 1); + for (z=0; z=0; i--) { + var elm = nodes[i]; + var isNew = tinyMCE.getAttrib(elm, "mce_new") == "true"; + + elm.removeAttribute("mce_new"); + + // Is only child a element + if (elm.childNodes && elm.childNodes.length == 1 && elm.childNodes[0].nodeType == 1) { + //tinyMCE.debug("merge1" + isNew); + this._mergeElements(scmd, elm, elm.childNodes[0], isNew); + continue; + } + + // Is I the only child + if (elm.parentNode.childNodes.length == 1 && !invalidRe.test(elm.nodeName) && !invalidRe.test(elm.parentNode.nodeName)) { + //tinyMCE.debug("merge2" + isNew + "," + elm.nodeName + "," + elm.parentNode.nodeName); + if (invalidParentsRe == null || !invalidParentsRe.test(elm.parentNode.nodeName)) + this._mergeElements(scmd, elm.parentNode, elm, false); + } + } + + // Remove empty wrappers + var nodes = doc.getElementsByTagName(wrapper); + for (i=nodes.length-1; i>=0; i--) { + var elm = nodes[i], isEmpty = true; + + // Check if it has any attribs + var tmp = doc.createElement("body"); + tmp.appendChild(elm.cloneNode(false)); + + // Is empty span, remove it + tmp.innerHTML = tmp.innerHTML.replace(new RegExp('style=""|class=""', 'gi'), ''); + //tinyMCE.debug(tmp.innerHTML); + if (new RegExp('', 'gi').test(tmp.innerHTML)) { + for (x=0; x 0) { + value = tinyMCE.replaceVar(value, "selection", selectedText); + tinyMCE.execCommand('mceInsertContent', false, value); + } + + this._addBogusBR(); + tinyMCE.triggerNodeChange(); + break; + + case "mceSetAttribute": + if (typeof(value) == 'object') { + var targetElms = (typeof(value.targets) == "undefined") ? "p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address" : value.targets; + var targetNode = tinyMCE.getParentElement(this.getFocusElement(), targetElms); + + if (targetNode) { + targetNode.setAttribute(value.name, value.value); + tinyMCE.triggerNodeChange(); + } + } + break; + + case "mceSetCSSClass": + this.execCommand("mceSetStyleInfo", false, {command : "setattrib", name : "class", value : value}); + break; + + case "mceInsertRawHTML": + var key = 'tiny_mce_marker'; + + this.execCommand('mceBeginUndoLevel'); + + // Insert marker key + this.execCommand('mceInsertContent', false, key); + + // Store away scroll pos + var scrollX = this.getBody().scrollLeft + this.getDoc().documentElement.scrollLeft; + var scrollY = this.getBody().scrollTop + this.getDoc().documentElement.scrollTop; + + // Find marker and replace with RAW HTML + var html = this.getBody().innerHTML; + if ((pos = html.indexOf(key)) != -1) + tinyMCE.setInnerHTML(this.getBody(), html.substring(0, pos) + value + html.substring(pos + key.length)); + + // Restore scoll pos + this.contentWindow.scrollTo(scrollX, scrollY); + + this.execCommand('mceEndUndoLevel'); + + break; + + case "mceInsertContent": + // Force empty string + if (!value) + value = ''; + + var insertHTMLFailed = false; + + // Removed since it produced problems in IE + // this.getWin().focus(); + + if (tinyMCE.isGecko || tinyMCE.isOpera) { + try { + // Is plain text or HTML, &,   etc will be encoded wrong in FF + if (value.indexOf('<') == -1 && !value.match(/(&| |<|>)/g)) { + var r = this.getRng(); + var n = this.getDoc().createTextNode(tinyMCE.entityDecode(value)); + var s = this.getSel(); + var r2 = r.cloneRange(); + + // Insert text at cursor position + s.removeAllRanges(); + r.deleteContents(); + r.insertNode(n); + + // Move the cursor to the end of text + r2.selectNode(n); + r2.collapse(false); + s.removeAllRanges(); + s.addRange(r2); + } else { + value = tinyMCE.fixGeckoBaseHREFBug(1, this.getDoc(), value); + this.getDoc().execCommand('inserthtml', false, value); + tinyMCE.fixGeckoBaseHREFBug(2, this.getDoc(), value); + } + } catch (ex) { + insertHTMLFailed = true; + } + + if (!insertHTMLFailed) { + tinyMCE.triggerNodeChange(); + return; + } + } + + if (!tinyMCE.isIE) { + var isHTML = value.indexOf('<') != -1; + var sel = this.getSel(); + var rng = this.getRng(); + + if (isHTML) { + if (tinyMCE.isSafari) { + var tmpRng = this.getDoc().createRange(); + + tmpRng.setStart(this.getBody(), 0); + tmpRng.setEnd(this.getBody(), 0); + + value = tmpRng.createContextualFragment(value); + } else + value = rng.createContextualFragment(value); + } else { + // Setup text node + value = doc.createTextNode(tinyMCE.entityDecode(value)); + } + + // Insert plain text in Safari + if (tinyMCE.isSafari && !isHTML) { + this.execCommand('InsertText', false, value.nodeValue); + tinyMCE.triggerNodeChange(); + return true; + } else if (tinyMCE.isSafari && isHTML) { + rng.deleteContents(); + rng.insertNode(value); + tinyMCE.triggerNodeChange(); + return true; + } + + rng.deleteContents(); + + // If target node is text do special treatment, (Mozilla 1.3 fix) + if (rng.startContainer.nodeType == 3) { + var node = rng.startContainer.splitText(rng.startOffset); + node.parentNode.insertBefore(value, node); + } else + rng.insertNode(value); + + if (!isHTML) { + // Removes weird selection trails + sel.selectAllChildren(doc.body); + sel.removeAllRanges(); + + // Move cursor to end of content + var rng = doc.createRange(); + + rng.selectNode(value); + rng.collapse(false); + + sel.addRange(rng); + } else + rng.collapse(false); + + tinyMCE.fixGeckoBaseHREFBug(2, this.getDoc(), value); + } else { + var rng = doc.selection.createRange(), tmpRng = null; + var c = value.indexOf('"; + } + + if (hc) { + cn = n.childNodes; + + for (i=0, l=cn.length; i'; + + return h; + }, + + _serializeAttribute : function(n, r, an) { + var av = '', t, os = this.settings.on_save; + + if (os && (an.indexOf('mce_') == 0 || an.indexOf('_moz') == 0)) + return ''; + + if (os && this.mceAttribs[an]) + av = this._getAttrib(n, this.mceAttribs[an]); + + if (av.length == 0) + av = this._getAttrib(n, an); + + if (av.length == 0 && r.defaultAttribs && (t = r.defaultAttribs[an])) { + av = t; + + if (av == "mce_empty") + return " " + an + '=""'; + } + + if (r.forceAttribs && (t = r.forceAttribs[an])) + av = t; + + if (os && av.length != 0 && /^(src|href|longdesc)$/.test(an)) + av = this._urlConverter(this, n, av); + + if (av.length != 0 && r.validAttribValues && r.validAttribValues[an] && !r.validAttribValues[an].test(av)) + return ""; + + if (av.length != 0 && av == "{$uid}") + av = "uid_" + (this.idCount++); + + if (av.length != 0) { + if (an.indexOf('on') != 0) + av = this.xmlEncode(av, 1); + + return " " + an + "=" + '"' + av + '"'; + } + + return ""; + }, + + formatHTML : function(h) { + var s = this.settings, p = '', i = 0, li = 0, o = '', l; + + // Replace BR in pre elements to \n + h = h.replace(/]*)>(.*?)<\/pre>/gi, function (a, b, c) { + c = c.replace(//gi, '\n'); + return '' + c + ''; + }); + + h = h.replace(/\r/g, ''); // Windows sux, isn't carriage return a thing of the past :) + h = '\n' + h; + h = h.replace(new RegExp('\\n\\s+', 'gi'), '\n'); // Remove previous formatting + h = h.replace(this.nlBeforeRe, '\n<$1$2>'); + h = h.replace(this.nlAfterRe, '<$1$2>\n'); + h = h.replace(this.nlBeforeAfterRe, '\n<$1$2$3>\n'); + h += '\n'; + + //tinyMCE.debug(h); + + while ((i = h.indexOf('\n', i + 1)) != -1) { + if ((l = h.substring(li + 1, i)).length != 0) { + if (this.ouRe.test(l) && p.length >= s.indent_levels) + p = p.substring(s.indent_levels); + + o += p + l + '\n'; + + if (this.inRe.test(l)) + p += this.inStr; + } + + li = i; + } + + //tinyMCE.debug(h); + + return o; + }, + + xmlEncode : function(s) { + var cl = this, re = this.xmlEncodeRe; + + if (!this.entitiesDone) + this._setupEntities(); // Will intialize lookup table + + switch (this.settings.entity_encoding) { + case "raw": + return tinyMCE.xmlEncode(s); + + case "named": + return s.replace(re, function (c) { + var b = cl.entities[c.charCodeAt(0)]; + + return b ? '&' + b + ';' : c; + }); + + case "numeric": + return s.replace(re, function (c) { + return '&#' + c.charCodeAt(0) + ';'; + }); + } + + return s; + }, + + split : function(re, s) { + var i, l, o = [], c = s.split(re); + + for (i=0, l=c.length; i' : '>' + h + ''; + + return o; + }, + + createTag : function(d, tn, a, h) { + var o = d.createElement(tn), n; + + if (a) { + for (n in a) { + if (typeof(a[n]) != 'function' && a[n] != null) + tinyMCE.setAttrib(o, n, a[n]); + } + } + + if (h) + o.innerHTML = h; + + return o; + }, + + getElementByAttributeValue : function(n, e, a, v) { + return (n = this.getElementsByAttributeValue(n, e, a, v)).length == 0 ? null : n[0]; + }, + + getElementsByAttributeValue : function(n, e, a, v) { + var i, nl = n.getElementsByTagName(e), o = []; + + for (i=0; i]*)>/gi, ''); + h = h.replace(/]*)>/gi, ''); + h = h.replace(/]*)>/gi, ''); + h = h.replace(/]*)>/gi, ''); + h = h.replace(/<\/strong>/gi, ''); + h = h.replace(/<\/em>/gi, ''); + } + + if (tinyMCE.isRealIE) { + // Since MSIE handles invalid HTML better that valid XHTML we + // need to make some things invalid.


        gets converted to
        . + h = h.replace(/\s\/>/g, '>'); + + // Since MSIE auto generated emtpy P tags some times we must tell it to keep the real ones + h = h.replace(/]*)>\u00A0?<\/p>/gi, ' 

        '); // Keep empty paragraphs + h = h.replace(/]*)>\s* \s*<\/p>/gi, ' 

        '); // Keep empty paragraphs + h = h.replace(/]*)>\s+<\/p>/gi, ' 

        '); // Keep empty paragraphs + + // Remove first comment + e.innerHTML = tinyMCE.uniqueTag + h; + e.firstChild.removeNode(true); + + // Remove weird auto generated empty paragraphs unless it's supposed to be there + nl = e.getElementsByTagName("p"); + for (i=nl.length-1; i>=0; i--) { + n = nl[i]; + + if (n.nodeName == 'P' && !n.hasChildNodes() && !n.mce_keep) + n.parentNode.removeChild(n); + } + } else { + h = this.fixGeckoBaseHREFBug(1, e, h); + e.innerHTML = h; + this.fixGeckoBaseHREFBug(2, e, h); + } + }, + + getOuterHTML : function(e) { + var d; + + if (tinyMCE.isIE) + return e.outerHTML; + + d = e.ownerDocument.createElement("body"); + d.appendChild(e.cloneNode(true)); + + return d.innerHTML; + }, + + setOuterHTML : function(e, h, d) { + var d = typeof(d) == "undefined" ? e.ownerDocument : d, i, nl, t; + + if (tinyMCE.isIE && e.nodeType == 1) + e.outerHTML = h; + else { + t = d.createElement("body"); + t.innerHTML = h; + + for (i=0, nl=t.childNodes; i-1; i--) { + if (ar[i].specified && ar[i].nodeValue) + ne.setAttribute(ar[i].nodeName.toLowerCase(), ar[i].nodeValue); + } + + ar = e.childNodes; + for (i=0; i= strTok2.length) { + for (i=0; i= strTok2.length || strTok1[i] != strTok2[i]) { + breakPoint = i + 1; + break; + } + } + } + + if (strTok1.length < strTok2.length) { + for (i=0; i= strTok1.length || strTok1[i] != strTok2[i]) { + breakPoint = i + 1; + break; + } + } + } + + if (breakPoint == 1) + return targetURL.path; + + for (i=0; i<(strTok1.length-(breakPoint-1)); i++) + outPath += "../"; + + for (i=breakPoint-1; i=0; i--) { + if (baseURLParts[i].length == 0) + continue; + + newBaseURLParts[newBaseURLParts.length] = baseURLParts[i]; + } + baseURLParts = newBaseURLParts.reverse(); + + // Merge relURLParts chunks + newRelURLParts = []; + numBack = 0; + for (i=relURLParts.length-1; i>=0; i--) { + if (relURLParts[i].length == 0 || relURLParts[i] == ".") + continue; + + if (relURLParts[i] == '..') { + numBack++; + continue; + } + + if (numBack > 0) { + numBack--; + continue; + } + + newRelURLParts[newRelURLParts.length] = relURLParts[i]; + } + + relURLParts = newRelURLParts.reverse(); + + // Remove end from absolute path + len = baseURLParts.length-numBack; + absPath = (len <= 0 ? "" : "/") + baseURLParts.slice(0, len).join('/') + "/" + relURLParts.join('/'); + start = ""; + end = ""; + + // Build output URL + relURL.protocol = baseURL.protocol; + relURL.host = baseURL.host; + relURL.port = baseURL.port; + + // Re-add trailing slash if it's removed + if (relURL.path.charAt(relURL.path.length-1) == "/") + absPath += "/"; + + relURL.path = absPath; + + return this.serializeURL(relURL); + }, + + convertURL : function(url, node, on_save) { + var dl = document.location, start, portPart, urlParts, baseUrlParts, tmpUrlParts, curl; + var prot = dl.protocol, host = dl.hostname, port = dl.port; + + // Pass through file protocol + if (prot == "file:") + return url; + + // Something is wrong, remove weirdness + url = tinyMCE.regexpReplace(url, '(http|https):///', '/'); + + // Mailto link or anchor (Pass through) + if (url.indexOf('mailto:') != -1 || url.indexOf('javascript:') != -1 || /^[ \t\r\n\+]*[#\?]/.test(url)) + return url; + + // Fix relative/Mozilla + if (!tinyMCE.isIE && !on_save && url.indexOf("://") == -1 && url.charAt(0) != '/') + return tinyMCE.settings.base_href + url; + + // Handle relative URLs + if (on_save && tinyMCE.getParam('relative_urls')) { + curl = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, url); + if (curl.charAt(0) == '/') + curl = tinyMCE.settings.document_base_prefix + curl; + + urlParts = tinyMCE.parseURL(curl); + tmpUrlParts = tinyMCE.parseURL(tinyMCE.settings.document_base_url); + + // Force relative + if (urlParts.host == tmpUrlParts.host && (urlParts.port == tmpUrlParts.port)) + return tinyMCE.convertAbsoluteURLToRelativeURL(tinyMCE.settings.document_base_url, curl); + } + + // Handle absolute URLs + if (!tinyMCE.getParam('relative_urls')) { + urlParts = tinyMCE.parseURL(url); + baseUrlParts = tinyMCE.parseURL(tinyMCE.settings.base_href); + + // Force absolute URLs from relative URLs + url = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, url); + + // If anchor and path is the same page + if (urlParts.anchor && urlParts.path == baseUrlParts.path) + return "#" + urlParts.anchor; + } + + // Remove current domain + if (tinyMCE.getParam('remove_script_host')) { + start = ""; + portPart = ""; + + if (port !== '') + portPart = ":" + port; + + start = prot + "//" + host + portPart + "/"; + + if (url.indexOf(start) == 0) + url = url.substring(start.length-1); + } + + return url; + }, + + convertAllRelativeURLs : function(body) { + var i, elms, src, href, mhref, msrc; + + // Convert all image URL:s to absolute URL + elms = body.getElementsByTagName("img"); + for (i=0; i bookmark.index) { + try { + rng.addElement(nl[bookmark.index]); + } catch (ex) { + // Might be thrown if the node no longer exists + } + } + } else { + // Try/catch needed since this operation breaks when TinyMCE is placed in hidden divs/tabs + try { + // Incorrect bookmark + if (bookmark.start < 0) + return true; + + rng = inst.getSel().createRange(); + rng.moveToElementText(inst.getBody()); + rng.collapse(true); + rng.moveStart('character', bookmark.start); + rng.moveEnd('character', bookmark.length); + } catch (ex) { + return true; + } + } + + rng.select(); + + win.scrollTo(bookmark.scrollX, bookmark.scrollY); + return true; + } + + if (tinyMCE.isGecko || tinyMCE.isOpera) { + if (!sel) + return false; + + if (bookmark.rng) { + sel.removeAllRanges(); + sel.addRange(bookmark.rng); + } + + if (bookmark.start != -1 && bookmark.end != -1) { + try { + sd = this._getTextPos(b, bookmark.start, bookmark.end); + rng = doc.createRange(); + rng.setStart(sd.startNode, sd.startOffset); + rng.setEnd(sd.endNode, sd.endOffset); + sel.removeAllRanges(); + sel.addRange(rng); + + if (!tinyMCE.isOpera) + win.focus(); + } catch (ex) { + // Ignore + } + } + + /* + if (typeof(bookmark.index) != 'undefined') { + tinyMCE.selectElements(b, 'IMG', function (n) { + if (bookmark.index-- == 0) { + // Select image in Gecko here + } + + return false; + }); + } + */ + + win.scrollTo(bookmark.scrollX, bookmark.scrollY); + return true; + } + + return false; + }, + + _getPosText : function(r, sn, en) { + var w = document.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, false), n, p = 0, d = {}; + + while ((n = w.nextNode()) != null) { + if (n == sn) + d.start = p; + + if (n == en) { + d.end = p; + return d; + } + + p += n.nodeValue ? n.nodeValue.length : 0; + } + + return null; + }, + + _getTextPos : function(r, sp, ep) { + var w = document.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, false), n, p = 0, d = {}; + + while ((n = w.nextNode()) != null) { + p += n.nodeValue ? n.nodeValue.length : 0; + + if (p >= sp && !d.startNode) { + d.startNode = n; + d.startOffset = sp - (p - n.nodeValue.length); + } + + if (p >= ep) { + d.endNode = n; + d.endOffset = ep - (p - n.nodeValue.length); + + return d; + } + } + + return null; + }, + + selectNode : function(node, collapse, select_text_node, to_start) { + var inst = this.instance, sel, rng, nodes; + + if (!node) + return; + + if (typeof(collapse) == "undefined") + collapse = true; + + if (typeof(select_text_node) == "undefined") + select_text_node = false; + + if (typeof(to_start) == "undefined") + to_start = true; + + if (inst.settings.auto_resize) + inst.resizeToContent(); + + if (tinyMCE.isRealIE) { + rng = inst.getDoc().body.createTextRange(); + + try { + rng.moveToElementText(node); + + if (collapse) + rng.collapse(to_start); + + rng.select(); + } catch (e) { + // Throws illigal agrument in MSIE some times + } + } else { + sel = this.getSel(); + + if (!sel) + return; + + if (tinyMCE.isSafari) { + sel.setBaseAndExtent(node, 0, node, node.innerText.length); + + if (collapse) { + if (to_start) + sel.collapseToStart(); + else + sel.collapseToEnd(); + } + + this.scrollToNode(node); + + return; + } + + rng = inst.getDoc().createRange(); + + if (select_text_node) { + // Find first textnode in tree + nodes = tinyMCE.getNodeTree(node, [], 3); + if (nodes.length > 0) + rng.selectNodeContents(nodes[0]); + else + rng.selectNodeContents(node); + } else + rng.selectNode(node); + + if (collapse) { + // Special treatment of textnode collapse + if (!to_start && node.nodeType == 3) { + rng.setStart(node, node.nodeValue.length); + rng.setEnd(node, node.nodeValue.length); + } else + rng.collapse(to_start); + } + + sel.removeAllRanges(); + sel.addRange(rng); + } + + this.scrollToNode(node); + + // Set selected element + tinyMCE.selectedElement = null; + if (node.nodeType == 1) + tinyMCE.selectedElement = node; + }, + + scrollToNode : function(node) { + var inst = this.instance, w = inst.getWin(), vp = inst.getViewPort(), pos = tinyMCE.getAbsPosition(node), cvp, p, cwin; + + // Only scroll if out of visible area + if (pos.absLeft < vp.left || pos.absLeft > vp.left + vp.width || pos.absTop < vp.top || pos.absTop > vp.top + (vp.height-25)) + w.scrollTo(pos.absLeft, pos.absTop - vp.height + 25); + + // Scroll container window + if (inst.settings.auto_resize) { + cwin = inst.getContainerWin(); + cvp = tinyMCE.getViewPort(cwin); + p = this.getAbsPosition(node); + + if (p.absLeft < cvp.left || p.absLeft > cvp.left + cvp.width || p.absTop < cvp.top || p.absTop > cvp.top + cvp.height) + cwin.scrollTo(p.absLeft, p.absTop - cvp.height + 25); + } + }, + + getAbsPosition : function(n) { + var pos = tinyMCE.getAbsPosition(n), ipos = tinyMCE.getAbsPosition(this.instance.iframeElement); + + return { + absLeft : ipos.absLeft + pos.absLeft, + absTop : ipos.absTop + pos.absTop + }; + }, + + getSel : function() { + var inst = this.instance; + + if (tinyMCE.isRealIE) + return inst.getDoc().selection; + + return inst.contentWindow.getSelection(); + }, + + getRng : function() { + var s = this.getSel(); + + if (s == null) + return null; + + if (tinyMCE.isRealIE) + return s.createRange(); + + if (tinyMCE.isSafari && !s.getRangeAt) + return '' + window.getSelection(); + + if (s.rangeCount > 0) + return s.getRangeAt(0); + + return null; + }, + + isCollapsed : function() { + var r = this.getRng(); + + if (r.item) + return false; + + return r.boundingWidth == 0 || this.getSel().isCollapsed; + }, + + collapse : function(b) { + var r = this.getRng(), s = this.getSel(); + + if (r.select) { + r.collapse(b); + r.select(); + } else { + if (b) + s.collapseToStart(); + else + s.collapseToEnd(); + } + }, + + getFocusElement : function() { + var inst = this.instance, doc, rng, sel, elm; + + if (tinyMCE.isRealIE) { + doc = inst.getDoc(); + rng = doc.selection.createRange(); + + // if (rng.collapse) + // rng.collapse(true); + + elm = rng.item ? rng.item(0) : rng.parentElement(); + } else { + if (!tinyMCE.isSafari && inst.isHidden()) + return inst.getBody(); + + sel = this.getSel(); + rng = this.getRng(); + + if (!sel || !rng) + return null; + + elm = rng.commonAncestorContainer; + //elm = (sel && sel.anchorNode) ? sel.anchorNode : null; + + // Handle selection a image or other control like element such as anchors + if (!rng.collapsed) { + // Is selection small + if (rng.startContainer == rng.endContainer) { + if (rng.startOffset - rng.endOffset < 2) { + if (rng.startContainer.hasChildNodes()) + elm = rng.startContainer.childNodes[rng.startOffset]; + } + } + } + + // Get the element parent of the node + elm = tinyMCE.getParentElement(elm); + + //if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img") + // elm = tinyMCE.selectedElement; + } + + return elm; + } + + }; + +/* file:jscripts/tiny_mce/classes/TinyMCE_UndoRedo.class.js */ + +function TinyMCE_UndoRedo(inst) { + this.instance = inst; + this.undoLevels = []; + this.undoIndex = 0; + this.typingUndoIndex = -1; + this.undoRedo = true; +}; + +TinyMCE_UndoRedo.prototype = { + add : function(l) { + var b, customUndoLevels, newHTML, inst = this.instance, i, ul, ur; + + if (l) { + this.undoLevels[this.undoLevels.length] = l; + return true; + } + + if (this.typingUndoIndex != -1) { + this.undoIndex = this.typingUndoIndex; + + if (tinyMCE.typingUndoIndex != -1) + tinyMCE.undoIndex = tinyMCE.typingUndoIndex; + } + + newHTML = tinyMCE.trim(inst.getBody().innerHTML); + if (this.undoLevels[this.undoIndex] && newHTML != this.undoLevels[this.undoIndex].content) { + //tinyMCE.debug(newHTML, this.undoLevels[this.undoIndex].content); + + // Is dirty again + inst.isNotDirty = false; + + tinyMCE.dispatchCallback(inst, 'onchange_callback', 'onChange', inst); + + // Time to compress + customUndoLevels = tinyMCE.settings.custom_undo_redo_levels; + if (customUndoLevels != -1 && this.undoLevels.length > customUndoLevels) { + for (i=0; i 0) { + this.undoIndex--; + + tinyMCE.setInnerHTML(inst.getBody(), this.undoLevels[this.undoIndex].content); + inst.repaint(); + + if (inst.settings.custom_undo_redo_restore_selection) + inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark); + } + }, + + redo : function() { + var inst = this.instance; + + tinyMCE.execCommand("mceEndTyping"); + + if (this.undoIndex < (this.undoLevels.length-1)) { + this.undoIndex++; + + tinyMCE.setInnerHTML(inst.getBody(), this.undoLevels[this.undoIndex].content); + inst.repaint(); + + if (inst.settings.custom_undo_redo_restore_selection) + inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark); + } + + tinyMCE.triggerNodeChange(); + } + + }; + +/* file:jscripts/tiny_mce/classes/TinyMCE_ForceParagraphs.class.js */ + +var TinyMCE_ForceParagraphs = { + _insertPara : function(inst, e) { + var doc = inst.getDoc(), sel = inst.getSel(), body = inst.getBody(), win = inst.contentWindow, rng = sel.getRangeAt(0); + var rootElm = doc.documentElement, blockName = "P", startNode, endNode, startBlock, endBlock; + var rngBefore, rngAfter, direct, startNode, startOffset, endNode, endOffset, b = tinyMCE.isOpera ? inst.selection.getBookmark() : null; + var paraBefore, paraAfter, startChop, endChop, contents, i; + + function isEmpty(para) { + var nodes; + + function isEmptyHTML(html) { + return html.replace(new RegExp('[ \t\r\n]+', 'g'), '').toLowerCase() == ''; + } + + // Check for images + if (para.getElementsByTagName("img").length > 0) + return false; + + // Check for tables + if (para.getElementsByTagName("table").length > 0) + return false; + + // Check for HRs + if (para.getElementsByTagName("hr").length > 0) + return false; + + // Check all textnodes + nodes = tinyMCE.getNodeTree(para, [], 3); + for (i=0; i <" + blockName + "> "; + paraAfter = body.childNodes[1]; + } + + inst.selection.moveToBookmark(b); + inst.selection.selectNode(paraAfter, true, true); + + return true; + } + + // Place first part within new paragraph + if (startChop.nodeName == blockName) + rngBefore.setStart(startChop, 0); + else + rngBefore.setStartBefore(startChop); + + rngBefore.setEnd(startNode, startOffset); + paraBefore.appendChild(rngBefore.cloneContents()); + + // Place secound part within new paragraph + rngAfter.setEndAfter(endChop); + rngAfter.setStart(endNode, endOffset); + contents = rngAfter.cloneContents(); + + if (contents.firstChild && contents.firstChild.nodeName == blockName) { + /* var nodes = contents.firstChild.childNodes; + for (i=0; i= r.startOffset && nv.charAt(r.startOffset - 1) == ' ') + s = true;*/ + + // Only remove BRs if we are at the end of line #bug 1464152 + if (nv != null && r.startOffset == nv.length) + sn.nextSibling.parentNode.removeChild(sn.nextSibling); + } + + if (inst.settings.auto_resize) + inst.resizeToContent(); + + return s; + } + + }; + +/* file:jscripts/tiny_mce/classes/TinyMCE_Layer.class.js */ + +function TinyMCE_Layer(id, bm) { + this.id = id; + this.blockerElement = null; + this.events = false; + this.element = null; + this.blockMode = typeof(bm) != 'undefined' ? bm : true; + this.doc = document; +}; + +TinyMCE_Layer.prototype = { + moveRelativeTo : function(re, p) { + var rep = this.getAbsPosition(re), e = this.getElement(), x, y; + var w = parseInt(re.offsetWidth), h = parseInt(re.offsetHeight); + var ew = parseInt(e.offsetWidth), eh = parseInt(e.offsetHeight); + + switch (p) { + case "tl": + x = rep.absLeft; + y = rep.absTop; + break; + + case "tr": + x = rep.absLeft + w; + y = rep.absTop; + break; + + case "bl": + x = rep.absLeft; + y = rep.absTop + h; + break; + + case "br": + x = rep.absLeft + w; + y = rep.absTop + h; + break; + + case "cc": + x = rep.absLeft + (w / 2) - (ew / 2); + y = rep.absTop + (h / 2) - (eh / 2); + break; + } + + this.moveTo(x, y); + }, + + moveBy : function(x, y) { + var e = this.getElement(); + this.moveTo(parseInt(e.style.left) + x, parseInt(e.style.top) + y); + }, + + moveTo : function(x, y) { + var e = this.getElement(); + + e.style.left = x + "px"; + e.style.top = y + "px"; + + this.updateBlocker(); + }, + + resizeBy : function(w, h) { + var e = this.getElement(); + this.resizeTo(parseInt(e.style.width) + w, parseInt(e.style.height) + h); + }, + + resizeTo : function(w, h) { + var e = this.getElement(); + + if (w != null) + e.style.width = w + "px"; + + if (h != null) + e.style.height = h + "px"; + + this.updateBlocker(); + }, + + show : function() { + var el = this.getElement(); + + if (el) { + el.style.display = 'block'; + this.updateBlocker(); + } + }, + + hide : function() { + var el = this.getElement(); + + if (el) { + el.style.display = 'none'; + this.updateBlocker(); + } + }, + + isVisible : function() { + return this.getElement().style.display == 'block'; + }, + + getElement : function() { + if (!this.element) + this.element = this.doc.getElementById(this.id); + + return this.element; + }, + + setBlockMode : function(s) { + this.blockMode = s; + }, + + updateBlocker : function() { + var e, b, x, y, w, h; + + b = this.getBlocker(); + if (b) { + if (this.blockMode) { + e = this.getElement(); + x = this.parseInt(e.style.left); + y = this.parseInt(e.style.top); + w = this.parseInt(e.offsetWidth); + h = this.parseInt(e.offsetHeight); + + b.style.left = x + 'px'; + b.style.top = y + 'px'; + b.style.width = w + 'px'; + b.style.height = h + 'px'; + b.style.display = e.style.display; + } else + b.style.display = 'none'; + } + }, + + getBlocker : function() { + var d, b; + + if (!this.blockerElement && this.blockMode) { + d = this.doc; + b = d.getElementById(this.id + "_blocker"); + + if (!b) { + b = d.createElement("iframe"); + + b.setAttribute('id', this.id + "_blocker"); + b.style.cssText = 'display: none; position: absolute; left: 0; top: 0'; + b.src = 'javascript:false;'; + b.frameBorder = '0'; + b.scrolling = 'no'; + + d.body.appendChild(b); + } + + this.blockerElement = b; + } + + return this.blockerElement; + }, + + getAbsPosition : function(n) { + var p = {absLeft : 0, absTop : 0}; + + while (n) { + p.absLeft += n.offsetLeft; + p.absTop += n.offsetTop; + n = n.offsetParent; + } + + return p; + }, + + create : function(n, c, p, h) { + var d = this.doc, e = d.createElement(n); + + e.setAttribute('id', this.id); + + if (c) + e.className = c; + + if (!p) + p = d.body; + + if (h) + e.innerHTML = h; + + p.appendChild(e); + + return this.element = e; + }, + + exists : function() { + return this.doc.getElementById(this.id) != null; + }, + + parseInt : function(s) { + if (s == null || s == '') + return 0; + + return parseInt(s); + }, + + remove : function() { + var e = this.getElement(), b = this.getBlocker(); + + if (e) + e.parentNode.removeChild(e); + + if (b) + b.parentNode.removeChild(b); + } + + }; + +/* file:jscripts/tiny_mce/classes/TinyMCE_Menu.class.js */ + +function TinyMCE_Menu() { + var id; + + if (typeof(tinyMCE.menuCounter) == "undefined") + tinyMCE.menuCounter = 0; + + id = "mc_menu_" + tinyMCE.menuCounter++; + + TinyMCE_Layer.call(this, id, true); + + this.id = id; + this.items = []; + this.needsUpdate = true; +}; + +TinyMCE_Menu.prototype = tinyMCE.extend(TinyMCE_Layer.prototype, { + init : function(s) { + var n; + + // Default params + this.settings = { + separator_class : 'mceMenuSeparator', + title_class : 'mceMenuTitle', + disabled_class : 'mceMenuDisabled', + menu_class : 'mceMenu', + drop_menu : true + }; + + for (n in s) + this.settings[n] = s[n]; + + this.create('div', this.settings.menu_class); + }, + + clear : function() { + this.items = []; + }, + + addTitle : function(t) { + this.add({type : 'title', text : t}); + }, + + addDisabled : function(t) { + this.add({type : 'disabled', text : t}); + }, + + addSeparator : function() { + this.add({type : 'separator'}); + }, + + addItem : function(t, js) { + this.add({text : t, js : js}); + }, + + add : function(mi) { + this.items[this.items.length] = mi; + this.needsUpdate = true; + }, + + update : function() { + var e = this.getElement(), h = '', i, t, m = this.items, s = this.settings; + + if (this.settings.drop_menu) + h += ''; + + h += ''; + + for (i=0; i'; + } + + h += '
        '; + break; + + case 'title': + h += '
        ' + t + ''; + break; + + case 'disabled': + h += '
        ' + t + ''; + break; + + default: + h += '
        ' + t + ''; + } + + h += '
        '; + + e.innerHTML = h; + + this.needsUpdate = false; + this.updateBlocker(); + }, + + show : function() { + var nl, i; + + if (tinyMCE.lastMenu == this) + return; + + if (this.needsUpdate) + this.update(); + + if (tinyMCE.lastMenu && tinyMCE.lastMenu != this) + tinyMCE.lastMenu.hide(); + + TinyMCE_Layer.prototype.show.call(this); + + if (!tinyMCE.isOpera) { + // Accessibility stuff +/* nl = this.getElement().getElementsByTagName("a"); + if (nl.length > 0) + nl[0].focus();*/ + } + + tinyMCE.lastMenu = this; + } + + }); + +/* file:jscripts/tiny_mce/classes/TinyMCE_Debug.class.js */ + +tinyMCE.add(TinyMCE_Engine, { + debug : function() { + var m = "", a, i, l = tinyMCE.log.length; + + for (i=0, a = this.debug.arguments; i'; + h += ''; + + return h; +} + +function pickColor(e, target_form_element) { + if ((e.keyCode == 32 || e.keyCode == 13) || e.type == "mousedown") + tinyMCEPopup.pickColor(e, target_form_element); +} + +function updateColor(img_id, form_element_id) { + document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value; +} + +function setBrowserDisabled(id, state) { + var img = document.getElementById(id); + var lnk = document.getElementById(id + "_link"); + + if (lnk) { + if (state) { + lnk.setAttribute("realhref", lnk.getAttribute("href")); + lnk.removeAttribute("href"); + tinyMCE.switchClass(img, 'mceButtonDisabled', true); + } else { + lnk.setAttribute("href", lnk.getAttribute("realhref")); + tinyMCE.switchClass(img, 'mceButtonNormal', false); + } + } +} + +function getBrowserHTML(id, target_form_element, type, prefix) { + var option = prefix + "_" + type + "_browser_callback"; + var cb = tinyMCE.getParam(option, tinyMCE.getParam("file_browser_callback")); + if (cb == null) + return ""; + + var html = ""; + + html += ''; + html += ''; + + return html; +} + +function openBrower(img_id, target_form_element, type, option) { + var img = document.getElementById(img_id); + + if (img.className != "mceButtonDisabled") + tinyMCEPopup.openBrowser(target_form_element, type, option); +} + +function selectByValue(form_obj, field_name, value, add_custom, ignore_case) { + if (!form_obj || !form_obj.elements[field_name]) + return; + + var sel = form_obj.elements[field_name]; + + var found = false; + for (var i=0; i \ No newline at end of file diff --git a/plugins/editors/tinymce/jscripts/tiny_mce/utils/mclayer.js b/plugins/editors/tinymce/jscripts/tiny_mce/utils/mclayer.js new file mode 100644 --- /dev/null +++ b/plugins/editors/tinymce/jscripts/tiny_mce/utils/mclayer.js @@ -0,0 +1,210 @@ +/** + * $Id: mclayer.js 162 2007-01-03 16:16:52Z spocke $ + * + * Moxiecode floating layer script. + * + * @author Moxiecode + * @copyright Copyright 2004-2007, Moxiecode Systems AB, All rights reserved. + */ + +function MCLayer(id) { + this.id = id; + this.settings = new Array(); + this.blockerElement = null; + this.isMSIE = navigator.appName == "Microsoft Internet Explorer"; + this.events = false; + this.autoHideCallback = null; +} + +MCLayer.prototype = { + moveRelativeTo : function(re, p, a) { + var rep = this.getAbsPosition(re); + var w = parseInt(re.offsetWidth); + var h = parseInt(re.offsetHeight); + var x, y; + + switch (p) { + case "tl": + break; + + case "tr": + x = rep.absLeft + w; + y = rep.absTop; + break; + + case "bl": + break; + + case "br": + break; + } + + this.moveTo(x, y); + }, + + moveBy : function(dx, dy) { + var e = this.getElement(); + var x = parseInt(e.style.left); + var y = parseInt(e.style.top); + + e.style.left = (x + dx) + "px"; + e.style.top = (y + dy) + "px"; + + this.updateBlocker(); + }, + + moveTo : function(x, y) { + var e = this.getElement(); + + e.style.left = x + "px"; + e.style.top = y + "px"; + + this.updateBlocker(); + }, + + show : function() { + MCLayer.visibleLayer = this; + + this.getElement().style.display = 'block'; + this.updateBlocker(); + }, + + hide : function() { + this.getElement().style.display = 'none'; + this.updateBlocker(); + }, + + setAutoHide : function(s, cb) { + this.autoHideCallback = cb; + this.registerEventHandlers(); + }, + + getElement : function() { + return document.getElementById(this.id); + }, + + updateBlocker : function() { + if (!this.isMSIE) + return; + + var e = this.getElement(); + var b = this.getBlocker(); + var x = this.parseInt(e.style.left); + var y = this.parseInt(e.style.top); + var w = this.parseInt(e.offsetWidth); + var h = this.parseInt(e.offsetHeight); + + b.style.left = x + 'px'; + b.style.top = y + 'px'; + b.style.width = w + 'px'; + b.style.height = h + 'px'; + b.style.display = e.style.display; + }, + + getBlocker : function() { + if (!this.blockerElement) { + var d = document, b = d.createElement("iframe"); + + b.style.cssText = 'display: none; left: 0px; position: absolute; top: 0'; + b.src = 'javascript:false;'; + b.frameBorder = '0'; + b.scrolling = 'no'; + + d.body.appendChild(b); + this.blockerElement = b; + } + + return this.blockerElement; + }, + + getAbsPosition : function(n) { + var p = {absLeft : 0, absTop : 0}; + + while (n) { + p.absLeft += n.offsetLeft; + p.absTop += n.offsetTop; + n = n.offsetParent; + } + + return p; + }, + + registerEventHandlers : function() { + if (!this.events) { + var d = document; + + this.addEvent(d, 'mousedown', MCLayer.prototype.onMouseDown); + + this.events = true; + } + }, + + addEvent : function(o, n, h) { + if (o.attachEvent) + o.attachEvent("on" + n, h); + else + o.addEventListener(n, h, false); + }, + + onMouseDown : function(e) { + e = typeof(e) == "undefined" ? window.event : e; + var b = document.body; + var l = MCLayer.visibleLayer; + + if (l) { + var mx = l.isMSIE ? e.clientX + b.scrollLeft : e.pageX; + var my = l.isMSIE ? e.clientY + b.scrollTop : e.pageY; + var el = l.getElement(); + var x = parseInt(el.style.left); + var y = parseInt(el.style.top); + var w = parseInt(el.offsetWidth); + var h = parseInt(el.offsetHeight); + + if (!(mx > x && mx < x + w && my > y && my < y + h)) { + MCLayer.visibleLayer = null; + + if (l.autoHideCallback && l.autoHideCallback(l, e, mx, my)) + return true; + + l.hide(); + } + } + }, + + addCSSClass : function(e, c) { + this.removeCSSClass(e, c); + var a = this.explode(' ', e.className); + a[a.length] = c; + e.className = a.join(' '); + }, + + removeCSSClass : function(e, c) { + var a = this.explode(' ', e.className), i; + + for (i=0; i parseInt(v)) + st = this.mark(f, n); + } + } + + return st; + }, + + hasClass : function(n, c, d) { + return new RegExp('\\b' + c + (d ? '[0-9]+' : '') + '\\b', 'g').test(n.className); + }, + + getNum : function(n, c) { + c = n.className.match(new RegExp('\\b' + c + '([0-9]+)\\b', 'g'))[0]; + c = c.replace(/[^0-9]/g, ''); + + return c; + }, + + addClass : function(n, c, b) { + var o = this.removeClass(n, c); + n.className = b ? c + (o != '' ? (' ' + o) : '') : (o != '' ? (o + ' ') : '') + c; + }, + + removeClass : function(n, c) { + c = n.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' '); + return n.className = c != ' ' ? c : ''; + }, + + tags : function(f, s) { + return f.getElementsByTagName(s); + }, + + mark : function(f, n) { + var s = this.settings; + + this.addClass(n, s.invalid_cls); + this.markLabels(f, n, s.invalid_cls); + + return false; + }, + + markLabels : function(f, n, ic) { + var nl, i; + + nl = this.tags(f, "label"); + for (i=0; i + + getTag(), 0, strpos( $language->getTag(), '-' ) ); + + if ($language->isRTL()) { + $direction = 'rtl'; + } else { + $direction = 'ltr'; + } + + /* + * Lets get the default template for the site application + */ + $query = 'SELECT template' + . ' FROM #__templates_menu' + . ' WHERE client_id = 0' + . ' AND menuid = 0' + ; + $db->setQuery( $query ); + $template = $db->loadResult(); + + $file_path = JPATH_SITE .'/templates/'. $template .'/css/'; + if ( !file_exists( $file_path .DS. 'editor.css' ) ) { + $template = 'system'; + } + + $css = JURI::root() .'/templates/'. $template . '/css/editor.css'; + + $html = ''; + ob_start(); + ?> + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + _displayButtons($name, $buttons); + + return $html; + } + + function onGetInsertMethod($name) + { + $doc = & JFactory::getDocument(); + + $js= "function jInsertEditorText( text ) { + var editor = document.getElementById('xstandard'); + editor.InsertXML(text); + }"; + $doc->addScriptDeclaration($js); + + return true; + } + + function _getTemplateCss() + { + $db =& JFactory::getDBO(); + + /* + * Lets get the default template for the site application + */ + $query = 'SELECT template' + . ' FROM #__templates_menu' + . ' WHERE client_id = 0' + . ' AND menuid = 0' + ; + $db->setQuery( $query ); + $template = $db->loadResult(); + + $content_css = JURI::root() .'/templates/'. $template .'/css/'; + + $file_path = JPATH_SITE .'/templates/'. $template .'/css/'; + if ( file_exists( $file_path .DS. 'editor.css' ) ) { + $content_css = $content_css . 'editor.css' .'", '; + } else { + $content_css = $content_css . 'template_css.css", '; + } + + return $content_css; + } + + function _displayButtons($name, $buttons) + { + // Load modal popup behavior + JHTML::_('behavior.modal', 'a.modal-button'); + + $args['name'] = $name; + $args['event'] = 'onGetInsertMethod'; + + $return = ''; + $results[] = $this->update($args); + foreach ($results as $result) { + if (is_string($result) && trim($result)) { + $return .= $result; + } + } + + if(!empty($buttons)) + { + $results = $this->_subject->getButtons($name, $buttons); + + /* + * This will allow plugins to attach buttons or change the behavior on the fly using AJAX + */ + $return .= "\n
        \n"; + foreach ($results as $button) + { + /* + * Results should be an object + */ + if ( $button->get('name') ) + { + $modal = ($button->get('modal')) ? 'class="modal-button"' : null; + $href = ($button->get('link')) ? 'href="'.$button->get('link').'"' : null; + $onclick = ($button->get('onclick')) ? 'onclick="'.$button->get('onclick').'"' : null; + $return .= "\n"; + } + } + $return .= "
        \n"; + } + + return $return; + } +} \ No newline at end of file diff --git a/plugins/editors/xstandard.xml b/plugins/editors/xstandard.xml new file mode 100644 --- /dev/null +++ b/plugins/editors/xstandard.xml @@ -0,0 +1,27 @@ + + + Editor - XStandard Lite for Joomla! + 1.0 + Aug 2007 + Joomla! Project + admin@joomla.org + www.joomla.org + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + DESCXSTANDARD + + xstandard_lite/xstandard.js + xstandard.php + + + + + + + + + + + + + diff --git a/plugins/editors/xstandard/attachmentlibrary.php b/plugins/editors/xstandard/attachmentlibrary.php new file mode 100644 --- /dev/null +++ b/plugins/editors/xstandard/attachmentlibrary.php @@ -0,0 +1,319 @@ + 0 and strlen($n) > 0) { + if (substr($p, strlen($p) - 1, 1) == "/") { + $return = $p . $n; + } else { + $return = $p . "/" . $n; + } + } else { + $return = $p . $n; + } + + //make sure return is above $path + $realreturn = realpath($return); + $realpath = realpath($path); + if(strpos($realreturn, $realpath) !== 0) { + //the returned path does not start with the given path. Default to path + return $realpath; + } else { + return $realreturn; + } +} + +function xs_is_accepted_file_type($file_name) { + $pos = strrpos($file_name, "."); + $ext = ""; + if ($pos !== false) { + $ext = strtolower(substr($file_name, $pos + 1)); + } + + $accepted_file_types = explode(" ", strtolower(XS_ACCEPTED_FILE_TYPES)); + foreach ($accepted_file_types as $accepted_file_type) { + if ($accepted_file_type == $ext or $accepted_file_type == "*") { + return true; + } + } + + return false; +} + + +function xs_xhtml_escape($text) { + return str_replace(array("&", "<", ">", "\""), array("&", "<", ">", """), $text); +} + +function xs_urlencode($text) { + $parts = explode("/", $text); + $count = count($parts); + + for($i = 0; $i < $count; $i++) { + $parts[$i] = str_replace("+", "%20", urlencode($parts[$i])); + } + + return implode("/", $parts); +} + + + +//Process request +$rootFolderPath = ""; +$rootFilePath = ""; + +//Get sub-folder to browse +if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] == "") { + $rootFolderPath = XS_LIBRARY_FOLDER; + $rootFilePath = XS_LIBRARY_FOLDER; + } else { + $rootFolderPath = xs_build_path(XS_LIBRARY_FOLDER, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + $rootFilePath = xs_build_path(XS_LIBRARY_FOLDER, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } +} else { + $rootFolderPath = XS_LIBRARY_FOLDER; + $rootFilePath = XS_LIBRARY_FOLDER; +} + + +$hidden_folders = explode(",", XS_HIDDEN_FOLDERS); +$hidden_files = explode(",", XS_HIDDEN_FILES); + + + +// Respond +if (get_magic_quotes_runtime() != 0) { + set_magic_quotes_runtime(0); +} + +header("Content-Type: text/xml"); +echo ""; +echo ""; + echo ""; + // Process folders + $folder_list = array(); + if (file_exists($rootFolderPath)) { + if (false !== ($handle = @opendir($rootFolderPath))) { + while (false !== ($fs_object = readdir($handle))) { + if ($fs_object != "." && $fs_object != "..") { + $found = false; + foreach($hidden_folders as $hidden_folder) { + if(strtolower($fs_object) == strtolower(trim($hidden_folder))) { + $found = true; + } + } + + if (is_dir(xs_build_path($rootFolderPath, $fs_object))) { + if ($found === false) { + $folder_list[] = $fs_object; + } + } + } + } + closedir($handle); + } + } + natcasesort($folder_list); + reset($folder_list); + foreach ($folder_list as $key => $fs_object) { + echo ""; + //Folder name + echo "" . xs_xhtml_escape($fs_object) . ""; + + //Path to parent folder + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + echo xs_xhtml_escape($_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } + } + echo ""; + + //Display label + echo ""; + + //Base URL to this folder + echo ""; + $temp = $fs_object; + + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + $temp = $_SERVER["HTTP_X_CMS_LIBRARY_PATH"] . "/" . $fs_object; + } + } + + $url = xs_build_path(XS_BASE_URL, xs_urlencode($temp)) . "/"; + + echo $url; + echo ""; + + //Is folder empty (not implemented yet) + echo "false"; + + //Icon ID defined in icons.xml + echo "folder"; + + //Reserved for future use + echo ""; + + //Reserved for future use + echo "0"; + echo ""; + } + echo ""; + echo ""; + // Process files + $file_list = array(); + if (file_exists($rootFilePath)) { + if (false !== ($handle = @opendir($rootFilePath))) { + while (false !== ($fs_object = readdir($handle))) { + if ($fs_object != "." && $fs_object != "..") { + $found = false; + foreach($hidden_files as $hidden_file) { + if(strtolower($fs_object) == strtolower(trim($hidden_file))) { + $found = true; + } + } + + if (is_file(xs_build_path($rootFilePath, $fs_object))) { + if (xs_is_accepted_file_type($fs_object)) { + if ($found === false) { + $file_list[] = $fs_object; + } + } + } + } + } + closedir($handle); + } + } + natcasesort($file_list); + reset($file_list); + foreach ($file_list as $key => $fs_object) { + echo ""; + //Folder name + echo "" . xs_xhtml_escape($fs_object) . ""; + + //Path to parent folder + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + echo xs_xhtml_escape($_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } + } + echo ""; + + //Display label + echo ""; + + //Icon ID defined in icons.xml + echo "document"; + + //Reserved for future use + echo ""; + + //Reserved for future use + echo "0"; + + //Attributes + echo ""; + //src attribute + echo ""; + echo "href"; + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] == "") { + echo xs_build_path(XS_BASE_URL, xs_urlencode($fs_object)); + } else { + echo xs_build_path(xs_build_path(XS_BASE_URL, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]), xs_urlencode($fs_object)); + } + } else { + echo xs_build_path(XS_BASE_URL, xs_urlencode($fs_object)); + } + echo ""; + echo ""; + echo ""; + + //Properties + echo ""; + //File size + if (XS_GET_FILE_SIZE) { + echo ""; + echo "size"; + echo "" . filesize(xs_build_path($rootFilePath, $fs_object)) . ""; + echo ""; + } + + //Last modified date + if (XS_GET_DATE_LAST_MODIFIED) { + echo ""; + echo "date"; + echo "" . date("Y-m-d H:i:s", filemtime(xs_build_path($rootFilePath, $fs_object))) . ""; + echo ""; + } + echo ""; + echo ""; + } + echo ""; +echo ""; +?> diff --git a/plugins/editors/xstandard/cms-directory-xhtml-entities.xml b/plugins/editors/xstandard/cms-directory-xhtml-entities.xml new file mode 100644 index 0000000000000000000000000000000000000000..68fcd092bad64301819cfe1c2537e1c1a0febdc2 GIT binary patch literal 1380 zc%02tO>crg6r8I~`X7jQq+UEB9=v+%FVOXiW&s0e>Ys0&eT%{>Hqn@d0|92{4fEb3 z`}-4Of^Q_y@NmEiISRzckYbEJh8W<3caKa8MSMv%#YWgYO03~iHR9U@5#I5JP&7F! z6#0x#$BOBZQ{r7>E2AY>DK&%$Kcqh`_07dc{l{ zvHLC6W&*w_t>aKCt)f|z(8r`(igHfY=x$LrbH+s0*>o52EnzmlWm5j#JcDXawxerD zw=Y$pwg+{kG3Z}&eryY$*hvR5G5wM)6pmvT_TVP!?k0}RwP1yQV&-*iHzr=^`LB7m Xvqgi?nCPoYUGQHIE@xhF_tZN9=}p-8 diff --git a/plugins/editors/xstandard/cms-directory-xhtml-latin1.xml b/plugins/editors/xstandard/cms-directory-xhtml-latin1.xml new file mode 100644 index 0000000000000000000000000000000000000000..c5e47c98eb906c509f495c9c92a2e7b40a964a69 GIT binary patch literal 18440 zc$~GI*KZp~5Qq0Q0rEc(3E(%y&P!e*+ejP-F_2h+<2?BBSR^r_M1@5W{~Y(;d+)vX z-h1!emNGlHJTiiW?CkglLo%=O`{s6Lhj)?&`diId(`UL&!K6&D$(fQVo4hHSZZq0^ zX}&REn^E+Ciner{46V=7)^5|mTdSsG+D!}X^(`%pHDk;d=5y1^`;_R23~evctD4*L z8Ewn(xhp2(^Th9$G9#PzD4MkS(;Zz-)(_s&SZ}u!=zM9~QlRw{`5jtl*)l}tFGrlB zv-Qw&hSs*yJ2oHFe6B35w|ryF2=f)YjWXZy5sfVkrjf%?`O;1$uF>>0ff(cXSLl0| zBi={H+I_qDedDW=;-wN<`8iC5kxz5v<9KXTIKFv`bGIkiG#J@*NA?@-UnQQbm~A?Y zZAKEcDqY2r%d480a0ZNUrX!rfY*Mb7Fs@mS>j#Qjk;Z>aSI?O|9UXBMOLKns(awU= z&UUoFyFKgKD~slA7~ht?Io*n(z=fT+LJN92_xt*ihLr3Phrq@SB2UV*) z?OkBM9BuKVo)4p5;Hd3vFCPgDU|b6w*N>b#8P216_D9?crD*KdD8`*!!Tfj^!gv=s z-bu9F!ORtx{dU%@(5r}E<(m2qX{;B)*cUtYHa80tT-NzSdJP>ZWuRqn@StV?06%aU2@Zz7A_xb&l12BTWu)Wf9(M9X1BD~6fP z?dvLMv>)LL7~x7s_$$wSwu6(7vXwBlRY^ufT<<#gyRFbt##J!J)lKos(!T=Nlq}DF zer&5@Y-@%YeHqS;xNnF&Dc8U#*Cv!z;*9S+WVoB`;SM6pS31wHi-LJ%EsS_wa?K-V zttKsrCy)ct~N|W%pWgpCGztSnRBJYP89S|E$P-V^m zn8`tfgoq#!=R60pB<|NGIl+q-$3ZH@*oi_FR(e_Ssh3}jf zl6%f!KjCs3MtepXe|ulA{*y+2E@xmaXT>gmsH*Q-n8`V%iM0BjgPELHnuJ&1^Dw6i zN~h48bpd8{QEW6tHQp}5OfHE{YzN$CCQ(o6$9@UMet8J?GCwUT48dLICsrjgOL>o= z%P{sUBKAmCcdx)Kt|}~~IdBzbaZOqmVH5t$ zraXq(JQ3!-_3&eU0%LwE zV(wP;xldsh&qNkQRgHQEvv{tskk+W@FpC!oi|`ut0_O8l;UmqEmoST03X9N6`wC|B z+BANbua}9!o^iZ}5x!BxTmF3G4b0=M$fK&NtZ!i!?-Ul&%K8pw@m^sOURmG6d_E|A zLTl0on9WC#O-(h%KEf>eMHZIc{zj8;z3qo_4=AD^I+g~6HiOsK|AtO{mZASL&%ZoE B%)S5s diff --git a/plugins/editors/xstandard/cms-directory-xhtml-special.xml b/plugins/editors/xstandard/cms-directory-xhtml-special.xml new file mode 100644 index 0000000000000000000000000000000000000000..54872ec4bf034d4f707b06662f707e2f168f8caa GIT binary patch literal 4978 zc$~GE&raJw5XJ{?t<)1700CNh=#3`5R0@TnN=3a;wM|}t#ZH{Gn;7Dxgm>aOcnY4S z^xIkg3w6}B@EokzJF~ODZ#-U)^Z4hOPH917GNkA?^=V28jVPuGozQD~M{lW(Uj@sA z0*r^SPAFpQoMtqjLwLQ%)hT_XSM-vO*=LFw0qil(Zd1z(*aD6{Bh7K#dWu>lkC-m$ zXF5B{$Ddk?aceP%cL|HZ_#3(gSqz^KhT}^ z#uXwKvF*&lqo8c9;PmIu)^hZp_{wEUgFURxoc+oXn^LyVF`DpQozakq71vaRv%2I) zIMY#y`wQ2sUB%|Q3HnI9POjjalq$tt&%ht!dQ`<(BFqHlEOsiC_jMc%6*Pk0A0E2v}d%=g5oFTC>I$9Y!qJsdY|9j3lh-Yxx< zT!<;r|IL3{Me-~aT1>^FmWtaY750s)+0y6TDDhOY5L0u%?$mrudx8NDN4~5h;9elW zlQD*mwJk8JF%oc3G4oV%zb>WZAyv{V-3xnv3|8}fiXX)2Hk6|~<9e|xB&Y~KstqMY zwV6|mYg28CQEjQB0~x^6y}50-YIs+^es&+YCC0v;vUmAiG8CcT7Ng%$*)vooHkf^b z?}JVw^gCkoyZ_Wph?#TPo67vI82esD-84q6jGYzxncE)@`CDnk-HWr^j;6_-x+A9S ms8ZQ9-#z5D9f@hX%e#^}_xyG1>8>W()A8)zDi@{tKd`@-KhDem diff --git a/plugins/editors/xstandard/cms-directory-xhtml-symbol.xml b/plugins/editors/xstandard/cms-directory-xhtml-symbol.xml new file mode 100644 index 0000000000000000000000000000000000000000..5bba5ee1f0aa746c343eaf8f1e42d5b00b4e2487 GIT binary patch literal 22452 zc$~GI*>6)v6vn5G5SuC#UO)(tF(PbEX<7P|g4#k0QWr$qcbw}bZoJiY2;mVByh0N8 zT@aQ>_I=-ZViSK(+nF0ZUop<-bGi1nS+1YRH)++YAA5Sd ztoh7mnQtJkuh;aC@k@-Zl~s@a&12u+hGHKSvv<=oF8Lsgd`L{5)mIDphs!<$V;>f? zr|6Y@zYoLM4~W^*dd%dWykNE-fbky`^Y0Kv{6QG`p$MMmb030n9~N`hbZ(TeABM3X z5wn{$iBEn6Mt)RG-b~2lATx1!MI1n+!0Jxi7-FFGX63($q`y*e}7@FE?SYQr62i;g)JHmtovjMBFmHqOk82b$oyG&oX0i(Vt^f;gSCXD%(h*_$u+=6l67IDiomD@1t zJ0fbSo^l7qeOJUS*HZ4n$nS~B`8vuy81a1(F<(Qu4v~CsN&W;z{xl*vkNYW%`pc!aTxPNnXI1Uy7I|%Fas|^DCjB`Krz<81rlK`Y2I!UcV-&YaZRnV~@vB>>ZAMqcSJya%zY2&(GyaT`-hIJH45A=PE6Enc~}?*fbg3KjG<7G;yPQEsTDB%s;DHAyWUWreQbtRkfFSjO$^H zvlm##->Ek=bFHSv?tW}0kC*j(_6IdLKf-4(K+(4^@N=J^>%!I3XgfB!2shai6pyY=v?NMmZdc${4La z)~|BTVHoFimNy%F8C!i6mA{V=o^{N9Nti`%C&&k>QI(?fTX+j&em72bXpQ$BjQ9P7 zxuP}d_b}=Y6U2IJ%pYLPA1BNstxday=!sGoM#@iP6tI8h7W;BECq!rZInYInaH_7pB&^4s#s|JF;$<&fXr`O1O zsYx)}$&U6{x@JbKie$SGKNpOR29MooPlmBi2|R6Pdcj4h(FC}ASyNzaQv<)2Ty0Zy z+Ez5usW8&%j`RoB_*bm9(y3C%mZomVeDgfk=`hwAfmb_Ky@xm1J*DTB=jPbxE7DGL z28_PF34K*l7U;7if6?0xW1Q(2e{uR|RqVf+Ft%B7zf-R&tBjbO-%InTOwY|{me_GR z3r0F8?(1uRYab@vDpjHVj+)bMl9W?Dx7x~lJO@TTFQ^78?eRl=EPe z^Bv_TO;y)n2AEv)VO+5wLXA4j-)o7%h!)5FO1VVZryp-g(*6_F!>0A4ESq&PjCIL4 ztR@BxsZsj5luKZgOB-U(W}&Kkjh!WlK(FPIE`^aUi~Id^aTHr0n{644ZF$IxS;~mq z?qWHNYxS7!A|u*YS`8!X3dqb}x>eJ|>ztW;cv)_VeZ*8KV3xdDR9B;RP!{HEWN#M1`nHbnNkRWitW^Zes-0tdZ)*pN(`&-% zQLWM4KxtJ8(|;6b%{KS($UPW&x(Rs?bxi&V%R2iuTC>wZY;)ry4WrLAp-<7yeL>mt W-qIM!2wB6|{r`7s-=+C~(ftou$Gc(x diff --git a/plugins/editors/xstandard/directory.php b/plugins/editors/xstandard/directory.php new file mode 100644 --- /dev/null +++ b/plugins/editors/xstandard/directory.php @@ -0,0 +1,166 @@ +", "\""), array("&", "<", ">", """), $text); +} + +function read_from_file($path) { + return @file_get_contents($path); +} + + + +//Process request +$id = ""; +$metadata = ""; + +if (isset($_SERVER["HTTP_X_CMS_DIRECTORY_ID"])) { + $id = $_SERVER["HTTP_X_CMS_DIRECTORY_ID"]; +} + +if (isset($_SERVER["HTTP_X_CMS_DIRECTORY_METADATA"])) { + $metadata = $_SERVER["HTTP_X_CMS_DIRECTORY_METADATA"]; +} + + +// Respond +if (get_magic_quotes_runtime() != 0) { + set_magic_quotes_runtime(0); +} + +header("Content-Type: text/xml"); +echo ""; +echo ""; + echo ""; + // Process folders + if ($id == "") { + echo (""); + echo (""); + echo ("a"); + echo (""); + echo (""); + echo (""); + echo (""); + echo (""); + echo (""); + echo ("c"); + echo (""); + echo ("cms-directory-xhtml-entities.xml"); + echo (""); + echo (""); + /*echo (""); + echo (""); + echo ("d"); + echo (""); + echo (""); + echo ("flag"); + echo ("");*/ + } + /*echo (""); + echo (""); + echo ("".xs_xhtml_escape('
        ')."
        "); + echo ("pagebreak"); + echo ("
        "); + echo (""); + echo (""); + echo ("".xs_xhtml_escape('
        ')."
        "); + echo ("readmore"); + echo ("
        ");*/ + echo ("
        "); + echo (""); + + // Process items + if ($id == "a") + { + echo (""); + echo (""); + echo ("test"); + echo ("test"); + echo (""); + } + else if ($id == "b") + { + //This is an example of how to read XHTML from a file. + echo (""); + echo (""); + echo ("" . xs_xhtml_escape(read_from_file("cms-directory-example-product-1.txt")) . ""); + echo (""); + echo (""); + + echo (""); + echo (""); + echo ("" . xs_xhtml_escape(read_from_file("cms-directory-example-product-2.txt")) . ""); + echo (""); + echo (""); + + echo (""); + echo (""); + echo ("" . xs_xhtml_escape(read_from_file("cms-directory-example-product-3.txt")) . ""); + echo (""); + echo (""); + + echo (""); + echo (""); + echo ("" . xs_xhtml_escape(read_from_file("cms-directory-example-product-4.txt")) . ""); + echo (""); + echo (""); + } + else if ($id == "d") + { + //This is an example of how create XHTML on the fly. + echo (""); + echo (""); + echo ("<p>The current temperature in Vancouver is <temperature location="Vancouver, BC, Canada" title="Placeholder for temperature."/>.</p>"); + echo ("thermometer"); + echo (""); + echo (""); + echo (""); + echo ("<p>The current stock price for IBM is <stock symbol="IBM" exchange="NYSE" title="Placeholder for stock price." />.</p>"); + echo ("certificate"); + echo (""); + } + echo ""; +echo "
        "; +?> diff --git a/plugins/editors/xstandard/imagelibrary.php b/plugins/editors/xstandard/imagelibrary.php new file mode 100644 --- /dev/null +++ b/plugins/editors/xstandard/imagelibrary.php @@ -0,0 +1,353 @@ + 0 and strlen($n) > 0) { + if (substr($p, strlen($p) - 1, 1) == "/") { + $return = $p . $n; + } else { + $return = $p . "/" . $n; + } + } else { + $return = $p . $n; + } + + //make sure return is above $path + $realreturn = realpath($return); + $realpath = realpath($path); + if(strpos($realreturn, $realpath) !== 0) { + //the returned path does not start with the given path. Default to path + return $realpath; + } else { + return $realreturn; + } +} + +function xs_is_accepted_file_type($file_name) { + $pos = strrpos($file_name, "."); + $ext = ""; + if ($pos !== false) { + $ext = strtolower(substr($file_name, $pos + 1)); + } + + $accepted_file_types = explode(" ", strtolower(XS_ACCEPTED_FILE_TYPES)); + foreach ($accepted_file_types as $accepted_file_type) { + if ($accepted_file_type == $ext or $accepted_file_type == "*") { + return true; + } + } + + return false; +} + + +function xs_xhtml_escape($text) { + return str_replace(array("&", "<", ">", "\""), array("&", "<", ">", """), $text); +} + +function xs_urlencode($text) { + $parts = explode("/", $text); + $count = count($parts); + + for($i = 0; $i < $count; $i++) { + $parts[$i] = str_replace("+", "%20", urlencode($parts[$i])); + } + + return implode("/", $parts); +} + + + +//Process request +$rootFolderPath = ""; +$rootFilePath = ""; + +//Get sub-folder to browse +if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] == "") { + $rootFolderPath = XS_LIBRARY_FOLDER; + $rootFilePath = XS_LIBRARY_FOLDER; + } else { + $rootFolderPath = xs_build_path(XS_LIBRARY_FOLDER, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + $rootFilePath = xs_build_path(XS_LIBRARY_FOLDER, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } +} else { + $rootFolderPath = XS_LIBRARY_FOLDER; + $rootFilePath = XS_LIBRARY_FOLDER; +} + + +$hidden_folders = explode(",", XS_HIDDEN_FOLDERS); +$hidden_files = explode(",", XS_HIDDEN_FILES); + + + +// Respond +if (get_magic_quotes_runtime() != 0) { + set_magic_quotes_runtime(0); +} + +header("Content-Type: text/xml"); +echo ""; +echo ""; + echo ""; + // Process folders + $folder_list = array(); + if (file_exists($rootFolderPath)) { + if (false !== ($handle = @opendir($rootFolderPath))) { + while (false !== ($fs_object = readdir($handle))) { + if ($fs_object != "." && $fs_object != "..") { + $found = false; + foreach($hidden_folders as $hidden_folder) { + if(strtolower($fs_object) == strtolower(trim($hidden_folder))) { + $found = true; + } + } + + if (is_dir(xs_build_path($rootFolderPath, $fs_object))) { + if ($found === false) { + $folder_list[] = $fs_object; + } + } + } + } + closedir($handle); + } + } + natcasesort($folder_list); + reset($folder_list); + foreach ($folder_list as $key => $fs_object) { + echo ""; + //Folder name + echo "" . xs_xhtml_escape($fs_object) . ""; + + //Path to parent folder + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + echo xs_xhtml_escape($_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } + } + echo ""; + + //Display label + echo ""; + + //Base URL to this folder + echo ""; + $temp = $fs_object; + + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + $temp = $_SERVER["HTTP_X_CMS_LIBRARY_PATH"] . "/" . $fs_object; + } + } + + $url = xs_build_path(XS_BASE_URL, xs_urlencode($temp)) . "/"; + + echo $url; + echo ""; + + //Is folder empty (not implemented yet) + echo "false"; + + //Icon ID defined in icons.xml + echo "folder"; + + //Reserved for future use + echo ""; + + //Reserved for future use + echo "0"; + echo ""; + } + echo ""; + echo ""; + // Process files + $file_list = array(); + if (file_exists($rootFilePath)) { + if (false !== ($handle = @opendir($rootFilePath))) { + while (false !== ($fs_object = readdir($handle))) { + if ($fs_object != "." && $fs_object != "..") { + $found = false; + foreach($hidden_files as $hidden_file) { + if(strtolower($fs_object) == strtolower(trim($hidden_file))) { + $found = true; + } + } + + if (is_file(xs_build_path($rootFilePath, $fs_object))) { + if (xs_is_accepted_file_type($fs_object)) { + if ($found === false) { + $file_list[] = $fs_object; + } + } + } + } + } + closedir($handle); + } + } + natcasesort($file_list); + reset($file_list); + foreach ($file_list as $key => $fs_object) { + echo ""; + //Folder name + echo "" . xs_xhtml_escape($fs_object) . ""; + + //Path to parent folder + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + echo xs_xhtml_escape($_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } + } + echo ""; + + //Display label + echo ""; + + //Icon ID defined in icons.xml + echo "image"; + + //Reserved for future use + echo ""; + + //Reserved for future use + echo "0"; + + //Attributes + echo ""; + //src attribute + echo ""; + echo "src"; + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] == "") { + echo xs_build_path(XS_BASE_URL, xs_urlencode($fs_object)); + } else { + echo xs_build_path(xs_build_path(XS_BASE_URL, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]), xs_urlencode($fs_object)); + } + } else { + echo xs_build_path(XS_BASE_URL, xs_urlencode($fs_object)); + } + echo ""; + echo ""; + + //Image dimensions + if (XS_GET_IMAGE_DIMENSIONS) { + if (false === (list($width, $height) = @getimagesize(xs_build_path($rootFilePath, $fs_object)))) { + + } else { + //Width + echo ""; + echo "width"; + echo "" . $width . ""; + echo ""; + + //Height + echo ""; + echo "height"; + echo "" . $height . ""; + echo ""; + } + + } + echo ""; + + //Properties + echo ""; + //File size + if (XS_GET_FILE_SIZE) { + echo ""; + echo "size"; + echo "" . filesize(xs_build_path($rootFilePath, $fs_object)) . ""; + echo ""; + } + + //Last modified date + if (XS_GET_DATE_LAST_MODIFIED) { + echo ""; + echo "date"; + echo "" . date("Y-m-d H:i:s", filemtime(xs_build_path($rootFilePath, $fs_object))) . ""; + echo ""; + } + + //Decorative image flag + echo ""; + echo "decorative"; + echo ""; + if (XS_DEFAULT_IMAGE_IS_DECORATIVE) { + echo "true"; + } else { + echo "false"; + } + echo ""; + echo ""; + echo ""; + echo ""; + } + echo ""; +echo ""; +?> diff --git a/plugins/editors/xstandard/index.html b/plugins/editors/xstandard/index.html new file mode 100644 --- /dev/null +++ b/plugins/editors/xstandard/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/editors/xstandard/preview.xsl b/plugins/editors/xstandard/preview.xsl new file mode 100644 index 0000000000000000000000000000000000000000..0b0a95b57d419fbc7d1dc9efec3eaa1ed521ee13 GIT binary patch literal 14408 zc%1E9TXWk)6y8^u;XkM)G)V{BO$!gCNv3HMNJ|Q(7~0b5gDpFbh;P_(ZVZ1N_|CU0 zOIk^`Wh-GwJetPRUcNnh&e?O5`p@56>Ou`wTW#X6uP$-d#N7%0Hu3DBw}ZAW+BVI| zZFL|0KCV96D!9&hmGSQh{`S;Bwa~huzTs6-@6^xg2)|YI)QEM=Q5_(~SNI+6JwDe` z)`|9(mCJiUXad7U>qs?lUjnl1VT2YRPklZgD-WZjU2vmFf^deO0s1_&b~$1LD?GyQ zj`~b}syK?F47`uIIF1@oo?70ug53u_dIqs-6@N*r%kHLdS>MPti>N$8MJRah{ zihCDhyO`U?zZT{@>II%%@J&YVqP>mZ5Ov5Wk$~`8INrcmO~Zf9i6SqDdJ^hQaK3ur zo#^t29PaRZouIX$MBnr&5MA`ZMbYCf`laWRJd+;LSdTibN0&Ixr54M{@+0~i%&Hhl zY-;*uP6xPM{x&(U%@f+9<_is5KuFF>?k)?j0g7Dgxnp)z0*wu#FN!=enp7O(kUR^l zKykSK*zVQ93%_uD(EzV-{(7X?C*>~fYH|FiLBoo}yCOe}q)>cD4_=~4c@>9SqXn!L zh}a^fBlH)!drfDt`s7kdB72Y0D)Qv^R6Vz}Z0s|R@bI_JD9E-pE}q0f2=Xqx;hx%8 z2kKk(ojQc)d#S!hjPpwUpng=Z)lcdTVxFq{Mg6MYBK~==ev46Kua(^CWNO+mYGjN{ zUvNxc>wy=i7}KGD?yEl-+xXbS8Dg{x_=c+)sIe*X(bEB1o1UggA0~Ga2W->Rgwc{c z?}9$Bfi;HXRZ20BSfcHfUG=FSt(X@Jadjm2f!yB(hj(!w_UYbz$Y2kB?;(i;tSiw+ zhtbGuNaQ)>^aA}3a7&CU-y&|^?@~vj!cQGbIgtK zHX-{CJ!JD1MaNlD@ieQF#hJLRk@gl(!vHh0Gt_tn8Jx`!RkTs(GdB!8{PlrUlGEaLZM;e&tH(2M)+$ZtNpjpS?4qDnK2Z*kCkA3I#a=zix zhWeV>s>94Z$hf5EiD}P!%I?NV)6rN1&pqBR&)a1F#7|v~`lhQZGWT z_5pKU@kw2JsT$8wQ#~DzKgH9fsniTjjb_rU9iE~Zy-iy52W7u5P4y zy43cm9E$6^=(-cBlL|te+Sf4ojL&#`6IQnm8XU$}x|%AQTIV`0ahDc3(9%Pm{3at- zkG5dA)J)ueP|wEJ^~i-~v&&ic z6joaD$Xn0KC+qol7~1Rk_Zi2?x7+C4o7%H}ClF}Ze0z>#=*TR+$zQ9A2}{Tx!To^oQd-f2wsRVx$s<=|v!n=J1J1ig>`Rijl6 zi>gWU_51ePTyulGWS+SmtMa2ET@!OVJe@wjd2uYuJxqD`5q+m&%VhG2jbrCMqtWx2=d|UcG3jTM zF=HH0f4e18sTm7zQ=Y`!#Pu*0cRu?Utnh!afN8s(W($*h46RB$o6WXM(=ZyOvyy?UD*w`iR?ivxGDP8?j>_2M9I ixjpsb;F`B?9B@SE6 \ No newline at end of file diff --git a/plugins/search/categories.php b/plugins/search/categories.php new file mode 100644 --- /dev/null +++ b/plugins/search/categories.php @@ -0,0 +1,116 @@ +registerEvent( 'onSearch', 'plgSearchCategories' ); +$mainframe->registerEvent( 'onSearchAreas', 'plgSearchCategoryAreas' ); + +JPlugin::loadLanguage( 'plg_search_categories' ); + +/** + * @return array An array of search areas + */ +function &plgSearchCategoryAreas() +{ + static $areas = array( + 'categories' => 'Categories' + ); + return $areas; +} + +/** + * Categories Search method + * + * The sql must return the following fields that are + * used in a common display routine: href, title, section, created, text, + * browsernav + * @param string Target search string + * @param string mathcing option, exact|any|all + * @param string ordering option, newest|oldest|popular|alpha|category + * @param mixed An array if restricted to areas, null if search all + */ +function plgSearchCategories( $text, $phrase='', $ordering='', $areas=null ) +{ + $db =& JFactory::getDBO(); + $user =& JFactory::getUser(); + $searchText = $text; + + require_once(JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php'); + + if (is_array( $areas )) { + if (!array_intersect( $areas, array_keys( plgSearchCategoryAreas() ) )) { + return array(); + } + } + + // load plugin params info + $plugin =& JPluginHelper::getPlugin('search', 'categories'); + $pluginParams = new JParameter( $plugin->params ); + + $limit = $pluginParams->def( 'search_limit', 50 ); + + $text = trim( $text ); + if ( $text == '' ) { + return array(); + } + + switch ( $ordering ) { + case 'alpha': + $order = 'a.name ASC'; + break; + + case 'category': + case 'popular': + case 'newest': + case 'oldest': + default: + $order = 'a.name DESC'; + } + + $text = $db->Quote( '%'.$db->getEscaped( $text, true ).'%', false ); + $query = 'SELECT a.title, a.description AS text, "" AS created, a.name,' + . ' "2" AS browsernav,' + . ' s.id AS secid, a.id AS catid,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug' + . ' FROM #__categories AS a' + . ' INNER JOIN #__sections AS s ON s.id = a.section' + . ' WHERE ( a.name LIKE '.$text + . ' OR a.title LIKE '.$text + . ' OR a.description LIKE '.$text.' )' + . ' AND a.published = 1' + . ' AND s.published = 1' + . ' AND a.access <= '.(int) $user->get('aid') + . ' AND s.access <= '.(int) $user->get('aid') + . ' GROUP BY a.id' + . ' ORDER BY '. $order + ; + $db->setQuery( $query, 0, $limit ); + $rows = $db->loadObjectList(); + + $count = count( $rows ); + for ( $i = 0; $i < $count; $i++ ) { + $rows[$i]->href = ContentHelperRoute::getCategoryRoute($rows[$i]->slug, $rows[$i]->secid); + $rows[$i]->section = JText::_( 'Category' ); + } + + $return = array(); + foreach($rows AS $key => $category) { + if(searchHelper::checkNoHTML($category, $searchText, array('name', 'title', 'text'))) { + $return[] = $category; + } + } + + return $return; +} diff --git a/plugins/search/categories.xml b/plugins/search/categories.xml new file mode 100644 --- /dev/null +++ b/plugins/search/categories.xml @@ -0,0 +1,18 @@ + + + Search - Categories + Joomla! Project + November 2005 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Allows Searching of Categories information + + categories.php + + + + + \ No newline at end of file diff --git a/plugins/search/contacts.php b/plugins/search/contacts.php new file mode 100644 --- /dev/null +++ b/plugins/search/contacts.php @@ -0,0 +1,116 @@ +registerEvent( 'onSearch', 'plgSearchContacts' ); +$mainframe->registerEvent( 'onSearchAreas', 'plgSearchContactAreas' ); + +JPlugin::loadLanguage( 'plg_search_contacts' ); + +/** + * @return array An array of search areas + */ +function &plgSearchContactAreas() +{ + static $areas = array( + 'contacts' => 'Contacts' + ); + return $areas; +} + +/** +* Contacts Search method +* +* The sql must return the following fields that are used in a common display +* routine: href, title, section, created, text, browsernav +* @param string Target search string +* @param string mathcing option, exact|any|all +* @param string ordering option, newest|oldest|popular|alpha|category +*/ +function plgSearchContacts( $text, $phrase='', $ordering='', $areas=null ) +{ + $db =& JFactory::getDBO(); + $user =& JFactory::getUser(); + + if (is_array( $areas )) { + if (!array_intersect( $areas, array_keys( plgSearchContactAreas() ) )) { + return array(); + } + } + + // load plugin params info + $plugin =& JPluginHelper::getPlugin('search', 'contacts'); + $pluginParams = new JParameter( $plugin->params ); + + $limit = $pluginParams->def( 'search_limit', 50 ); + + $text = trim( $text ); + if ($text == '') { + return array(); + } + + $section = JText::_( 'Contact' ); + + switch ( $ordering ) { + case 'alpha': + $order = 'a.name ASC'; + break; + + case 'category': + $order = 'b.title ASC, a.name ASC'; + break; + + case 'popular': + case 'newest': + case 'oldest': + default: + $order = 'a.name DESC'; + } + + $text = $db->Quote( '%'.$db->getEscaped( $text, true ).'%', false ); + $query = 'SELECT a.name AS title, "" AS created,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug, ' + . ' CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(\':\', b.id, b.alias) ELSE b.id END AS catslug, ' + . ' CONCAT_WS( ", ", a.name, a.con_position, a.misc ) AS text,' + . ' CONCAT_WS( " / ", '.$db->Quote($section).', b.title ) AS section,' + . ' "2" AS browsernav' + . ' FROM #__contact_details AS a' + . ' INNER JOIN #__categories AS b ON b.id = a.catid' + . ' WHERE ( a.name LIKE '.$text + . ' OR a.misc LIKE '.$text + . ' OR a.con_position LIKE '.$text + . ' OR a.address LIKE '.$text + . ' OR a.suburb LIKE '.$text + . ' OR a.state LIKE '.$text + . ' OR a.country LIKE '.$text + . ' OR a.postcode LIKE '.$text + . ' OR a.telephone LIKE '.$text + . ' OR a.fax LIKE '.$text.' )' + . ' AND a.published = 1' + . ' AND b.published = 1' + . ' AND a.access <= '.(int) $user->get( 'aid' ) + . ' AND b.access <= '.(int) $user->get( 'aid' ) + . ' GROUP BY a.id' + . ' ORDER BY '. $order + ; + $db->setQuery( $query, 0, $limit ); + $rows = $db->loadObjectList(); + + foreach($rows as $key => $row) { + $rows[$key]->href = 'index.php?option=com_contact&view=contact&id='.$row->slug.'&catid='.$row->catslug; + } + + return $rows; +} diff --git a/plugins/search/contacts.xml b/plugins/search/contacts.xml new file mode 100644 --- /dev/null +++ b/plugins/search/contacts.xml @@ -0,0 +1,18 @@ + + + Search - Contacts + Joomla! Project + November 2005 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Allows Searching of Contacts Component + + contacts.php + + + + + \ No newline at end of file diff --git a/plugins/search/content.php b/plugins/search/content.php new file mode 100644 --- /dev/null +++ b/plugins/search/content.php @@ -0,0 +1,264 @@ +registerEvent( 'onSearch', 'plgSearchContent' ); +$mainframe->registerEvent( 'onSearchAreas', 'plgSearchContentAreas' ); + +JPlugin::loadLanguage( 'plg_search_content' ); + +/** + * @return array An array of search areas + */ +function &plgSearchContentAreas() +{ + static $areas = array( + 'content' => 'Articles' + ); + return $areas; +} + +/** + * Content Search method + * The sql must return the following fields that are used in a common display + * routine: href, title, section, created, text, browsernav + * @param string Target search string + * @param string mathcing option, exact|any|all + * @param string ordering option, newest|oldest|popular|alpha|category + * @param mixed An array if the search it to be restricted to areas, null if search all + */ +function plgSearchContent( $text, $phrase='', $ordering='', $areas=null ) +{ + global $mainframe; + + $db =& JFactory::getDBO(); + $user =& JFactory::getUser(); + + require_once(JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php'); + require_once(JPATH_SITE.DS.'administrator'.DS.'components'.DS.'com_search'.DS.'helpers'.DS.'search.php'); + + $searchText = $text; + if (is_array( $areas )) { + if (!array_intersect( $areas, array_keys( plgSearchContentAreas() ) )) { + return array(); + } + } + + // load plugin params info + $plugin =& JPluginHelper::getPlugin('search', 'content'); + $pluginParams = new JParameter( $plugin->params ); + + $sContent = $pluginParams->get( 'search_content', 1 ); + $sUncategorised = $pluginParams->get( 'search_uncategorised', 1 ); + $sArchived = $pluginParams->get( 'search_archived', 1 ); + $limit = $pluginParams->def( 'search_limit', 50 ); + + $nullDate = $db->getNullDate(); + $date =& JFactory::getDate(); + $now = $date->toMySQL(); + + $text = trim( $text ); + if ($text == '') { + return array(); + } + + $wheres = array(); + switch ($phrase) { + case 'exact': + $text = $db->Quote( '%'.$db->getEscaped( $text, true ).'%', false ); + $wheres2 = array(); + $wheres2[] = 'a.title LIKE '.$text; + $wheres2[] = 'a.introtext LIKE '.$text; + $wheres2[] = 'a.fulltext LIKE '.$text; + $wheres2[] = 'a.metakey LIKE '.$text; + $wheres2[] = 'a.metadesc LIKE '.$text; + $where = '(' . implode( ') OR (', $wheres2 ) . ')'; + break; + + case 'all': + case 'any': + default: + $words = explode( ' ', $text ); + $wheres = array(); + foreach ($words as $word) { + $word = $db->Quote( '%'.$db->getEscaped( $word, true ).'%', false ); + $wheres2 = array(); + $wheres2[] = 'a.title LIKE '.$word; + $wheres2[] = 'a.introtext LIKE '.$word; + $wheres2[] = 'a.fulltext LIKE '.$word; + $wheres2[] = 'a.metakey LIKE '.$word; + $wheres2[] = 'a.metadesc LIKE '.$word; + $wheres[] = implode( ' OR ', $wheres2 ); + } + $where = '(' . implode( ($phrase == 'all' ? ') AND (' : ') OR ('), $wheres ) . ')'; + break; + } + + $morder = ''; + switch ($ordering) { + case 'oldest': + $order = 'a.created ASC'; + break; + + case 'popular': + $order = 'a.hits DESC'; + break; + + case 'alpha': + $order = 'a.title ASC'; + break; + + case 'category': + $order = 'b.title ASC, a.title ASC'; + $morder = 'a.title ASC'; + break; + + case 'newest': + default: + $order = 'a.created DESC'; + break; + } + + $rows = array(); + + // search articles + if ( $sContent && $limit > 0 ) + { + $query = 'SELECT a.title AS title, a.metadesc, a.metakey,' + . ' a.created AS created,' + . ' CONCAT(a.introtext, a.fulltext) AS text,' + . ' CONCAT_WS( "/", u.title, b.title ) AS section,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,' + . ' CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(":", b.id, b.alias) ELSE b.id END as catslug,' + . ' u.id AS sectionid,' + . ' "2" AS browsernav' + . ' FROM #__content AS a' + . ' INNER JOIN #__categories AS b ON b.id=a.catid' + . ' INNER JOIN #__sections AS u ON u.id = a.sectionid' + . ' WHERE ( '.$where.' )' + . ' AND a.state = 1' + . ' AND u.published = 1' + . ' AND b.published = 1' + . ' AND a.access <= '.(int) $user->get( 'aid' ) + . ' AND b.access <= '.(int) $user->get( 'aid' ) + . ' AND u.access <= '.(int) $user->get( 'aid' ) + . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )' + . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )' + . ' GROUP BY a.id' + . ' ORDER BY '. $order + ; + $db->setQuery( $query, 0, $limit ); + $list = $db->loadObjectList(); + $limit -= count($list); + + if(isset($list)) + { + foreach($list as $key => $item) + { + $list[$key]->href = ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid); + } + } + $rows[] = $list; + } + + // search uncategorised content + if ( $sUncategorised && $limit > 0 ) + { + $query = 'SELECT id, a.title AS title, a.created AS created, a.metadesc, a.metakey, ' + . ' CONCAT(a.introtext, a.fulltext) AS text,' + . ' "2" as browsernav, "'. $db->Quote(JText::_('Uncategorised Content')) .'" AS section' + . ' FROM #__content AS a' + . ' WHERE ('.$where.')' + . ' AND a.state = 1' + . ' AND a.access <= '.(int) $user->get( 'aid' ) + . ' AND a.sectionid = 0' + . ' AND a.catid = 0' + . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )' + . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )' + . ' ORDER BY '. ($morder ? $morder : $order) + ; + $db->setQuery( $query, 0, $limit ); + $list2 = $db->loadObjectList(); + $limit -= count($list2); + + if(isset($list2)) + { + foreach($list2 as $key => $item) + { + $list2[$key]->href = ContentHelperRoute::getArticleRoute($item->id); + } + } + + $rows[] = $list2; + } + + // search archived content + if ( $sArchived && $limit > 0 ) + { + $searchArchived = JText::_( 'Archived' ); + + $query = 'SELECT a.title AS title, a.metadesc, a.metakey,' + . ' a.created AS created,' + . ' CONCAT(a.introtext, a.fulltext) AS text,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,' + . ' CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(":", b.id, b.alias) ELSE b.id END as catslug,' + . ' u.id AS sectionid,' + . ' CONCAT_WS( "/", u.title, b.title ) AS section,' + . ' "2" AS browsernav' + . ' FROM #__content AS a' + . ' INNER JOIN #__categories AS b ON b.id=a.catid AND b.access <= ' .$user->get( 'gid' ) + . ' INNER JOIN #__sections AS u ON u.id = a.sectionid' + . ' WHERE ( '.$where.' )' + . ' AND a.state = -1' + . ' AND u.published = 1' + . ' AND b.published = 1' + . ' AND a.access <= '.(int) $user->get( 'aid' ) + . ' AND b.access <= '.(int) $user->get( 'aid' ) + . ' AND u.access <= '.(int) $user->get( 'aid' ) + . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )' + . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )' + . ' ORDER BY '. $order + ; + $db->setQuery( $query, 0, $limit ); + $list3 = $db->loadObjectList(); + + if(isset($list3)) + { + foreach($list3 as $key => $item) + { + $list3[$key]->href = ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid); + } + } + + $rows[] = $list3; + } + + $results = array(); + if(count($rows)) + { + foreach($rows as $row) + { + $new_row = array(); + foreach($row AS $key => $article) { + if(searchHelper::checkNoHTML($article, $searchText, array('text', 'title', 'metadesc', 'metakey'))) { + $new_row[] = $article; + } + } + $results = array_merge($results, (array) $new_row); + } + } + + return $results; +} diff --git a/plugins/search/content.xml b/plugins/search/content.xml new file mode 100644 --- /dev/null +++ b/plugins/search/content.xml @@ -0,0 +1,31 @@ + + + Search - Content + Joomla! Project + November 2005 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + ALLOWS SEARCHING OF ALL ARTICLES + + content.php + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/search/index.html b/plugins/search/index.html new file mode 100644 --- /dev/null +++ b/plugins/search/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/search/newsfeeds.php b/plugins/search/newsfeeds.php new file mode 100644 --- /dev/null +++ b/plugins/search/newsfeeds.php @@ -0,0 +1,131 @@ +registerEvent( 'onSearch', 'plgSearchNewsfeedslinks' ); +$mainframe->registerEvent( 'onSearchAreas', 'plgSearchNewsfeedAreas' ); + +JPlugin::loadLanguage( 'plg_search_newsfeeds' ); + +/** + * @return array An array of search areas + */ +function &plgSearchNewsfeedAreas() +{ + static $areas = array( + 'newsfeeds' => 'Newsfeeds' + ); + return $areas; +} + +/** +* Contacts Search method +* +* The sql must return the following fields that are used in a common display +* routine: href, title, section, created, text, browsernav +* @param string Target search string +* @param string mathcing option, exact|any|all +* @param string ordering option, newest|oldest|popular|alpha|category + * @param mixed An array if the search it to be restricted to areas, null if search all +*/ +function plgSearchNewsfeedslinks( $text, $phrase='', $ordering='', $areas=null ) +{ + $db =& JFactory::getDBO(); + $user =& JFactory::getUser(); + + if (is_array( $areas )) { + if (!array_intersect( $areas, array_keys( plgSearchNewsfeedAreas() ) )) { + return array(); + } + } + + // load plugin params info + $plugin =& JPluginHelper::getPlugin('search', 'newsfeeds'); + $pluginParams = new JParameter( $plugin->params ); + + $limit = $pluginParams->def( 'search_limit', 50 ); + + $text = trim( $text ); + if ($text == '') { + return array(); + } + + $wheres = array(); + switch ($phrase) { + case 'exact': + $text = $db->Quote( '%'.$db->getEscaped( $text, true ).'%', false ); + $wheres2 = array(); + $wheres2[] = 'a.name LIKE '.$text; + $wheres2[] = 'a.link LIKE '.$text; + $where = '(' . implode( ') OR (', $wheres2 ) . ')'; + break; + + case 'all': + case 'any': + default: + $words = explode( ' ', $text ); + $wheres = array(); + foreach ($words as $word) + { + $word = $db->Quote( '%'.$db->getEscaped( $word, true ).'%', false ); + $wheres2 = array(); + $wheres2[] = 'a.name LIKE '.$word; + $wheres2[] = 'a.link LIKE '.$word; + $wheres[] = implode( ' OR ', $wheres2 ); + } + $where = '(' . implode( ($phrase == 'all' ? ') AND (' : ') OR ('), $wheres ) . ')'; + break; + } + + switch ( $ordering ) { + case 'alpha': + $order = 'a.name ASC'; + break; + + case 'category': + $order = 'b.title ASC, a.name ASC'; + break; + + case 'oldest': + case 'popular': + case 'newest': + default: + $order = 'a.name ASC'; + } + + $searchNewsfeeds = JText::_( 'Newsfeeds' ); + + $query = 'SELECT a.name AS title, "" AS created, a.link AS text,' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug, ' + . ' CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(\':\', b.id, b.alias) ELSE b.id END as catslug, ' + . ' CONCAT_WS( " / ", '. $db->Quote($searchNewsfeeds) .', b.title )AS section,' + . ' "1" AS browsernav' + . ' FROM #__newsfeeds AS a' + . ' INNER JOIN #__categories AS b ON b.id = a.catid' + . ' WHERE ( '. $where .' )' + . ' AND a.published = 1' + . ' AND b.published = 1' + . ' AND b.access <= '. (int) $user->get( 'aid' ) + . ' ORDER BY '. $order + ; + $db->setQuery( $query, 0, $limit ); + $rows = $db->loadObjectList(); + + foreach($rows as $key => $row) { + $rows[$key]->href = 'index.php?option=com_newsfeeds&view=newsfeed&catid='.$row->catslug.'&id='.$row->slug; + } + + return $rows; +} diff --git a/plugins/search/newsfeeds.xml b/plugins/search/newsfeeds.xml new file mode 100644 --- /dev/null +++ b/plugins/search/newsfeeds.xml @@ -0,0 +1,18 @@ + + + Search - Newsfeeds + Joomla! Project + November 2005 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Allows Searching of Newsfeeds + + newsfeeds.php + + + + + \ No newline at end of file diff --git a/plugins/search/sections.php b/plugins/search/sections.php new file mode 100644 --- /dev/null +++ b/plugins/search/sections.php @@ -0,0 +1,112 @@ +registerEvent( 'onSearch', 'plgSearchSections' ); +$mainframe->registerEvent( 'onSearchAreas', 'plgSearchSectionAreas' ); + +JPlugin::loadLanguage( 'plg_search_sections' ); + +/** + * @return array An array of search areas + */ +function &plgSearchSectionAreas() { + static $areas = array( + 'sections' => 'Sections' + ); + return $areas; +} + +/** +* Sections Search method +* +* The sql must return the following fields that are used in a common display +* routine: href, title, section, created, text, browsernav +* @param string Target search string +* @param string mathcing option, exact|any|all +* @param string ordering option, newest|oldest|popular|alpha|category + * @param mixed An array if restricted to areas, null if search all +*/ +function plgSearchSections( $text, $phrase='', $ordering='', $areas=null ) +{ + $db =& JFactory::getDBO(); + $user =& JFactory::getUser(); + + $searchText = $text; + + require_once(JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php'); + + if (is_array( $areas )) { + if (!array_intersect( $areas, array_keys( plgSearchSectionAreas() ) )) { + return array(); + } + } + + // load plugin params info + $plugin =& JPluginHelper::getPlugin('search', 'sections'); + $pluginParams = new JParameter( $plugin->params ); + + $limit = $pluginParams->def( 'search_limit', 50 ); + + $text = trim( $text ); + if ($text == '') { + return array(); + } + + switch ( $ordering ) { + case 'alpha': + $order = 'a.name ASC'; + break; + + case 'category': + case 'popular': + case 'newest': + case 'oldest': + default: + $order = 'a.name DESC'; + } + + $text = $db->Quote( '%'.$db->getEscaped( $text, true ).'%', false ); + $query = 'SELECT a.title AS title, a.description AS text, a.name, ' + . ' "" AS created,' + . ' "2" AS browsernav,' + . ' a.id AS secid' + . ' FROM #__sections AS a' + . ' WHERE ( a.name LIKE '.$text + . ' OR a.title LIKE '.$text + . ' OR a.description LIKE '.$text.' )' + . ' AND a.published = 1' + . ' AND a.access <= '.(int) $user->get( 'aid' ) + . ' GROUP BY a.id' + . ' ORDER BY '. $order + ; + $db->setQuery( $query, 0, $limit ); + $rows = $db->loadObjectList(); + + $count = count( $rows ); + for ( $i = 0; $i < $count; $i++ ) + { + $rows[$i]->href = ContentHelperRoute::getSectionRoute($rows[$i]->secid); + $rows[$i]->section = JText::_( 'Section' ); + } + + $return = array(); + foreach($rows AS $key => $section) { + if(searchHelper::checkNoHTML($section, $searchText, array('name', 'title', 'text'))) { + $return[] = $section; + } + } + return $return; +} diff --git a/plugins/search/sections.xml b/plugins/search/sections.xml new file mode 100644 --- /dev/null +++ b/plugins/search/sections.xml @@ -0,0 +1,18 @@ + + + Search - Sections + Joomla! Project + November 2005 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Allows Searching of Content Section information + + sections.php + + + + + \ No newline at end of file diff --git a/plugins/search/weblinks.php b/plugins/search/weblinks.php new file mode 100644 --- /dev/null +++ b/plugins/search/weblinks.php @@ -0,0 +1,150 @@ +registerEvent( 'onSearch', 'plgSearchWeblinks' ); +$mainframe->registerEvent( 'onSearchAreas', 'plgSearchWeblinksAreas' ); + +JPlugin::loadLanguage( 'plg_search_weblinks' ); + +/** + * @return array An array of search areas + */ +function &plgSearchWeblinksAreas() { + static $areas = array( + 'weblinks' => 'Weblinks' + ); + return $areas; +} + +/** +* Weblink Search method +* +* The sql must return the following fields that are used in a common display +* routine: href, title, section, created, text, browsernav +* @param string Target search string +* @param string mathcing option, exact|any|all +* @param string ordering option, newest|oldest|popular|alpha|category + * @param mixed An array if the search it to be restricted to areas, null if search all + */ +function plgSearchWeblinks( $text, $phrase='', $ordering='', $areas=null ) +{ + $db =& JFactory::getDBO(); + $user =& JFactory::getUser(); + + $searchText = $text; + + require_once(JPATH_SITE.DS.'components'.DS.'com_weblinks'.DS.'helpers'.DS.'route.php'); + + if (is_array( $areas )) { + if (!array_intersect( $areas, array_keys( plgSearchWeblinksAreas() ) )) { + return array(); + } + } + + // load plugin params info + $plugin =& JPluginHelper::getPlugin('search', 'weblinks'); + $pluginParams = new JParameter( $plugin->params ); + + $limit = $pluginParams->def( 'search_limit', 50 ); + + $text = trim( $text ); + if ($text == '') { + return array(); + } + $section = JText::_( 'Web Links' ); + + $wheres = array(); + switch ($phrase) + { + case 'exact': + $text = $db->Quote( '%'.$db->getEscaped( $text, true ).'%', false ); + $wheres2 = array(); + $wheres2[] = 'a.url LIKE '.$text; + $wheres2[] = 'a.description LIKE '.$text; + $wheres2[] = 'a.title LIKE '.$text; + $where = '(' . implode( ') OR (', $wheres2 ) . ')'; + break; + + case 'all': + case 'any': + default: + $words = explode( ' ', $text ); + $wheres = array(); + foreach ($words as $word) + { + $word = $db->Quote( '%'.$db->getEscaped( $word, true ).'%', false ); + $wheres2 = array(); + $wheres2[] = 'a.url LIKE '.$word; + $wheres2[] = 'a.description LIKE '.$word; + $wheres2[] = 'a.title LIKE '.$word; + $wheres[] = implode( ' OR ', $wheres2 ); + } + $where = '(' . implode( ($phrase == 'all' ? ') AND (' : ') OR ('), $wheres ) . ')'; + break; + } + + switch ( $ordering ) + { + case 'oldest': + $order = 'a.date ASC'; + break; + + case 'popular': + $order = 'a.hits DESC'; + break; + + case 'alpha': + $order = 'a.title ASC'; + break; + + case 'category': + $order = 'b.title ASC, a.title ASC'; + break; + + case 'newest': + default: + $order = 'a.date DESC'; + } + + $query = 'SELECT a.title AS title, a.description AS text, a.date AS created, a.url, ' + . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug, ' + . ' CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(\':\', b.id, b.alias) ELSE b.id END as catslug, ' + . ' CONCAT_WS( " / ", '.$db->Quote($section).', b.title ) AS section,' + . ' "1" AS browsernav' + . ' FROM #__weblinks AS a' + . ' INNER JOIN #__categories AS b ON b.id = a.catid' + . ' WHERE ('. $where .')' + . ' AND a.published = 1' + . ' AND b.published = 1' + . ' AND b.access <= '.(int) $user->get( 'aid' ) + . ' ORDER BY '. $order + ; + $db->setQuery( $query, 0, $limit ); + $rows = $db->loadObjectList(); + + foreach($rows as $key => $row) { + $rows[$key]->href = WeblinksHelperRoute::getWeblinkRoute($row->slug, $row->catslug); + } + + $return = array(); + foreach($rows AS $key => $weblink) { + if(searchHelper::checkNoHTML($weblink, $searchText, array('url', 'text', 'title'))) { + $return[] = $weblink; + } + } + + return $return; +} diff --git a/plugins/search/weblinks.xml b/plugins/search/weblinks.xml new file mode 100644 --- /dev/null +++ b/plugins/search/weblinks.xml @@ -0,0 +1,18 @@ + + + Search - Weblinks + Joomla! Project + November 2005 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Allows Searching of Weblinks Component + + weblinks.php + + + + + \ No newline at end of file diff --git a/plugins/system/backlink.php b/plugins/system/backlink.php new file mode 100644 --- /dev/null +++ b/plugins/system/backlink.php @@ -0,0 +1,529 @@ +_db = JFactory::getDBO(); + parent :: __construct($subject, $config); + } + + function onAfterInitialise() + { + global $mainframe; + if ($mainframe->isAdmin()) { + return; // Dont run in admin + } + + $sef = $this->params->get('sef', 1); + $url = $this->params->get('url', 1); + + $legacysef = $this->params->get('legacysef', 1); + if (!$sef && !$url && !$legacysef) + return; // None of the options enabled, bail! + + // Grab the system as early as possible, we're going to terminate it potentially + // Case 1: Query string match (shouldn't need this but its here anyway) + if ($url && isset ($_SERVER['QUERY_STRING']) && strlen($_SERVER['QUERY_STRING']) && strpos($_SERVER['QUERY_STRING'], '&')) { + $query_string = $_SERVER['QUERY_STRING']; + $this->_lookup($query_string); + } + + // Case 2: SEF or similar match + if ($sef && isset ($_SERVER['SCRIPT_NAME']) && isset ($_SERVER['REQUEST_URI'])) { + $part = str_replace('index.php', '', $_SERVER['SCRIPT_NAME']); + if($part != '/') { + $search = str_replace($part, '', $_SERVER['REQUEST_URI']); + } else { + $search = ltrim($_SERVER['REQUEST_URI'],'/'); + } + $this->_lookup($search); + } + // Case 3: Old school core sef; used to backlink + // Enable only if: + // 1: SEF is enabled + // 2: Legacy SEF Plugin Param is set + // 3: And there is no backlink + if ($mainframe->getCfg('sef') + && $legacysef + && !strstr($_SERVER['REQUEST_URI'],'nobacklink') + && !strlen($_SERVER['QUERY_STRING'])) { + $this->_legacysef(); + } + + } + + function _lookup($searchstring) + { + // return blank strings and just index.php on its own... + if (!strlen($searchstring) || $searchstring == trim('index.php',' ?')) { + return; + } + + $sef = $this->params->get('sef', 1); + $url = $this->params->get('url', 1); + + if (!$sef && !$url) { + return; // Neither option enabled, bail! + } + + $query = 'SELECT * FROM #__migration_backlinks WHERE '; + $where = Array (); + $search = $this->_db->Quote( $this->_db->getEscaped( $searchstring, true ).'%', false ); + + if ($url) { + $where[] = 'url LIKE ' . $search; + } + if ($sef) { + $where[] = 'sefurl LIKE ' . $search; + } + + $query .= implode(' OR ', $where); + $this->_db->setQuery($query); + $results = $this->_db->loadAssocList(); + + if (count($results)) { + // Get the first one... + $this->_redirect($results[0]['itemid'], $results[0]['name'], $results[0]['newurl']); + } + } + + function _redirect($Itemid, $name, $url = null) + { + global $mainframe; + if (!strlen($url)) + { + $menu = & JSite :: getMenu(); + $item = $menu->getItem($Itemid); + //$url = $item->link; + + switch ($item->type) + { + case 'url' : + if ((strpos($item->link, 'index.php?') !== false) && (strpos($item->link, 'Itemid=') === false)) { + $url = $item->link . '&Itemid=' . $item->id; + } else { + $url = $item->link; + } + break; + + default : + $url = 'index.php?Itemid=' . $item->id; + //$url = $item->link . '&Itemid='.$item->id; + break; + } + $url = JRoute :: _($url); + //$url = JURI :: base() . $url; // was $surl with third option of below being url and second being surl + $name = $item->name; + } + // Check we're not redirecting to ourselves + if(!stristr($url,$_SERVER['REQUEST_URI']) && !stristr($url,$_SERVER['SCRIPT_NAME'].'/'.$_SERVER['QUERY_STRING'])) { + return; + } + + $name = $name ? $name : "Unknown"; + + header('Location: ' . str_replace('&','&',$url), true, '301'); // redirect and kill of and & + jexit(JText :: sprintf('"%s" has moved to %s. Click the link if your browser does not redirect you automatically.', $name, $url, $url)); + } + + function _legacysef() + { + $mosConfig_absolute_path = JPATH_SITE; + $mosConfig_live_site = JURI :: base(); + $url_array = explode('/', $_SERVER['REQUEST_URI']); + + if (in_array('content', $url_array)) + { + /** + * Content + * http://www.domain.com/$option/$task/$sectionid/$id/$Itemid/$limit/$limitstart + */ + + $uri = explode('content/', $_SERVER['REQUEST_URI']); + $option = 'com_content'; + $_GET['option'] = $option; + $_REQUEST['option'] = $option; + $pos = array_search('content', $url_array); + + // language hook for content + $lang = ''; + foreach ($url_array as $key => $value) + { + if (!strcasecmp(substr($value, 0, 5), 'lang,')) + { + $temp = explode(',', $value); + if (isset ($temp[0]) && $temp[0] != '' && isset ($temp[1]) && $temp[1] != '') + { + $_GET['lang'] = $temp[1]; + $_REQUEST['lang'] = $temp[1]; + $lang = $temp[1]; + } + unset ($url_array[$key]); + } + } + + if (isset ($url_array[$pos +8]) && $url_array[$pos +8] != '' && in_array('category', $url_array) && (strpos($url_array[$pos +5], 'order,') !== false) && (strpos($url_array[$pos +6], 'filter,') !== false)) + { + // $option/$task/$sectionid/$id/$Itemid/$order/$filter/$limit/$limitstart + $task = $url_array[$pos +1]; + $sectionid = $url_array[$pos +2]; + $id = $url_array[$pos +3]; + $Itemid = $url_array[$pos +4]; + $order = str_replace('order,', '', $url_array[$pos +5]); + $filter = str_replace('filter,', '', $url_array[$pos +6]); + $limit = $url_array[$pos +7]; + $limitstart = $url_array[$pos +8]; + + // pass data onto global variables + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + $_GET['sectionid'] = $sectionid; + $_REQUEST['sectionid'] = $sectionid; + $_GET['id'] = $id; + $_REQUEST['id'] = $id; + $_GET['Itemid'] = $Itemid; + $_REQUEST['Itemid'] = $Itemid; + $_GET['order'] = $order; + $_REQUEST['order'] = $order; + $_GET['filter'] = $filter; + $_REQUEST['filter'] = $filter; + $_GET['limit'] = $limit; + $_REQUEST['limit'] = $limit; + $_GET['limitstart'] = $limitstart; + $_REQUEST['limitstart'] = $limitstart; + + $QUERY_STRING = "option=com_content&task=$task§ionid=$sectionid&id=$id&Itemid=$Itemid&order=$order&filter=$filter&limit=$limit&limitstart=$limitstart"; + } + else if (isset ($url_array[$pos +7]) && $url_array[$pos +7] != '' && $url_array[$pos +5] > 1000 && (in_array('archivecategory', $url_array) || in_array('archivesection', $url_array))) + { + // $option/$task/$id/$limit/$limitstart/year/month/module + $task = $url_array[$pos +1]; + $id = $url_array[$pos +2]; + $limit = $url_array[$pos +3]; + $limitstart = $url_array[$pos +4]; + $year = $url_array[$pos +5]; + $month = $url_array[$pos +6]; + $module = $url_array[$pos +7]; + + // pass data onto global variables + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + $_GET['id'] = $id; + $_REQUEST['id'] = $id; + $_GET['limit'] = $limit; + $_REQUEST['limit'] = $limit; + $_GET['limitstart'] = $limitstart; + $_REQUEST['limitstart'] = $limitstart; + $_GET['year'] = $year; + $_REQUEST['year'] = $year; + $_GET['month'] = $month; + $_REQUEST['month'] = $month; + $_GET['module'] = $module; + $_REQUEST['module'] = $module; + + $QUERY_STRING = "option=com_content&task=$task&id=$id&limit=$limit&limitstart=$limitstart&year=$year&month=$month&module=$module"; + } + else if (isset ($url_array[$pos +7]) && $url_array[$pos +7] != '' && $url_array[$pos +6] > 1000 && (in_array('archivecategory', $url_array) || in_array('archivesection', $url_array))) + { + // $option/$task/$id/$Itemid/$limit/$limitstart/year/month + $task = $url_array[$pos +1]; + $id = $url_array[$pos +2]; + $Itemid = $url_array[$pos +3]; + $limit = $url_array[$pos +4]; + $limitstart = $url_array[$pos +5]; + $year = $url_array[$pos +6]; + $month = $url_array[$pos +7]; + + // pass data onto global variables + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + $_GET['id'] = $id; + $_REQUEST['id'] = $id; + $_GET['Itemid'] = $Itemid; + $_REQUEST['Itemid'] = $Itemid; + $_GET['limit'] = $limit; + $_REQUEST['limit'] = $limit; + $_GET['limitstart'] = $limitstart; + $_REQUEST['limitstart'] = $limitstart; + $_GET['year'] = $year; + $_REQUEST['year'] = $year; + $_GET['month'] = $month; + $_REQUEST['month'] = $month; + + $QUERY_STRING = "option=com_content&task=$task&id=$id&Itemid=$Itemid&limit=$limit&limitstart=$limitstart&year=$year&month=$month"; + } + else if (isset ($url_array[$pos +7]) && $url_array[$pos +7] != '' && in_array('category', $url_array) && (strpos($url_array[$pos +5], 'order,') !== false)) + { + // $option/$task/$sectionid/$id/$Itemid/$order/$limit/$limitstart + $task = $url_array[$pos +1]; + $sectionid = $url_array[$pos +2]; + $id = $url_array[$pos +3]; + $Itemid = $url_array[$pos +4]; + $order = str_replace('order,', '', $url_array[$pos +5]); + $limit = $url_array[$pos +6]; + $limitstart = $url_array[$pos +7]; + + // pass data onto global variables + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + $_GET['sectionid'] = $sectionid; + $_REQUEST['sectionid'] = $sectionid; + $_GET['id'] = $id; + $_REQUEST['id'] = $id; + $_GET['Itemid'] = $Itemid; + $_REQUEST['Itemid'] = $Itemid; + $_GET['order'] = $order; + $_REQUEST['order'] = $order; + $_GET['limit'] = $limit; + $_REQUEST['limit'] = $limit; + $_GET['limitstart'] = $limitstart; + $_REQUEST['limitstart'] = $limitstart; + + $QUERY_STRING = "option=com_content&task=$task§ionid=$sectionid&id=$id&Itemid=$Itemid&order=$order&limit=$limit&limitstart=$limitstart"; + } + else if (isset ($url_array[$pos +6]) && $url_array[$pos +6] != '') + { + // $option/$task/$sectionid/$id/$Itemid/$limit/$limitstart + $task = $url_array[$pos +1]; + $sectionid = $url_array[$pos +2]; + $id = $url_array[$pos +3]; + $Itemid = $url_array[$pos +4]; + $limit = $url_array[$pos +5]; + $limitstart = $url_array[$pos +6]; + + // pass data onto global variables + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + $_GET['sectionid'] = $sectionid; + $_REQUEST['sectionid'] = $sectionid; + $_GET['id'] = $id; + $_REQUEST['id'] = $id; + $_GET['Itemid'] = $Itemid; + $_REQUEST['Itemid'] = $Itemid; + $_GET['limit'] = $limit; + $_REQUEST['limit'] = $limit; + $_GET['limitstart'] = $limitstart; + $_REQUEST['limitstart'] = $limitstart; + + $QUERY_STRING = "option=com_content&task=$task§ionid=$sectionid&id=$id&Itemid=$Itemid&limit=$limit&limitstart=$limitstart"; + } + else if (isset ($url_array[$pos +5]) && $url_array[$pos +5] != '') + { + // $option/$task/$id/$Itemid/$limit/$limitstart + $task = $url_array[$pos +1]; + $id = $url_array[$pos +2]; + $Itemid = $url_array[$pos +3]; + $limit = $url_array[$pos +4]; + $limitstart = $url_array[$pos +5]; + + // pass data onto global variables + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + $_GET['id'] = $id; + $_REQUEST['id'] = $id; + $_GET['Itemid'] = $Itemid; + $_REQUEST['Itemid'] = $Itemid; + $_GET['limit'] = $limit; + $_REQUEST['limit'] = $limit; + $_GET['limitstart'] = $limitstart; + $_REQUEST['limitstart'] = $limitstart; + + $QUERY_STRING = "option=com_content&task=$task&id=$id&Itemid=$Itemid&limit=$limit&limitstart=$limitstart"; + } + else if (isset ($url_array[$pos +4]) && $url_array[$pos +4] != '' && (in_array('archivecategory', $url_array) || in_array('archivesection', $url_array))) + { + // $option/$task/$year/$month/$module + $task = $url_array[$pos +1]; + $year = $url_array[$pos +2]; + $month = $url_array[$pos +3]; + $module = $url_array[$pos +4]; + + // pass data onto global variables + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + $_GET['year'] = $year; + $_REQUEST['year'] = $year; + $_GET['month'] = $month; + $_REQUEST['month'] = $month; + $_GET['module'] = $module; + $_REQUEST['module'] = $module; + + $QUERY_STRING = "option=com_content&task=$task&year=$year&month=$month&module=$module"; + } + else if (!(isset ($url_array[$pos +5]) && $url_array[$pos +5] != '') && isset ($url_array[$pos +4]) && $url_array[$pos +4] != '') + { + // $option/$task/$sectionid/$id/$Itemid + $task = $url_array[$pos +1]; + $sectionid = $url_array[$pos +2]; + $id = $url_array[$pos +3]; + $Itemid = $url_array[$pos +4]; + + // pass data onto global variables + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + $_GET['sectionid'] = $sectionid; + $_REQUEST['sectionid'] = $sectionid; + $_GET['id'] = $id; + $_REQUEST['id'] = $id; + $_GET['Itemid'] = $Itemid; + $_REQUEST['Itemid'] = $Itemid; + + $QUERY_STRING = "option=com_content&task=$task§ionid=$sectionid&id=$id&Itemid=$Itemid"; + } + else if (!(isset ($url_array[$pos +4]) && $url_array[$pos +4] != '') && (isset ($url_array[$pos +3]) && $url_array[$pos +3] != '')) + { + // $option/$task/$id/$Itemid + $task = $url_array[$pos +1]; + $id = $url_array[$pos +2]; + $Itemid = $url_array[$pos +3]; + + // pass data onto global variables + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + $_GET['id'] = $id; + $_REQUEST['id'] = $id; + $_GET['Itemid'] = $Itemid; + $_REQUEST['Itemid'] = $Itemid; + + $QUERY_STRING = "option=com_content&task=$task&id=$id&Itemid=$Itemid"; + } + else if (!(isset ($url_array[$pos +3]) && $url_array[$pos +3] != '') && (isset ($url_array[$pos +2]) && $url_array[$pos +2] != '')) + { + // $option/$task/$id + $task = $url_array[$pos +1]; + $id = $url_array[$pos +2]; + + // pass data onto global variables + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + $_GET['id'] = $id; + $_REQUEST['id'] = $id; + + $QUERY_STRING = "option=com_content&task=$task&id=$id"; + } + else if (!(isset ($url_array[$pos +2]) && $url_array[$pos +2] != '') && (isset ($url_array[$pos +1]) && $url_array[$pos +1] != '')) + { + // $option/$task + $task = $url_array[$pos +1]; + + $_GET['task'] = $task; + $_REQUEST['task'] = $task; + + $QUERY_STRING = 'option=com_content&task=' . $task; + } + + if ($lang != '') { + $QUERY_STRING .= '&lang=' . $lang; + } + + $_SERVER['QUERY_STRING'] = $QUERY_STRING; + $REQUEST_URI = $uri[0] . 'index.php?' . $QUERY_STRING; + $_SERVER['REQUEST_URI'] = $REQUEST_URI; + + } + else if (in_array('component', $url_array)) + { + $name = 'component'; + /* + Components + http://www.domain.com/component/$name,$value + */ + $uri = explode('component/', $_SERVER['REQUEST_URI']); + $uri_array = explode('/', $uri[1]); + $QUERY_STRING = ''; + + // needed for check if component exists + $path = $mosConfig_absolute_path . '/components'; + $dirlist = array (); + if (is_dir($path)) + { + $base = opendir($path); + while (false !== ($dir = readdir($base))) + { + if ($dir !== '.' && $dir !== '..' && is_dir($path . '/' . $dir) && strtolower($dir) !== 'cvs' && strtolower($dir) !== '.svn') { + $dirlist[] = $dir; + } + } + closedir($base); + } + + foreach ($uri_array as $value) + { + $temp = explode(',', $value); + if (isset ($temp[0]) && $temp[0] != '' && isset ($temp[1]) && $temp[1] != '') + { + $_GET[$temp[0]] = $temp[1]; + $_REQUEST[$temp[0]] = $temp[1]; + + // check to ensure component actually exists + if ($temp[0] == 'option') + { + $check = ''; + if (count($dirlist)) { + foreach ($dirlist as $dir) { + if ($temp[1] == $dir) { + $check = 1; + break; + } + } + } + // redirect to 404 page if no component found to match url + if (!$check) + { + header('HTTP/1.0 404 Not Found'); + require_once ($mosConfig_absolute_path . '/templates/404.php'); + exit (404); + } + } + + if ($QUERY_STRING == '') { + $QUERY_STRING .= "$temp[0]=$temp[1]"; + } else { + $QUERY_STRING .= "&$temp[0]=$temp[1]"; + } + } + } + + $_SERVER['QUERY_STRING'] = $QUERY_STRING; + $REQUEST_URI = $uri[0] . 'index.php?' . $QUERY_STRING; + $_SERVER['REQUEST_URI'] = $REQUEST_URI; + + } + // let this go through and the rest of the system should handle it properly + } + +} \ No newline at end of file diff --git a/plugins/system/backlink.xml b/plugins/system/backlink.xml new file mode 100644 --- /dev/null +++ b/plugins/system/backlink.xml @@ -0,0 +1,29 @@ + + + System - Backlinks + Joomla! Project + September 2007 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Provides backlink support + + backlink.php + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/system/cache.php b/plugins/system/cache.php new file mode 100644 --- /dev/null +++ b/plugins/system/cache.php @@ -0,0 +1,115 @@ + JPATH_BASE.DS.'cache', + 'defaultgroup' => 'page', + 'lifetime' => $this->params->get('cachetime', 15) * 60, + 'browsercache' => $this->params->get('browsercache', false), + 'caching' => false, + 'language' => $config->getValue('config.language', 'en-GB') + ); + + jimport('joomla.cache.cache'); + $this->_cache =& JCache::getInstance( 'page', $options ); + + if (!$user->get('aid') && $_SERVER['REQUEST_METHOD'] == 'GET') { + $this->_cache->setCaching(true); + } + } + + /** + * Converting the site URL to fit to the HTTP request + * + */ + function onAfterInitialise() + { + global $mainframe, $_PROFILER; + + if($mainframe->isAdmin() || JDEBUG) { + return; + } + + + $data = $this->_cache->get(); + + if($data !== false) + { + // the following code searches for a token in the cached page and replaces it with the + // proper token. + $user = &JFactory::getUser(); + $token = JUtility::getToken(); + $search = '##'; + $replacement = ''; + $data = preg_replace( $search, $replacement, $data ); + + JResponse::setBody($data); + + echo JResponse::toString($mainframe->getCfg('gzip')); + + if(JDEBUG) + { + $_PROFILER->mark('afterCache'); + echo implode( '', $_PROFILER->getBuffer()); + } + + $mainframe->close(); + } + } + + function onAfterRender() + { + global $mainframe; + + if($mainframe->isAdmin() || JDEBUG) { + return; + } + + $this->_cache->store(); + } +} diff --git a/plugins/system/cache.xml b/plugins/system/cache.xml new file mode 100644 --- /dev/null +++ b/plugins/system/cache.xml @@ -0,0 +1,22 @@ + + + System - Cache + Joomla! Project + February 2007 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Provides page caching + + cache.php + + + + + + + + + \ No newline at end of file diff --git a/plugins/system/debug.php b/plugins/system/debug.php new file mode 100644 --- /dev/null +++ b/plugins/system/debug.php @@ -0,0 +1,207 @@ +loadLanguage( ); + } + + /** + * Converting the site URL to fit to the HTTP request + * + */ + function onAfterRender() + { + global $_PROFILER, $mainframe, $database; + + // Do not render if debugging is not enabled + if(!JDEBUG) { return; } + + $document =& JFactory::getDocument(); + $doctype = $document->getType(); + + // Only render for HTML output + if ( $doctype !== 'html' ) { return; } + + $profiler =& $_PROFILER; + + ob_start(); + echo '
        '; + if ($this->params->get('profile', 1)) { + echo '

        '.JText::_( 'Profile Information' ).'

        '; + foreach ( $profiler->getBuffer() as $mark ) { + echo '
        '.$mark.'
        '; + } + } + + if ($this->params->get('memory', 1)) { + echo '

        '.JText::_( 'Memory Usage' ).'

        '; + echo $profiler->getMemory(); + } + + if ($this->params->get('queries', 1)) + { + jimport('geshi.geshi'); + + $geshi = new GeSHi( '', 'sql' ); + $geshi->set_header_type(GESHI_HEADER_DIV); + //$geshi->enable_line_numbers( GESHI_FANCY_LINE_NONE ); + + $newlineKeywords = '/' + .'(FROM|LEFT|INNER|OUTER|WHERE|SET|VALUES|ORDER|GROUP|HAVING|LIMIT|ON|AND)' + .'<\\/span>/i' + ; + + $db =& JFactory::getDBO(); + + echo '

        '.JText::sprintf( 'Queries logged', $db->getTicker() ).'

        '; + + if ($log = $db->getLog()) + { + echo '
          '; + foreach ($log as $k=>$sql) + { + $geshi->set_source($sql); + $text = $geshi->parse_code(); + $text = preg_replace($newlineKeywords, '
            \\0', $text); + echo '
        1. '.$text.'
        2. '; + } + echo '
        '; + } + + if(isset($database)) + { + echo '

        '.JText::sprintf( 'Legacy Queries logged', $database->getTicker() ).'

        '; + echo '
          '; + + foreach ($database->getLog() as $k=>$sql) + { + $geshi->set_source($sql); + $text = $geshi->parse_code(); + $text = preg_replace($newlineKeywords, '
            \\0', $text); + echo '
        1. '.$text.'
        2. '; + } + + echo '
        '; + } + } + + $lang = &JFactory::getLanguage(); + if ($this->params->get('language_files', 1)) + { + echo '

        '.JText::_( 'Language Files Loaded' ).'

        '; + echo '
          '; + $extensions = $lang->getPaths(); + foreach ( $extensions as $extension => $files) + { + foreach ( $files as $file => $status ) + { + echo "
        • $file $status
        • "; + } + } + echo '
        '; + } + + $langStrings = $this->params->get('language_strings', -1); + if ($langStrings < 0 OR $langStrings == 1) { + echo '

        '.JText::_( 'Untranslated Strings Diagnostic' ).'

        '; + echo '
        ';
        +			$orphans = $lang->getOrphans();
        +			if (count( $orphans ))
        +			{
        +				ksort( $orphans, SORT_STRING );
        +				foreach ($orphans as $key => $occurance) {
        +					foreach ( $occurance as $i => $info) {
        +						$class	= @$info['class'];
        +						$func	= @$info['function'];
        +						$file	= @$info['file'];
        +						$line	= @$info['line'];
        +						echo strtoupper( $key )."\t$class::$func()\t[$file:$line]\n";
        +					}
        +				}
        +			}
        +			else {
        +				echo JText::_( 'None' );
        +			}
        +			echo '
        '; + } + if ($langStrings < 0 OR $langStrings == 2) { + echo '

        '.JText::_( 'Untranslated Strings Designer' ).'

        '; + echo '
        ';
        +			$orphans = $lang->getOrphans();
        +			if (count( $orphans ))
        +			{
        +				ksort( $orphans, SORT_STRING );
        +				$guesses = array();
        +				foreach ($orphans as $key => $occurance) {
        +					if (is_array( $occurance ) AND isset( $occurance[0] )) {
        +						$info = &$occurance[0];
        +						$file = @$info['file'];
        +						if (!isset( $guesses[$file] )) {
        +							$guesses[$file] = array();
        +						}
        +
        +						$guess = str_replace( '_', ' ', $info['string'] );
        +						if ($strip = $this->params->get('language_prefix')) {
        +							$guess = trim( preg_replace( chr(1).'^'.$strip.chr(1), '', $guess ) );
        +						}
        +						$guesses[$file][] = trim( strtoupper( $key ) ).'='.$guess;
        +					}
        +				}
        +				foreach ($guesses as $file => $keys) {
        +					echo "\n\n# ".($file ? $file : JText::_( 'Unknown file' ))."\n\n";
        +					echo implode( "\n", $keys );
        +				}
        +			}
        +			else {
        +				echo JText::_( 'None' );
        +			}
        +			echo '
        '; + } + echo '
        '; + + $debug = ob_get_clean(); + + $body = JResponse::getBody(); + $body = str_replace('', $debug.'', $body); + JResponse::setBody($body); + } +} \ No newline at end of file diff --git a/plugins/system/debug.xml b/plugins/system/debug.xml new file mode 100644 --- /dev/null +++ b/plugins/system/debug.xml @@ -0,0 +1,40 @@ + + + System - Debug + Joomla! Project + December 2006 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Provides debug information + + debug.php + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/system/index.html b/plugins/system/index.html new file mode 100644 --- /dev/null +++ b/plugins/system/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/system/legacy.php b/plugins/system/legacy.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy.php @@ -0,0 +1,403 @@ +setValue('config.legacy', 1); + + // Import library dependencies + require_once(dirname(__FILE__).DS.'legacy'.DS.'classes.php'); + require_once(dirname(__FILE__).DS.'legacy'.DS.'functions.php'); + + // Register legacy classes for autoloading + JLoader::register('mosAdminMenus' , dirname(__FILE__).DS.'legacy'.DS.'adminmenus.php'); + JLoader::register('mosCache' , dirname(__FILE__).DS.'legacy'.DS.'cache.php'); + JLoader::register('mosCategory' , dirname(__FILE__).DS.'legacy'.DS.'category.php'); + JLoader::register('mosCommonHTML' , dirname(__FILE__).DS.'legacy'.DS.'commonhtml.php'); + JLoader::register('mosComponent' , dirname(__FILE__).DS.'legacy'.DS.'component.php'); + JLoader::register('mosContent' , dirname(__FILE__).DS.'legacy'.DS.'content.php'); + JLoader::register('mosDBTable' , dirname(__FILE__).DS.'legacy'.DS.'dbtable.php'); + JLoader::register('mosHTML' , dirname(__FILE__).DS.'legacy'.DS.'html.php'); + JLoader::register('mosInstaller' , dirname(__FILE__).DS.'legacy'.DS.'installer.php'); + JLoader::register('mosMainFrame' , dirname(__FILE__).DS.'legacy'.DS.'mainframe.php'); + JLoader::register('mosMambot' , dirname(__FILE__).DS.'legacy'.DS.'mambot.php'); + JLoader::register('mosMambotHandler', dirname(__FILE__).DS.'legacy'.DS.'mambothandler.php'); + JLoader::register('mosMenu' , dirname(__FILE__).DS.'legacy'.DS.'menu.php'); + JLoader::register('mosMenuBar' , dirname(__FILE__).DS.'legacy'.DS.'menubar.php'); + JLoader::register('mosModule' , dirname(__FILE__).DS.'legacy'.DS.'module.php'); + //JLoader::register('mosPageNav' , dirname(__FILE__).DS.'legacy'.DS.'pagination.php'); + JLoader::register('mosParameters' , dirname(__FILE__).DS.'legacy'.DS.'parameters.php'); + JLoader::register('patFactory' , dirname(__FILE__).DS.'legacy'.DS.'patfactory.php'); + JLoader::register('mosProfiler' , dirname(__FILE__).DS.'legacy'.DS.'profiler.php'); + JLoader::register('mosSection' , dirname(__FILE__).DS.'legacy'.DS.'section.php'); + JLoader::register('mosSession' , dirname(__FILE__).DS.'legacy'.DS.'session.php'); + JLoader::register('mosToolbar' , dirname(__FILE__).DS.'legacy'.DS.'toolbar.php'); + JLoader::register('mosUser' , dirname(__FILE__).DS.'legacy'.DS.'user.php'); + + // Register class for the database, depends on which db type has been selected for use + $dbtype = $config->getValue('config.dbtype', 'mysql'); + JLoader::register('database' , dirname(__FILE__).DS.'legacy'.DS.$dbtype.'.php'); + + /** + * Legacy define, _ISO define not used anymore. All output is forced as utf-8. + * @deprecated As of version 1.5 + */ + define('_ISO','charset=utf-8'); + + /** + * Legacy constant, use _JEXEC instead + * @deprecated As of version 1.5 + */ + define( '_VALID_MOS', 1 ); + + /** + * Legacy constant, use _JEXEC instead + * @deprecated As of version 1.5 + */ + define( '_MOS_MAMBO_INCLUDED', 1 ); + + /** + * Legacy constant, use DATE_FORMAT_LC instead + * @deprecated As of version 1.5 + */ + DEFINE('_DATE_FORMAT_LC', JText::_('DATE_FORMAT_LC1') ); //Uses PHP's strftime Command Format + + /** + * Legacy constant, use DATE_FORMAT_LC2 instead + * @deprecated As of version 1.5 + */ + DEFINE('_DATE_FORMAT_LC2', JText::_('DATE_FORMAT_LC2')); + + /** + * Legacy constant, use JFilterInput instead + * @deprecated As of version 1.5 + */ + DEFINE( "_MOS_NOTRIM", 0x0001 ); + + /** + * Legacy constant, use JFilterInput instead + * @deprecated As of version 1.5 + */ + DEFINE( "_MOS_ALLOWHTML", 0x0002 ); + + /** + * Legacy constant, use JFilterInput instead + * @deprecated As of version 1.5 + */ + DEFINE( "_MOS_ALLOWRAW", 0x0004 ); + + /** + * Legacy global, use JVersion->getLongVersion() instead + * @name $_VERSION + * @deprecated As of version 1.5 + */ + $GLOBALS['_VERSION'] = new JVersion(); + $version = $GLOBALS['_VERSION']->getLongVersion(); + + /** + * Legacy global, use JFactory::getDBO() instead + * @name $database + * @deprecated As of version 1.5 + */ + $conf =& JFactory::getConfig(); + $GLOBALS['database'] = new database($conf->getValue('config.host'), $conf->getValue('config.user'), $conf->getValue('config.password'), $conf->getValue('config.db'), $conf->getValue('config.dbprefix')); + $GLOBALS['database']->debug($conf->getValue('config.debug')); + + /** + * Legacy global, use JFactory::getUser() [JUser object] instead + * @name $my + * @deprecated As of version 1.5 + */ + $user =& JFactory::getUser(); + + $GLOBALS['my'] = (object)$user->getProperties(); + $GLOBALS['my']->gid = $user->get('aid', 0); + + /** + * Insert configuration values into global scope (for backwards compatibility) + * @deprecated As of version 1.5 + */ + + $temp = new JConfig; + foreach (get_object_vars($temp) as $k => $v) { + $name = 'mosConfig_'.$k; + $GLOBALS[$name] = $v; + } + + $GLOBALS['mosConfig_live_site'] = substr_replace(JURI::root(), '', -1, 1); + $GLOBALS['mosConfig_absolute_path'] = JPATH_SITE; + $GLOBALS['mosConfig_cachepath'] = JPATH_BASE.DS.'cache'; + + $GLOBALS['mosConfig_offset_user'] = 0; + + $lang =& JFactory::getLanguage(); + $GLOBALS['mosConfig_lang'] = $lang->getBackwardLang(); + + $config->setValue('config.live_site', $GLOBALS['mosConfig_live_site']); + $config->setValue('config.absolute_path', $GLOBALS['mosConfig_absolute_path']); + $config->setValue('config.lang', $GLOBALS['mosConfig_lang']); + + /** + * Legacy global, use JFactory::getUser() instead + * @name $acl + * @deprecated As of version 1.5 + */ + $acl =& JFactory::getACL(); + + // Legacy ACL's for backward compat + $acl->addACL( 'administration', 'edit', 'users', 'super administrator', 'components', 'all' ); + $acl->addACL( 'administration', 'edit', 'users', 'administrator', 'components', 'all' ); + $acl->addACL( 'administration', 'edit', 'users', 'super administrator', 'user properties', 'block_user' ); + $acl->addACL( 'administration', 'manage', 'users', 'super administrator', 'components', 'com_users' ); + $acl->addACL( 'administration', 'manage', 'users', 'administrator', 'components', 'com_users' ); + $acl->addACL( 'administration', 'config', 'users', 'super administrator' ); + //$acl->addACL( 'administration', 'config', 'users', 'administrator' ); + + $acl->addACL( 'action', 'add', 'users', 'author', 'content', 'all' ); + $acl->addACL( 'action', 'add', 'users', 'editor', 'content', 'all' ); + $acl->addACL( 'action', 'add', 'users', 'publisher', 'content', 'all' ); + $acl->addACL( 'action', 'edit', 'users', 'author', 'content', 'own' ); + $acl->addACL( 'action', 'edit', 'users', 'editor', 'content', 'all' ); + $acl->addACL( 'action', 'edit', 'users', 'publisher', 'content', 'all' ); + $acl->addACL( 'action', 'publish', 'users', 'publisher', 'content', 'all' ); + + $acl->addACL( 'action', 'add', 'users', 'manager', 'content', 'all' ); + $acl->addACL( 'action', 'edit', 'users', 'manager', 'content', 'all' ); + $acl->addACL( 'action', 'publish', 'users', 'manager', 'content', 'all' ); + + $acl->addACL( 'action', 'add', 'users', 'administrator', 'content', 'all' ); + $acl->addACL( 'action', 'edit', 'users', 'administrator', 'content', 'all' ); + $acl->addACL( 'action', 'publish', 'users', 'administrator', 'content', 'all' ); + + $acl->addACL( 'action', 'add', 'users', 'super administrator', 'content', 'all' ); + $acl->addACL( 'action', 'edit', 'users', 'super administrator', 'content', 'all' ); + $acl->addACL( 'action', 'publish', 'users', 'super administrator', 'content', 'all' ); + + $acl->addACL( 'com_syndicate', 'manage', 'users', 'super administrator' ); + $acl->addACL( 'com_syndicate', 'manage', 'users', 'administrator' ); + $acl->addACL( 'com_syndicate', 'manage', 'users', 'manager' ); + + $GLOBALS['acl'] =& $acl; + + /** + * Legacy global + * @name $task + * @deprecated As of version 1.5 + */ + $GLOBALS['task'] = JRequest::getString('task'); + + /** + * Load the site language file (the old way - to be deprecated) + * @deprecated As of version 1.5 + */ + global $mosConfig_lang; + $mosConfig_lang = JFilterInput::clean($mosConfig_lang, 'cmd'); + $file = JPATH_SITE.DS.'language'.DS.$mosConfig_lang.'.php'; + if (file_exists( $file )) { + require_once( $file); + } else { + $file = JPATH_SITE.DS.'language'.DS.'english.php'; + if (file_exists( $file )) { + require_once( $file ); + } + } + + /** + * Legacy global + * use JApplicaiton->registerEvent and JApplication->triggerEvent for event handling + * use JPlugingHelper::importPlugin to load bot code + * @deprecated As of version 1.5 + */ + $GLOBALS['_MAMBOTS'] = new mosMambotHandler(); + + $mosmsg = JRequest::getVar( 'mosmsg' ); + $mainframe->enqueueMessage( $mosmsg ); + } + + /** + * Fixes the $my global if the user was restored by the remember me plugin + */ + function onAfterInitialise() + { + $user =& JFactory::getUser(); + if ($user->id) { + if ($GLOBALS['my']->id === 0) { + $GLOBALS['my'] = (object)$user->getProperties(); + $GLOBALS['my']->gid = $user->get('aid', 0); + } + } + + return true; + } + + + + function onAfterRoute() + { + global $mainframe; + if ($mainframe->isAdmin()) { + return; + } + + switch(JRequest::getCmd('option')) + { + case 'com_content' : + $this->routeContent(); + break; + case 'com_newsfeeds' : + $this->routeNewsfeeds(); + break; + case 'com_weblinks' : + $this->routeWeblinks(); + break; + case 'com_frontpage' : + JRequest::setVar('option', 'com_content'); + JRequest::setVar('view', 'frontpage'); + break; + case 'com_login' : + JRequest::setVar('option', 'com_user'); + JRequest::setVar('view', 'login'); + break; + case 'com_registration' : + JRequest::setVar('option', 'com_user'); + JRequest::setVar('view', 'register'); + break; + } + + /** + * Legacy global, use JApplication::getTemplate() instead + * @name $cur_template + * @deprecated As of version 1.5 + */ + $GLOBALS['cur_template'] = $mainframe->getTemplate(); + } + + function routeContent() + { + $viewName = JRequest::getCmd( 'view', 'article' ); + $layout = JRequest::getCmd( 'layout', 'default' ); + + // interceptors to support legacy urls + switch( JRequest::getCmd('task')) + { + //index.php?option=com_content&task=x&id=x&Itemid=x + case 'blogsection': + $viewName = 'section'; + $layout = 'blog'; + break; + case 'section': + $viewName = 'section'; + break; + case 'category': + $viewName = 'category'; + break; + case 'blogcategory': + $viewName = 'category'; + $layout = 'blog'; + break; + case 'archivesection': + case 'archivecategory': + $viewName = 'archive'; + break; + case 'frontpage' : + $viewName = 'frontpage'; + break; + case 'view': + $viewName = 'article'; + break; + } + + JRequest::setVar('layout', $layout); + JRequest::setVar('view', $viewName); + } + + function routeNewsfeeds() + { + $viewName = JRequest::getCmd( 'view', 'categories' ); + + // interceptors to support legacy urls + switch( JRequest::getCmd('task')) + { + //index.php?option=com_newsfeeds&task=x&catid=xid=x&Itemid=x + case 'view': + $viewName = 'newsfeed'; + break; + + default: + { + if(JRequest::getInt('catid') && !JRequest::getCmd('view')) { + $viewName = 'category'; + } + } + } + + JRequest::setVar('view', $viewName); + } + + function routeWeblinks() + { + $viewName = JRequest::getCmd( 'view', 'categories' ); + + // interceptors to support legacy urls + switch( JRequest::getCmd('task')) + { + //index.php?option=com_weblinks&task=x&catid=xid=x + case 'view': + $viewName = 'weblink'; + break; + + default: + { + if(($catid = JRequest::getInt('catid')) && !JRequest::getCmd('view')) { + $viewName = 'category'; + JRequest::setVar('id', $catid); + } + } + } + + JRequest::setVar('view', $viewName); + } +} diff --git a/plugins/system/legacy.xml b/plugins/system/legacy.xml new file mode 100644 --- /dev/null +++ b/plugins/system/legacy.xml @@ -0,0 +1,25 @@ + + + System - Legacy + Joomla! Project + January 2007 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Provides legacy support for older version of Joomla! + + legacy.php + legacy/classes.php + legacy/functions.php + legacy/toolbar.php + legacy/index.html + + + + + + + + diff --git a/plugins/system/legacy/adminmenus.php b/plugins/system/legacy/adminmenus.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/adminmenus.php @@ -0,0 +1,416 @@ +published ); + return $published; + } + + /** + * Legacy function, use {@link JAdminMenus::MenuLinks()} instead + * + * @deprecated As of version 1.5 + */ + function MenuLinks( &$lookup, $all=NULL, $none=NULL, $unassigned=1 ) + { + $options = JHTML::_('menu.linkoptions', $lookup, $all, $none|$unassigned); + if (empty( $lookup )) { + $lookup = array( JHTML::_('select.option', -1 ) ); + } + $pages = JHTML::_('select.genericlist', $options, 'selections[]', 'class="inputbox" size="15" multiple="multiple"', 'value', 'text', $lookup, 'selections' ); + return $pages; + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function Category( &$menu, $id, $javascript='' ) + { + $db =& JFactory::getDBO(); + + $query = 'SELECT c.id AS `value`, c.section AS `id`, CONCAT_WS( " / ", s.title, c.title) AS `text`' + . ' FROM #__sections AS s' + . ' INNER JOIN #__categories AS c ON c.section = s.id' + . ' WHERE s.scope = "content"' + . ' ORDER BY s.name, c.name' + ; + $db->setQuery( $query ); + $rows = $db->loadObjectList(); + $category = ''; + + $category .= JHTML::_('select.genericlist', $rows, 'componentid', 'class="inputbox" size="10"'. $javascript, 'value', 'text', $menu->componentid ); + $category .= ''; + + return $category; + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function Section( &$menu, $id, $all=0 ) + { + $db =& JFactory::getDBO(); + + $query = 'SELECT s.id AS `value`, s.id AS `id`, s.title AS `text`' + . ' FROM #__sections AS s' + . ' WHERE s.scope = "content"' + . ' ORDER BY s.name' + ; + $db->setQuery( $query ); + if ( $all ) { + $rows[] = JHTML::_('select.option', 0, '- '. JText::_( 'All Sections' ) .' -' ); + $rows = array_merge( $rows, $db->loadObjectList() ); + } else { + $rows = $db->loadObjectList(); + } + + $section = JHTML::_('select.genericlist', $rows, 'componentid', 'class="inputbox" size="10"', 'value', 'text', $menu->componentid ); + $section .= ''; + + return $section; + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function Component( &$menu, $id ) + { + $db =& JFactory::getDBO(); + + $query = 'SELECT c.id AS value, c.name AS text, c.link' + . ' FROM #__components AS c' + . ' WHERE c.link <> ""' + . ' ORDER BY c.name' + ; + $db->setQuery( $query ); + $rows = $db->loadObjectList( ); + + $component = JHTML::_('select.genericlist', $rows, 'componentid', 'class="inputbox" size="10"', 'value', 'text', $menu->componentid, '', 1 ); + + return $component; + } + + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function ComponentName( &$menu, $id ) + { + $db =& JFactory::getDBO(); + + $query = 'SELECT c.id AS value, c.name AS text, c.link' + . ' FROM #__components AS c' + . ' WHERE c.link <> ""' + . ' ORDER BY c.name' + ; + $db->setQuery( $query ); + $rows = $db->loadObjectList( ); + + $component = 'Component'; + foreach ( $rows as $row ) { + if ( $row->value == $menu->componentid ) { + $component = JText::_( $row->text ); + } + } + + return $component; + } + + + /** + * Legacy function, use {@link JHTML::_('list.images', )} instead + * + * @deprecated As of version 1.5 + */ + function Images( $name, &$active, $javascript=NULL, $directory=NULL ) + { + return JHTML::_('list.images', $name, $active, $javascript, $directory); + } + + /** + * Legacy function, use {@link JHTML::_('list.specificordering', )} instead + * + * @deprecated As of version 1.5 + */ + function SpecificOrdering( &$row, $id, $query, $neworder=0 ) + { + return JHTML::_('list.specificordering', $row, $id, $query, $neworder); + } + + /** + * Legacy function, use {@link JHTML::_('list.users', )} instead + * + * @deprecated As of version 1.5 + */ + function UserSelect( $name, $active, $nouser=0, $javascript=NULL, $order='name', $reg=1 ) + { + return JHTML::_('list.users', $name, $active, $nouser, $javascript, $order, $reg); + } + + /** + * Legacy function, use {@link JHTML::_('list.positions', )} instead + * + * @deprecated As of version 1.5 + */ + function Positions( $name, $active=NULL, $javascript=NULL, $none=1, $center=1, $left=1, $right=1, $id=false ) + { + return JHTML::_('list.positions', $name, $active, $javascript, $none, $center, $left, $right, $id); + } + + /** + * Legacy function, use {@link JHTML::_('list.category', )} instead + * + * @deprecated As of version 1.5 + */ + function ComponentCategory( $name, $section, $active=NULL, $javascript=NULL, $order='ordering', $size=1, $sel_cat=1 ) + { + return JHTML::_('list.category', $name, $section, $active, $javascript, $order, $size, $sel_cat); + } + + /** + * Legacy function, use {@link JHTML::_('list.section', )} instead + * + * @deprecated As of version 1.5 + */ + function SelectSection( $name, $active=NULL, $javascript=NULL, $order='ordering' ) + { + return JHTML::_('list.section', $name, $active, $javascript, $order); + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function Links2Menu( $type, $and ) + { + $db =& JFactory::getDBO(); + + $query = 'SELECT * ' + . ' FROM #__menu ' + . ' WHERE type = '.$db->Quote($type) + . ' AND published = 1' + . $and + ; + $db->setQuery( $query ); + $menus = $db->loadObjectList(); + + return $menus; + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function MenuSelect( $name='menuselect', $javascript=NULL ) + { + $db =& JFactory::getDBO(); + + $query = 'SELECT params' + . ' FROM #__modules' + . ' WHERE module = "mod_mainmenu"' + ; + $db->setQuery( $query ); + $menus = $db->loadObjectList(); + $total = count( $menus ); + $menuselect = array(); + for( $i = 0; $i < $total; $i++ ) + { + $registry = new JRegistry(); + $registry->loadINI($menus[$i]->params); + $params = $registry->toObject( ); + + $menuselect[$i]->value = $params->menutype; + $menuselect[$i]->text = $params->menutype; + } + // sort array of objects + JArrayHelper::sortObjects( $menuselect, 'text', 1 ); + + $menus = JHTML::_('select.genericlist', $menuselect, $name, 'class="inputbox" size="10" '. $javascript, 'value', 'text' ); + + return $menus; + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function ReadImages( $imagePath, $folderPath, &$folders, &$images ) + { + jimport( 'joomla.filesystem.folder' ); + $imgFiles = JFolder::files( $imagePath ); + + foreach ($imgFiles as $file) + { + $ff_ = $folderPath.DS.$file; + $ff = $folderPath.DS.$file; + $i_f = $imagePath .'/'. $file; + + if ( is_dir( $i_f ) && $file <> 'CVS' && $file <> '.svn') { + $folders[] = JHTML::_('select.option', $ff_ ); + mosAdminMenus::ReadImages( $i_f, $ff_, $folders, $images ); + } else if ( eregi( "bmp|gif|jpg|png", $file ) && is_file( $i_f ) ) { + // leading / we don't need + $imageFile = substr( $ff, 1 ); + $images[$folderPath][] = JHTML::_('select.option', $imageFile, $file ); + } + } + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function GetImageFolders( &$folders, $path ) + { + $javascript = "onchange=\"changeDynaList( 'imagefiles', folderimages, document.adminForm.folders.options[document.adminForm.folders.selectedIndex].value, 0, 0); previewImage( 'imagefiles', 'view_imagefiles', '$path/' );\""; + $getfolders = JHTML::_('select.genericlist', $folders, 'folders', 'class="inputbox" size="1" '. $javascript, 'value', 'text', '/' ); + return $getfolders; + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function GetImages( &$images, $path ) + { + if ( !isset($images['/'] ) ) { + $images['/'][] = JHTML::_('select.option', '' ); + } + + //$javascript = "onchange=\"previewImage( 'imagefiles', 'view_imagefiles', '$path/' )\" onfocus=\"previewImage( 'imagefiles', 'view_imagefiles', '$path/' )\""; + $javascript = "onchange=\"previewImage( 'imagefiles', 'view_imagefiles', '$path/' )\""; + $getimages = JHTML::_('select.genericlist', $images['/'], 'imagefiles', 'class="inputbox" size="10" multiple="multiple" '. $javascript , 'value', 'text', null ); + + return $getimages; + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function GetSavedImages( &$row, $path ) + { + $images2 = array(); + foreach( $row->images as $file ) { + $temp = explode( '|', $file ); + if( strrchr($temp[0], '/') ) { + $filename = substr( strrchr($temp[0], '/' ), 1 ); + } else { + $filename = $temp[0]; + } + $images2[] = JHTML::_('select.option', $file, $filename ); + } + //$javascript = "onchange=\"previewImage( 'imagelist', 'view_imagelist', '$path/' ); showImageProps( '$path/' ); \" onfocus=\"previewImage( 'imagelist', 'view_imagelist', '$path/' )\""; + $javascript = "onchange=\"previewImage( 'imagelist', 'view_imagelist', '$path/' ); showImageProps( '$path/' ); \""; + $imagelist = JHTML::_('select.genericlist', $images2, 'imagelist', 'class="inputbox" size="10" '. $javascript, 'value', 'text' ); + + return $imagelist; + } + + /** + * Legacy function, use {@link JHTML::_('image.site')} instead + * + * @deprecated As of version 1.5 + */ + function ImageCheck( $file, $directory='/images/M_images/', $param=NULL, $param_directory='/images/M_images/', $alt=NULL, $name='image', $type=1, $align='top' ) + { + $attribs = array('align' => $align); + return JHTML::_('image.site', $file, $directory, $param, $param_directory, $alt, $attribs, $type); + } + + /** + * Legacy function, use {@link JHTML::_('image.administrator')} instead + * + * @deprecated As of version 1.5 + */ + function ImageCheckAdmin( $file, $directory='/images/', $param=NULL, $param_directory='/images/', $alt=NULL, $name=NULL, $type=1, $align='middle' ) + { + $attribs = array('align' => $align); + return JHTML::_('image.administrator', $file, $directory, $param, $param_directory, $alt, $attribs, $type); + } + + /** + * Legacy function, use {@link MenusHelper::getMenuTypes()} instead + * + * @deprecated As of version 1.5 + */ + function menutypes() + { + JError::raiseNotice( 0, 'mosAdminMenus::menutypes method deprecated' ); + } + + /** + * Legacy function, use {@link MenusHelper::menuItem()} instead + * + * @deprecated As of version 1.5 + */ + function menuItem( $item ) + { + JError::raiseNotice( 0, 'mosAdminMenus::menuItem method deprecated' ); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/cache.php b/plugins/system/legacy/cache.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/cache.php @@ -0,0 +1,42 @@ +clean($group); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/category.php b/plugins/system/legacy/category.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/category.php @@ -0,0 +1,60 @@ +reorder( $where ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.0.3 + */ + function publish_array( $cid=null, $publish=1, $user_id=0 ) + { + $this->publish( $cid, $publish, $user_id ); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/classes.php b/plugins/system/legacy/classes.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/classes.php @@ -0,0 +1,106 @@ + $useCookies) ); + } + + function startTab( $tabText, $paneid ) { + echo $this->startPanel( $tabText, $paneid); + } + + function endTab() { + echo $this->endPanel(); + } + + function startPane( $tabText ){ + echo parent::startPane( $tabText ); + } + + function endPane(){ + echo parent::endPane(); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/commonhtml.php b/plugins/system/legacy/commonhtml.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/commonhtml.php @@ -0,0 +1,270 @@ + + + +
        + + + + + + + + + menutype; ?> + + + + + + + + + + name; ?> + + + + + + + + + published ) { + case -2: + echo ''. JText::_( 'Trashed' ) .''; + break; + case 0: + echo JText::_( 'UnPublished' ); + break; + case 1: + default: + echo ''. JText::_( 'Published' ) .''; + break; + } + ?> + + + + + + + + + + +
        + . + + + + + + + + + + + + + + + + + + +
        + + + + menutype; ?> +
        + + + type; ?> +
        + + + + + name; ?> + +
        + + + published ) { + case -2: + echo ''. JText::_( 'Trashed' ) .''; + break; + case 0: + echo JText::_( 'UnPublished' ); + break; + case 1: + default: + echo ''. JText::_( 'Published' ) .''; + break; + } + ?> +
        +
        + + + + reorder( $where ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.0.3 + */ + function publish_array( $cid=null, $publish=1, $user_id=0 ) + { + $this->publish( $cid, $publish, $user_id ); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/content.php b/plugins/system/legacy/content.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/content.php @@ -0,0 +1,60 @@ +reorder( $where ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.0.3 + */ + function publish_array( $cid=null, $publish=1, $user_id=0 ) + { + $this->publish( $cid, $publish, $user_id ); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/dbtable.php b/plugins/system/legacy/dbtable.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/dbtable.php @@ -0,0 +1,131 @@ +reorder( $where ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.0.3 + */ + function publish_array( $cid=null, $publish=1, $user_id=0 ) + { + $this->publish( $cid, $publish, $user_id ); + } + + /** + * Legacy Method, make sure you use {@link JRequest::get()} or {@link JRequest::getVar()} instead + * @deprecated As of 1.5 + */ + function filter( $ignoreList=null ) + { + $ignore = is_array( $ignoreList ); + + $filter = & JFilterInput::getInstance(); + foreach ($this->getProperties() as $k => $v) + { + if ($ignore && in_array( $k, $ignoreList ) ) { + continue; + } + $this->$k = $filter->clean( $this->$k ); + } + } + + /** + * Legacy Method, use {@link JObject::getProperties()} instead + * @deprecated As of 1.5 + */ + function getPublicProperties() + { + $properties = $this->getProperties(); + return array_keys($properties); + } + + /** + * Legacy Method, use {@link JObject::getError()} instead + * @deprecated As of 1.5 + */ + function getError($i = null, $toString = true ) + { + return $this->_error; + } + + /** + * Legacy Method, use {@link JObject::setError()} instead + * @deprecated As of 1.5 + */ + function setErrorNum( $value ) + { + $this->_errorNum = $value; + } + + /** + * Legacy Method, use {@link JObject::getError()} instead + * @deprecated As of 1.5 + */ + function getErrorNum() + { + return $this->_errorNum; + } +} \ No newline at end of file diff --git a/plugins/system/legacy/functions.php b/plugins/system/legacy/functions.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/functions.php @@ -0,0 +1,910 @@ + instead + * + * @deprecated As of version 1.5 + */ +function mosCountModules( $position='left' ) { + jimport('joomla.application.module.helper'); + return count(JModuleHelper::getModules($position)); +} + +/** + * Legacy function, use instead + * + * @deprecated As of version 1.5 + */ +function mosMainBody() { + ?> instead + * + * @deprecated As of version 1.5 + */ +function mosLoadModules( $position='left', $style=0 ) +{ + // Select the module chrome function + if (is_numeric($style)) + { + switch ( $style ) + { + case -3: + $style = 'rounded'; + break; + + case -2: + $style = 'xhtml'; + break; + + case -1: + $style = 'raw'; + break; + + case 0 : + default : + $style = 'table'; + break; + } + } + ?> instead + * + * @deprecated As of version 1.5 + */ +function mosLoadModule( $name, $style=-1 ) { + ?> instead + * + * @deprecated As of version 1.5 + */ +function mosShowHead() { + ?> instead + * + * @deprecated As of version 1.5 + */ +function mosCountAdminModules( $position='left' ) { + $document =& JFactory::getDocument(); + return count($document->getModules($position)); +} + +/** + * Legacy function, using instead + * + * @deprecated As of version 1.5 + */ +function mosMainBody_Admin() { + ?> instead + * + * @deprecated As of version 1.5 + */ + +function mosLoadAdminModules( $position='left', $style=0 ) { + + // Select the module chrome function + if (is_numeric($style)) + { + switch ( $style ) + { + case 2: + $style = 'xhtml'; + break; + + case 0 : + default : + $style = 'raw'; + break; + } + } + ?> instead + * + * @deprecated As of version 1.5 + */ +function mosLoadAdminModule( $name, $style=0 ) { + ?> instead + * + * @deprecated As of version 1.5 + */ +function mosShowHead_Admin() { + ?> $val) { + $ret[$key] = mosStripslashes( $val ); + } + } else { + $ret = $value; + } + } + return $ret; +} + +/** + * Legacy function, use {@link JArrayHelper JArrayHelper->toObject()} instead + * + * @deprecated As of version 1.5 + */ +function mosBindArrayToObject( $array, &$obj, $ignore='', $prefix=NULL, $checkSlashes=true ) +{ + if (!is_array( $array ) || !is_object( $obj )) { + return (false); + } + + foreach (get_object_vars($obj) as $k => $v) + { + if( substr( $k, 0, 1 ) != '_' ) + { + // internal attributes of an object are ignored + if (strpos( $ignore, $k) === false) + { + if ($prefix) { + $ak = $prefix . $k; + } else { + $ak = $k; + } + if (isset($array[$ak])) { + $obj->$k = ($checkSlashes && get_magic_quotes_gpc()) ? mosStripslashes( $array[$ak] ) : $array[$ak]; + } + } + } + } + + return true; +} + +/** + * Legacy function, use {@link JUtility::getHash()} instead + * + * @deprecated As of version 1.5 + */ +function mosHash( $seed ) { + return JUtility::getHash( $seed ); +} + +/** +* Legacy function + * + * @deprecated As of version 1.5 +*/ +function mosNotAuth() +{ + $user =& JFactory::getUser(); + echo JText::_('ALERTNOTAUTH'); + if ($user->get('id') < 1) { + echo "
        " . JText::_( 'You need to login.' ); + } +} + +/** + * Legacy function, use (@link JError} or {@link JApplication::redirect()} instead. + * + * @deprecated As of version 1.5 + */ +function mosErrorAlert( $text, $action='window.history.go(-1);', $mode=1 ) +{ + global $mainframe; + + $text = nl2br( $text ); + $text = addslashes( $text ); + $text = strip_tags( $text ); + + switch ( $mode ) { + case 2: + echo " \n"; + break; + + case 1: + default: + echo " \n"; + echo ''; + break; + } + + $mainframe->close(); +} + +/** + * Legacy function, use {@link JPath::clean()} instead + * + * @deprecated As of version 1.5 + */ +function mosPathName($p_path, $p_addtrailingslash = true) +{ + jimport('joomla.filesystem.path'); + $path = JPath::clean($p_path); + if ($p_addtrailingslash) { + $path = rtrim($path, DS) . DS; + } + return $path; +} + +/** + * Legacy function, use {@link JFolder::files()} or {@link JFolder::folders()} instead + * + * @deprecated As of version 1.5 + */ +function mosReadDirectory( $path, $filter='.', $recurse=false, $fullpath=false ) +{ + $arr = array(null); + + // Get the files and folders + jimport('joomla.filesystem.folder'); + $files = JFolder::files($path, $filter, $recurse, $fullpath); + $folders = JFolder::folders($path, $filter, $recurse, $fullpath); + // Merge files and folders into one array + $arr = array_merge($files, $folders); + // Sort them all + asort($arr); + return $arr; +} + +/** + * Legacy function, use {@link JFactory::getMailer()} instead + * + * @deprecated As of version 1.5 + */ +function mosCreateMail( $from='', $fromname='', $subject, $body ) { + + $mail =& JFactory::getMailer(); + + $mail->From = $from ? $from : $mail->From; + $mail->FromName = $fromname ? $fromname : $mail->FromName; + $mail->Subject = $subject; + $mail->Body = $body; + + return $mail; +} + +/** + * Legacy function, use {@link JUtility::sendMail()} instead + * + * @deprecated As of version 1.5 + */ +function mosMail($from, $fromname, $recipient, $subject, $body, $mode=0, $cc=NULL, $bcc=NULL, $attachment=NULL, $replyto=NULL, $replytoname=NULL ) { + return JUTility::sendMail($from, $fromname, $recipient, $subject, $body, $mode, $cc, $bcc, $attachment, $replyto, $replytoname ); +} + +/** + * Legacy function, use {@link JUtility::sendAdminMail()} instead + * + * @deprecated As of version 1.5 + */ +function mosSendAdminMail( $adminName, $adminEmail, $email, $type, $title, $author ) { + JUtility::sendAdminMail( $adminName, $adminEmail, $email, $type, $title, $author ); +} + +/** + * Legacy function, use {@link JUserHelper::genRandomPassword()} instead + * + * @deprecated As of version 1.5 + */ +function mosMakePassword() { + jimport('joomla.user.helper'); + return JUserHelper::genRandomPassword(); +} + +/** + * Legacy function, use {@link JApplication::redirect() JApplication->redirect()} instead + * + * @deprecated As of version 1.5 + */ +function mosRedirect( $url, $msg='' ) { + global $mainframe; + $mainframe->redirect( $url, $msg ); +} + +/** + * Legacy function, use {@link JFolder::create()} + * + * @deprecated As of version 1.5 + */ +function mosMakePath($base, $path='', $mode = NULL) { + + if ($mode===null) { + $mode = 0755; + } + + jimport('joomla.filesystem.folder'); + return JFolder::create($base.$path, $mode); +} + +/** + * Legacy function, use {@link JArrayHelper::toInteger()} instead + * + * @deprecated As of version 1.5 + */ +function mosArrayToInts( &$array, $default=null ) { + return JArrayHelper::toInteger( $array, $default ); +} + +/** + * Legacy function, use {@link JException::getTrace() JException->getTrace()} instead + * + * @deprecated As of version 1.5 + */ +function mosBackTrace( $message='' ) { + if (function_exists( 'debug_backtrace' )) { + echo '
        '; + if ($message) { + echo '

        ' . $message . '

        '; + } + foreach( debug_backtrace() as $back) { + if (@$back['file']) { + echo '
        ' . str_replace( JPATH_ROOT, '', $back['file'] ) . ':' . $back['line']; + } + } + echo '
        '; + } +} + +/** + * Legacy function, use {@link JPath::setPermissions()} instead + * + * @deprecated As of version 1.5 + */ +function mosChmod( $path ) { + jimport('joomla.filesystem.path'); + return JPath::setPermissions( $path ); +} + +/** + * Legacy function, use {@link JPath::setPermissions()} instead + * + * @deprecated As of version 1.5 + */ +function mosChmodRecursive( $path, $filemode=NULL, $dirmode=NULL ) { + jimport('joomla.filesystem.path'); + return JPath::setPermissions( $path, $filemode, $dirmode ); +} + +/** + * Legacy function, use {@link JPath::canChmod()} instead + * + * @deprecated As of version 1.5 + */ +function mosIsChmodable( $file ) { + jimport('joomla.filesystem.path'); + return JPath::canChmod( $file ); +} + +/** + * Legacy function, replaced by geshi bot + * + * @deprecated As of version 1.5 + */ +function mosShowSource( $filename, $withLineNums=false ) { + + ini_set('highlight.html', '000000'); + ini_set('highlight.default', '#800000'); + ini_set('highlight.keyword','#0000ff'); + ini_set('highlight.string', '#ff00ff'); + ini_set('highlight.comment','#008000'); + + if (!($source = @highlight_file( $filename, true ))) { + return JText::_( 'Operation Failed' ); + } + $source = explode("
        ", $source); + + $ln = 1; + + $txt = ''; + foreach( $source as $line ) { + $txt .= ""; + if ($withLineNums) { + $txt .= ""; + $txt .= str_replace( ' ', ' ', sprintf( "%4d:", $ln ) ); + $txt .= ""; + } + $txt .= "$line
        "; + $ln++; + } + return $txt; +} + +/** + * Legacy function, use mosLoadModule( 'breadcrumb', -1 ); instead + * + * @deprecated As of version 1.5 + */ +function mosPathWay() { + mosLoadModule('breadcrumb', -1); +} + +/** + * Legacy function, use {@link JBrowser::getInstance()} instead + * + * @deprecated As of version 1.5 + */ +function mosGetBrowser( $agent ) { + jimport('joomla.environment.browser'); + $instance =& JBrowser::getInstance(); + return $instance; +} + +/** + * Legacy function, use {@link JApplication::getBrowser()} instead + * + * @deprecated As of version 1.5 + */ +function mosGetOS( $agent ) { + jimport('joomla.environment.browser'); + $instance =& JBrowser::getInstance(); + return $instance->getPlatform(); +} + +/** + * Legacy function, use {@link JArrayHelper::getValue()} instead + * + * @deprecated As of version 1.5 + */ +function mosGetParam( &$arr, $name, $def=null, $mask=0 ) +{ + // Static input filters for specific settings + static $noHtmlFilter = null; + static $safeHtmlFilter = null; + + $var = JArrayHelper::getValue( $arr, $name, $def, '' ); + + // If the no trim flag is not set, trim the variable + if (!($mask & 1) && is_string($var)) { + $var = trim($var); + } + + // Now we handle input filtering + if ($mask & 2) { + // If the allow html flag is set, apply a safe html filter to the variable + if (is_null($safeHtmlFilter)) { + $safeHtmlFilter = & JFilterInput::getInstance(null, null, 1, 1); + } + $var = $safeHtmlFilter->clean($var, 'none'); + } elseif ($mask & 4) { + // If the allow raw flag is set, do not modify the variable + $var = $var; + } else { + // Since no allow flags were set, we will apply the most strict filter to the variable + if (is_null($noHtmlFilter)) { + $noHtmlFilter = & JFilterInput::getInstance(/* $tags, $attr, $tag_method, $attr_method, $xss_auto */); + } + $var = $noHtmlFilter->clean($var, 'none'); + } + return $var; +} + +/** + * Legacy function, use {@link JHTML::_('list.genericordering', )} instead + * + * @deprecated As of version 1.5 + */ +function mosGetOrderingList( $sql, $chop='30' ) +{ + return JHTML::_('list.genericordering', $sql, $chop); +} + +/** + * Legacy function, use {@link JRegistry} instead + * + * @deprecated As of version 1.5 + */ +function mosParseParams( $txt ) { + + $registry = new JRegistry(); + $registry->loadINI($txt); + return $registry->toObject( ); +} + +/** + * Legacy function, removed + * + * @deprecated As of version 1.5 + */ +function mosLoadComponent( $name ) +{ + // set up some global variables for use by the frontend component + global $mainframe, $database; + $name = JFilterInput::clean($name, 'cmd'); + $path = JPATH_SITE.DS.'components'.DS.'com_'.$name.DS.$name.'.php'; + if (file_exists($path)) { + include $path; + } +} + +/** + * Legacy function, use {@link JEditor::init()} instead + * + * @deprecated As of version 1.5 + */ +function initEditor() +{ + $editor =& JFactory::getEditor(); + echo $editor->initialise(); +} + +/** + * Legacy function, use {@link JEditor::save()} or {@link JEditor::getContent()} instead + * + * @deprecated As of version 1.5 + */ +function getEditorContents($editorArea, $hiddenField) +{ + jimport( 'joomla.html.editor' ); + $editor =& JFactory::getEditor(); + echo $editor->save( $hiddenField ); +} + +/** + * Legacy function, use {@link JEditor::display()} instead + * + * @deprecated As of version 1.5 + */ +function editorArea($name, $content, $hiddenField, $width, $height, $col, $row) +{ + jimport( 'joomla.html.editor' ); + $editor =& JFactory::getEditor(); + echo $editor->display($hiddenField, $content, $width, $height, $col, $row); +} + +/** + * Legacy function, use {@link JMenu::authorize()} instead + * + * @deprecated As of version 1.5 + */ +function mosMenuCheck( $Itemid, $menu_option, $task, $gid ) +{ + $user =& JFactory::getUser(); + $menus =& JSite::getMenu(); + return $menus->authorize($Itemid, $user->get('aid')); +} + +/** + * Legacy function, use {@link JArrayHelper::fromObject()} instead + * + * @deprecated As of version 1.5 + */ +function mosObjectToArray( $p_obj, $recurse = true, $regex = null ) +{ + $result = JArrayHelper::fromObject( $p_obj, $recurse, $regex ); + return $result; +} + +/** + * Legacy function, use {@link JHTML::_('date', )} instead + * + * @deprecated As of version 1.5 + */ +function mosFormatDate( $date = 'now', $format = null, $offset = null ) { + + if ( ! $format ) + { + $format = JText::_('DATE_FORMAT_LC1'); + } + + return JHTML::_('date', $date, $format, $offset); +} + +/** + * Legacy function, use {@link JHTML::_('date', )} instead + * + * @deprecated As of version 1.5 + */ +function mosCurrentDate( $format="" ) +{ + if ($format=="") { + $format = JText::_( 'DATE_FORMAT_LC1' ); + } + + return JHTML::_('date', 'now', $format); +} + +/** + * Legacy function, use {@link JFilterOutput::objectHTMLSafe()} instead + * + * @deprecated As of version 1.5 + */ +function mosMakeHtmlSafe( &$mixed, $quote_style=ENT_QUOTES, $exclude_keys='' ) { + JFilterOutput::objectHTMLSafe( $mixed, $quote_style, $exclude_keys ); +} + +/** + * Legacy function, handled by {@link JDocument} Zlib outputfilter + * + * @deprecated As of version 1.5 + */ +function initGzip() +{ + global $mainframe, $do_gzip_compress; + + + // attempt to disable session.use_trans_sid + ini_set('session.use_trans_sid', false); + + $do_gzip_compress = FALSE; + if ($mainframe->getCfg('gzip') == 1) { + $phpver = phpversion(); + $useragent = mosGetParam( $_SERVER, 'HTTP_USER_AGENT', '' ); + $canZip = mosGetParam( $_SERVER, 'HTTP_ACCEPT_ENCODING', '' ); + + if ( $phpver >= '4.0.4pl1' && + ( strpos($useragent,'compatible') !== false || + strpos($useragent,'Gecko') !== false + ) + ) { + // Check for gzip header or northon internet securities + if ( isset($_SERVER['HTTP_ACCEPT_ENCODING']) ) { + $encodings = explode(',', strtolower($_SERVER['HTTP_ACCEPT_ENCODING'])); + } + if ( (in_array('gzip', $encodings) || isset( $_SERVER['---------------']) ) && extension_loaded('zlib') && function_exists('ob_gzhandler') && !ini_get('zlib.output_compression') && !ini_get('session.use_trans_sid') ) { + // You cannot specify additional output handlers if + // zlib.output_compression is activated here + ob_start( 'ob_gzhandler' ); + return; + } + } else if ( $phpver > '4.0' ) { + if ( strpos($canZip,'gzip') !== false ) { + if (extension_loaded( 'zlib' )) { + $do_gzip_compress = TRUE; + ob_start(); + ob_implicit_flush(0); + + header( 'Content-Encoding: gzip' ); + return; + } + } + } + } + ob_start(); +} + +/** + * Legacy function, use JFolder::delete($path) + * + * @deprecated As of version 1.5 + */ +function deldir( $dir ) +{ + $current_dir = opendir( $dir ); + $old_umask = umask(0); + while ($entryname = readdir( $current_dir )) { + if ($entryname != '.' and $entryname != '..') { + if (is_dir( $dir . $entryname )) { + deldir( mosPathName( $dir . $entryname ) ); + } else { + @chmod($dir . $entryname, 0777); + unlink( $dir . $entryname ); + } + } + } + umask($old_umask); + closedir( $current_dir ); + return rmdir( $dir ); +} + +/** + * Legacy function, handled by {@link JDocument} Zlib outputfilter + * + * @deprecated As of version 1.5 + */ +function doGzip() +{ + global $do_gzip_compress; + if ( $do_gzip_compress ) + { + $gzip_contents = ob_get_contents(); + ob_end_clean(); + + $gzip_size = strlen($gzip_contents); + $gzip_crc = crc32($gzip_contents); + + $gzip_contents = gzcompress($gzip_contents, 9); + $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); + + echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; + echo $gzip_contents; + echo pack('V', $gzip_crc); + echo pack('V', $gzip_size); + } else { + ob_end_flush(); + } +} + +/** + * Legacy function, use {@link JArrayHelper::sortObjects()} instead + * + * @deprecated As of version 1.5 + */ +function SortArrayObjects( &$a, $k, $sort_direction=1 ) +{ + JArrayHelper::sortObjects($a, $k, $sort_direction); +} + +/** + * Legacy function, {@link JRequest::getVar()} + * + * @deprecated As of version 1.5 + */ +function josGetArrayInts( $name, $type=NULL ) { + + $array = JRequest::getVar($name, array(), 'default', 'array' ); + + return $array; +} + +/** + * Legacy function, {@link JSession} transparently checks for spoofing attacks + * + * @deprecated As of version 1.5 + */ +function josSpoofCheck( $header=false, $alternate=null ) +{ + // Lets make sure they saw the html form + $check = true; + $hash = josSpoofValue($alternate); + $valid = JRequest::getBool( $hash, 0, 'post' ); + if (!$valid) { + $check = false; + } + + // Make sure request came from a client with a user agent string. + if (!isset( $_SERVER['HTTP_USER_AGENT'] )) { + $check = false; + } + + // Check to make sure that the request was posted as well. + $requestMethod = JArrayHelper::getValue( $_SERVER, 'REQUEST_METHOD' ); + if ($requestMethod != 'POST') { + $check = false; + } + + if (!$check) + { + header( 'HTTP/1.0 403 Forbidden' ); + jexit( JText::_('E_SESSION_TIMEOUT') ); + } +} + +/** + * Legacy function, use {@link JUtility::getToken()} instead + * + * @deprecated As of version 1.5 + */ +function josSpoofValue($alt = NULL) +{ + global $mainframe; + + if ($alt) { + if ( $alt == 1 ) { + $random = date( 'Ymd' ); + } else { + $random = $alt . date( 'Ymd' ); + } + } else { + $random = date( 'dmY' ); + } + // the prefix ensures that the hash is non-numeric + // otherwise it will be intercepted by globals.php + $validate = 'j' . mosHash( $mainframe->getCfg( 'db' ) . $random ); + + return $validate; +} + +/** + * Legacy function to load the tooltip library. + * + * @deprecated As of version 1.5 + */ +function loadOverlib() { + JHTML::_('behavior.tooltip'); +} + +/** +* Legacy utility function to provide ToolTips +* +* @deprecated As of version 1.5 +*/ +function mosToolTip( $tooltip, $title='', $width='', $image='tooltip.png', $text='', $href='', $link=1 ) +{ + // Initialize the toolips if required + static $init; + if ( ! $init ) + { + JHTML::_('behavior.tooltip'); + $init = true; + } + + return JHTML::_('tooltip', $tooltip, $title, $image, $text, $href, $link); +} + +/** + * Legacy function to convert an internal Joomla URL to a humanly readible URL. + * + * @deprecated As of version 1.5 + */ +function sefRelToAbs($value) +{ + // Replace all & with & as the router doesn't understand & + $url = str_replace('&', '&', $value); + if(substr(strtolower($url),0,9) != "index.php") return $url; + $uri = JURI::getInstance(); + $prefix = $uri->toString(array('scheme', 'host', 'port')); + return $prefix.JRoute::_($url); +} + + +/** + * Legacy function to replaces & with & for xhtml compliance + * + * @deprecated As of version 1.5 + */ +function ampReplace( $text ) { + return JFilterOutput::ampReplace($text); +} + +/** + * Legacy function to replaces & with & for xhtml compliance + * + * @deprecated As of version 1.5 + */ +function mosTreeRecurse( $id, $indent, $list, &$children, $maxlevel=9999, $level=0, $type=1 ) +{ + jimport('joomla.html.html'); + return JHTML::_('menu.treerecurse', $id, $indent, $list, $children, $maxlevel, $level, $type); +} + +/** + * Legacy function, use {@link JHTML::tooltip()} instead + * + * @deprecated As of version 1.5 + */ +function mosWarning($warning, $title='Joomla! Warning') { + return JHTML::tooltip($warning, $title, 'warning.png', null, null, null); +} diff --git a/plugins/system/legacy/html.php b/plugins/system/legacy/html.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/html.php @@ -0,0 +1,346 @@ +'. JText::_( 'Writable' ) .''; + $unwriteable = ''. JText::_( 'Unwritable' ) .''; + + echo ''; + echo ''; + echo $text; + if ( $visible ) { + echo $folder . '/'; + } + echo ''; + echo ''; + if ( $relative ) { + echo is_writable( "../$folder" ) ? $writeable : $unwriteable; + } else { + echo is_writable( "$folder" ) ? $writeable : $unwriteable; + } + echo ''; + echo ''; + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function monthSelectList( $tag_name, $tag_attribs, $selected ) + { + $arr = array( + mosHTML::makeOption( '01', JText::_( 'JANUARY_SHORT' ) ), + mosHTML::makeOption( '02', JText::_( 'FEBRUARY_SHORT' ) ), + mosHTML::makeOption( '03', JText::_( 'MARCH_SHORT' ) ), + mosHTML::makeOption( '04', JText::_( 'APRIL_SHORT' ) ), + mosHTML::makeOption( '05', JText::_( 'MAY_SHORT' ) ), + mosHTML::makeOption( '06', JText::_( 'JUNE_SHORT' ) ), + mosHTML::makeOption( '07', JText::_( 'JULY_SHORT' ) ), + mosHTML::makeOption( '08', JText::_( 'AUGUST_SHORT' ) ), + mosHTML::makeOption( '09', JText::_( 'SEPTEMBER_SHORT' ) ), + mosHTML::makeOption( '10', JText::_( 'OCTOBER_SHORT' ) ), + mosHTML::makeOption( '11', JText::_( 'NOVEMBER_SHORT' ) ), + mosHTML::makeOption( '12', JText::_( 'DECEMBER_SHORT' ) ) + ); + + return mosHTML::selectList( $arr, $tag_name, $tag_attribs, 'value', 'text', $selected ); + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function treeSelectList( &$src_list, $src_id, $tgt_list, $tag_name, $tag_attribs, $key, $text, $selected ) + { + + // establish the hierarchy of the menu + $children = array(); + // first pass - collect children + foreach ($src_list as $v ) { + $pt = $v->parent; + $list = @$children[$pt] ? $children[$pt] : array(); + array_push( $list, $v ); + $children[$pt] = $list; + } + // second pass - get an indent list of the items + $ilist = JHTML::_('menu.treerecurse', 0, '', array(), $children ); + + // assemble menu items to the array + $this_treename = ''; + foreach ($ilist as $item) { + if ($this_treename) { + if ($item->id != $src_id && strpos( $item->treename, $this_treename ) === false) { + $tgt_list[] = mosHTML::makeOption( $item->id, $item->treename ); + } + } else { + if ($item->id != $src_id) { + $tgt_list[] = mosHTML::makeOption( $item->id, $item->treename ); + } else { + $this_treename = "$item->treename/"; + } + } + } + // build the html select list + return mosHTML::selectList( $tgt_list, $tag_name, $tag_attribs, $key, $text, $selected ); + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function yesnoSelectList( $tag_name, $tag_attribs, $selected, $yes='yes', $no='no' ) + { + $arr = array( + mosHTML::makeOption( 0, JText::_( $no ) ), + mosHTML::makeOption( 1, JText::_( $yes ) ), + ); + + return mosHTML::selectList( $arr, $tag_name, $tag_attribs, 'value', 'text', (int) $selected ); + } + + /** + * Legacy function, use {@link JHTML::_('grid.id')} instead + * + * @deprecated As of version 1.5 + */ + function idBox( $rowNum, $recId, $checkedOut=false, $name='cid' ) + { + return JHTML::_('grid.id', $rowNum, $recId, $checkedOut, $name); + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function sortIcon( $text, $base_href, $field, $state='none' ) + { + $alts = array( + 'none' => JText::_( 'No Sorting' ), + 'asc' => JText::_( 'Sort Ascending' ), + 'desc' => JText::_( 'Sort Descending' ), + ); + + $next_state = 'asc'; + if ($state == 'asc') { + $next_state = 'desc'; + } else if ($state == 'desc') { + $next_state = 'none'; + } + + if ($state == 'none') { + $img = ''; + } else { + $img = "\"{$alts[$next_state]}\""; + } + + $html = "" + . JText::_( $text ) + . '  ' + . $img + . ""; + + return $html; + } + + /** + * Legacy function, deprecated + * + * @deprecated As of version 1.5 + */ + function CloseButton ( &$params, $hide_js=NULL ) + { + + // displays close button in Pop-up window + if ( $params->get( 'popup' ) && !$hide_js ) { + ?> +
        + + '; + echo ''. JText::_( 'BACK' ) .''; + echo ''; + } + ?> +
        + get( 'back_button' ) && !$params->get( 'popup' ) && !$hide_js) { + ?> +
        + + +
        + get( 'print' ) && !$hide_js ) { + // use default settings if none declared + if ( !$status ) { + $status = 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no'; + } + + // checks template image directory for image, if non found default are loaded + if ( $params->get( 'icons' ) ) { + $image = mosAdminMenus::ImageCheck( 'printButton.png', '/images/M_images/', NULL, NULL, JText::_( 'Print' ), JText::_( 'Print' ) ); + } else { + $image = JText::_( 'ICON_SEP' ) .' '. JText::_( 'Print' ) .' '. JText::_( 'ICON_SEP' ); + } + + if ( $params->get( 'popup' ) && !$hide_js ) { + // Print Preview button - used when viewing page + ?> + + + + + + + \ No newline at end of file diff --git a/plugins/system/legacy/installer.php b/plugins/system/legacy/installer.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/installer.php @@ -0,0 +1,33 @@ +setTitle()} instead or override in your application class + * + * @since 1.5 + * @deprecated As of version 1.5 + */ + function setPageTitle( $title=null ) + { + $document=& JFactory::getDocument(); + $document->setTitle($title); + } + + /** + * Deprecated, use {@link JDocument::getTitle() JDocument->getTitle()} instead or override in your application class + * @since 1.5 + * @deprecated As of version 1.5 + */ + function getPageTitle() + { + $document=& JFactory::getDocument(); + return $document->getTitle(); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/mambot.php b/plugins/system/legacy/mambot.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/mambot.php @@ -0,0 +1,60 @@ +reorder( $where ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.0.3 + */ + function publish_array( $cid=null, $publish=1, $user_id=0 ) + { + $this->publish( $cid, $publish, $user_id ); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/mambothandler.php b/plugins/system/legacy/mambothandler.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/mambothandler.php @@ -0,0 +1,82 @@ +trigger()} instead and handle return values + * in your code + * + * @param string The event name + * @since 1.5 + * @deprecated As of 1.5 + */ + function call($event) + { + $args = & func_get_args(); + array_shift($args); + + $retArray = $this->trigger( $event, $args ); + return $retArray[0]; + } +} \ No newline at end of file diff --git a/plugins/system/legacy/menu.php b/plugins/system/legacy/menu.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/menu.php @@ -0,0 +1,60 @@ +reorder( $where ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.0.3 + */ + function publish_array( $cid=null, $publish=1, $user_id=0 ) + { + $this->publish( $cid, $publish, $user_id ); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/menubar.php b/plugins/system/legacy/menubar.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/menubar.php @@ -0,0 +1,76 @@ +reorder( $where ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.0.3 + */ + function publish_array( $cid=null, $publish=1, $user_id=0 ) + { + $this->publish( $cid, $publish, $user_id ); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/mysql.php b/plugins/system/legacy/mysql.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/mysql.php @@ -0,0 +1,80 @@ + $host, 'user' => $user, 'password' => $password, 'database' => $database, 'prefix' => $prefix ); + parent::__construct( $options ); + } + + /** + * This global function loads the first row of a query into an object + * + * If an object is passed to this function, the returned row is bound to the existing elements of object. + * If object has a value of null, then all of the returned query fields returned in the object. + * + * @param object The address of variable + */ + function loadObject( &$object ) + { + if ($object != null) + { + if (!($cur = $this->query())) { + return false; + } + + if ($array = mysql_fetch_assoc( $cur )) + { + mysql_free_result( $cur ); + mosBindArrayToObject( $array, $object, null, null, false ); + return true; + } else { + return false; + } + + } + else + { + $object = parent::loadObject(); + return $object; + } + } + + /** + * Execute a batch query + * + * @abstract + * @access public + * @return mixed A database resource if successful, FALSE if not. + */ + function query_batch( $abort_on_error=true, $p_transaction_safe = false) + { + return parent::queryBatch( $abort_on_error, $p_transaction_safe); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/mysqli.php b/plugins/system/legacy/mysqli.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/mysqli.php @@ -0,0 +1,80 @@ + $host, 'user' => $user, 'password' => $password, 'database' => $database, 'prefix' => $prefix ); + parent::__construct( $options ); + } + + /** + * This global function loads the first row of a query into an object + * + * If an object is passed to this function, the returned row is bound to the existing elements of object. + * If object has a value of null, then all of the returned query fields returned in the object. + * + * @param object The address of variable + */ + function loadObject( &$object ) + { + if ($object != null) + { + if (!($cur = $this->query())) { + return false; + } + + if ($array = mysqli_fetch_assoc( $cur )) + { + mysqli_free_result( $cur ); + mosBindArrayToObject( $array, $object, null, null, false ); + return true; + } else { + return false; + } + + } + else + { + $object = parent::loadObject(); + return $object; + } + } + + /** + * Execute a batch query + * + * @abstract + * @access public + * @return mixed A database resource if successful, FALSE if not. + */ + function query_batch( $abort_on_error=true, $p_transaction_safe = false) + { + return parent::queryBatch( $abort_on_error, $p_transaction_safe); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/pagination.php b/plugins/system/legacy/pagination.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/pagination.php @@ -0,0 +1,137 @@ +getLimitBox(); + * + * @deprecated as of 1.5 + */ + function writeLimitBox($link = null) { + echo $this->getLimitBox(); + } + + /** + * Writes the counter string + * Use: print $pagination->getLimitBox(); + * + * @deprecated as of 1.5 + */ + function writePagesCounter() { + return $this->getPagesCounter(); + } + + /** + * Writes the page list string + * Use: print $pagination->getPagesLinks(); + * + * @deprecated as of 1.5 + */ + function writePagesLinks($link = null) { + return $this->getPagesLinks(); + } + + /** + * Writes the html for the leafs counter, eg, Page 1 of x + * Use: print $pagination->getPagesCounter(); + * + * @deprecated as of 1.5 + */ + function writeLeafsCounter() { + return $this->getPagesCounter(); + } + + /** + * Returns the pagination offset at an index + * Use: $pagination->getRowOffset($index); instead + * + * @deprecated as of 1.5 + */ + function rowNumber($index) { + return $index +1 + $this->limitstart; + } + + /** + * Return the icon to move an item UP + * + * @deprecated as of 1.5 + */ + function orderUpIcon2($id, $order, $condition = true, $task = 'orderup', $alt = '#') + { + // handling of default value + if ($alt = '#') { + $alt = JText::_('Move Up'); + } + + if ($order == 0) { + $img = 'uparrow0.png'; + } else { + if ($order < 0) { + $img = 'uparrow-1.png'; + } else { + $img = 'uparrow.png'; + } + } + $output = ''; + $output .= ''.$alt.''; + + return $output; + } + + /** + * Return the icon to move an item DOWN + * + * @deprecated as of 1.5 + */ + function orderDownIcon2($id, $order, $condition = true, $task = 'orderdown', $alt = '#') + { + // handling of default value + if ($alt = '#') { + $alt = JText::_('Move Down'); + } + + if ($order == 0) { + $img = 'downarrow0.png'; + } else { + if ($order < 0) { + $img = 'downarrow-1.png'; + } else { + $img = 'downarrow.png'; + } + } + $output = ''; + $output .= ''.$alt.''; + + return $output; + } +} +?> \ No newline at end of file diff --git a/plugins/system/legacy/parameters.php b/plugins/system/legacy/parameters.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/parameters.php @@ -0,0 +1,94 @@ +toObject()} instead + * + * @deprecated As of version 1.5 + */ + function toObject() + { + parent::toObject(); + } + + /** + * Legacy function, use {@link JParameter::toArray() JParameter->toArray()} instead + * + * @deprecated As of version 1.5 + */ + function toArray() + { + parent::toArray(); + } + + /** + * Parse an .ini string, based on phpDocumentor phpDocumentor_parse_ini_file function + * + * @access public + * @param mixed The ini string or array of lines + * @param boolean add an associative index for each section [in brackets] + * @return object + */ + function parse($txt, $process_sections = false, $asArray = false) + { + $this->loadINI($txt); + + if($asArray) { + return $this->toArray(); + } + + return $this->toObject( ); + } + + /** + * Special handling for textarea param + */ + function textareaHandling( &$txt ) + { + $total = count( $txt ); + for( $i=0; $i < $total; $i++ ) { + if ( strstr( $txt[$i], "\n" ) ) { + $txt[$i] = str_replace( "\n", '
        ', $txt[$i] ); + } + } + $txt = implode( "\n", $txt ); + + return $txt; + } +} \ No newline at end of file diff --git a/plugins/system/legacy/patfactory.php b/plugins/system/legacy/patfactory.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/patfactory.php @@ -0,0 +1,61 @@ +readTemplatesFromFile( 'page.html' ); + $tmpl->applyInputFilter('ShortModifiers'); + + // load the stock templates + if (is_array( $files )) { + foreach ($files as $file) + { + $tmpl->readTemplatesFromInput( $file ); + } + } + + // TODO: Do the protocol better + $tmpl->addVar( 'form', 'formAction', basename($_SERVER['PHP_SELF']) ); + $tmpl->addVar( 'form', 'formName', 'adminForm' ); + + $tmpl->setRoot( dirname( __FILE__ ) . '/tmpl'); + $tmpl->setNamespace( 'mos' ); + + if ($bodyHtml) { + $tmpl->setAttribute( 'body', 'src', $bodyHtml ); + } + return $tmpl; + } +} \ No newline at end of file diff --git a/plugins/system/legacy/profiler.php b/plugins/system/legacy/profiler.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/profiler.php @@ -0,0 +1,38 @@ +reorder( $where ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.0.3 + */ + function publish_array( $cid=null, $publish=1, $user_id=0 ) + { + $this->publish( $cid, $publish, $user_id ); + } +} \ No newline at end of file diff --git a/plugins/system/legacy/session.php b/plugins/system/legacy/session.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/session.php @@ -0,0 +1,105 @@ +getCfg('secret') . $value . $_SERVER['REMOTE_ADDR'] ); + } + + /** + * Set the information to allow a session to persist + */ + function persist() + { + global $mainframe; + + $usercookie = mosGetParam( $_COOKIE, 'usercookie', null ); + if ($usercookie) { + // Remember me cookie exists. Login with usercookie info. + $mainframe->login( $usercookie['username'], $usercookie['password'] ); + } + } + + /** + * Legacy Method, use {@link JTable::reorder()} instead + * @deprecated As of 1.5 + */ + function updateOrder( $where='' ) + { + return $this->reorder( $where ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.0.3 + */ + function publish_array( $cid=null, $publish=1, $user_id=0 ) + { + $this->publish( $cid, $publish, $user_id ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.5 + */ + function setFromRequest( $key, $varName, $default=null ) + { + if (isset( $_REQUEST[$varName] )) { + return $_SESSION[$key] = $_REQUEST[$varName]; + } else if (isset( $_SESSION[$key] )) { + return $_SESSION[$key]; + } else { + return $_SESSION[$key] = $default; + } + } +} \ No newline at end of file diff --git a/plugins/system/legacy/toolbar.php b/plugins/system/legacy/toolbar.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/toolbar.php @@ -0,0 +1,318 @@ +addStyleSheet( 'templates/system/css/toolbar.css' ); + ?> + + + + + setQuery( $sql ); + $cur_template = $db->loadResult(); + + $alt = JText::_( 'Preview' ); + $image = JHTML::_('image.site', 'preview_f2.png', 'images/', NULL, NULL, $alt ); + ?> + + + + + + + + + + + + + +
        + + + + + + + + + + + + + +   
        + diff --git a/plugins/system/legacy/user.php b/plugins/system/legacy/user.php new file mode 100644 --- /dev/null +++ b/plugins/system/legacy/user.php @@ -0,0 +1,108 @@ +reorder( $where ); + } + + /** + * Legacy Method, use {@link JTable::publish()} instead + * @deprecated As of 1.0.3 + */ + function publish_array( $cid=null, $publish=1, $user_id=0 ) + { + $this->publish( $cid, $publish, $user_id ); + } + + /** + * Returns a complete user list + * + * @return array + * @deprecated As of 1.5 + */ + function getUserList() + { + $this->_db->setQuery("SELECT username FROM #__users"); + return $this->_db->loadAssocList(); + } + + /** + * Gets the users from a group + * + * @param string The value for the group + * @param string The name for the group + * @param string If RECURSE, will drill into child groups + * @param string Ordering for the list + * @return array + * @deprecated As of 1.5 + */ + function getUserListFromGroup( $value, $name, $recurse='NO_RECURSE', $order='name' ) + { + $acl =& JFactory::getACL(); + + // Change back in + $group_id = $acl->get_group_id( $value, $name, 'ARO'); + $objects = $acl->get_group_objects( $group_id, 'ARO', 'RECURSE'); + + if (isset( $objects['users'] )) + { + $gWhere = '(id =' . implode( ' OR id =', $objects['users'] ) . ')'; + + $query = 'SELECT id AS value, name AS text' + . ' FROM #__users' + . ' WHERE block = "0"' + . ' AND ' . $gWhere + . ' ORDER BY '. $order + ; + $this->_db->setQuery( $query ); + $options = $this->_db->loadObjectList(); + return $options; + } else { + return array(); + } + } +} \ No newline at end of file diff --git a/plugins/system/log.php b/plugins/system/log.php new file mode 100644 --- /dev/null +++ b/plugins/system/log.php @@ -0,0 +1,74 @@ +addEntry($errorlog); + } break; + + case JAUTHENTICATE_STATUS_FAILURE : + { + $errorlog['status'] = $response['type'] . " FAILURE: "; + $errorlog['comment'] = $response['error_message']; + $log->addEntry($errorlog); + } break; + + default : + { + $errorlog['status'] = $response['type'] . " UNKNOWN ERROR: "; + $errorlog['comment'] = $response['error_message']; + $log->addEntry($errorlog); + } break; + } + } +} \ No newline at end of file diff --git a/plugins/system/log.xml b/plugins/system/log.xml new file mode 100644 --- /dev/null +++ b/plugins/system/log.xml @@ -0,0 +1,17 @@ + + + System - Log + Joomla! Project + April 2007 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Provides system logging + + log.php + + + + \ No newline at end of file diff --git a/plugins/system/remember.php b/plugins/system/remember.php new file mode 100644 --- /dev/null +++ b/plugins/system/remember.php @@ -0,0 +1,77 @@ +isAdmin()) { + return; + } + + $user = &JFactory::getUser(); + if (!$user->get('gid')) + { + jimport('joomla.utilities.utility'); + $hash = JUtility::getHash('JLOGIN_REMEMBER'); + + if ($str = JRequest::getString($hash, '', 'cookie', JREQUEST_ALLOWRAW | JREQUEST_NOTRIM)) + { + jimport('joomla.utilities.simplecrypt'); + + //Create the encryption key, apply extra hardening using the user agent string + $key = JUtility::getHash(@$_SERVER['HTTP_USER_AGENT']); + + $crypt = new JSimpleCrypt($key); + $str = $crypt->decrypt($str); + + $options = array(); + $options['silent'] = true; + if (!$mainframe->login(@unserialize($str), $options)) { + // Clear the remember me cookie + setcookie( JUtility::getHash('JLOGIN_REMEMBER'), false, time() - 86400, '/' ); + } + } + } + } +} \ No newline at end of file diff --git a/plugins/system/remember.xml b/plugins/system/remember.xml new file mode 100644 --- /dev/null +++ b/plugins/system/remember.xml @@ -0,0 +1,17 @@ + + + System - Remember Me + Joomla! Project + April 2007 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + Provides remember me functionality + + remember.php + + + + \ No newline at end of file diff --git a/plugins/system/sef.php b/plugins/system/sef.php new file mode 100644 --- /dev/null +++ b/plugins/system/sef.php @@ -0,0 +1,102 @@ +getName() != 'site') { + return true; + } + + //Replace src links + $base = JURI::base(true).'/'; + $buffer = JResponse::getBody(); + + $regex = '#href="index.php\?([^"]*)#m'; + $buffer = preg_replace_callback( $regex, array('plgSystemSEF', 'route'), $buffer ); + + $protocols = '[a-zA-Z0-9]+:'; //To check for all unknown protocals (a protocol must contain at least one alpahnumeric fillowed by : + $regex = '#(src|href)="(?!/|'.$protocols.'|\#|\')([^"]*)"#m'; + $buffer = preg_replace($regex, "$1=\"$base\$2\"", $buffer); + $regex = '#(onclick="window.open\(\')(?!/|'.$protocols.'|\#)([^/]+[^\']*?\')#m'; + $buffer = preg_replace($regex, '$1'.$base.'$2', $buffer); + + // ONMOUSEOVER / ONMOUSEOUT + $regex = '#(onmouseover|onmouseout)="this.src=([\']+)(?!/|'.$protocols.'|\#|\')([^"]+)"#m'; + $buffer = preg_replace($regex, '$1="this.src=$2'. $base .'$3$4"', $buffer); + + // Background image + $regex = '#url\([\'\"]?(?!/|'.$protocols.'|\#)([^\)\'\"]+)[\'\"]?\)#m'; + $buffer = preg_replace($regex, 'url(\''. $base .'$1$2\')', $buffer); + + // OBJECT + $regex = '# + $regex = '# + + System - SEF + Joomla! Project + December 2007 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + DESCPLGSYSTEMSEF + + sef.php + + + diff --git a/plugins/tmp/index.html b/plugins/tmp/index.html new file mode 100644 --- /dev/null +++ b/plugins/tmp/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/user/example.php b/plugins/user/example.php new file mode 100644 --- /dev/null +++ b/plugins/user/example.php @@ -0,0 +1,174 @@ + + + User - Example + Joomla! Project + November 2005 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.0 + An example user synchronisation plugin + + example.php + + + diff --git a/plugins/user/index.html b/plugins/user/index.html new file mode 100644 --- /dev/null +++ b/plugins/user/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/plugins/user/joomla.php b/plugins/user/joomla.php new file mode 100644 --- /dev/null +++ b/plugins/user/joomla.php @@ -0,0 +1,228 @@ +setQuery('DELETE FROM #__session WHERE userid = '.$db->Quote($user['id'])); + $db->Query(); + + return true; + } + + /** + * This method should handle any login logic and report back to the subject + * + * @access public + * @param array holds the user data + * @param array array holding options (remember, autoregister, group) + * @return boolean True on success + * @since 1.5 + */ + function onLoginUser($user, $options = array()) + { + jimport('joomla.user.helper'); + + $instance =& $this->_getUser($user, $options); + + // if _getUser returned an error, then pass it back. + if (JError::isError( $instance )) { + return $instance; + } + + // If the user is blocked, redirect with an error + if ($instance->get('block') == 1) { + return JError::raiseWarning('SOME_ERROR_CODE', JText::_('E_NOLOGIN_BLOCKED')); + } + + // Get an ACL object + $acl =& JFactory::getACL(); + + // Get the user group from the ACL + if ($instance->get('tmp_user') == 1) { + $grp = new JObject; + // This should be configurable at some point + $grp->set('name', 'Registered'); + } else { + $grp = $acl->getAroGroup($instance->get('id')); + } + + //Authorise the user based on the group information + if(!isset($options['group'])) { + $options['group'] = 'USERS'; + } + + if(!$acl->is_group_child_of( $grp->name, $options['group'])) { + return JError::raiseWarning('SOME_ERROR_CODE', JText::_('E_NOLOGIN_ACCESS')); + } + + //Mark the user as logged in + $instance->set( 'guest', 0); + $instance->set('aid', 1); + + // Fudge Authors, Editors, Publishers and Super Administrators into the special access group + if ($acl->is_group_child_of($grp->name, 'Registered') || + $acl->is_group_child_of($grp->name, 'Public Backend')) { + $instance->set('aid', 2); + } + + //Set the usertype based on the ACL group name + $instance->set('usertype', $grp->name); + + // Register the needed session variables + $session =& JFactory::getSession(); + $session->set('user', $instance); + + // Get the session object + $table = & JTable::getInstance('session'); + $table->load( $session->getId() ); + + $table->guest = $instance->get('guest'); + $table->username = $instance->get('username'); + $table->userid = intval($instance->get('id')); + $table->usertype = $instance->get('usertype'); + $table->gid = intval($instance->get('gid')); + + $table->update(); + + // Hit the user last visit field + $instance->setLastVisit(); + + return true; + } + + /** + * This method should handle any logout logic and report back to the subject + * + * @access public + * @param array holds the user data + * @param array array holding options (client, ...) + * @return object True on success + * @since 1.5 + */ + function onLogoutUser($user, $options = array()) + { + $my =& JFactory::getUser(); + //Make sure we're a valid user first + if($user['id'] == 0 && !$my->get('tmp_user')) return true; + + //Check to see if we're deleting the current session + if($my->get('id') == $user['id']) + { + // Hit the user last visit field + $my->setLastVisit(); + + // Destroy the php session for this user + $session =& JFactory::getSession(); + $session->destroy(); + } else { + // Force logout all users with that userid + $table = & JTable::getInstance('session'); + $table->destroy($user['id'], $options['clientid']); + } + return true; + } + + /** + * This method will return a user object + * + * If options['autoregister'] is true, if the user doesn't exist yet he will be created + * + * @access public + * @param array holds the user data + * @param array array holding options (remember, autoregister, group) + * @return object A JUser object + * @since 1.5 + */ + function &_getUser($user, $options = array()) + { + $instance = new JUser(); + if($id = intval(JUserHelper::getUserId($user['username']))) { + $instance->load($id); + return $instance; + } + + //TODO : move this out of the plugin + jimport('joomla.application.component.helper'); + $config = &JComponentHelper::getParams( 'com_users' ); + $usertype = $config->get( 'new_usertype', 'Registered' ); + + $acl =& JFactory::getACL(); + + $instance->set( 'id' , 0 ); + $instance->set( 'name' , $user['fullname'] ); + $instance->set( 'username' , $user['username'] ); + $instance->set( 'password_clear' , $user['password_clear'] ); + $instance->set( 'email' , $user['email'] ); // Result should contain an email (check) + $instance->set( 'gid' , $acl->get_group_id( '', $usertype)); + $instance->set( 'usertype' , $usertype ); + + //If autoregister is set let's register the user + $autoregister = isset($options['autoregister']) ? $options['autoregister'] : $this->params->get('autoregister', 1); + + if($autoregister) + { + if(!$instance->save()) { + return JError::raiseWarning('SOME_ERROR_CODE', $instance->getError()); + } + } else { + // No existing user and autoregister off, this is a temporary user. + $instance->set( 'tmp_user', true ); + } + + return $instance; + } +} diff --git a/plugins/user/joomla.xml b/plugins/user/joomla.xml new file mode 100644 --- /dev/null +++ b/plugins/user/joomla.xml @@ -0,0 +1,21 @@ + + + User - Joomla! + Joomla! Project + December 2006 + (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5 + PLG_USER_JOOMLA + + joomla.php + + + + + + + + diff --git a/plugins/xmlrpc/blogger.php b/plugins/xmlrpc/blogger.php new file mode 100644 --- /dev/null +++ b/plugins/xmlrpc/blogger.php @@ -0,0 +1,568 @@ +loadLanguage( '', JPATH_ADMINISTRATOR ); + } + + /** + * @return array An array of associative arrays defining the available methods + */ + function onGetWebServices() + { + global $xmlrpcI4, $xmlrpcInt, $xmlrpcBoolean, $xmlrpcDouble, $xmlrpcString, $xmlrpcDateTime, $xmlrpcBase64, $xmlrpcArray, $xmlrpcStruct, $xmlrpcValue; + + return array + ( + 'blogger.getUsersBlogs' => array( + 'function' => 'plgXMLRPCBloggerServices::getUserBlogs', + 'docstring' => JText::_('Returns a list of weblogs to which an author has posting privileges.'), + 'signature' => array(array($xmlrpcArray, $xmlrpcString, $xmlrpcString, $xmlrpcString )) + ), + 'blogger.getUserInfo' => array( + 'function' => 'plgXMLRPCBloggerServices::getUserInfo', + 'docstring' => JText::_('Returns information about an author in the system.'), + 'signature' => array(array($xmlrpcStruct, $xmlrpcString, $xmlrpcString, $xmlrpcString)) + ), + 'blogger.getPost' => array( + 'function' => 'plgXMLRPCBloggerServices::getPost', + 'docstring' => JText::_('Returns information about a specific post.'), + 'signature' => array(array($xmlrpcStruct, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString)) + ), + 'blogger.getRecentPosts' => array( + 'function' => 'plgXMLRPCBloggerServices::getRecentPosts', + 'docstring' => JText::_('Returns a list of the most recent posts in the system.'), + 'signature' => array(array($xmlrpcArray, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcInt)) + ), + 'blogger.getTemplate' => array( + 'function' => 'plgXMLRPCBloggerServices::getTemplate', + 'docstring' => '', + 'signature' => array(array($xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString)) + ), + 'blogger.setTemplate' => array( + 'function' => 'plgXMLRPCBloggerServices::setTemplate', + 'docstring' => '', + 'signature' => array(array($xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString)) + ), + 'blogger.newPost' => array( + 'function' => 'plgXMLRPCBloggerServices::newPost', + 'docstring' => JText::_('Creates a new post, and optionally publishes it.'), + 'signature' => array(array($xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcBoolean)) + ), + 'blogger.deletePost' => array( + 'function' => 'plgXMLRPCBloggerServices::deletePost', + 'docstring' => JText::_('Deletes a post.'), + 'signature' => array(array($xmlrpcBoolean, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcBoolean)) + ), + 'blogger.editPost' => array( + 'function' => 'plgXMLRPCBloggerServices::editPost', + 'docstring' => JText::_('Updates the information about an existing post.'), + 'signature' => array(array($xmlrpcBoolean, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcBoolean)) + ) + ); + } +} + +class plgXMLRPCBloggerServices +{ + /* + * Note : blogger.getUsersBlogs will make more sense once we support multiple blogs + */ + function getUserBlogs($appkey, $username, $password) + { + global $mainframe, $xmlrpcerruser, $xmlrpcI4, $xmlrpcInt, $xmlrpcBoolean, $xmlrpcDouble, $xmlrpcString, $xmlrpcDateTime, $xmlrpcBase64, $xmlrpcArray, $xmlrpcStruct, $xmlrpcValue; + + if(!plgXMLRPCBloggerHelper::authenticateUser($username, $password)) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_("Login Failed")); + } + + $user =& JFactory::getUser($username); + plgXMLRPCBloggerHelper::getUserAid( $user ); + + // Handle the access permissions part of the main database query + if ($user->authorize('com_content', 'edit', 'content', 'all')) { + $xwhere = ''; + } else { + $xwhere = ' AND a.published = 1 AND b.published = 1'; + } + $gid = $user->get('aid', 0); + $access_check = ' AND a.access <= '.(int) $gid . + ' AND b.access <= '.(int) $gid; + // Query of categories within section + $query = 'SELECT a.id, a.title, a.section, ' . + ' CONCAT_WS(\'/\', a.title, b.title) AS catName' . + ' FROM #__categories AS a' . + ' LEFT JOIN #__sections AS b ON a.section = b.id' . + $xwhere. + $access_check; + $db = &JFactory::getDBO(); + $db->setQuery( $query ); + $categories = $db->loadObjectList(); + $structarray = array(); + + foreach( $categories AS $category ) { + if (intval($category->section) > 0) { + $blog = new xmlrpcval(array( + 'url' => new xmlrpcval(JURI::base(), $xmlrpcString), + 'blogid' => new xmlrpcval($category->id, $xmlrpcString), + 'blogName' => new xmlrpcval($category->catName, $xmlrpcString) + ), 'struct'); + array_push($structarray, $blog); + } + } + return new xmlrpcresp(new xmlrpcval( $structarray , $xmlrpcArray)); + } + + function getUserInfo($appkey, $username, $password) + { + global $xmlrpcerruser, $xmlrpcStruct; + + if(!plgXMLRPCBloggerHelper::authenticateUser($username, $password)) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_("Login Failed")); + } + + $user =& JFactory::getUser($username); + plgXMLRPCBloggerHelper::getUserAid( $user ); + + $struct = new xmlrpcval( + array( + 'nickname' => new xmlrpcval($user->get('username')), + 'userid' => new xmlrpcval($user->get('id')), + 'url' => new xmlrpcval(''), + 'email' => new xmlrpcval($user->get('email')), + 'lastname' => new xmlrpcval($user->get('name')), + 'firstname' => new xmlrpcval($user->get('name')) + ), $xmlrpcStruct); + + return new xmlrpcresp($struct); + } + + function getPost($appkey, $postid, $username, $password) + { + global $xmlrpcerruser, $xmlrpcI4, $xmlrpcInt, $xmlrpcBoolean, $xmlrpcDouble, $xmlrpcString, $xmlrpcDateTime, $xmlrpcBase64, $xmlrpcArray, $xmlrpcStruct, $xmlrpcValue; + + if(!plgXMLRPCBloggerHelper::authenticateUser($username, $password)) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_("Login Failed")); + } + + $user =& JFactory::getUser($username); + plgXMLRPCBloggerHelper::getUserAid( $user ); + + $db = &JFactory::getDBO(); + + $where = 'a.id = ' . (int) $postid; + + $canReadUnpublished = $user->authorize('com_content', 'edit', 'content', 'all'); + if ($canReadUnpublished) { + $publishedWhere = ''; + } else { + $publishedWhere = ' AND u.published = 1 AND b.published = 1'; + } + + $nullDate = $db->getNullDate(); + $date =& JFactory::getDate(); + $now = $date->toMySQL(); + + $query = 'SELECT a.title AS title,' + . ' a.created AS created,' + . ' a.introtext AS introtext,' + . ' a.fulltext AS ftext,' + . ' a.id AS id,' + . ' a.created_by AS created_by' + . ' FROM #__content AS a' + . ' INNER JOIN #__categories AS b ON b.id=a.catid' + . ' INNER JOIN #__sections AS u ON u.id = a.sectionid' + . ' WHERE '.$where + . $publishedWhere + . ' AND a.access <= '.(int) $user->get( 'aid' ) + . ' AND b.access <= '.(int) $user->get( 'aid' ) + . ' AND u.access <= '.(int) $user->get( 'aid' ) + . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )' + . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )' + ; + + $db->setQuery( $query ); + $item = $db->loadObject(); + + if ($item === null) { + return new xmlrpcresp(0, $xmlrpcerruser+2, JText::_("Access Denied")); + } + + $content = ''.$item->title.''; + $content .= $item->introtext.''.$item->ftext.''; + + $struct = new xmlrpcval( + array( + 'userid' => new xmlrpcval($item->created_by), + 'dateCreated' => new xmlrpcval($item->created), + 'content' => new xmlrpcval($content), + 'postid' => new xmlrpcval($item->id) + ), $xmlrpcStruct); + + return new xmlrpcresp($struct); + } + + function newPost($appkey, $blogid, $username, $password, $content, $publish) + { + global $xmlrpcerruser, $xmlrpcI4, $xmlrpcInt, $xmlrpcBoolean, $xmlrpcDouble, $xmlrpcString, $xmlrpcDateTime, $xmlrpcBase64, $xmlrpcArray, $xmlrpcStruct, $xmlrpcValue; + + if(!plgXMLRPCBloggerHelper::authenticateUser($username, $password)) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_("Login Failed")); + } + + $user =& JFactory::getUser($username); + plgXMLRPCBloggerHelper::getUserAid( $user ); + + if ($user->get('gid') < 19) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('ALERTNOTAUTH')); + } + + // Create a user access object for the user + $access = new stdClass(); + $access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all'); + $access->canEditOwn = $user->authorize('com_content', 'edit', 'content', 'own'); + $access->canPublish = $user->authorize('com_content', 'publish', 'content', 'all'); + + if (!($access->canEdit || $access->canEditOwn)) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('ALERTNOTAUTH')); + } + + $db =& JFactory::getDBO(); + + // load plugin params info + $plugin =& JPluginHelper::getPlugin('xmlrpc','blogger'); + $params = new JParameter( $plugin->params ); + + $blogid = (int) $blogid; + + // load the category + $cat =& JTable::getInstance('category'); + $cat->load($blogid); + + // create a new content item + $item =& JTable::getInstance('content'); + + $item->title = plgXMLRPCBloggerHelper::getPostTitle($content); + $item->introtext = plgXMLRPCBloggerHelper::getPostIntroText($content); + $item->fulltext = plgXMLRPCBloggerHelper::getPostFullText($content); + + $item->catid = $blogid; + $item->sectionid = $cat->section; + + $date =& JFactory::getDate(); + + $item->created = $date->toMySQL(); + $item->created_by = $user->get('id'); + + $item->publish_up = $date->toMySQL(); + $item->publish_down = $db->getNullDate(); + + $item->state = ($publish && $access->canPublish) ? 1 : 0; + + if (!$item->check()) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Post check failed') ); + } + + $item->version++; + + if (!$item->store()) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Post store failed') ); + } + + return new xmlrpcresp(new xmlrpcval($item->id, $xmlrpcString)); + } + + function editPost($appkey, $postid, $username, $password, $content, $publish) + { + global $xmlrpcerruser, $xmlrpcI4, $xmlrpcInt, $xmlrpcBoolean, $xmlrpcDouble, $xmlrpcString, $xmlrpcDateTime, $xmlrpcBase64, $xmlrpcArray, $xmlrpcStruct, $xmlrpcValue; + + if(!plgXMLRPCBloggerHelper::authenticateUser($username, $password)) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_("Login Failed")); + } + + $user =& JFactory::getUser($username); + plgXMLRPCBloggerHelper::getUserAid( $user ); + + // Create a user access object for the user + $access = new stdClass(); + $access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all'); + $access->canEditOwn = $user->authorize('com_content', 'edit', 'content', 'own'); + $access->canPublish = $user->authorize('com_content', 'publish', 'content', 'all'); + + if (!($access->canEdit || $access->canEditOwn)) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('ALERTNOTAUTH')); + } + + // load the row from the db table + $item =& JTable::getInstance('content'); + if(!$item->load( $postid )) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Sorry, no such post') ); + } + + if($item->isCheckedOut($user->get('id'))) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Sorry, post is already being edited') ); + } + + //lock the item + $item->checkout($user->id); + + $item->title = plgXMLRPCBloggerHelper::getPostTitle($content); + $item->introtext = plgXMLRPCBloggerHelper::getPostIntroText($content); + $item->fulltext = plgXMLRPCBloggerHelper::getPostFullText($content); + + if (!$item->check()) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Post check failed') ); + } + + $item->version++; + + if (!$item->store()) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Post store failed') ); + } + + $item->state = ($publish && $access->canPublish) ? 1 : 0; + + //lock the item + $item->checkout(); + + return new xmlrpcresp(new xmlrpcval('true', $xmlrpcBoolean)); + } + + function deletePost($appkey, $postid, $username, $password, $publish) + { + global $xmlrpcerruser, $xmlrpcI4, $xmlrpcInt, $xmlrpcBoolean, $xmlrpcDouble, $xmlrpcString, $xmlrpcDateTime, $xmlrpcBase64, $xmlrpcArray, $xmlrpcStruct, $xmlrpcValue; + + if(!plgXMLRPCBloggerHelper::authenticateUser($username, $password)) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_("Login Failed")); + } + + $user =& JFactory::getUser($username); + plgXMLRPCBloggerHelper::getUserAid( $user ); + + if ($user->get('gid') < 23) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('ALERTNOTAUTH')); + } + + // load the row from the db table + $item =& JTable::getInstance('content'); + if(!$item->load( $postid )) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Sorry, no such post') ); + } + + if($item->isCheckedOut($user->get('id'))) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Sorry, post is already being edited') ); + } + + //lock the item + $item->checkout(); + + $item->state = -2; + $item->ordering = 0; + + if (!$item->store()) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Post delete failed') ); + } + + return new xmlrpcresp(new xmlrpcval('true', $xmlrpcBoolean)); + } + + + /** + * Blogger API - blogger.getRecentPosts + * + * @param xmlrpcmessage XML-RPC message passed to the method + * @return xmlrpcresp XML-RPC response + */ + function getRecentPosts($appkey, $blogid, $username, $password, $numposts) + { + global $xmlrpcerruser, $xmlrpcI4, $xmlrpcInt, $xmlrpcBoolean, $xmlrpcDouble, $xmlrpcString, $xmlrpcDateTime, $xmlrpcBase64, $xmlrpcArray, $xmlrpcStruct, $xmlrpcValue; + + if(!plgXMLRPCBloggerHelper::authenticateUser($username, $password)) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_("Login Failed")); + } + + $user =& JFactory::getUser($username); + plgXMLRPCBloggerHelper::getUserAid( $user ); + + // load plugin params info + $plugin =& JPluginHelper::getPlugin('xmlrpc','blogger'); + $params = new JParameter( $plugin->params ); + + $db =& JFactory::getDBO(); + + $nullDate = $db->getNullDate(); + $date =& JFactory::getDate(); + $now = $date->toMySQL(); + + $blogid = (int) $blogid; + + $canReadUnpublished = $user->authorize('com_content', 'edit', 'content', 'all'); + if ($canReadUnpublished) { + $publishedWhere = ''; + $publishTimeWhere = ''; + } else { + $publishedWhere = ' AND u.published = 1 AND b.published = 1'; + $publishTimeWhere = ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )' + . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'; + } + + $query = 'SELECT a.title AS title,' + . ' a.created AS created,' + . ' a.introtext AS introtext,' + . ' a.fulltext AS ftext,' + . ' a.id AS id,' + . ' a.created_by AS created_by' + . ' FROM #__content AS a' + . ' INNER JOIN #__categories AS b ON b.id=a.catid' + . ' INNER JOIN #__sections AS u ON u.id = a.sectionid' + . ' WHERE a.catid = '. $blogid + . $publishedWhere + . ' AND a.access <= '.(int) $user->get( 'aid' ) + . ' AND b.access <= '.(int) $user->get( 'aid' ) + . ' AND u.access <= '.(int) $user->get( 'aid' ) + . $publishTimeWhere + ; + + $db->setQuery($query, 0, $numposts); + $items = $db->loadObjectList(); + + if ($items === null) { + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('No posts available, or an error has occured.') ); + } + + $structArray = array(); + foreach ($items as $item) + { + $content = ''.$item->title.''; + $content .= $item->introtext.''.$item->ftext.''; + + $structArray[] = new xmlrpcval(array( + 'userid' => new xmlrpcval($item->created_by), + 'dateCreated' => new xmlrpcval($item->created), + 'content' => new xmlrpcval($content), + 'postid' => new xmlrpcval($item->id) + ), 'struct'); + } + + return new xmlrpcresp(new xmlrpcval( $structArray , $xmlrpcArray)); + } + + function getTemplate($appkey, $blogid, $username, $password, $templateType) + { + global $xmlrpcerruser; + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Method not implemented') ); + } + + function setTemplate($appkey, $blogid, $username, $password, $template, $templateType) + { + global $xmlrpcerruser; + return new xmlrpcresp(0, $xmlrpcerruser+1, JText::_('Method not implemented') ); + } +} + +class plgXMLRPCBloggerHelper +{ + function getUserAid( &$user ) { + + $acl = &JFactory::getACL(); + + //Get the user group from the ACL + $grp = $acl->getAroGroup($user->get('id')); + + // Mark the user as logged in + $user->set('guest', 0); + $user->set('aid', 1); + + // Fudge Authors, Editors, Publishers and Super Administrators into the special access group + if ($acl->is_group_child_of($grp->name, 'Registered') || + $acl->is_group_child_of($grp->name, 'Public Backend')) { + $user->set('aid', 2); + } + } + + function authenticateUser($username, $password) + { + // Get the global JAuthentication object + jimport( 'joomla.user.authentication'); + $auth = & JAuthentication::getInstance(); + $credentials = array( 'username' => $username, 'password' => $password ); + $options = array(); + $response = $auth->authenticate($credentials, $options); + return $response->status === JAUTHENTICATE_STATUS_SUCCESS; + } + + function getPostTitle($content) + { + $title = ''; + if ( preg_match('/(.+?)<\/title>/is', $content, $matchtitle) ) + { + $title = $matchtitle[0]; + $title = preg_replace('/<title>/si', '', $title); + $title = preg_replace('/<\/title>/si', '', $title); + } + if (empty( $title )) { + $title = substr( $content, 0, 20 ); + } + return $title; + } + + function getPostCategory($content) + { + $category = 0; + + $match = array(); + if ( preg_match('/<category>(.+?)<\/category>/is', $content, $match) ) + { + $category = trim($match[1], ','); + $category = explode(',', $category); + } + + return $category; + } + + function getPostIntroText($content) + { + return plgXMLRPCBloggerHelper::removePostData($content); //substr($string, 0, strpos($string, '<more_text>')); + } + + function getPostFullText($content) + { + $match = array(); + if ( preg_match('/<more_text>(.+?)<\/more_text>/is', $content, $match) ) + { + $fulltext = $match[0]; + $fulltext = preg_replace('/<more_text>/si', '', $fulltext); + $fulltext = preg_replace('/<\/more_text>/si', '', $fulltext); + } + + return $fulltext; + } + + function removePostData($content) + { + $content = preg_replace('/<title>(.+?)<\/title>/si', '', $content); + $content = preg_replace('/<category>(.+?)<\/category>/si', '', $content); + $content = preg_replace('/<more_text>(.+?)<\/more_text>/si', '', $content); + $content = trim($content); + return $content; + } +} diff --git a/plugins/xmlrpc/blogger.xml b/plugins/xmlrpc/blogger.xml new file mode 100644 --- /dev/null +++ b/plugins/xmlrpc/blogger.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<install version="1.5" type="plugin" group="xmlrpc"> + <name>XML-RPC - Blogger API</name> + <author>Joomla! Project</author> + <creationDate>February 2006</creationDate> + <copyright> + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + </copyright> + <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license> + <authorEmail>admin@joomla.org</authorEmail> + <authorUrl>www.joomla.org</authorUrl> + <version>1.0</version> + <description>Blogger XML-RPC API</description> + <files> + <filename plugin="blogger">blogger.php</filename> + </files> + <params> + <param name="catid" type="category" default="1" + label="New posts" description="PARAMCATEGORY" /> + <param name="sectionid" type="section" default="0" + label="Edit posts" description="PARAMSECTION" /> + </params> +</install> \ No newline at end of file diff --git a/plugins/xmlrpc/index.html b/plugins/xmlrpc/index.html new file mode 100644 --- /dev/null +++ b/plugins/xmlrpc/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/plugins/xmlrpc/joomla.php b/plugins/xmlrpc/joomla.php new file mode 100644 --- /dev/null +++ b/plugins/xmlrpc/joomla.php @@ -0,0 +1,111 @@ +<?php +/** +* @version $Id: joomla.php 10381 2008-06-01 03:35:53Z pasamio $ +* @package Joomla +* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. +* @license GNU/GPL, see LICENSE.php +* Joomla! is free software. This version may have been modified pursuant +* to the GNU General Public License, and as distributed it includes or +* is derivative of works licensed under the GNU General Public License or +* other free or open source software licenses. +* See COPYRIGHT.php for copyright notices and details. +*/ + +// no direct access +defined( '_JEXEC' ) or die( 'Restricted access' ); + +jimport('joomla.plugin.plugin'); + +/** + * Joomla! Base XML-RPC Plugin + * + * @package XML-RPC + * @since 1.5 + */ +class plgXMLRPCJoomla extends JPlugin +{ + + /** + * Constructor + * + * For php4 compatability we must not use the __constructor as a constructor for plugins + * because func_get_args ( void ) returns a copy of all passed arguments NOT references. + * This causes problems with cross-referencing necessary for the observer design pattern. + * + * @param object $subject The object to observe + * @param object $params The object that holds the plugin parameters + * @since 1.5 + */ + function plgXMLRPCJoomla(& $subject, $config) + { + parent::__construct($subject, $config); + } + + /** + * Get available web services for this plugin + * + * @access public + * @return array Array of web service descriptors + * @since 1.5 + */ + function onGetWebServices() + { + global $xmlrpcString; + + // Initialize variables + $services = array(); + + // Site search service + $services['joomla.searchSite'] = array( + 'function' => 'plgXMLRPCJoomlaServices::searchSite', + 'docstring' => 'Searches a remote site.', + 'signature' => array(array($xmlrpcString, $xmlrpcString, $xmlrpcString)) + ); + + return $services; + } +} + +class plgXMLRPCJoomlaServices +{ + /** + * Remote Search method + * + * The sql must return the following fields that are used in a common display + * routine: href, title, section, created, text, browsernav + * + * @param string Target search string + * @param string mathcing option, exact|any|all + * @param string ordering option, newest|oldest|popular|alpha|category + * @return array Search Results + * @since 1.5 + */ + function searchSite($searchword, $phrase='', $order='') + { + global $mainframe; + + // Initialize variables + $db =& JFactory::getDBO(); + + // Prepare arguments + $searchword = $db->getEscaped( trim( $searchword ) ); + $phrase = ''; + $ordering = ''; + + // Load search plugins and fire the onSearch event + JPluginHelper::importPlugin( 'search' ); + $results = $mainframe->triggerEvent( 'onSearch', array( $searchword, $phrase, $ordering ) ); + + // Iterate through results building the return array + require_once(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_search'.DS.'helpers'.DS.'search.php'); + + foreach ($results as $i=>$rows) + { + foreach ($rows as $j=>$row) { + $results[$i][$j]->href = eregi('^(http|https)://', $row->href) ? $row->href : JURI::root().'/'.$row->href; + $results[$i][$j]->text = SearchHelper::prepareSearchContent( $row->text, 200, $searchword); + } + } + return $results; + } +} \ No newline at end of file diff --git a/plugins/xmlrpc/joomla.xml b/plugins/xmlrpc/joomla.xml new file mode 100644 --- /dev/null +++ b/plugins/xmlrpc/joomla.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<install version="1.5" type="plugin" group="xmlrpc"> + <name>XML-RPC - Joomla API</name> + <author>Joomla! Project</author> + <creationDate>November 2005</creationDate> + <copyright> + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + </copyright> + <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license> + <authorEmail>admin@joomla.org</authorEmail> + <authorUrl>www.joomla.org</authorUrl> + <version>1.0</version> + <description>Joomla! XML-RPC API</description> + <files> + <filename plugin="joomla">joomla.php</filename> + <filename>joomla/methods.php</filename> + </files> + <params /> +</install> \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 --- /dev/null +++ b/robots.txt @@ -0,0 +1,15 @@ +User-agent: * +Disallow: /administrator/ +Disallow: /cache/ +Disallow: /components/ +Disallow: /images/ +Disallow: /includes/ +Disallow: /installation/ +Disallow: /language/ +Disallow: /libraries/ +Disallow: /media/ +Disallow: /modules/ +Disallow: /plugins/ +Disallow: /templates/ +Disallow: /tmp/ +Disallow: /xmlrpc/ diff --git a/templates/beez/component.php b/templates/beez/component.php new file mode 100644 --- /dev/null +++ b/templates/beez/component.php @@ -0,0 +1,29 @@ +<?php +/** + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined( '_JEXEC' ) or die( 'Restricted access' ); +?> +<!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="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>"> +<head> + <jdoc:include type="head" /> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/beez/css/template.css" type="text/css" /> + +<?php if($this->direction == 'rtl') : ?> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/beez/css/template_rtl.css" type="text/css" /> +<?php endif; ?> +</head> +<body class="contentpane"> + <jdoc:include type="message" /> + <jdoc:include type="component" /> +</body> +</html> diff --git a/templates/beez/css/general.css b/templates/beez/css/general.css new file mode 100644 --- /dev/null +++ b/templates/beez/css/general.css @@ -0,0 +1,169 @@ +/* -- form validation */ +.invalid { border-color: #ff0000; } +label.invalid { color: #ff0000; } + +/* -- buttons */ +#editor-xtd-buttons { + padding: 5px; +} + +.button2-left, +.button2-right, +.button2-left div, +.button2-right div { + float: left; +} + +.button2-left a, +.button2-right a, +.button2-left span, +.button2-right span { + display: block; + height: 22px; + float: left; + line-height: 22px; + font-size: 11px; + color: #666; + cursor: pointer; +} + +.button2-left span, +.button2-right span { + cursor: default; + color: #999; +} + +.button2-left .page a, +.button2-right .page a, +.button2-left .page span, +.button2-right .page span { + padding: 0 6px; +} + +.page span { + color: #000; + font-weight: bold; +} + +.button2-left a:hover, +.button2-right a:hover { + text-decoration: none; + color: #0B55C4; +} + +.button2-left a, +.button2-left span { + padding: 0 24px 0 6px; +} + +.button2-right a, +.button2-right span { + padding: 0 6px 0 24px; +} + +.button2-left { + background: url(../images_general/j_button2_left.png) no-repeat; + float: left; + margin-left: 5px; +} + +.button2-right { + background: url(../images_general/j_button2_right.png) 100% 0 no-repeat; + float: left; + margin-left: 5px; +} + +.button2-left .image { + background: url(../images_general/j_button2_image.png) 100% 0 no-repeat; +} + +.button2-left .readmore { + background: url(../images_general/j_button2_readmore.png) 100% 0 no-repeat; +} + +.button2-left .pagebreak { + background: url(../images_general/j_button2_pagebreak.png) 100% 0 no-repeat; +} + +/* Tooltips */ +div.tooltip { + float: left; + background: #ffc; + border: 1px solid #D4D5AA; + padding: 5px; + max-width: 200px; +} + +div.tooltip h4 { + padding: 0; + margin: 0; + font-size: 95%; + font-weight: bold; + margin-top: -15px; + padding-top: 15px; + padding-bottom: 5px; + background: url(../images_general/selector-arrow.png) no-repeat; +} + +div.tooltip p { + font-size: 90%; + margin: 0; +} + +/* Caption fixes */ +.img_caption.left { + float: left; + margin-right: 1em; +} + +.img_caption.right { + float: right; + margin-left: 1em; +} + +.img_caption.left p { + clear: left; + text-align: center; +} + +.img_caption.right p { + clear: right; + text-align: center; +} + +/* Calendar */ +a img.calendar { + width: 16px; + height: 16px; + margin-left: 3px; + background: url(../images_general/calendar.png) no-repeat; + cursor: pointer; + vertical-align: middle; +} + +/* System Messages */ +#system-message +{ +margin:10px 0 20px 0; +padding: 0 !important; +background:#fff; +border:solid 0px; +} +#system-message dt { font-weight: bold; } +#system-message dd { margin: 0; font-weight: bold; text-indent: 0px;background:#fff;padding:0 } +#system-message dd ul { color: #93246F; margin-bottom: 10px; list-style: none; padding: 0px; border-top: 3px solid #93246F; border-bottom: 3px solid #93246F;} + +/* System Standard Messages */ +#system-message dt.message { display: none; } +#system-message dd.message { } +#system-message dd.message ul { background: #F2E3ED} + +/* System Error Messages */ +#system-message dt.error { display: none; } +#system-message dd.error { } +#system-message dd.error ul { color: #93246F; background: #F2E3ED ; border-top: 3px solid #93246F; border-bottom: 3px solid #93246F;margin:0} + +/* System Notice Messages */ +#system-message dt.notice { display: none; } +#system-message dd.notice { } +#system-message dd.notice ul { color: #93246F; background: #F2E3ED; border-top: 3px solid #93246F; border-bottom: 3px solid #93246F;} \ No newline at end of file diff --git a/templates/beez/css/ie7only.css b/templates/beez/css/ie7only.css new file mode 100644 --- /dev/null +++ b/templates/beez/css/ie7only.css @@ -0,0 +1,32 @@ +/** + * @version $Id: ie7only.css 10387 2008-06-03 10:59:16Z pasamio $ + * @author Design & Accessible Team ( Angie Radtke / Robert Deutz ) + * @package Joomla + * @subpackage Accessible-Template-Beez + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant to the + * GNU General Public License, and as distributed it includes or is derivative + * of works licensed under the GNU General Public License or other free or open + * source software licenses. See COPYRIGHT.php for copyright notices and + * details. + */ + +.contentdescription {height:1%} + +#right form.poll +{ + /* nur fuer IE-Win; + * definierte groe�e (height or witdh) + * fuer automatisches einbeziehen + * der Float-Container (auto-clearing); + * + * verbergen IE-Mac \*/ + height: 1%; + /* ende verbergen IE-Mac */ +} + +form.login input +{ + margin:0 0 0 -10px +} \ No newline at end of file diff --git a/templates/beez/css/ieonly.css b/templates/beez/css/ieonly.css new file mode 100644 --- /dev/null +++ b/templates/beez/css/ieonly.css @@ -0,0 +1,102 @@ +/** + * @version $Id: ieonly.css 10387 2008-06-03 10:59:16Z pasamio $ + * @author Design & Accessible Team ( Angie Radtke / Robert Deutz ) + * @package Joomla + * @subpackage Accessible-Template-Beez + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant to the + * GNU General Public License, and as distributed it includes or is derivative + * of works licensed under the GNU General Public License or other free or open + * source software licenses. See COPYRIGHT.php for copyright notices and + * details. + */ + + +#contentarea,#contentarea2 { width: expression(document . body . clientWidth > 980 ? "980px" : "auto"); } +#all { width: expression(document . body . clientWidth > 980 ? "980px" : "auto"); } +.leading ,#contentarea2, #main { zoom: 1; } +#all { padding: 0; } +#wrapper +{border:solid 0px; width:100%} +#main2 {height:550px; width:68%} +#main +{ + position: relative; + width: 98%; + margin: 0 0 0 22%; +} + +.article_row { zoom: 1; } + +.cols1 +{ + display: block !important; + width: 100%; +} + +#header +{ + width: auto; + border: solid 3px #fff; + height: 1%; +} + +#header form +{ + background: #CC3399; + width: 250px; + float: right; + height: 65px; + position: relative; + margin: 0 0px 0 -10px; +} + +#breadcrumbs +{ + background: #93246F; + height: 65px; + text-align: left; + padding-top: 5px; + margin: 0; +} + +.article_column { position: relative; } + +.cols2 +{ + width: 49%; + overflow: hidden; +} + +.blog_more ul { zoom: 1; } +form.search_result, form.registration, form.lost_password { zoom: 1; } +#right form.poll fieldset +{ margin: 0; } + +#right form.poll +{ + /* nur fuer IE-Win; + * definierte groe�e (height or witdh) + * fuer automatisches einbeziehen + * der Float-Container (auto-clearing); + * + * verbergen IE-Mac \*/ + height: 1%; + /* ende verbergen IE-Mac */ +} + +#right form.poll a , +#right form.poll .button { margin-top: 10px; } +.contentdescription { height: 1%; } +.contact form , .login_form , #page { zoom: 1; } +form.login input +{ + margin:0 0 0 -10px +} + +table.contenttoc +{font-size:1em !important;} + +table.contenttoc td , table.contenttoc th +{padding:3px !important } diff --git a/templates/beez/css/index.html b/templates/beez/css/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/css/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/css/layout.css b/templates/beez/css/layout.css new file mode 100644 --- /dev/null +++ b/templates/beez/css/layout.css @@ -0,0 +1,1467 @@ +/** + * @version $Id: layout.css 10387 2008-06-03 10:59:16Z pasamio $ + * @author Design & Accessible Team ( Angie Radtke ) + * @package Joomla + * @subpackage Accessible-Template-Beez + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant to the + * GNU General Public License, and as distributed it includes or is derivative + * of works licensed under the GNU General Public License or other free or open + * source software licenses. See COPYRIGHT.php for copyright notices and + * details. + */ +a:link,a:visited +{ + color:#000; +} + +a:hover,a:active,a:focus +{ + background:#000; + color:#FFF; +} + +h3 { + font-size:1.1em; + font-weight:bold; + margin:10px 0; +} + +h4 { + border:solid 0; + color:#000; + font-size:1em; +} + +input:focus { + border:solid 2px; +} + +fieldset { + border:0; +} + +ol.list { + list-style-position:inside; + margin:20px 0; + padding:0; +} + +ol.list li { + border-bottom:solid 1px #EFDEEA; + margin:10px 0; + padding:10px; + background:#FBF7FA; +} + +ol.list li h4 { + border-bottom:solid 0 #CCC; + color:#099; + display:inline; + margin:0 0 10px; +} + +p { + line-height:1.4em; + margin:5px 0; +} + +ul li a.u2:focus,p a.u2:active +{ + padding:0.5em; + background-color:#000; + color:#FFF; + display:inline; + height:2.5em; + left:0; + margin-top:0; + padding-left:15px; + position:absolute; + top:0; + width:13.8em; +} + +p.counter { + background:#EEE; + color:#000; + font-weight:bold; + margin:10px 0; + padding:5px; +} + +p.buttonheading { + text-align:right; +} + +.buttonheading img +{ + border:0; +} + +p.buttonheading a:link,p.buttonheading a:visited +{ + border:solid 2px #fff; +} + +.leading p.buttonheading a:link,.leading p.buttonheading a:visited +{ + border:solid 2px #EFDEEA; +} + +p.buttonheading a:hover +{ + background:none !important; + color:#000 !important; +} + +p.buttonheading a:active,p.buttonheading a:focus +{ + border:solid 2px; + color:#000; +} + +em +{ + font-weight:bold; +} + +/* ########### header content ############# */ +#header h1 +{ + font-size:1.5em; + font-weight:normal; + text-transform:uppercase; +} + +#logo +{ + font-size:1em !important; + font-weight:bold !important; + position:relative; + text-align:left; + text-transform:none !important; + z-index:0; + margin-top:1em; +} + +#logo img +{ + display:block; +} + +#logo span +{ + display:block; + margin:0 0 2px 100px !important; + border-bottom:solid 1px #666; +} + +/* Search box */ +#header form +{ + background:#C39; + border:solid 0 #000; + float:right; + height:5em; + min-width:240px; + text-align:left; + padding:0 0 0 20px; +} + +* html #header form +{ + height:65px; +} + +#header form fieldset +{ + border:0 solid #000; + display:inline; + float:left; + padding:19px; + text-align:left; + width:6em; +} + +#header form label +{ + color:#000; + position:absolute; + left:-3000px; + top:-200px; + width:auto; +} + +#header form .button +{ + background:url(../images/pfeil.gif) #000 no-repeat; + border:0; + color:#fff; + font-weight:bold; + margin:20px 10px 0 0; + padding:0px 5px 0px 30px; + cursor:pointer; +} + +#header form .inputbox +{ + background:#fff; + border:solid 2px #93246F; + font-weight:bold; + padding:0 0 0 2px; + margin:20px 10px 0 0 !important; + width:6em; +} + +#header form .inputbox:focus +{ + border:solid 2px #000; +} + +/* header Top-nav */ +#header #active_menu-nav +{ + background:#000; + color:#fff; +} + +#header ul +{ + background:#fff; + display:block; + margin:-7px 0 -2px; + padding:5px 0; + text-align:right; +} + +#header ul li +{ + background:#000; + color:#fff; + display:inline; + text-align:center; +} + +#header ul li a:link,#header ul li a:visited +{ + background:#fff; + color:#000; + font-weight:bold; + text-decoration:none; + border-right:solid 1px #666; + padding:5px 10px; + line-height:1.5em; +} + +#header ul li a:hover,#header ul li a:active,#header ul li a:focus +{ + background:#000; + color:#fff; + font-weight:bold; +} + +/* fontsize */ +#fontsize +{ + z-index:100; + position:absolute; + top:0; + right:0; + background:#fff; + color:#000; +} + +#fontsize h3,#fontsize p +{ + border:0; + display:inline; + font-size:1em; +} + +#fontsize p +{ + margin:0 0 0 5px; +} + +#fontsize p a +{ + font-weight:bold; + margin:0 5px; + display:inline; + padding:2px 0 2px 24px; +} + +/* background-images */ +#fontsize p a.larger { +background:#fff url(../images/lupe_larger.gif) no-repeat; +} + +#fontsize p a.smaller { +background:#fff url(../images/lupe_smaller.gif) no-repeat; +} + +#fontsize p a.reset { +background:#fff url(../images/lupe_reset.gif) no-repeat; +} + +#fontsize p a.larger:hover,#fontsize p a.larger:active,#fontsize p a.larger:focus { +background:#000 url(../images/lupe_larger_black.gif) no-repeat; +color:#fff; +} + +#fontsize p a.smaller:hover,#fontsize p a.smaller:active,#fontsize p a.smaller:focus { +background:#000 url(../images/lupe_smaller_black.gif) no-repeat; +color:#fff; +} + +#fontsize p a.reset:hover,#fontsize p a.reset:active,#fontsize p a.reset:focus { +background:#000 url(../images/lupe_reset_black.gif) no-repeat; +color:#fff; +} + +/* ################# breadcrumbs ################ */ +#breadcrumbs { +background:#93246F; +min-height:5em; +padding-top:0; +text-align:left; +color:#fff; +} + +#breadcrumbs p { +padding:5px; +display:inline; +} + +* html #breadcrumbs { +height:65px; +} + +#breadcrumbs a { +text-transform:none; +} + +#breadcrumbs a:link,#breadcrumbs a:visited { +background:#93246F; +color:#fff; +} + +#breadcrumbs span { +color:#fff; +font-size:0.9em; +padding:7px; +} + +#breadcrumbs span a:hover,#breadcrumbs span a:active,#breadcrumbs span a:focus { +background:#000; +color:#fff; +text-decoration:none; +} + +/* ################ left ######################## */ +#left form { +background:#EFDEEA; +color:#000; +font-size:0.9em; +margin:5px 0 20px 10px; +padding:20px 10px; +} + +#left h3,#right h3 { +color:#000; +font-family:trebuchet MS, sans-serif; +font-size:1.2em; +margin:0 0 0 5px; +padding:7px 5px 7px 10px; +border:solid 0; +} + +#left ul { +list-style-type:none; +margin:0 0 20px 10px; +} + + +#left ul li { +border:solid 1px #fff; +margin:0 0 2px; +} + +#left ul li a { +display:block; +padding:3px 4px 3px 10px; +text-decoration:none; +} + +#left ul li a:link,#left ul li a:visited { +background:#F2E3ED; +border-bottom:solid 1px #E0C1E0; +color:#000; +font-weight:normal; +} + +#left ul li a:hover,#left ul li a:active,#left ul li a:focus { +background:#333 !important; +color:#fff !important; +} + +/* ################## Main Menue ################## */ + +#left ul li ul { +background:#fff; +border:solid 1px #E0C1E0; +border-bottom:solid 0 #93246F; +border-left:solid 4px #93246F; +border-top:0; +margin:0; +} + +#left ul li ul li { +border:solid 1px #fff; +} + +#left ul li ul li { +margin:0; +} + +#left ul li ul li a:hover,#left ul li ul li a:active,#left ul li ul li a:focus { +background:#93246F; +color:#fff; +} + +#left ul li ul li ul { +border:solid 0 #E0C1E0; +padding:10px 0 10px 5px; +} + +#left ul li.active a:link,#left ul li.active a:visited { +background:#93246F; +border-left:solid 4px #BE7CA9; +color:#fff; +border-bottom:solid 1px #93246F; +padding:3px 0 3px 6px; +} + +#left ul li.active ul li a:link,#left ul li.active ul li a:visited { +background:#fff; +border-bottom:solid 1px #E0C1E0; +border-left:solid 0 #DD75BB; +color:#000; +font-weight:normal; +padding:3px 4px 3px 20px; +} + +#left ul li.active ul li ul li a:link,#left ul li.active ul li ul li a:visited { +background:#fff; +border-bottom:solid 1px #E0C1E0; +color:#000; +font-weight:normal; +margin:0 0 0 10px; +} + +#left ul li.active ul li.active a:link,#left ul li.active ul li.active a:visited { +background:#fff; +border-left:solid 0 #DD75BB; +color:#000; +font-weight:bold; +} + +#left ul li.active ul li.active ul li a:link,#left ul li.active ul li.active ul li a:visited { +background:url(../images/arrow.gif) #fff no-repeat top left; +color:#000; +font-weight:normal; +margin:0 0 0 15px; +padding:3px 0 3px 15px; +} + +#left ul li.active ul li.active ul li.active span.active_link { +background:url(../images/arrow.gif) #fff no-repeat top left; +border-bottom:solid 1px #E0C1E0; +color:#000; +font-weight:bold; +margin:0 0 0 15px; +padding:3px 0 3px 15px; +} + +#left form a:hover,#left form a:active,#left form a:focus { +color:#fff; +} + +/* ############### main * ########################### */ +/* position */ +.leading_separator { +border-bottom:solid 0 #333; +display:block; +height:10px; +margin:0; +} + +#main .leading h2,#main2 .leading h2 { +background:#EFDEEA; +border-bottom:solid 0 #333; +color:#93246F; +font-family:trebuchet MS, sans-serif; +font-size:1.4em; +font-weight:normal; +margin:0 0 10px; +text-transform:uppercase; +} + +#main h2 a,#main2 h2 a { +text-decoration:none; +} + +#main .leading .readon,#main2 .leading .readon { +background:url(../images/pfeil.gif) #93246F no-repeat; +border:solid 0; +bottom:0; +color:#FFF !important; +display:block !important; +margin-top:20px !important; +position:absolute; +right:0; +text-decoration:none; +padding:2px 2px 0 30px; +} + +#main .leading .small,#main .leading .modifydate,#main2 .leading .small,#main2 .leading .modifydate { +background:#EFDEEA; +color:#93246F; +} + +.article_column h2 { +background:#fff; +color:#000 !important; +font-family:trebuchet MS; +font-size:1.2em !important; +font-weight:bold !important; +padding:0; +} + +.article_row .column1 h2,.article_row .column2 h2 { +background:#fff; +border-bottom:solid 1px #D4A7C5; +color:#000; +margin:0 0 10px; +padding:5px 5px 5px 0; +} + +.article_row p.iteminfo { +background:#fff; +line-height:1em; +margin:0 -10px 5px; +padding:10px; +} + +#main h3,#main2 h3 { +margin:20px 0 10px; +} + +#main .blog_more h2,#main2 .blog_more h2 { +background:#fff; +color:#93246F; +font-family:trebuchet MS, sans-serif; +font-size:1.3em; +font-weight:normal; +margin:0; +} + +#main .blog_more li a,#main2 .blog_more li a { +display:inline; +margin:0; +padding:0; +} + +#main .blog_more li,#main2 .blog_more li { +padding:4px; +} + +#main .blog_more ul li a,#main2 .blog_more ul li a { +background:url(../images/pfeil.gif) no-repeat; +font-weight:bold; +padding:2px 0 4px 30px; +} + +#main .blog_more ul li a:hover,#main2 .blog_more ul li a:hover { +background:url(../images/pfeil.gif) #939 no-repeat !important; +color:#fff; +font-weight:bold; +padding:2px 0 2px 30px; +} + +#main .blog_more ul li a:active,#main2 .blog_more ul li a:active,#main .blog_more ul li a:focus,#main2 .blog_more ul li a:focus { +background:url(../images/pfeil.gif) #939 no-repeat !important; +color:#fff; +font-weight:bold; +padding:2px 0 2px 30px; +} + +#main .blog_more ul,#main2 .blog_more ul { +background:#eee; +border:solid 1px #ccc; +color:#000; +line-height:1.3em; +list-style-type:none; +margin:0; +padding:10px 10px 30px; +} + +#main .blog_more,#main2 .blog_more { +padding-top:10px; +} + +/* main generell */ +#main a.readon,#main2 a.readon { +background:url(../images/pfeil.gif) no-repeat; +font-weight:bold; +padding:2px 2px 0 30px; +display:inline-block; +} + +#main a.readon:hover,#main2 a.readon:hover,#main a.readon:active,#main2 a.readon:active,#main a.readon:focus,#main2 a.readon:focus { +background:url(../images/pfeil.gif) #000 no-repeat; +color:#fff; +padding:2px 2px 0 30px; +text-decoration:none; +} + +#main a:link,#main2 a:link,#main a:visited,#main2 a:visited { +color:#000; +} + +#main a:hover,#main2 a:hover,#main a:active,#main2 a:active,#main a:focus,#main2 a:focus { +background:#93246F; +color:#fff; +} + +#main h1,#main2 h1 { +color:#000; +font-family:trebuchet MS, sans-serif; +font-size:1.6em; +font-weight:normal; +margin:0; +} + +#main h2,#main2 h2 { +color:#93246F; +font-family:trebuchet MS, sans-serif; +font-size:1.6em; +font-weight:normal; +} + +#main ul li,#main2 ul li { +padding:0 0 0 10px; +line-height:1.4em; +margin:10px 0; +} + +#main ul,#main2 ul { +list-style-position:outside; +list-style-type:square; +padding:0 0 0 10px; +margin:0 0 0 20px; +} + +#main ul,#main ol { +list-style-position:inside; +margin:10px 0 10px 20px; +padding:0 0 0 10px; +} + +.small { +border:solid 0; +color:#932467; +font-size:0.85em; +margin:0 0 20px; +} + +.contentdescription { +padding:10px 0; +overflow:hidden; +} + +.image_left { +float:left; +border:solid 0 #ccc; +margin:0 10px 10px 0; +} + +.image_right { +float:right; +border:solid 1px #ccc; +margin:0 0 10px 10px; +} + +.wrap_image { +clear:left; +} + +.createdate { +color:#932467; +display:block; +font-size:0.85em; +} + +.createdby { +color:#932467; +display:block; +font-size:0.85em; +padding:0 0 0 2px; +} + +.modifydate { +color:#932467; +display:block; +font-size:0.85em; +padding:0; +} + +span.content_rating,.leading span.content_rating { +margin:10px 0 0; +display:block; +} + +.content_vote { +margin:0 0 10px; +display:block; +} + +.content_vote input { +margin:0 5px; +} + +.content_vote .button { +background:url(../images/pfeil.gif) #000 no-repeat; +border:0; +color:#fff; +font-weight:bold; +margin:20px 10px 0 0; +padding:0 0 0 30px; +cursor:pointer; +} + +/* ############# pagination ###################### */ +#main2 .pagination,#main .pagination { +border-top:solid 1px #CCC; +margin:10px 0 0; +padding:10px 0; +} + +ul.pagination { +list-style-type:none; +margin:0; +padding:0; +text-align:left; +} + +ul.pagination li { +display:inline; +padding:2px 5px 0; +text-align:left; +} + +ul.pagination li a { +padding:2px; +} + +/* ############### right ################# */ +#right .moduletable { +background:#fff; +color:#000; +margin:10px 0; +padding:10px; +} + +#right h3 { +background:#fff; +border-bottom:solid 1px #D4A7C5; +color:#333; +margin:0 0 3px; +padding:0 5px 0 0; +} + +#right h4 { +color:#000; +font-size:1em; +padding:10px 5px 0 0; +margin:0; +border:solid 0; +} + +#right ul { +border:solid 0 #ccc; +color:#000; +line-height:1.4em; +list-style-type:none; +margin:0; +padding:10px 10px 10px 0; +position:relative; +} + +#right ul li { +margin-bottom:4px; +} + +#right ul li a { +color:#000; +font-weight:normal; +padding:2px; +} + +#right ul li a:link,#right ul li a:visited { +color:#000; +} + +#right ul li a:hover,#right ul li a:active,#right ul li a:focus { +background:#93246F; +color:#fff; +} + +#right form.poll { +padding:10px 0 0; +} + +#right form.poll fieldset { +line-height:1.6em; +} + +#right form.poll fieldset label { +padding:0 0 0 4px; +} + +#right form.poll .button { +border:outset 1px #C39; +background:#F2E3ED; +cursor:pointer; +float:left; +width:auto; +line-height:0.9em; +display:inline; +height:1.55em; +font-size:1em; +overflow:visible; +margin:0 10px 0 0; +padding:0 2px !important; +} + +#right form.poll .button:focus { +border:outset 1px #C39; +} + +#right form.poll a { +text-decoration:none; +color:#000 !important; +padding:1px 2px !important; +border:outset 1px #C39; +background:#F2E3ED; +cursor:pointer; +float:left; +} + +#right form.poll a:hover,#right form.poll a:active,#right form.poll a:focus,#right form.poll .button:hover,#right form.poll .button:active,#right form.poll .button:focus { +border:2px outset #C39; +} + +#right form.poll:after { +/* Inhalt pseudo-Element :after; + * somit [clear] moeglich + */ +content:"."; +/* [content] verbergen; + */ +visibility:hidden; +height:0; +/* Block-Level fuer [clear]; + */ +display:block; +/* [float] clearing; + * einbeziehen der Float-Container; + */ +clear:both; +} + +dl.poll { +} + +dl.poll dt { +border-bottom:solid 1px #ccc; +} + +dl.poll dd { +padding:6px 0; +font-weight:bold; +} + +.polls_color_1 { +background:#000; +} + +.polls_color_2 { +background:#999; +} + +.polls_color_3 { +background:#93246F; +} + +.polls_color_4 { +background:#000; +} + +.polls_color_5 { +background:#ccc; +} + +.polls_color_6 { +background:#93246F; +} + +/* #################### Formulare ##################### */ +form.limit { +} + +form.login { +background:#93246F; +color:#000; +font-size:0.9em; +margin:5px 0 20px; +padding:10px 10px 20px 15px; +text-align:left; +} + +form.login .inputbox:focus { +border:solid 2px #000; +} + +form.login p { +clear:both; +border:solid 0 #000; +font-size:1em; +} + +form.login .button { +background:url(../images/pfeil.gif) #C39 no-repeat; +clear:left; +color:#fff; +display:block; +font-weight:bold; +margin:0 0 10px !important; +padding:0 0 0 30px !important; +cursor:pointer; +border:solid 0; +} + +form.login fieldset { +border:solid 0 #000; +margin:0; +padding:0; +text-align:left; +} + +form.login input { +background:#fff; +border:solid 2px #C39; +color:#000; +padding:2px 2px 0; +width:90%; +} + +form.login input.checkbox { +background:none; +border:solid 0 #000; +float:left; +margin:11px 0 0; +padding:5px; +width:20px; +} + +form.login label { +color:#000; +display:block; +font-weight:bold; +margin:5px 0 0; +padding:2px 2px 0; +} + +form.login label.remember { +float:left; +margin:5px 0 20px; +padding:5px 0 0; +width:11em; +} + +form.login p { +color:#000; +} + +form.login p a { +color:#000; +} + +form.login p a:hover,form.login p a:active,form.login p a:focus { +color:#000; +text-decoration:none; +} + +form.lost_password .button,.login_form .button { +background:url(../images/pfeil.gif) #000 no-repeat; +border:0; +color:#fff; +font-weight:bold; +margin:0; +padding:0 0 0 30px; +cursor:pointer; +} + +/* ################# poll ################ */ +.poll { +padding:20px 20px 20px 0; +} + +form.poll fieldset { +border:0 solid #000; +margin:0 0 10px; +padding:0; +} + +form.registration input,form.lost_password input,.login_form input { +border:solid 2px #93246F; +} + +form.registration label,form.lost_password label,.login_form label { +display:block; +float:left; +font-weight:normal; +width:12em; +} + +/* ##################### form.registration ################ */ +form.search_result,form.registration,form.lost_password,.login_form { +background:#fff; +border:solid 0 #93246F; +margin:15px 10px 0; +padding:0; +position:relative; +} + +.search_result .button,form.registration .button { +background:url(../images/pfeil.gif) #000 no-repeat; +border:0; +color:#fff; +font-weight:bold; +margin:10px 0 0; +padding:0 5px 0 30px; +cursor:pointer; +} + +.registration fieldset p { +margin:10px 0; +} + +.registration div,.login_form div,.lost_password div { +margin:5px 0; +} + +/* ########################## search ############################ */ +.searchintro { +font-weight:normal; +margin:0 0 20px; +} + +.searchintro img { +display:inline; border:0px +} + +.display { +margin:20px 0 0; +text-align:right; +} + +.filter { +margin:10px 0 0; +} + +.inputbox:focus { +border:solid 2px #000; +} + +.highlight { +font-weight:bold; +} + +fieldset.word,fieldset.only { +border:solid 1px #ccc; +} + +.only { +border:solid 0; +margin:10px 0 0 10px; +padding:5px 10px; +line-height:1.3em; +} + +.word { +background:#fff; +padding:10px 10px 10px 0; +border:solid 0 !important; +} + +.word input { +background:#fff; +border:solid 2px #999; +color:#93246F; +font-weight:bold; +margin:0 0 0 10px; +padding:2px; +} + +.phrase { +color:#000; +margin:10px 10px 10px 0; +padding:10px; +width:60%; +border:solid 1px #ccc; +float:left; +} + +/*Selects*/ +.phrase .inputbox { +background:#fff; +color:#000; +display:block; +height:1.5em; +margin-top:10px; +width:12em; +} + +.phrase .inputbox option { +background:#EFDEEA; +border-bottom:solid 1px #333; +padding:2px; +} + +.phrase .inputbox option a:hover { +background:#C00; +border-color:#CFD0D6; +color:#fff; +} + +.search_result legend { +border-bottom:solid 0 #000; +background:#fff; +} + +/* ########################### contacts ########################### */ +div.contact { +margin:10px 0; +} + +address { +font-style:normal; +margin:10px 0; +} + +address p { +line-height:1em; +} + +.contact label { +float:left; +font-weight:bold; +width:14em; +margin:10px 0 0; +} + +span.marker { +margin:0 10px 0 0; +} + +.contact_email_checkbox label { +float:none !important; +} + +.contact label.copy { +width:90%; +padding:0 0 0 10px; +} + +.contact form { +background:#EFDEEA; +color:#000; +padding:20px; +margin:10px 0; +} + +.contact input { +background:#fff; +border:solid 2px #C39; +color:#000; +padding:2px 2px 0; +margin:10px 0 0; +} + +.contact .button { +background:url(../images/pfeil.gif) #000 no-repeat; +border:0; +color:#fff; +font-weight:bold; +margin:20px 10px 0 0; +padding:0 0 0 30px; +cursor:pointer; +} + +label.textarea { +float:none !important; +margin:10px 0; +display:block; +width:100%; +} + +#contact_text { +width:80%; +height:150px; +} + +.contact input.invalid,.contact textarea.invalid { +border:solid 2px red; +} + +.contact label.invalid { +color:red; +} + +/*#################### tabellen ############################ */ +table.newsfeed { +border:solid 1px; +} + +table.newsfeeds td,table.weblinks td,table.category td { +border-right:solid 1px #EEE; +padding:5px; +} + +table.newsfeeds th,table.weblinks th,table.category th { +background:#EEE; +padding:5px; +} + +table.newsfeeds,table.weblinks,table.category { +border:solid 1px #eee; +font-size:1em; +margin:20px 0; +} + +/* category table */ +#count { +width:10%; +} + +#tableOrdering { +width:70%; +} + +#author { +width:20%; +} + +/* polls */ +poll .polls_color_1,.poll .polls_color_2,.poll .polls_color_3,.poll .polls_color_4,.poll .polls_color_5 { +border:solid 1px; +position:relative; +} + +.poll h3 { +color:#932467; +border:solid 0; +margin:20px 0; +} + +.poll .td_2 { +width:100px; +} + +.poll .td_3 { +width:300px; +} + +.poll form { +margin:20px 0; +} + +.poll table { +font-size:1em; +width:auto; +border:solid 0; +position:relative; +} + +.poll table .td_1 { +width:30px; +} + +.poll table caption { +color:#93246F; +font-size:1em; +font-weight:bold; +margin:10px 0; +text-align:left; +} + +.poll td { +border:solid 1px #ddd; +padding:2px; +} + +.poll td.line { +width:300px; +} + +.poll th { +background:#EEE; +border:solid 1px #ccc; +} + +.question { +font-weight:bold; +} + +#footer { +background:#93246F; +color:#fff; +padding:5px; +text-align:right; +border-top:solid 4px #ccc; +} + +p.syndicate { +float:left; +display:block; +text-align:left; +} + +#footer a { +color:#fff; +} + +/* Error Message contact form */ +p.error { +color:#93246F; +background:#F2E3ED; +border-top:3px solid #93246F; +border-bottom:3px solid #93246F; +padding:10px; +} + +body.contentpane { +background:#fff; +width:auto; +margin:10px; +line-height:1.4em; +text-align:left; +} + +.tool-tip { +font-size:0.8em; +} + +.tool-title { +font-weight:bold; +} + +/* form validation */ +.invalid { +border-color:red !important; +} + +label.invalid { +color:red; +} + +/* editor */ +.contentpaneopen_edit{ + float: left; +} + +.contentpaneopen_edit img +{ border:0 +} + +form.editor legend { +font-size:1.2em; +font-weight:bold; +padding:2px; +} + +form.editor fieldset { +border:solid 1px #ccc; +padding:20px; +margin:10px 0; +} + +form.editor .publishing label { +float:left; +width:14em; +font-weight:bold; +} + +form.editor .publishing div { +margin:5px 0; +} + +form.editor .publishing .radio label { +float:none; +width:14em; +} + +form.editor .publishing .radio label span { +float:left; +width:14em; +} + +form.editor fieldset.metadata label { +float:none !important; +display:block; +font-weight:bold; +} + +.save { +text-align:right; +padding:10px 0; +} + +/* user */ +form.user { +margin:10px 0; +} + +form.user label { +width:40%; +float:left; +} + +/* article index */ +table.contenttoc { +border:solid 1px #ccc; +padding:10px; +margin:10px; +} + +.pagenavcounter { +font-weight:bold; +} + + + +/* Advertisement */ + +.moduletable_text +{margin:10px} + +.banneritem_text +{ +margin: 10px 0 10px 0; +background:#f5f5f5; +padding:5px; +border:solid 1px #eee +} \ No newline at end of file diff --git a/templates/beez/css/position.css b/templates/beez/css/position.css new file mode 100644 --- /dev/null +++ b/templates/beez/css/position.css @@ -0,0 +1,226 @@ +/** + * @version $Id: position.css 10387 2008-06-03 10:59:16Z pasamio $ + * @author Design & Accessible Team ( Angie Radtke / Robert Deutz ) + * @package Joomla + * @subpackage Accessible-Template-Beez + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant to the + * GNU General Public License, and as distributed it includes or is derivative + * of works licensed under the GNU General Public License or other free or open + * source software licenses. See COPYRIGHT.php for copyright notices and + * details. + */ + +* +{ + margin: 0; + padding: 0; +} + +body +{ + background: #F2E3ED; + color: #000000; + font-family: arial, helvetica, sans-serif; + font-size: 100.1%; + padding: 0px; + text-align: center; +} + +/* ################ Position ################ */ +#all +{ + background: #FFFFFF; + border: solid 1px #DBB0CD; + color: #000000; + font-size: 0.8em; + margin: 0 auto; + max-width: 1000px; + padding: 0 3px 3px 3px; + text-align: left; +} + +#page { } + +#header +{ + background: #fff; + color: #000000; + margin: 0; + position: relative; + text-align: right; + border-bottom: solid 4px #ccc; +} + +#contentarea,#contentarea2 +{ + border: solid 0px #000; + margin: 0; + padding: 0px 0px 0px 0px; + position: relative; + overflow: hidden; +} +#wrapper { margin: 0 0 0 21%} +#left +{ + background: #FFFFFF; + border-right: solid 0px #EEEEEE; + float: left; + margin: 20px 0 0 0; + width: 21%; +} + +#right +{ + color: #000; + float:left; + width: 28%; + padding-top:10px + +} + +#main2 +{ + background: #fff; + width:64%; + padding: 25px 20px 20px 20px; + position: relative; + min-height:520px; + float:left; + + +} + +#main +{ + background: #fff; + margin: 0 0px 0 0; + padding: 25px 20px 20px 20px; + position: relative; +} + +/* ###################### generell ###################### */ +.unsichtbar,.u2,.invisible , .unseen +{ + display: inline; + height: 0px; + left: -3000px; + position: absolute; + top: -2000px; + width: 0px; + z-index: 200; +} + +.wrap +{ + border: 0; + clear: both; + float: none; + font-size: 1px; + height: 0; + line-height: 1px; + margin: 0; + padding: 0; + visibility: hidden; +} + +#logo +{ + font-size: 1em !important; + font-weight: bold !important; + position: relative; + text-align: left; + text-transform: none !important; + z-index: 0; + margin-top: 1em; +} + +#logo img { display: block; } + +#logo span +{ + display: block; + margin: 0px 0 0 100px !important; + border-bottom: solid 1px #666; +} + +/* ############### main * ########################### */ +/* position */ +.leading +{ + background: #EFDEEA url(../images/biene.gif) no-repeat top left; + border: solid 1px #CCCCCC; + color: #000000; + margin: 30px 0px 10px 0px; + padding: 20px 20px 40px 120px; + position: relative; +} + +.leading_separator +{ + border-bottom: solid 0px #333333; + display: block; + height: 10px; + margin: 0 0 0px 0; +} + +.article_separator +{ + border: solid 1px #333333; + display: none; + margin: 0px 0 0px 0; +} + +.blog { padding: 0; } + +.cols1 +{ + display: block; + float: none !important; + margin: 0 !important; +} + +.cols2 { width: 45%; } +.cols3 { width: 30%; } + +.column1 , .column2 +{ + border: solid 0px #D4A7C5; + margin: 0 5px 0 0; + position: relative; +} + +.column2 , .column1 +{ + float: left; + margin: 0; +} + +.column2 +{ + float: right; + margin: 0; + width: 45%; +} + +.article_row +{ + margin: 0px 0 0px 0; + padding: 0; + overflow: hidden; +} + +.article_column +{ + border: solid 0px #ccc; + padding: 10px 10px 10px 0; +} + +.row_separator2 +{ + display: block; + clear: both; + margin: 0; + border: solid 0px; +} \ No newline at end of file diff --git a/templates/beez/css/print.css b/templates/beez/css/print.css new file mode 100644 --- /dev/null +++ b/templates/beez/css/print.css @@ -0,0 +1,89 @@ +/** + * @version $Id: print.css 10387 2008-06-03 10:59:16Z pasamio $ + * @author Design & Accessible Team ( Angie Radtke / Robert Deutz ) + * @package Joomla + * @subpackage Accessible-Template-Beez + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant to the + * GNU General Public License, and as distributed it includes or is derivative + * of works licensed under the GNU General Public License or other free or open + * source software licenses. See COPYRIGHT.php for copyright notices and + * details. + */ + + +h1 +{ + font-size: 16pt; + font-weight: bold; + color: #000; + background: inherit; + margin: 0.4em 0 0.5em 0; +} + +h2 +{ + font-size: 14pt; + font-weight: bold; + color: #333; + background: inherit; + margin: 0.2em 0 0.5em 0; + padding: 0.3em 0.3em 0.3em 0; +} + +h3 +{ + font-size: 12pt; + font-weight: bold; + margin: 0.4em 0 0.3em 0; +} + +/* Vermeidung von Seitenumbr�chen direkt nach einer �berschrift */ +h1,h2,h3 { page-break-after: avoid; } + +a +{ + color: #93246F; + font-weight: bold; +} + +.unsichtbar , p .u2 { display: none; } +#header { width: auto; } +.buttonheading {display:none} +#header form ,.pagination , #footer , p.counter , .unseen +{ display: none; +} +#header ul, #right form { display: none; } +#breadcrumbs , #left , #fontsize { display: none; } +#main2 { margin: 0%; } +#all {text-align:left} +#right +{ + display: block; + position: static !important; +} + +#main2:before +{ + content: " content "; + color: #888; + display: block; + background-color: inherit; + font-weight: bold; + font-size: 1.5em; + border-bottom: 1px #000 solid; + margin-bottom: 1em; +} + +#right:before +{ + content: " additional information "; + color: #888; + display: block; + background-color: inherit; + font-weight: bold; + font-size: 1.5em; + border-bottom: 1px #000 solid; + margin-bottom: 1em; +} \ No newline at end of file diff --git a/templates/beez/css/template.css b/templates/beez/css/template.css new file mode 100644 --- /dev/null +++ b/templates/beez/css/template.css @@ -0,0 +1,68 @@ +/** + * @version $Id: template.css 10498 2008-07-04 00:05:36Z ian $ + * @author Design & Accessible Team ( Angie Radtke / Robert Deutz ) + * @package Joomla + * @subpackage Accessible-Template-Beez + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant to the + * GNU General Public License, and as distributed it includes or is derivative + * of works licensed under the GNU General Public License or other free or open + * source software licenses. See COPYRIGHT.php for copyright notices and + * details. + */ + + + + + +body +{ + background: #fff; + color: #000000; + font-family: arial, helvetica, sans-serif; + font-size: 100.1%; + padding: 0px; + text-align: center; +} + + + +body.contentpane { + +width : auto; +margin : 10px; +line-height : 1.4em; +text-align: left; +} + +/* TOC */ +table.contenttoc{ + float: right; +} + +/* Tooltips */ +.tool-tip { + float: left; + background: #ffc; + border: 1px solid #D4D5AA; + padding: 5px; + max-width: 200px; + text-align:left; +} + +.tool-title { + padding: 0; + margin: 0; + font-size: 100%; + font-weight: bold; + margin-top: -15px; + padding-top: 15px; + padding-bottom: 5px; + background: url(../../system/images/selector-arrow.png) no-repeat; +} + +.tool-text { + font-size: 100%; + margin: 0; +} \ No newline at end of file diff --git a/templates/beez/css/template_rtl.css b/templates/beez/css/template_rtl.css new file mode 100644 --- /dev/null +++ b/templates/beez/css/template_rtl.css @@ -0,0 +1,363 @@ +/** + * @version $Id: template_rtl.css 10571 2008-07-21 01:27:35Z pasamio $ + * @package Joomla + * @subpackage Accessible-Template-Beez + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant to the + * GNU General Public License, and as distributed it includes or is derivative + * of works licensed under the GNU General Public License or other free or open + * source software licenses. See COPYRIGHT.php for copyright notices and + * details. + */ + + /** + * Joomla! 1.5 Beez template RTL css file + * + * @author Mati Kochen /Angie Radtke + * @package Joomla + * @since 1.5 + * @version 1.0 + */ + +body{ + direction: rtl; +} + +p{ + text-align: right; +} + +/* Font Size */ +#fontsize { + right: auto; + left: 0; + padding: 4px 0; +} + +#fontsize h3 { + margin: 0; + padding: 0; +} + +#fontsize p { + margin: 0 5px 0 0; + padding: 0; +} + +#fontsize p a { + display: -moz-inline-box; + padding: 0 24px 0 0; + zoom: 1; +} + +/* Font Size Background Images */ +#fontsize p a.larger { background: #fff url(../images/lupe_larger.gif) right no-repeat; } +#fontsize p a.smaller { background: #fff url(../images/lupe_smaller.gif) right no-repeat; } +#fontsize p a.reset { background: #fff url(../images/lupe_reset.gif) right no-repeat; } +#fontsize p a.reset:hover, #fontsize p a.reset:active, #fontsize p a.reset:focus, +#fontsize p a.smaller:hover, #fontsize p a.smaller:active, #fontsize p a.smaller:focus, +#fontsize p a.larger:hover, #fontsize p a.larger:active, #fontsize p a.larger:focus { background-position:right; } + +#logo {text-align:right} +#logo span{ + margin: 0 100px 2px 0 !important; + text-align: right; +} + +#header {overflow:hidden } + +#header ul{ + text-align: left; +} + +#header ul li{ + background: none; +} + +#header ul li a:link, +#header ul li a:visited +{ + border-right: solid 1px #666 !important; + display: -moz-inline-box; + zoom:1 +} + +body #header ul { + padding-top: 3px; + margin-bottom: -5px; +} + +#header form{ + float: left !important; + text-align: right; + margin: 0 -10px 0 0 !important; +} + +#header form .inputbox { + padding:0 2px 0 0; + margin-right: 20px !important; +} + +#header form .button{ + margin:20px 0 0 10px; + padding:0 30px 0 5px; + background: #000000 url(../images/pfeil_rtl.gif) no-repeat scroll 100% +} + +#breadcrumbs{ + text-align: right !important; + margin:0 0 0 -10px !important; +} + +#wrapper { + margin:0 21% 0 0; +} + +#main2{ + float: right; +} + +#left{ + float: right; +} + +#right{ + right: auto; + left: 0; + float: right; +} + +#left h3{ + margin:0 5px 0 0; + padding:7px 10px 7px 5px; +} + +#right h3{ + padding: 0 0 0 5px; +} + +#all{ + text-align: right; +} + +p.buttonheading{ + text-align: left; +} + +.leading{ + padding: 20px 120px 40px 20px; + background: #EFDEEA url(../images/biene_rtl.gif) no-repeat scroll right top; +} + +.leading div{ + text-align: right; +} + +form.login fieldset{ + text-align: right; +} + +form.login label.remember, form.login input.checkbox{ + float: right; +} + +form.login .button{ + clear: right; + background: #CC3399 url(../images/pfeil_rtl.gif) no-repeat scroll right; + padding: 0 30px 0 0 !important; +} + +#main ul li, #main2 ul li { + padding:0 20px 0 0; + text-align: right !important; +} + +/* ie7 fix for list elements with count of articles */ +#main ul li a , +#main2 ul li a +{ + display:inline-block; +} +/* end fix */ + + +#main ul, #main2 ul { + margin:0 20px 0 0; + padding:0 10px 0 0; +} + +#main ul, #main ol { + margin:10px 20px 10px 0; + padding:0 10px 0 0; +} + +#main .leading .readon, #main2 .leading .readon{ + background: #93246F url(../images/pfeil_rtl.gif) no-repeat scroll right; + padding: 2px 30px 0 2px; + right: auto; + left: 0px !important; + position: absolute; + text-align: right; +} + +#main a.readon:hover, #main2 a.readon:hover, #main a.readon:active, #main2 a.readon:active, #main a.readon:focus, #main2 a.readon:focus { + background:#000000 url(../images/pfeil_rtl.gif) no-repeat scroll right; + padding:2px 30px 0 2px; +} + +#main a.readon, #main2 a.readon { + background:transparent url(../images/pfeil_rtl.gif) no-repeat scroll right; + padding:2px 30px 0 2px; + display: table-cell; +} + +#right form.poll fieldset label{ + padding: 0 4px 0 0; +} + +#right form.poll fieldset input{ + float:right; +} + +#right ul{ + padding: 10px 0 10px 10px; + zoom:1 +} + +#left ul{ + margin: 0 10px 20px 0; +} + +#left ul li.active a:link, #left ul li.active a:visited { + border-left: none; + border-right:4px solid #BE7CA9; + padding:3px 6px 3px 0; +} + + + +#left ul li ul { + border-width:0 4px 0 1px; +} + +#left ul li.active ul li a:link, #left ul li.active ul li a:visited{ + border-left: none; + border-right: 0 solid #DD75BB; + padding: 3px 20px 3px 4px; +} + +#left ul li ul li ul{ + padding: 10px 5px 10px 0; +} + +#left ul li.active ul li.active ul li a:link, +#left ul li.active ul li.active ul li a:visited{ + background: #FFFFFF url(../images/arrow_rtl.gif) no-repeat scroll right top; + margin: 0 15px 0 0; + padding:3px 15px 3px 0; +} + +ul.pagination{ + overflow:hidden; +} + +ul.pagination li { + padding: 2px 5px 2px 5px; + float:right ; + font-size:1em; + width:auto +} + +ul.pagination a +{ + display:inline !important; + margin:0 !important; + padding:0px !important; +} + +#footer p{ + float: left; +} + +#footer p.syndicate{ + float: right; +} + +form.user label{ + float: right; +} + +/* edit button */ +.contentpaneopen_edit{ + float: right; +} + +form.editor .publishing .radio label span , +form.editor .publishing label{ + float: right; +} + +table.contenttoc{ + float: left; +} + +#main .blog_more ul, #main2 .blog_more ul{ + padding: 10px 0 30px 10px; +} + +#main .blog_more ul li a, #main2 .blog_more ul li a { + background:transparent url(../images/pfeil_rtl.gif) no-repeat scroll right center; + padding:2px 30px 4px 30px !important; + display: table-cell; +} + +#main .blog_more ul li a:active, #main2 .blog_more ul li a:active, #main .blog_more ul li a:focus, #main2 .blog_more ul li a:focus { + background:#993399 url(../images/pfeil_rtl.gif) no-repeat scroll right !important; + padding:2px 30px 2px 0; +} + +#main .blog_more ul li a:hover,#main2 .blog_more ul li a:hover { + background:#939 url(../images/pfeil_rtl.gif) no-repeat right !important; + padding:2px 30px 2px 0; +} + +form.search_result, form.registration, form.lost_password, .login_form{ + margin: 15px 0 0 10px; +} + +.search_result .button, form.registration .button { + background:#000000 url(../images/pfeil_rtl.gif) no-repeat scroll 100%; + padding:0 30px 0 5px; +} + +.phrase{ + float: right; + margin: 10px 0 10px 10px; +} + +.only { + float: right; + margin:10px 10px 0 0; +} + +.only input{ + float: right; + margin:0 0 0 10px; +} + +form.registration label, form.lost_password label, .login_form label{ + float: right; +} + +.column2, .column1{ + float: right; +} + +.column2{ + float: left; +} + +.article_column{ + padding: 10px 0 10px 10px; +} \ No newline at end of file diff --git a/templates/beez/favicon.ico b/templates/beez/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3925be4f9ceb5e872ed489f7260c9714d979ee36 GIT binary patch literal 1150 zc$}5fUr19?90%|tcO{!{&HcIQ-LBhQU0q?jaMKcV3KpW3mRR9Nx+xQfwb@*fWF_H4 zMiBk?DWR|)46aEOBK}Q$l?)_`AnL6ieCjFX+qn}jE_%>&`P_5P?{~g%UJfB?^fMX> z{X0p!h7gtzQb5rXt*qBKhACs+=AqGOyp&8~i<GloC7Yg}?xj{JY?G4l>U27pLI(B3 z&)_ko?ElAVoug(q*JQn355-`B!EB6RzKh^u<xW)X*TP`XBQw(ulc@z}^8i?OjjmVe zJcW&%(P&H>Jg>pekw$#H#bMzx!Iygi<aP!;Hw%*$uv!4A1PERNa&o5BoY`zv_0+Ri zxI$3vF`&Lq!jC}-uOnL6vX3Im6i1#55XIh<49l{rx`Vs0)Jah6vw?Zlh~u}*@VS@4 zyXX#j*KP!wfuf@FlnlplDz`lc-5~>V$NeatXvS{Qi5kg**0Oephk#IcJmtKC=XsSa z-vzVWgy5%#D7d=}M`;Z#mJm34?~2A>u*KehceqkAPN!4FHi)QP>_O?t)9~I|hIix- zvJZbnp7kvpRbdFjfUD$0O2+MWtN26(xXC8in?%_CJ~T}HM)??!UD<}cZ4V$k1NH>^ zQ!;`eB-tO;!ZdysSrk7VME?6A9M{j_=HwFm(}3qWkoy#HP{NHlHRtholJf4K!qxA? zh<_VGLG&1;+H$p5eJ%iR%K*9-*U<A}75lDDs=dO(LYY!#bc_w4b+jKF`+s%3oJZ`% z)aIHju8$Q8+oWVf<qb-bBvPXkwn#af%+4@AU0<43OGq?9NH|W&5&EtZVM5|QLX>(3 aUAM*v33bx`0YV~C+K=?5g%dN(g~(qs{jVGV diff --git a/templates/beez/html/com_contact/category/default.php b/templates/beez/html/com_contact/category/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_contact/category/default.php @@ -0,0 +1,106 @@ +<?php // @version $Id: default.php 11307 2008-11-24 00:21:48Z ian $ +defined('_JEXEC') or die('Restricted access'); +$cparams = JComponentHelper::getParams ('com_media'); +?> + +<?php if ($this->params->get('show_page_title',1)) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<?php if ($this->category->image || $this->category->description) : ?> +<div class="contentdescription<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ($this->params->get('image') != -1 && $this->params->get('image') != '') : ?> + <img src="<?php echo $this->baseurl .'/'. 'images/stories' . '/'. $this->params->get('image'); ?>" class="image_<?php echo $this->params->get('image_align'); ?>" alt="<?php echo JText::_( 'Contacts' ); ?>" /> + <?php elseif($this->category->image): ?> + <img src="<?php echo $this->baseurl .'/'. 'images/stories' . '/'. $this->category->image; ?>" class="image_<?php echo $this->category->image_position; ?>" alt="<?php echo JText::_( 'Contacts' ); ?>" /> + <?php endif; ?> + + <?php echo $this->category->description; ?> + + <?php if (($this->params->get('image') != -1 && $this->params->get('image') != '') || $this->category->image) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> + +</div> +<?php endif; ?> + +<script language="javascript" type="text/javascript"> +function tableOrdering( order, dir, task ) +{ + var form = document.adminForm; + + form.filter_order.value = order; + form.filter_order_Dir.value = dir; + document.adminForm.submit( task ); +} +</script> + +<form action="<?php echo $this->action; ?>" method="post" name="adminForm"> + + <?php if ($this->params->get('display')) : ?> + <div class="display"> + <?php echo JText::_('Display Num'); ?>  + </div> + <?php endif; ?> + + <input type="hidden" name="catid" value="<?php echo $this->category->id; ?>" /> + <input type="hidden" name="filter_order" value="<?php echo $this->lists['order']; ?>" /> + <input type="hidden" name="filter_order_Dir" value="" /> + +</form> + +<table class="category<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ($this->params->get('show_headings')) : ?> + <tr> + <th id="Count" class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo JText::_('Num'); ?> + </th> + + <?php if ($this->params->get('show_position')) : ?> + <th id="Position" class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo JHTML::_('grid.sort', 'Position', 'cd.con_position', $this->lists['order_Dir'], $this->lists['order'] ); ?> + </th> + <?php endif; ?> + + <th id="Name" class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo JHTML::_('grid.sort', 'Name', 'cd.name', $this->lists['order_Dir'], $this->lists['order'] ); ?> + </th> + + <?php if ($this->params->get('show_email')) : ?> + <th id="Mail" class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo JText::_('Email'); ?> + </th> + <?php endif; ?> + + <?php if ( $this->params->get('show_telephone')) : ?> + <th id="Phone" class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo JText::_('Phone'); ?> + </th> + <?php endif; ?> + + <?php if ($this->params->get('show_mobile')) : ?> + <th id="mobile" class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo JText::_('Mobile'); ?> + </th> + <?php endif; ?> + + <?php if ( $this->params->get('show_fax')) : ?> + <th id="Fax" class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo JText::_('Fax'); ?> + </th> + <?php endif; ?> + </tr> + <?php endif; ?> + + <?php echo $this->loadTemplate('items'); ?> +</table> + +<p class="counter"> + <?php echo $this->pagination->getPagesCounter(); ?> +</p> + +<?php echo $this->pagination->getPagesLinks(); ?> diff --git a/templates/beez/html/com_contact/category/default_items.php b/templates/beez/html/com_contact/category/default_items.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_contact/category/default_items.php @@ -0,0 +1,46 @@ +<?php // @version $Id: default_items.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php foreach ($this->items as $item) : ?> +<tr> + <td class="sectiontableentry" headers="Count"> + <?php echo $item->count + 1; ?> + </td> + + <?php if ($this->params->get('show_position')) : ?> + <td headers="Position" class="sectiontableentry<?php echo $item->odd; ?>"> + <?php echo $item->con_position; ?> + </td> + <?php endif; ?> + + <td height="20" class="sectiontableentry" headers="Name"> + <a href="<?php echo $item->link; ?>" class="category<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $item->name; ?></a> + </td> + + <?php if ($this->params->get('show_email')) : ?> + <td headers="Mail" class="sectiontableentry<?php echo $item->odd; ?>"> + <?php echo $item->email_to; ?> + </td> + <?php endif; ?> + + <?php if ($this->params->get('show_telephone')) : ?> + <td headers="Phone" class="sectiontableentry"> + <?php echo $item->telephone; ?> + </td> + <?php endif; ?> + + <?php if ($this->params->get('show_mobile')) : ?> + <td headers="Mobile" class="sectiontableentry<?php echo $item->odd; ?>"> + <?php echo $item->mobile; ?> + </td> + <?php endif; ?> + + <?php if ($this->params->get('show_fax')) : ?> + <td headers="Fax" class="sectiontableentry"> + <?php echo $item->fax; ?> + </td> + <?php endif; ?> +</tr> +<?php endforeach; ?> \ No newline at end of file diff --git a/templates/beez/html/com_contact/category/index.html b/templates/beez/html/com_contact/category/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_contact/category/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_contact/contact/default.php b/templates/beez/html/com_contact/contact/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_contact/contact/default.php @@ -0,0 +1,53 @@ +<?php // @version $Id: default.php 11307 2008-11-24 00:21:48Z ian $ +defined('_JEXEC') or die('Restricted access'); +$cparams = JComponentHelper::getParams ('com_media'); +?> + +<?php if ($this->params->get('show_page_title',1) && $this->params->get('page_title') != $this->contact->name) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<div class="contact<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php if ($this->params->get('show_contact_list') && count($this->contacts) > 1) : ?> + <form method="post" name="selectForm" id="selectForm"> + <?php echo JText::_('Select Contact'); ?> + <br /> + <?php echo JHTML::_('select.genericlist', $this->contacts, 'contact_id', 'class="inputbox" onchange="this.form.submit()"', 'id', 'name', $this->contact->id); ?> + <input type="hidden" name="option" value="com_contact" /> + </form> + <?php endif; ?> + + <?php if ($this->contact->name && $this->contact->params->get('show_name')) : ?> + <p> + <?php echo $this->contact->name; ?> + </p> + <?php endif; ?> + + <?php if ($this->contact->con_position && $this->contact->params->get('show_position')) : ?> + <p> + <?php echo $this->contact->con_position; ?> + </p> + <?php endif; ?> + + <?php if ($this->contact->image && $this->contact->params->get('show_image')) : ?> + <div style="float: right;"> + <?php echo JHTML::_('image', 'images/stories' . '/'.$this->contact->image, JText::_( 'Contact' ), array('align' => 'middle')); ?> + </div> + <?php endif; ?> + + <?php echo $this->loadTemplate('address'); ?> + + <?php if ( $this->contact->params->get('allow_vcard')) : ?> + <p> + <?php echo JText::_('Download information as a'); ?> + <a href="index.php?option=com_contact&task=vcard&contact_id=<?php echo $this->contact->id; ?>&format=raw"> + <?php echo JText::_('VCard'); ?></a> + </p> + <?php endif; ?> + + <?php if ($this->contact->params->get('show_email_form')) : + echo $this->loadTemplate('form'); + endif; ?> +</div> diff --git a/templates/beez/html/com_contact/contact/default_address.php b/templates/beez/html/com_contact/contact/default_address.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_contact/contact/default_address.php @@ -0,0 +1,90 @@ +<?php // @version $Id: default_address.php 11215 2008-10-26 02:25:51Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if (($this->contact->params->get('address_check') > 0) && ($this->contact->address || $this->contact->suburb || $this->contact->state || $this->contact->country || $this->contact->postcode)) : ?> +<div class="contact_address"> + <address> + + <?php if ( $this->contact->params->get('address_check') > 0) : ?> + <?php if (( $this->contact->params->get('contact_icons') ==0) || ( $this->contact->params->get('contact_icons') ==1)): ?> + <span class="marker"><?php echo $this->contact->params->get('marker_address'); ?></span> + <br /> + <?php endif; ?> + <?php endif; ?> + + <?php if ($this->contact->address && $this->contact->params->get('show_street_address')) : ?> + <?php echo nl2br($this->contact->address); ?><br /> + <?php endif; ?> + + <?php if ($this->contact->suburb && $this->contact->params->get('show_suburb')) : ?> + <?php echo $this->contact->suburb; ?><br /> + <?php endif; ?> + + <?php if ($this->contact->state && $this->contact->params->get('show_state')) : ?> + <?php echo $this->contact->state; ?><br /> + <?php endif; ?> + + <?php if ($this->contact->country && $this->contact->params->get('show_country')) : ?> + <?php echo $this->contact->country; ?><br /> + <?php endif; ?> + + <?php if ($this->contact->postcode && $this->contact->params->get('show_postcode')) : ?> + <?php echo $this->contact->postcode; ?><br /> + <?php endif; ?> + + + +<?php endif; ?> + +<?php if (($this->contact->email_to && $this->contact->params->get('show_email')) || $this->contact->telephone || $this->contact->fax ) : ?> + + <?php if ($this->contact->email_to && $this->contact->params->get('show_email')) : ?> + <?php if (( $this->contact->params->get('contact_icons') ==0) || ( $this->contact->params->get('contact_icons') ==1)): ?> + <span class="marker"><?php echo $this->contact->params->get('marker_email'); ?></span> + <?php endif; ?> + <?php echo $this->contact->email_to; ?><br /> + <?php endif; ?> + + + <?php if ($this->contact->telephone && $this->contact->params->get('show_telephone')) : ?> + + + <?php if (( $this->contact->params->get('contact_icons') ==0) || ( $this->contact->params->get('contact_icons') ==1)): ?> + <span class="marker"><?php echo $this->contact->params->get('marker_telephone'); ?></span> + <?php endif; ?> + <?php echo nl2br($this->contact->telephone); ?><br /> + + <?php endif; ?> + + + <?php if ($this->contact->fax && $this->contact->params->get('show_fax')) : ?> + + <?php if (( $this->contact->params->get('contact_icons') ==0) || ( $this->contact->params->get('contact_icons') ==1)): ?> + <span class="marker"><?php echo $this->contact->params->get('marker_fax'); ?></span> + <?php endif; ?> + <?php echo nl2br($this->contact->fax); ?><br /> + <?php endif; ?> + + <?php if ( $this->contact->mobile && $this->contact->params->get( 'show_mobile' ) ) :?> + <?php if (( $this->contact->params->get('contact_icons') ==0) || ( $this->contact->params->get('contact_icons') ==1)): ?> + <span class="marker"><?php echo $this->contact->params->get( 'marker_mobile' ); ?></span> + <?php endif; ?> + <?php echo nl2br($this->contact->mobile); ?><br /> + <?php endif; ?> + + <?php if ($this->contact->webpage && $this->contact->params->get('show_webpage')) : ?> + <a href="<?php echo $this->contact->webpage; ?>" target="_blank"> + <?php echo $this->contact->webpage; ?></a><br /> + <?php endif; ?> + +<?php endif; ?> + </address></div> +<?php if ($this->contact->misc && $this->contact->params->get('show_misc')) : ?> +<p> +<?php if (( $this->contact->params->get('contact_icons') ==0) || ( $this->contact->params->get('contact_icons') ==1)): ?> +<span class="marker"><?php echo $this->contact->params->get('marker_misc'); ?></span> +<?php echo $this->contact->misc; ?> +<?php endif; ?> +</p> +<?php endif; ?> \ No newline at end of file diff --git a/templates/beez/html/com_contact/contact/default_form.php b/templates/beez/html/com_contact/contact/default_form.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_contact/contact/default_form.php @@ -0,0 +1,53 @@ +<?php // @version $Id: default_form.php 11215 2008-10-26 02:25:51Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<script type="text/javascript"> + function validateForm( frm ) { + var valid = document.formvalidator.isValid(frm); + if (valid == false) { + // do field validation + if (frm.email.invalid) { + alert( "<?php echo JText::_( 'Please enter a valid e-mail address.', true );?>" ); + } else if (frm.text.invalid) { + alert( "<?php echo JText::_( 'CONTACT_FORM_NC', true ); ?>" ); + } + return false; + } else { + frm.submit(); + } + } +</script> + +<form action="<?php echo JRoute::_('index.php'); ?>" class="form-validate" method="post" name="emailForm" id="emailForm"> + <div class="contact_email<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <label for="contact_name"> + <?php echo JText::_( 'Enter your name' ); ?>:</label> + <input type="text" name="name" id="contact_name" size="30" class="inputbox" value="" /> + </div> + <div class="contact_email<?php echo $this->params->get( 'pageclass_sfx' ); ?>"><label id="contact_emailmsg" for="contact_email"> + <?php echo JText::_( 'Email address' ); ?>*:</label> + <input type="text" id="contact_email" name="email" size="30" value="" class="inputbox required validate-email" maxlength="100" /> + </div> + <div class="contact_email<?php echo $this->params->get( 'pageclass_sfx' ); ?>"><label for="contact_subject"> + <?php echo JText::_( 'Message subject' ); ?>:</label> + <input type="text" name="subject" id="contact_subject" size="30" class="inputbox" value="" /> + </div> + <div class="contact_email<?php echo $this->params->get( 'pageclass_sfx' ); ?>"><label id="contact_textmsg" for="contact_text" class="textarea"> + <?php echo JText::_( 'Enter your message' ); ?>*:</label> + <textarea name="text" id="contact_text" class="inputbox required" rows="10" cols="40"></textarea> + </div> + <?php if ($this->contact->params->get( 'show_email_copy' )): ?> + <div class="contact_email_checkbox<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <input type="checkbox" name="email_copy" id="contact_email_copy" value="1" /> + <label for="contact_email_copy" class="copy"> + <?php echo JText::_( 'EMAIL_A_COPY' ); ?> + </label> + </div> + <?php endif; ?> + <button class="button validate" type="submit"><?php echo JText::_('Send'); ?></button> + <input type="hidden" name="view" value="contact" /> + <input type="hidden" name="id" value="<?php echo $this->contact->id; ?>" /> + <input type="hidden" name="task" value="submit" /> + <?php echo JHTML::_( 'form.token' ); ?> +</form> \ No newline at end of file diff --git a/templates/beez/html/com_contact/contact/index.html b/templates/beez/html/com_contact/contact/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_contact/contact/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_contact/index.html b/templates/beez/html/com_contact/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_contact/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_content/article/default.php b/templates/beez/html/com_content/article/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/article/default.php @@ -0,0 +1,120 @@ +<?php // @version $Id: default.php 11386 2009-01-04 02:34:35Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<div id="page"> + +<?php if (($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')) && !($this->print)) : ?> +<div class="contentpaneopen_edit<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>"> + <?php echo JHTML::_('icon.edit', $this->article, $this->params, $this->access); ?> +</div> +<?php endif; ?> + +<?php if ($this->params->get('show_page_title',1) && $this->params->get('page_title') != $this->article->title) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<?php if ($this->params->get('show_title')) : ?> +<h2 class="contentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php if ($this->params->get('link_titles') && $this->article->readmore_link != '') : ?> + <a href="<?php echo $this->article->readmore_link; ?>" class="contentpagetitle<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->article->title; ?></a> + <?php else : + echo $this->escape($this->article->title); + endif; ?> +</h2> +<?php endif; ?> + +<?php if ((intval($this->article->modified) !=0 && $this->params->get('show_modify_date')) || ($this->params->get('show_author') && ($this->article->author != "")) || ($this->params->get('show_create_date'))) : ?> +<p class="articleinfo"> + <?php if (intval($this->article->modified) !=0 && $this->params->get('show_modify_date')) : ?> + <span class="modifydate"> + <?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->article->modified, JText::_('DATE_FORMAT_LC2'))); ?> + </span> + <?php endif; ?> + + <?php if (($this->params->get('show_author')) && ($this->article->author != "")) : ?> + <span class="createdby"> + <?php JText::printf('Written by', ($this->article->created_by_alias ? $this->article->created_by_alias : $this->article->author)); ?> + </span> + <?php endif; ?> + + <?php if ($this->params->get('show_create_date')) : ?> + <span class="createdate"> + <?php echo JHTML::_('date', $this->article->created, JText::_('DATE_FORMAT_LC2')); ?> + </span> + <?php endif; ?> +</p> +<?php endif; ?> + +<?php if (!$this->params->get('show_intro')) : + echo $this->article->event->afterDisplayTitle; +endif; ?> + +<p class="buttonheading"> + <?php if ($this->print) : + echo JHTML::_('icon.print_screen', $this->article, $this->params, $this->access); + elseif ($this->params->get('show_pdf_icon') || $this->params->get('show_print_icon') || $this->params->get('show_email_icon')) : ?> + <img src="<?php echo $this->baseurl ?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/trans.gif" alt="<?php echo JText::_('attention open in a new window'); ?>" /> + <?php if ($this->params->get('show_pdf_icon')) : + echo JHTML::_('icon.pdf', $this->article, $this->params, $this->access); + endif; + if ($this->params->get('show_print_icon')) : + echo JHTML::_('icon.print_popup', $this->article, $this->params, $this->access); + endif; + if ($this->params->get('show_email_icon')) : + echo JHTML::_('icon.email', $this->article, $this->params, $this->access); + endif; + endif; ?> +</p> + +<?php if (($this->params->get('show_section') && $this->article->sectionid) || ($this->params->get('show_category') && $this->article->catid)) : ?> +<p class="iteminfo"> + <?php if ($this->params->get('show_section') && $this->article->sectionid) : ?> + <span> + <?php if ($this->params->get('link_section')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->article->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->article->section; ?> + <?php if ($this->params->get('link_section')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + <?php if ($this->params->get('show_category')) : ?> + <?php echo ' - '; ?> + <?php endif; ?> + </span> + <?php endif; ?> + <?php if ($this->params->get('show_category') && $this->article->catid) : ?> + <span> + <?php if ($this->params->get('link_category')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->article->catslug, $this->article->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->article->category; ?> + <?php if ($this->params->get('link_category')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + </span> + <?php endif; ?> +</p> +<?php endif; ?> + +<?php echo $this->article->event->beforeDisplayContent; ?> + +<?php if ($this->params->get('show_url') && $this->article->urls) : ?> +<span class="small"> + <a href="<?php echo $this->article->urls; ?>" target="_blank"> + <?php echo $this->article->urls; ?></a> +</span> +<?php endif; ?> + +<?php if (isset ($this->article->toc)) : + echo $this->article->toc; +endif; ?> + +<?php echo JFilterOutput::ampReplace($this->article->text); ?> + +<?php echo $this->article->event->afterDisplayContent; ?> + +</div> diff --git a/templates/beez/html/com_content/article/form.php b/templates/beez/html/com_content/article/form.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/article/form.php @@ -0,0 +1,190 @@ +<?php // @version: $Id: form.php 10822 2008-08-27 17:16:00Z tcp $ +defined('_JEXEC') or die('Restricted access'); +?> +<script language="javascript" type="text/javascript"> +<!-- +function setgood() { + // TODO: Put setGood back + return true; +} + +var sectioncategories = new Array; +<?php +$i = 0; +foreach ($this->lists['sectioncategories'] as $k=>$items) { + foreach ($items as $v) { + echo "sectioncategories[".$i++."] = new Array( '$k','".addslashes( $v->id )."','".addslashes( $v->title )."' );\n\t\t"; + } +} +?> + + +function submitbutton(pressbutton) { + var form = document.adminForm; + if (pressbutton == 'cancel') { + submitform( pressbutton ); + return; + } + try { + form.onsubmit(); + } catch(e) { + alert(e); + } + + // do field validation + var text = <?php echo $this->editor->getContent( 'text' ); ?> + if (form.title.value == '') { + return alert ( "<?php echo JText::_( 'Article must have a title', true ); ?>" ); + } else if (text == '') { + return alert ( "<?php echo JText::_( 'Article must have some text', true ); ?>"); + } else if (parseInt('<?php echo $this->article->sectionid;?>')) { + // for articles + if (form.catid && getSelectedValue('adminForm','catid') < 1) { + return alert ( "<?php echo JText::_( 'Please select a category', true ); ?>" ); + } + } + <?php echo $this->editor->save( 'text' ); ?> + submitform(pressbutton); +} +//--> +</script> +<?php if ($this->params->get('show_page_title', 1)) : ?> +<div class="componentheading<?php echo $this->params->get('pageclass_sfx')?>"><?php echo $this->escape($this->params->get('page_title')); ?></div> +<?php endif; ?> +<form action="<?php echo $this->action ?>" method="post" name="adminForm" onSubmit="setgood();" class="editor"> +<fieldset> +<legend><?php echo JText::_('Editor'); ?></legend> + + <div> + <label for="title"> + <?php echo JText::_( 'Title' ); ?>: + </label> + <input class="inputbox" type="text" id="title" name="title" size="50" maxlength="100" value="<?php echo $this->escape($this->article->title); ?>" /> + </div> + <div class="save"> + <button type="button" onclick="submitbutton('save')"> + <?php echo JText::_('Save') ?> + </button> + <button type="button" onclick="submitbutton('cancel')" /> + <?php echo JText::_('Cancel') ?> + </button> + </div> + <div class="wrap"> </div> + +<?php +echo $this->editor->display('text', $this->article->text, '100%', '400', '70', '15'); +?> +</fieldset> +<fieldset class="publishing"> +<legend><?php echo JText::_('Publishing'); ?></legend> + + <div> + <label for="sectionid"> + <?php echo JText::_( 'Section' ); ?>: + </label> + + <?php echo $this->lists['sectionid']; ?> + </div> + <div class="wrap"> </div> + + <div> + <label for="catid"> + <?php echo JText::_( 'Category' ); ?>: + </label> + + <?php echo $this->lists['catid']; ?> + </div> + <div class="wrap"> </div> + +<?php if ($this->user->authorize('com_content', 'publish', 'content', 'all')) : ?> + + <div class="radio"> + <label for="state" > + <span><?php echo JText::_( 'Published' ); ?>:</span> + </label> + + <?php echo $this->lists['state']; ?> + </div> + + +<?php endif; ?> + + <div class="radio"> + <label for="frontpage"> + <span><?php echo JText::_( 'Show on Front Page' ); ?>:</span> + </label> + + <?php echo $this->lists['frontpage']; ?> + </div> + <div class="wrap"> </div> + + <div> + <label for="created_by_alias"> + <?php echo JText::_( 'Author Alias' ); ?>: + </label> + + <input type="text" id="created_by_alias" name="created_by_alias" size="50" maxlength="100" value="<?php echo $this->article->created_by_alias; ?>" class="inputbox" /> + + </div> + <div class="wrap"> </div> + <div> + <label for="publish_up"> + <?php echo JText::_( 'Start Publishing' ); ?>: + </label> + <?php echo JHTML::_('calendar', $this->article->publish_up, 'publish_up', 'publish_up', '%Y-%m-%d %H:%M:%S', array('class'=>'inputbox', 'size'=>'25', 'maxlength'=>'19')); ?> + </div> + <div class="wrap"> </div> + <div> + <label for="publish_down"> + <?php echo JText::_( 'Finish Publishing' ); ?>: + </label> + <?php echo JHTML::_('calendar', $this->article->publish_down, 'publish_down', 'publish_down', '%Y-%m-%d %H:%M:%S', array('class'=>'inputbox', 'size'=>'25', 'maxlength'=>'19')); ?> + </div> + <div class="wrap"> </div> + <div> + <label for="access"> + <?php echo JText::_( 'Access Level' ); ?>: + </label> + + <?php echo $this->lists['access']; ?> + </div> + <div class="wrap"> </div> + <div> + <label for="ordering"> + <?php echo JText::_( 'Ordering' ); ?>: + </label> + + <?php echo $this->lists['ordering']; ?> + </div> + <div class="wrap"> </div> + +</fieldset> + +<fieldset class="metadata"> +<legend><?php echo JText::_('Metadata'); ?></legend> + + + <label for="metadesc"> + <?php echo JText::_( 'Description' ); ?>: + </label> + + <textarea rows="5" cols="50" style="width:500px; height:120px" class="inputbox" id="metadesc" name="metadesc"><?php echo str_replace('&','&',$this->article->metadesc); ?></textarea> + + <label for="metakey"> + <?php echo JText::_( 'Keywords' ); ?>: + </label> + + <textarea rows="5" cols="50" style="width:500px; height:50px" class="inputbox" id="metakey" name="metakey"><?php echo str_replace('&','&',$this->article->metakey); ?></textarea> + +</fieldset> + + <input type="hidden" name="option" value="com_content" /> + <input type="hidden" name="Returnid" value="<?php echo $this->returnid; ?>" /> + <input type="hidden" name="id" value="<?php echo $this->article->id; ?>" /> + <input type="hidden" name="version" value="<?php echo $this->article->version; ?>" /> + <input type="hidden" name="created_by" value="<?php echo $this->article->created_by; ?>" /> + <input type="hidden" name="referer" value="<?php echo @$_SERVER['HTTP_REFERER']; ?>" /> + <input type="hidden" name="task" value="" /> + <?php echo JHTML::_( 'form.token' ); ?> +</form> +<?php echo JHTML::_('behavior.keepalive'); ?> \ No newline at end of file diff --git a/templates/beez/html/com_content/article/index.html b/templates/beez/html/com_content/article/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/article/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_content/category/blog.php b/templates/beez/html/com_content/category/blog.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/category/blog.php @@ -0,0 +1,83 @@ +<?php // @version $Id: blog.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +$cparams = JComponentHelper::getParams ('com_media'); +?> + +<?php if ($this->params->get('show_page_title')) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<div class="blog<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ($this->params->def('show_description', 1) || $this->params->def('show_description_image', 1)) : ?> + <div class="contentdescription<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ($this->params->get('show_description_image') && $this->category->image) : ?> + <img src="<?php echo $this->baseurl . $cparams->get('image_path') . '/' . $this->category->image; ?>" class="image_<?php echo $this->category->image_position; ?>" /> + <?php endif; ?> + + <?php if ($this->params->get('show_description') && $this->category->description) : + echo $this->category->description; + endif; ?> + + <?php if ($this->params->get('show_description_image') && $this->category->image) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> + + </div> + <?php endif; ?> + + <?php $i = $this->pagination->limitstart; + $rowcount = $this->params->def('num_leading_articles', 1); + for ($y = 0; $y < $rowcount && $i < $this->total; $y++, $i++) : ?> + <div class="leading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php $this->item =& $this->getItem($i, $this->params); + echo $this->loadTemplate('item'); ?> + </div> + <span class="leading_separator<?php echo $this->params->get('pageclass_sfx'); ?>"> </span> + <?php endfor; ?> + + <?php $introcount = $this->params->def('num_intro_articles', 4); + if ($introcount) : + $colcount = $this->params->def('num_columns', 2); + if ($colcount == 0) : + $colcount = 1; + endif; + $rowcount = (int) $introcount / $colcount; + $ii = 0; + for ($y = 0; $y < $rowcount && $i < $this->total; $y++) : ?> + <div class="article_row<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php for ($z = 0; $z < $colcount && $ii < $introcount && $i < $this->total; $z++, $i++, $ii++) : ?> + <div class="article_column column<?php echo $z + 1; ?> cols<?php echo $colcount; ?>" > + <?php $this->item =& $this->getItem($i, $this->params); + echo $this->loadTemplate('item'); ?> + </div> + <span class="article_separator"> </span> + <?php endfor; ?> + <span class="row_separator<?php echo $this->params->get('pageclass_sfx'); ?>"> </span> + </div> + <?php endfor; + endif; ?> + + <?php $numlinks = $this->params->def('num_links', 4); + if ($numlinks && $i < $this->total) : ?> + <div class="blog_more<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php $this->links = array_slice($this->items, $i - $this->pagination->limitstart, $i - $this->pagination->limitstart + $numlinks); + echo $this->loadTemplate('links'); ?> + </div> + <?php endif; ?> + + <?php if ($this->params->def('show_pagination', 2) == 1 || ($this->params->get('show_pagination') == 2 && $this->pagination->get('pages.total') > 1)) : ?> + <?php if( $this->pagination->get('pages.total') > 1 ) : ?> + <p class="counter"> + <?php echo $this->pagination->getPagesCounter(); ?> + </p> + <?php endif; ?> + <?php if ($this->params->def('show_pagination_results', 1)) : ?> + <?php echo $this->pagination->getPagesLinks(); ?> + <?php endif; ?> + <?php endif; ?> + +</div> diff --git a/templates/beez/html/com_content/category/blog_item.php b/templates/beez/html/com_content/category/blog_item.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/category/blog_item.php @@ -0,0 +1,121 @@ +<?php // @version $Id: blog_item.php 11386 2009-01-04 02:34:35Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')) : ?> +<div class="contentpaneopen_edit<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php echo JHTML::_('icon.edit', $this->item, $this->item->params, $this->access); ?> +</div> +<?php endif; ?> + +<?php if ($this->item->params->get('show_title')) : ?> +<h2 class="contentheading<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php if ($this->item->params->get('link_titles') && $this->item->readmore_link != '') : ?> + <a href="<?php echo $this->item->readmore_link; ?>" class="contentpagetitle<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->item->title); ?></a> + <?php else : + echo $this->escape($this->item->title); + endif; ?> +</h2> +<?php endif; ?> + +<?php if (!$this->item->params->get('show_intro')) : + echo $this->item->event->afterDisplayTitle; +endif; ?> + +<?php if ($this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) : ?> +<p class="buttonheading"> + <img src="<?php echo $this->baseurl ?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/trans.gif" alt="<?php echo JText::_('attention open in a new window'); ?>" /> + <?php if ($this->item->params->get('show_pdf_icon')) : + echo JHTML::_('icon.pdf', $this->item, $this->item->params, $this->access); + endif; + if ($this->item->params->get('show_print_icon')) : + echo JHTML::_('icon.print_popup', $this->item, $this->item->params, $this->access); + endif; + if ($this->item->params->get('show_email_icon')) : + echo JHTML::_('icon.email', $this->item, $this->item->params, $this->access); + endif; ?> +</p> +<?php endif; ?> + +<?php if (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?> +<p class="pageinfo"> + <?php if ($this->item->params->get('show_section') && $this->item->sectionid && isset($this->item->section)) : ?> + <span> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->section; ?> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + <?php if ($this->item->params->get('show_category')) : ?> + <?php echo ' - '; ?> + <?php endif; ?> + </span> + <?php endif; ?> + <?php if ($this->item->params->get('show_category') && $this->item->catid) : ?> + <span> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug, $this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->category; ?> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + </span> + <?php endif; ?> +</p> +<?php endif; ?> + +<?php if ((intval($this->item->modified) !=0 && $this->item->params->get('show_modify_date')) || ($this->item->params->get('show_author') && ($this->item->author != "")) || ($this->item->params->get('show_create_date'))) : ?> +<p class="iteminfo"> + <?php if (intval($this->item->modified) !=0 && $this->item->params->get('show_modify_date')) : ?> + <span class="modifydate"> + <?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?> + </span> + <?php endif; ?> + + <?php if (($this->item->params->get('show_author')) && ($this->item->author != "")) : ?> + <span class="createdby"> + <?php JText::printf('Written by', ($this->item->created_by_alias ? $this->item->created_by_alias : $this->item->author)); ?> + </span> + <?php endif; ?> + + <?php if ($this->item->params->get('show_create_date')) : ?> + <span class="createdate"> + <?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?> + </span> + <?php endif; ?> +</p> +<?php endif; ?> + +<?php echo $this->item->event->beforeDisplayContent; ?> + +<?php if ($this->item->params->get('show_url') && $this->item->urls) : ?> +<span class="small"> + <a href="<?php echo $this->item->urls; ?>" target="_blank"> + <?php echo $this->item->urls; ?></a> +</span> +<?php endif; ?> + +<?php if (isset ($this->item->toc)) : + echo $this->item->toc; +endif; ?> + +<?php echo JFilterOutput::ampReplace($this->item->text); ?> + +<?php if ($this->item->params->get('show_readmore') && $this->item->readmore) : ?> +<p> + <a href="<?php echo $this->item->readmore_link; ?>" class="readon<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php if ($this->item->readmore_register) : + echo JText::_('Register to read more...'); + elseif ($readmore = $this->item->params->get('readmore')) : + echo $readmore; + else : + echo JText::sprintf('Read more', $this->item->title); + endif; ?></a> +</p> +<?php endif; ?> + +<?php echo $this->item->event->afterDisplayContent; diff --git a/templates/beez/html/com_content/category/blog_links.php b/templates/beez/html/com_content/category/blog_links.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/category/blog_links.php @@ -0,0 +1,16 @@ +<?php // @version $Id: blog_links.php 10770 2008-08-23 11:36:27Z willebil $ +defined('_JEXEC') or die('Restricted access'); +?> + +<h2> + <?php echo JText::_('More Articles...'); ?> +</h2> + +<ul> + <?php foreach ($this->links as $link) : ?> + <li> + <a class="blogsection" href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($link->slug, $link->catslug, $link->sectionid)); ?>"> + <?php echo $link->title; ?></a> + </li> + <?php endforeach; ?> +</ul> diff --git a/templates/beez/html/com_content/category/default.php b/templates/beez/html/com_content/category/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/category/default.php @@ -0,0 +1,33 @@ +<?php // @version $Id: default.php 10498 2008-07-04 00:05:36Z ian $ +defined('_JEXEC') or die('Restricted access'); +$cparams = JComponentHelper::getParams ('com_media'); +?> + +<?php if ($this->params->get('show_page_title',1)) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<?php if ($this->params->def('show_description', 1) || $this->params->def('show_description_image', 1)) : ?> +<div class="contentdescription<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php if ($this->params->get('show_description_image') && $this->category->image) : ?> + <img src="<?php echo $this->baseurl . $cparams->get('image_path').'/'.$this->category->image; ?>" class="image_<?php echo $this->category->image_position; ?>" /> + <?php endif; ?> + + <?php if ($this->params->get('show_description') && $this->category->description) : + echo $this->category->description; + endif; ?> + + <?php if ($this->params->get('show_description_image') && $this->category->image) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> +</div> +<?php endif; ?> + +<?php $this->items =& $this->getItems(); +echo $this->loadTemplate('items'); ?> + +<?php if ($this->access->canEdit || $this->access->canEditOwn) : + echo JHTML::_('icon.create', $this->category, $this->params, $this->access); +endif; diff --git a/templates/beez/html/com_content/category/default_items.php b/templates/beez/html/com_content/category/default_items.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/category/default_items.php @@ -0,0 +1,126 @@ +<?php // @version: $Id: default_items.php 11393 2009-01-05 02:11:06Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<script language="javascript" type="text/javascript"> +<!-- +function tableOrdering( order, dir, task ) +{ +var form = document.adminForm; + +form.filter_order.value = order; +form.filter_order_Dir.value = dir; +document.adminForm.submit( task ); +} +// --> +</script> + +<form action="<?php echo $this->action; ?>" method="post" name="adminForm"> + +<?php if ($this->params->get('filter')) : ?> +<div class="filter"> + <p> + <?php echo JText::_($this->params->get('filter_type') . ' ' . 'Filter').' '; ?> + <input type="text" name="filter" value="<?php echo $this->lists['filter']; ?>" class="inputbox" onchange="document.adminForm.submit();" /> + </p> +</div> +<?php endif; ?> + +<?php if ($this->params->get('show_pagination_limit')) : ?> +<div class="display"> + <?php echo JText::_('Display Num'); ?>  + <?php echo $this->pagination->getLimitBox(); ?> +</div> +<?php endif; ?> + +<table class="category"> + + <?php if ($this->params->get('show_headings')) : ?> + <tr> + <th class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>" id="count"> + <?php echo JText::_('Num'); ?> + </th> + + <?php if ($this->params->get('show_title')) : ?> + <th class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>" id="tableOrdering"> + <?php echo JHTML::_('grid.sort', 'Item Title', 'a.title', $this->lists['order_Dir'], $this->lists['order']); ?> + </th> + <?php endif; ?> + + <?php if ($this->params->get('show_date')) : ?> + <th class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>" id="tableOrdering2"> + <?php echo JHTML::_('grid.sort', 'Date', 'a.created', $this->lists['order_Dir'], $this->lists['order']); ?> + </th> + <?php endif; ?> + + <?php if ($this->params->get('show_author')) : ?> + <th class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>" id="author"> + <?php echo JHTML::_('grid.sort', 'Author', 'author', $this->lists['order_Dir'], $this->lists['order']); ?> + </th> + <?php endif; ?> + + <?php if ($this->params->get('show_hits')) : ?> + <th align="center" class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>" width="5%" nowrap="nowrap" id="hits"> + <?php echo JHTML::_('grid.sort', 'Hits', 'a.hits', $this->lists['order_Dir'], $this->lists['order']); ?> + </th> + <?php endif; ?> + </tr> + <?php endif; ?> + + <?php foreach ($this->items as $item) : ?> + <tr class="sectiontableentry<?php echo ($item->odd + 1) . $this->params->get('pageclass_sfx'); ?>"> + <td headers="count"> + <?php echo $this->pagination->getRowOffset($item->count); ?> + </td> + + <?php if ($this->params->get('show_title')) : ?> + <td headers="tableOrdering"> + <?php if ($item->access <= $this->user->get('aid', 0)) : ?> + <a href="<?php echo $item->link; ?>"> + <?php echo $this->escape($item->title); ?></a> + <?php echo JHTML::_('icon.edit', $item, $this->params, $this->access); + else : + echo $item->title; ?> : + <a href="<?php echo JRoute::_('index.php?option=com_user&task=register'); ?>"> + <?php echo JText::_('Register to read more...'); ?></a> + <?php endif; ?> + </td> + <?php endif; ?> + + <?php if ($this->params->get('show_date')) : ?> + <td headers="tableOrdering2"> + <?php echo $item->created; ?> + </td> + <?php endif; ?> + + <?php if ($this->params->get('show_author')) : ?> + <td headers="author"> + <?php echo $item->created_by_alias ? $item->created_by_alias : $item->author; ?> + </td> + <?php endif; ?> + + <?php if ($this->params->get('show_hits')) : ?> + <td headers="hits"> + <?php echo $item->hits ? $item->hits : '-'; ?> + </td> + <?php endif; ?> + + </tr> + <?php endforeach; ?> + +</table> + +<?php if ($this->params->get('show_pagination')) : ?> +<p class="counter"> + <?php echo $this->pagination->getPagesCounter(); ?> +</p> +<?php echo $this->pagination->getPagesLinks(); +endif; ?> + +<input type="hidden" name="id" value="<?php echo $this->category->id; ?>" /> +<input type="hidden" name="sectionid" value="<?php echo $this->category->sectionid; ?>" /> +<input type="hidden" name="task" value="<?php echo $this->lists['task']; ?>" /> +<input type="hidden" name="filter_order" value="" /> +<input type="hidden" name="filter_order_Dir" value="" /> +<input type="hidden" name="limitstart" value="0" /> +</form> diff --git a/templates/beez/html/com_content/category/index.html b/templates/beez/html/com_content/category/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/category/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_content/frontpage/default.php b/templates/beez/html/com_content/frontpage/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/frontpage/default.php @@ -0,0 +1,63 @@ +<?php // @version $Id: default.php 10498 2008-07-04 00:05:36Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if ($this->params->get('show_page_title',1)) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<div class="blog<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php $i = $this->pagination->limitstart; + $rowcount = $this->params->def('num_leading_articles', 1); + for ($y = 0; $y < $rowcount && $i < $this->total; $y++, $i++) : ?> + <div class="leading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php $this->item =& $this->getItem($i, $this->params); + echo $this->loadTemplate('item'); ?> + </div> + <span class="leading_separator<?php echo $this->params->get('pageclass_sfx'); ?>"> </span> + <?php endfor; ?> + + <?php $introcount = $this->params->def('num_intro_articles', 4); + if ($introcount) : + $colcount = $this->params->def('num_columns', 2); + if ($colcount == 0) : + $colcount = 1; + endif; + $rowcount = (int) $introcount / $colcount; + $ii = 0; + for ($y = 0; $y < $rowcount && $i < $this->total; $y++) : ?> + <div class="article_row<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php for ($z = 0; $z < $colcount && $ii < $introcount && $i < $this->total; $z++, $i++, $ii++) : ?> + <div class="article_column column<?php echo $z + 1; ?> cols<?php echo $colcount; ?>" > + <?php $this->item =& $this->getItem($i, $this->params); + echo $this->loadTemplate('item'); ?> + </div> + <span class="article_separator"> </span> + <?php endfor; ?> + <span class="row_separator<?php echo $this->params->get('pageclass_sfx'); ?>"> </span> + </div> + <?php endfor; + endif; ?> + + <?php $numlinks = $this->params->def('num_links', 4); + if ($numlinks && $i < $this->total) : ?> + <div class="blog_more<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php $this->links = array_slice($this->items, $i - $this->pagination->limitstart, $i - $this->pagination->limitstart + $numlinks); + echo $this->loadTemplate('links'); ?> + </div> + <?php endif; ?> + + <?php if ($this->params->def('show_pagination', 2) == 1 || ($this->params->get('show_pagination') == 2 && $this->pagination->get('pages.total') > 1)) : ?> + <?php if( $this->pagination->get('pages.total') > 1 ) : ?> + <p class="counter"> + <?php echo $this->pagination->getPagesCounter(); ?> + </p> + <?php endif; ?> + <?php if ($this->params->def('show_pagination_results', 1)) : ?> + <?php echo $this->pagination->getPagesLinks(); ?> + <?php endif; ?> + <?php endif; ?> +</div> diff --git a/templates/beez/html/com_content/frontpage/default_item.php b/templates/beez/html/com_content/frontpage/default_item.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/frontpage/default_item.php @@ -0,0 +1,121 @@ +<?php // @version $Id: default_item.php 11386 2009-01-04 02:34:35Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')) : ?> +<div class="contentpaneopen_edit<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php echo JHTML::_('icon.edit', $this->item, $this->item->params, $this->access); ?> +</div> +<?php endif; ?> + +<?php if ($this->item->params->get('show_title')) : ?> +<h2 class="contentheading<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php if ($this->item->params->get('link_titles') && $this->item->readmore_link != '') : ?> + <a href="<?php echo $this->item->readmore_link; ?>" class="contentpagetitle<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->item->title); ?></a> + <?php else : + echo $this->escape($this->item->title); + endif; ?> +</h2> +<?php endif; ?> + +<?php if (!$this->item->params->get('show_intro')) : + echo $this->item->event->afterDisplayTitle; +endif; ?> + +<?php if ($this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) : ?> +<p class="buttonheading"> + <img src="<?php echo $this->baseurl ?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/trans.gif" alt="<?php echo JText::_('attention open in a new window'); ?>" /> + <?php if ($this->item->params->get('show_pdf_icon')) : + echo JHTML::_('icon.pdf', $this->item, $this->item->params, $this->access); + endif; + if ($this->item->params->get('show_print_icon')) : + echo JHTML::_('icon.print_popup', $this->item, $this->item->params, $this->access); + endif; + if ($this->item->params->get('show_email_icon')) : + echo JHTML::_('icon.email', $this->item, $this->item->params, $this->access); + endif; ?> +</p> +<?php endif; ?> + +<?php if (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?> +<p class="pageinfo"> + <?php if ($this->item->params->get('show_section') && $this->item->sectionid && isset($this->item->section)) : ?> + <span> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->section; ?> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + <?php if ($this->item->params->get('show_category')) : ?> + <?php echo ' - '; ?> + <?php endif; ?> + </span> + <?php endif; ?> + <?php if ($this->item->params->get('show_category') && $this->item->catid) : ?> + <span> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug, $this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->category; ?> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + </span> + <?php endif; ?> +</p> +<?php endif; ?> + +<?php if ((intval($this->item->modified) !=0 && $this->item->params->get('show_modify_date')) || ($this->item->params->get('show_author') && ($this->item->author != "")) || ($this->item->params->get('show_create_date'))) : ?> +<p class="iteminfo"> + <?php if (intval($this->item->modified) !=0 && $this->item->params->get('show_modify_date')) : ?> + <span class="modifydate"> + <?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?> + </span> + <?php endif; ?> + + <?php if (($this->item->params->get('show_author')) && ($this->item->author != "")) : ?> + <span class="createdby"> + <?php JText::printf('Written by', ($this->item->created_by_alias ? $this->item->created_by_alias : $this->item->author)); ?> + </span> + <?php endif; ?> + + <?php if ($this->item->params->get('show_create_date')) : ?> + <span class="createdate"> + <?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?> + </span> + <?php endif; ?> +</p> +<?php endif; ?> + +<?php echo $this->item->event->beforeDisplayContent; ?> + +<?php if ($this->item->params->get('show_url') && $this->item->urls) : ?> +<span class="small"> + <a href="<?php echo $this->item->urls; ?>" target="_blank"> + <?php echo $this->item->urls; ?></a> +</span> +<?php endif; ?> + +<?php if (isset ($this->item->toc)) : + echo $this->item->toc; +endif; ?> + +<?php echo JFilterOutput::ampReplace($this->item->text); ?> + +<?php if ($this->item->params->get('show_readmore') && $this->item->readmore) : ?> +<p> + <a href="<?php echo $this->item->readmore_link; ?>" class="readon<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php if ($this->item->readmore_register) : + echo JText::_('Register to read more...'); + elseif ($readmore = $this->item->params->get('readmore')) : + echo $readmore; + else : + echo JText::sprintf('Read more', $this->item->title); + endif; ?></a> +</p> +<?php endif; ?> + +<?php echo $this->item->event->afterDisplayContent; diff --git a/templates/beez/html/com_content/frontpage/default_links.php b/templates/beez/html/com_content/frontpage/default_links.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/frontpage/default_links.php @@ -0,0 +1,16 @@ +<?php // @version $Id: default_links.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<h2> + <?php echo JText::_('More Articles...'); ?> +</h2> + +<ul> + <?php foreach ($this->links as $link) : ?> + <li> + <a class="blogsection" href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($link->slug, $link->catslug, $link->sectionid)); ?>"> + <?php echo $link->title; ?></a> + </li> + <?php endforeach; ?> +</ul> diff --git a/templates/beez/html/com_content/frontpage/index.html b/templates/beez/html/com_content/frontpage/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/frontpage/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_content/index.html b/templates/beez/html/com_content/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_content/section/blog.php b/templates/beez/html/com_content/section/blog.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/section/blog.php @@ -0,0 +1,83 @@ +<?php // @version $Id: blog.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +$cparams = JComponentHelper::getParams ('com_media'); +?> + +<?php if ($this->params->get('show_page_title')) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<div class="blog<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ($this->params->def('show_description', 1) || $this->params->def('show_description_image', 1)) : ?> + <div class="contentdescription<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ($this->params->get('show_description_image') && $this->section->image) : ?> + <img src="<?php echo $this->baseurl . $cparams->get('image_path').'/'.$this->section->image; ?>" class="image_<?php echo $this->section->image_position; ?>" /> + <?php endif; ?> + + <?php if ($this->params->get('show_description') && $this->section->description) : + echo $this->section->description; + endif; ?> + + <?php if ($this->params->get('show_description_image') && $this->section->image) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> + + </div> + <?php endif; ?> + + <?php $i = $this->pagination->limitstart; + $rowcount = $this->params->def('num_leading_articles', 1); + for ($y = 0; $y < $rowcount && $i < $this->total; $y++, $i++) : ?> + <div class="leading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php $this->item =& $this->getItem($i, $this->params); + echo $this->loadTemplate('item'); ?> + </div> + <span class="leading_separator<?php echo $this->params->get('pageclass_sfx'); ?>"> </span> + <?php endfor; ?> + + <?php $introcount = $this->params->def('num_intro_articles', 4); + if ($introcount) : + $colcount = $this->params->def('num_columns', 2); + if ($colcount == 0) : + $colcount = 1; + endif; + $rowcount = (int) $introcount / $colcount; + $ii = 0; + for ($y = 0; $y < $rowcount && $i < $this->total; $y++) : ?> + <div class="article_row<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php for ($z = 0; $z < $colcount && $ii < $introcount && $i < $this->total; $z++, $i++, $ii++) : ?> + <div class="article_column column<?php echo $z + 1; ?> cols<?php echo $colcount; ?>" > + <?php $this->item =& $this->getItem($i, $this->params); + echo $this->loadTemplate('item'); ?> + </div> + <span class="article_separator"> </span> + <?php endfor; ?> + <span class="row_separator<?php echo $this->params->get('pageclass_sfx'); ?>"> </span> + </div> + <?php endfor; + endif; ?> + + <?php $numlinks = $this->params->def('num_links', 4); + if ($numlinks && $i < $this->total) : ?> + <div class="blog_more<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php $this->links = array_slice($this->items, $i - $this->pagination->limitstart, $i - $this->pagination->limitstart + $numlinks); + echo $this->loadTemplate('links'); ?> + </div> + <?php endif; ?> + + <?php if ($this->params->def('show_pagination', 2) == 1 || ($this->params->get('show_pagination') == 2 && $this->pagination->get('pages.total') > 1)) : ?> + <?php if( $this->pagination->get('pages.total') > 1 ) : ?> + <p class="counter"> + <?php echo $this->pagination->getPagesCounter(); ?> + </p> + <?php endif; ?> + <?php if ($this->params->def('show_pagination_results', 1)) : ?> + <?php echo $this->pagination->getPagesLinks(); ?> + <?php endif; ?> + <?php endif; ?> + +</div> diff --git a/templates/beez/html/com_content/section/blog_item.php b/templates/beez/html/com_content/section/blog_item.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/section/blog_item.php @@ -0,0 +1,121 @@ +<?php // @version $Id: blog_item.php 11386 2009-01-04 02:34:35Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')) : ?> +<div class="contentpaneopen_edit<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php echo JHTML::_('icon.edit', $this->item, $this->item->params, $this->access); ?> +</div> +<?php endif; ?> + +<?php if ($this->item->params->get('show_title')) : ?> +<h2 class="contentheading<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php if ($this->item->params->get('link_titles') && $this->item->readmore_link != '') : ?> + <a href="<?php echo $this->item->readmore_link; ?>" class="contentpagetitle<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->item->title); ?></a> + <?php else : + echo $this->escape($this->item->title); + endif; ?> +</h2> +<?php endif; ?> + +<?php if (!$this->item->params->get('show_intro')) : + echo $this->item->event->afterDisplayTitle; +endif; ?> + +<?php if ($this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) : ?> +<p class="buttonheading"> + <img src="<?php echo $this->baseurl ?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/trans.gif" alt="<?php echo JText::_('attention open in a new window'); ?>" /> + <?php if ($this->item->params->get('show_pdf_icon')) : + echo JHTML::_('icon.pdf', $this->item, $this->item->params, $this->access); + endif; + if ($this->item->params->get('show_print_icon')) : + echo JHTML::_('icon.print_popup', $this->item, $this->item->params, $this->access); + endif; + if ($this->item->params->get('show_email_icon')) : + echo JHTML::_('icon.email', $this->item, $this->item->params, $this->access); + endif; ?> +</p> +<?php endif; ?> + +<?php if (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?> +<p class="pageinfo"> + <?php if ($this->item->params->get('show_section') && $this->item->sectionid && isset($this->item->section)) : ?> + <span> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->section; ?> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + <?php if ($this->item->params->get('show_category')) : ?> + <?php echo ' - '; ?> + <?php endif; ?> + </span> + <?php endif; ?> + <?php if ($this->item->params->get('show_category') && $this->item->catid) : ?> + <span> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug, $this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->category; ?> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + </span> + <?php endif; ?> +</p> +<?php endif; ?> + +<?php if ((!empty ($this->item->modified) && $this->item->params->get('show_modify_date')) || ($this->item->params->get('show_author') && ($this->item->author != "")) || ($this->item->params->get('show_create_date'))) : ?> +<p class="iteminfo"> + <?php if (!empty ($this->item->modified) && $this->item->params->get('show_modify_date')) : ?> + <span class="modifydate"> + <?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?> + </span> + <?php endif; ?> + + <?php if (($this->item->params->get('show_author')) && ($this->item->author != "")) : ?> + <span class="createdby"> + <?php JText::printf('Written by', ($this->item->created_by_alias ? $this->item->created_by_alias : $this->item->author)); ?> + </span> + <?php endif; ?> + + <?php if ($this->item->params->get('show_create_date')) : ?> + <span class="createdate"> + <?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?> + </span> + <?php endif; ?> +</p> +<?php endif; ?> + +<?php echo $this->item->event->beforeDisplayContent; ?> + +<?php if ($this->item->params->get('show_url') && $this->item->urls) : ?> +<span class="small"> + <a href="<?php echo $this->item->urls; ?>" target="_blank"> + <?php echo $this->item->urls; ?></a> +</span> +<?php endif; ?> + +<?php if (isset ($this->item->toc)) : + echo $this->item->toc; +endif; ?> + +<?php echo JFilterOutput::ampReplace($this->item->text); ?> + +<?php if ($this->item->params->get('show_readmore') && $this->item->readmore) : ?> +<p> + <a href="<?php echo $this->item->readmore_link; ?>" class="readon<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php if ($this->item->readmore_register) : + echo JText::_('Register to read more...'); + elseif ($readmore = $this->item->params->get('readmore')) : + echo $readmore; + else : + echo JText::sprintf('Read more', $this->item->title); + endif; ?></a> +</p> +<?php endif; ?> + +<?php echo $this->item->event->afterDisplayContent; diff --git a/templates/beez/html/com_content/section/blog_links.php b/templates/beez/html/com_content/section/blog_links.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/section/blog_links.php @@ -0,0 +1,16 @@ +<?php // @version $Id: blog_links.php 10770 2008-08-23 11:36:27Z willebil $ +defined('_JEXEC') or die('Restricted access'); +?> + +<h2> + <?php echo JText::_('More Articles...'); ?> +</h2> + +<ul> + <?php foreach ($this->links as $link) : ?> + <li> + <a class="blogsection" href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($link->slug, $link->catslug, $link->sectionid)); ?>"> + <?php echo $link->title; ?></a> + </li> + <?php endforeach; ?> +</ul> diff --git a/templates/beez/html/com_content/section/default.php b/templates/beez/html/com_content/section/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/section/default.php @@ -0,0 +1,53 @@ +<?php // @version $Id: default.php 10947 2008-09-23 01:14:10Z ian $ +defined('_JEXEC') or die('Restricted access'); +$cparams = JComponentHelper::getParams ('com_media'); +?> + +<?php if ($this->params->get('show_page_title',1)) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<?php if ($this->params->def('show_description', 1) || $this->params->def('show_description_image', 1)) : ?> +<div class="contentdescription<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php if ($this->params->get('show_description_image') && $this->section->image) : ?> + <img src="<?php echo $this->baseurl . '/' . $cparams->get('image_path').'/'.$this->section->image; ?>" class="image_<?php echo $this->section->image_position; ?>" /> + <?php endif; ?> + + <?php if ($this->params->get('show_description') && $this->section->description) : + echo $this->section->description; + endif; ?> + + <?php if ($this->params->get('show_description_image') && $this->section->image) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> +</div> +<?php endif; ?> + +<?php if ($this->params->def('show_categories', 1) && count($this->categories)) : ?> +<ul> + <?php foreach ($this->categories as $category) : + if (!$this->params->get('show_empty_categories') && !$category->numitems) : + continue; + endif; ?> + <li> + <a href="<?php echo $category->link; ?>" class="category"><?php echo $category->title; ?></a> + + <?php if ($this->params->get('show_cat_num_articles')) : ?> + <span class="small"> + ( <?php if ($category->numitems==1) { + echo $category->numitems ." ". JText::_( 'item' ); } + else { + echo $category->numitems ." ". JText::_( 'items' );} ?> ) + </span> + <?php endif; ?> + + <?php if ($this->params->def('show_category_description', 1) && $category->description) : ?> + <br /> + <?php echo $category->description; ?> + <?php endif; ?> + </li> + <?php endforeach; ?> +</ul> +<?php endif; diff --git a/templates/beez/html/com_content/section/index.html b/templates/beez/html/com_content/section/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_content/section/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_newsfeeds/categories/default.php b/templates/beez/html/com_newsfeeds/categories/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_newsfeeds/categories/default.php @@ -0,0 +1,44 @@ +<?php // @version $Id: default.php 10498 2008-07-04 00:05:36Z ian $ +defined('_JEXEC') or die('Restricted access'); +$cparams = JComponentHelper::getParams ('com_media'); +?> + +<?php if ($this->params->get('show_page_title',1)) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<?php if ($this->params->def( 'show_comp_description', 1 ) || $this->params->get( 'image', -1 ) != -1) : ?> +<div class="contentdescription<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + + <?php if ($this->params->get( 'image', -1 ) != -1) : ?> + <img src="<?php echo $this->baseurl . '/' . $cparams->get('image_path').'/'.$this->params->get('image'); ?>" class="image_<?php echo $this->params->get( 'image_align' ); ?>" /> + <?php endif; ?> + + <?php echo $this->params->get( 'comp_description' ); ?> + + <?php if ($this->params->get( 'image', -1 ) != -1) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> + +</div> +<?php endif; ?> + +<?php if ( count( $this->categories ) ) : ?> +<ul> + <?php foreach ( $this->categories as $category ) : ?> + <li> + <a href="<?php echo $category->link; ?>" class="category"> + <?php echo $category->title; ?></a> + <?php if ( $this->params->get( 'show_cat_items' ) ) : ?> +  <span class="small">(<?php echo $category->numlinks . ' ' . JText::_( 'items' ); ?>)</span> + <?php endif; ?> + <?php if ( $this->params->def( 'show_cat_description', 1 ) && $category->description) : ?> + <br /> + <?php echo $category->description; ?> + <?php endif; ?> + </li> + <?php endforeach; ?> +</ul> +<?php endif; diff --git a/templates/beez/html/com_newsfeeds/categories/index.html b/templates/beez/html/com_newsfeeds/categories/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_newsfeeds/categories/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_newsfeeds/category/default.php b/templates/beez/html/com_newsfeeds/category/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_newsfeeds/category/default.php @@ -0,0 +1,32 @@ +<?php // @version $Id: default.php 10498 2008-07-04 00:05:36Z ian $ +defined('_JEXEC') or die('Restricted access'); +$cparams = JComponentHelper::getParams ('com_media'); +?> + +<?php if ( $this->params->get( 'show_page_title',1)): ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<div class="newsfeed<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <?php if ( $this->category->image || $this->category->description ) : ?> + <div class="contentdescription<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ( $this->category->image ) : ?> + <img src="<?php echo $this->baseurl . '/' . $cparams->get('image_path').'/'.$this->category->image; ?>" class="image_<?php echo $this->category->image_position; ?>" /> + <?php endif; ?> + + <?php if ( $this->params->get( 'description' ) ) : + echo $this->category->description; + endif; ?> + + <?php if ( $this->category->image ) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> + + </div> + <?php endif; ?> + + <?php echo $this->loadTemplate('items'); ?> +</div> diff --git a/templates/beez/html/com_newsfeeds/category/default_items.php b/templates/beez/html/com_newsfeeds/category/default_items.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_newsfeeds/category/default_items.php @@ -0,0 +1,63 @@ +<?php // @version $Id: default_items.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if ( $this->params->get( 'show_limit' ) ) : ?> +<div class="display"> + <form action="index.php" method="post" name="adminForm"> + <label for="limit"><?php echo JText::_( 'Display Num' ); ?> </label> + <?php echo $this->pagination->getLimitBox(); ?> + </form> +</div> +<?php endif; ?> + + +<table class="newsfeeds"> + + <?php if ( $this->params->get( 'show_headings' ) ) : ?> + <tr> + + <th class="sectiontableheader<?php echo $this->params->get( 'pageclass_sfx' ); ?>" width="5" id="num"> + <?php echo JText::_( 'Num' ); ?> + </th> + + <?php if ( $this->params->get( 'show_name' ) ) : ?> + <th width="90%" class="sectiontableheader<?php echo $this->params->get( 'pageclass_sfx' ); ?>" id="name"> + <?php echo JText::_( 'Feed Name' ); ?> + </th> + <?php endif; ?> + + <?php if ( $this->params->get( 'show_articles' ) ) : ?> + <th width="10%" class="sectiontableheader<?php echo $this->params->get( 'pageclass_sfx' ); ?>" nowrap="nowrap" id="num_a"> + <?php echo JText::_('Num Articles'); ?> + </th> + <?php endif; ?> + + </tr> + <?php endif; ?> + + <?php foreach ( $this->items as $item ) : ?> + <tr class="sectiontableentry<?php echo $item->odd + 1; ?>"> + + <td align="center" width="5" headers="num"> + <?php echo $item->count + 1; ?> + </td> + + <td width="90%" headers="name"> + <a href="<?php echo $item->link; ?>" class="category<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <?php echo $item->name; ?></a> + </td> + + <?php if ( $this->params->get( 'show_articles' ) ) : ?> + <td width="10%" headers="num_a"><?php echo $item->numarticles; ?></td> + <?php endif; ?> + + </tr> + <?php endforeach; ?> + +</table> + +<p class="counter"> + <?php echo $this->pagination->getPagesCounter(); ?> +</p> +<?php echo $this->pagination->getPagesLinks(); ?> diff --git a/templates/beez/html/com_newsfeeds/category/index.html b/templates/beez/html/com_newsfeeds/category/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_newsfeeds/category/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_newsfeeds/index.html b/templates/beez/html/com_newsfeeds/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_newsfeeds/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_newsfeeds/newsfeed/default.php b/templates/beez/html/com_newsfeeds/newsfeed/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_newsfeeds/newsfeed/default.php @@ -0,0 +1,75 @@ +<?php // @version $Id: default.php 11371 2008-12-30 01:31:50Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php + $lang = &JFactory::getLanguage(); + $myrtl =$this->newsfeed->rtl; + if ($lang->isRTL() && $myrtl==0){ + $direction= "direction:rtl !important;"; + $align= "text-align:right !important;"; + } + else if ($lang->isRTL() && $myrtl==1){ + $direction= "direction:ltr !important;"; + $align= "text-align:left !important;"; + } + else if ($lang->isRTL() && $myrtl==2){ + $direction= "direction:rtl !important;"; + $align= "text-align:right !important;"; + } + else if ($myrtl==0) { + $direction= "direction:ltr !important;"; + $align= "text-align:left !important;"; + } + else if ($myrtl==1) { + $direction= "direction:ltr !important;"; + $align= "text-align:left !important;"; + } + else if ($myrtl==2) { + $direction= "direction:rtl !important;"; + $align= "text-align:right !important;"; + } +?> +<?php if ( $this->params->get( 'show_page_title', 1 ) ) : ?> +<h1 style="<?php echo $direction; ?><?php echo $align; ?>" class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<h2 style="<?php echo $direction; ?><?php echo $align; ?>" class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <a href="<?php echo $this->newsfeed->channel['link']; ?>" target="_blank"> + <?php echo str_replace(''', "'", $this->newsfeed->channel['title']); ?></a> +</h2> + +<?php if ( $this->params->get( 'show_feed_description' ) ) : ?> +<div style="<?php echo $direction; ?><?php echo $align; ?>" class="feed_description"> + <?php echo str_replace(''', "'", $this->newsfeed->channel['description']); ?> +</div> +<?php endif; ?> + +<?php if ( isset( $this->newsfeed->image['url'] ) && isset( $this->newsfeed->image['title'] ) && $this->params->get( 'show_feed_image' ) ) : ?> +<p style="<?php echo $direction; ?><?php echo $align; ?>"> +<img src="<?php echo $this->newsfeed->image['url']; ?>" alt="<?php echo $this->newsfeed->image['title']; ?>" /> +</p> +<?php endif; ?> + +<?php if ( count( $this->newsfeed->items ) ) : ?> +<div style="<?php echo $direction; ?><?php echo $align; ?>"> +<ul style="<?php echo $direction; ?><?php echo $align; ?>"> + <?php foreach ( $this->newsfeed->items as $item ) : ?> + <li style="<?php echo $direction; ?><?php echo $align; ?>"> + <?php if ( !is_null( $item->get_link() ) ) : ?> + <a href="<?php echo $item->get_link(); ?>" target="_blank"> + <?php echo $item->get_title(); ?></a> + <?php endif; ?> + <?php if ( $this->params->get( 'show_item_description' ) && $item->get_description() ) : ?> + <br /> + <?php $text = $this->limitText( $item->get_description(), $this->params->get( 'feed_word_count' ) ); + echo str_replace(''', "'", $text); ?> + <br /><br /> + <?php endif; ?> + </li> + <?php endforeach; ?> +</ul> +</div> +<?php endif; diff --git a/templates/beez/html/com_newsfeeds/newsfeed/index.html b/templates/beez/html/com_newsfeeds/newsfeed/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_newsfeeds/newsfeed/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_poll/index.html b/templates/beez/html/com_poll/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_poll/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_poll/poll/default.php b/templates/beez/html/com_poll/poll/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_poll/poll/default.php @@ -0,0 +1,22 @@ +<?php // @version $Id: default.php 10498 2008-07-04 00:05:36Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php JHTML::_('stylesheet', 'poll_bars.css', 'components/com_poll/assets/'); ?> + +<?php if ($this->params->get('show_page_title',1)) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + +<div class="poll<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <form action="index.php" method="post" name="poll" id="poll"> + <label for="id"> + <?php echo JText::_( 'Select Poll' ); ?> <?php echo $this->lists['polls']; ?> + </label> + </form> + <?php if (count($this->votes)) : + echo $this->loadTemplate( 'graph' ); + endif; ?> +</div> diff --git a/templates/beez/html/com_poll/poll/default_graph.php b/templates/beez/html/com_poll/poll/default_graph.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_poll/poll/default_graph.php @@ -0,0 +1,44 @@ +<?php // @version $Id: default_graph.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<dl class="poll"> + <dt><?php echo JText::_( 'Number of Voters' ); ?></dt> + <dd><?php echo $this->votes[0]->voters; ?></dd> + <dt><?php echo JText::_( 'First Vote' ); ?></dt> + <dd><?php echo $this->first_vote; ?></dd> + <dt><?php echo JText::_( 'Last Vote' ); ?></dt> + <dd><?php echo $this->last_vote; ?></dd> +</dl> + +<h3> + <?php echo $this->poll->title; ?> +</h3> + +<table class="pollstableborder"> + <tr> + <th id="itema" class="td_1"><?php echo JText::_( 'Hits' ); ?></th> + <th id="itemb" class="td_2"><?php echo JText::_( 'Percent' ); ?></th> + <th id="itemc" class="td_3"><?php echo JText::_( 'Graph' ); ?></th> + </tr> + <?php for ( $row = 0; $row < count( $this->votes ); $row++ ) : + $vote = $this->votes[$row]; + ?> + <tr> + <td colspan="3" id="question<?php echo $row; ?>" class="question"> + <?php echo $vote->text; ?> + </td> + </tr> + <tr class="sectiontableentry<?php echo $vote->odd; ?>"> + <td headers="itema question<?php echo $row; ?>" class="td_1"> + <?php echo $vote->hits; ?> + </td> + <td headers="itemb question<?php echo $row; ?>" class="td_2"> + <?php echo $vote->percent.'%' ?> + </td> + <td headers="itemc question<?php echo $row; ?>" class="td_3"> + <div class="<?php echo $vote->class; ?>" style="height:<?php echo $vote->barheight; ?>px;width:<?php echo $vote->percent; ?>% !important"></div> + </td> + </tr> + <?php endfor; ?> +</table> diff --git a/templates/beez/html/com_poll/poll/index.html b/templates/beez/html/com_poll/poll/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_poll/poll/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_search/index.html b/templates/beez/html/com_search/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_search/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_search/search/default.php b/templates/beez/html/com_search/search/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_search/search/default.php @@ -0,0 +1,20 @@ +<?php // @version $Id: default.php 10498 2008-07-04 00:05:36Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if($this->params->get('show_page_title',1)) : ?> +<h2 class="componentheading<?php echo $this->params->get('pageclass_sfx') ?>"> + <?php echo $this->escape($this->params->get('page_title')) ?> +</h2> +<?php endif; ?> + +<div id="page"> + +<?php if (!$this->error) : + echo $this->loadTemplate('results'); +else : + echo $this->loadTemplate('error'); +endif; ?> + +<?php echo $this->loadTemplate('form'); ?> +</div> diff --git a/templates/beez/html/com_search/search/default_error.php b/templates/beez/html/com_search/search/default_error.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_search/search/default_error.php @@ -0,0 +1,10 @@ +<?php // @version $Id: default_error.php 11299 2008-11-22 01:40:44Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<h2 class="error<?php $this->params->get( 'pageclass_sfx' ) ?>"> + <?php echo JText::_('Error') ?> +</h2> +<div class="error<?php echo $this->params->get( 'pageclass_sfx' ) ?>"> + <p><?php echo $this->escape($this->error); ?></p> +</div> diff --git a/templates/beez/html/com_search/search/default_form.php b/templates/beez/html/com_search/search/default_form.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_search/search/default_form.php @@ -0,0 +1,48 @@ +<?php // @version $Id: default_form.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<form action="<?php echo JRoute::_( 'index.php?option=com_search#content' ) ?>" method="post" class="search_result<?php echo $this->params->get('pageclass_sfx') ?>"> +<a name="form1"></a> +<h3><?php echo JText::_('search_again'); ?></h3> +<fieldset class="word"> +<label for="search_searchword"><?php echo JText::_('Search Keyword') ?> </label> +<input type="text" name="searchword" id="search_searchword" maxlength="20" value="<?php echo $this->escape($this->searchword) ?>" class="inputbox" /> +</fieldset> + +<fieldset class="phrase"> +<legend><?php echo JText::_('Search Parameters') ?></legend> +<?php echo $this->lists['searchphrase']; ?> +<br /><br /> +<label for="ordering" class="ordering"><?php echo JText::_('Ordering') ?>:</label> +<?php echo $this->lists['ordering']; ?> +</fieldset> + +<?php if ($this->params->get('search_areas', 1)) : ?> +<fieldset class="only"><legend><?php echo JText::_('Search Only') ?>:</legend> + <?php foreach ($this->searchareas['search'] as $val => $txt) : ?> + <?php $checked = is_array($this->searchareas['active']) && in_array($val, $this->searchareas['active']) ? 'checked="true"' : ''; ?> + <input type="checkbox" name="areas[]" value="<?php echo $val ?>" id="area_<?php echo $val ?>" <?php echo $checked ?> /> + <label for="area_<?php echo $val ?>"> + <?php echo JText::_($txt); ?> + </label><br /> + <?php endforeach; ?> +</fieldset> +<?php endif; ?> +<p> + <button name="Search" onClick="this.form.submit()" class="button"><?php echo JText::_( 'Search' );?></button> +</p> + + +<?php if (count($this->results)) : ?> +<div class="display"> +<label for="limit"><?php echo JText :: _('Display Num') ?></label> + <?php echo $this->pagination->getLimitBox(); ?> + <p> + <?php echo $this->pagination->getPagesCounter(); ?> + </p> +</div> +<?php endif; ?> + +<input type="hidden" name="task" value="search" /> +</form> \ No newline at end of file diff --git a/templates/beez/html/com_search/search/default_results.php b/templates/beez/html/com_search/search/default_results.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_search/search/default_results.php @@ -0,0 +1,47 @@ + <?php // @version $Id: default_results.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if (!empty($this->searchword)) : ?> +<div class="searchintro<?php echo $this->params->get('pageclass_sfx') ?>"> + <p> + <?php echo JText::_('Search Keyword') ?> <strong><?php echo $this->escape($this->searchword) ?></strong> + <?php echo $this->result ?> + </p> + <p> + <a href="#form1" onclick="document.getElementById('search_searchword').focus();return false" onkeypress="document.getElementById('search_searchword').focus();return false" ><?php echo JText::_('Search_again') ?></a> + </p> +</div> +<?php endif; ?> + +<?php if (count($this->results)) : ?> +<div class="results"> + <h3><?php echo JText :: _('Search_result'); ?></h3> + <?php $start = $this->pagination->limitstart + 1; ?> + <ol class="list<?php echo $this->params->get('pageclass_sfx') ?>" start="<?php echo $start ?>"> + <?php foreach ($this->results as $result) : ?> + <li> + <?php if ($result->href) : ?> + <h4> + <a href="<?php echo JRoute :: _($result->href) ?>" <?php echo ($result->browsernav == 1) ? 'target="_blank"' : ''; ?> > + <?php echo $this->escape($result->title); ?></a> + </h4> + <?php endif; ?> + <?php if ($result->section) : ?> + <p><?php echo JText::_('Category') ?>: + <span class="small<?php echo $this->params->get('pageclass_sfx') ?>"> + <?php echo $this->escape($result->section); ?> + </span> + </p> + <?php endif; ?> + + <?php echo $result->text; ?> + <span class="small<?php echo $this->params->get('pageclass_sfx') ?>"> + <?php echo $result->created; ?> + </span> + </li> + <?php endforeach; ?> + </ol> + <?php echo $this->pagination->getPagesLinks(); ?> +</div> +<?php endif; ?> \ No newline at end of file diff --git a/templates/beez/html/com_search/search/index.html b/templates/beez/html/com_search/search/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_search/search/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_user/index.html b/templates/beez/html/com_user/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_user/login/default.php b/templates/beez/html/com_user/login/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/login/default.php @@ -0,0 +1,10 @@ +<?php // @version $Id: default.php 10822 2008-08-27 17:16:00Z tcp $ +defined( '_JEXEC' ) or die( 'Restricted access' ); + ?> +<?php if($this->params->get('show_page_title',1)) : ?> +<h2 class="componentheading<?php echo $this->params->get('pageclass_sfx') ?>"> + <?php echo $this->escape($this->params->get('page_title')) ?> +</h2> +<?php endif; ?> + +<?php echo $this->loadTemplate( $this->type ); diff --git a/templates/beez/html/com_user/login/default_login.php b/templates/beez/html/com_user/login/default_login.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/login/default_login.php @@ -0,0 +1,56 @@ +<?php // @version $Id: default_login.php 10381 2008-06-01 03:35:53Z pasamio $ +defined( '_JEXEC' ) or die( 'Restricted access' ); +?> +<form action="<?php echo JRoute::_( 'index.php', true, $this->params->get('usesecure')); ?>" method="post" name="login" id="login" class="login_form<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <?php if ( $this->params->get( 'page_title' ) ) : ?> + <h1 class="componentheading<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <?php echo $this->params->get( 'header_login' ); ?> + </h1> + <?php endif; ?> + + <?php if ( $this->params->get( 'description_login' ) || isset( $this->image ) ) : ?> + <div class="contentdescription<?php echo $this->params->get( 'pageclass_sfx' );?>"> + <?php if (isset ($this->image)) : + echo $this->image; + endif; + if ($this->params->get('description_login')) : ?> + <p> + <?php echo $this->params->get('description_login_text'); ?> + </p> + <?php endif; + if (isset ($this->image)) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> + </div> + <?php endif; ?> + <fieldset> + <div class="name"> + <label for="user" ><?php echo JText::_( 'Username' ); ?></label> + <input name="username" type="text" class="inputbox" size="20" id="user" /> + </div> + <div class="pass"> + <label for="pass" ><?php echo JText::_( 'Password' ); ?></label> + <input name="passwd" type="password" class="inputbox" size="20" id="pass" /> + </div> + <div class="remember"> + <label for="rem"><?php echo JText::_( 'Remember me' ); ?></label> + <input type="checkbox" name="remember" class="inputbox" value="yes" id="rem" /> + </div> + </fieldset> + <p> + <a href="<?php echo JRoute::_( 'index.php?option=com_user&task=lostPassword' ); ?>"> + <?php echo JText::_('Lost Password?'); ?></a> + <?php if ( $this->params->get( 'registration' ) ) : ?> + <?php echo JText::_('No account yet?'); ?> + <a href="<?php echo JRoute::_( 'index.php?option=com_user&task=register' ); ?>"> + <?php echo JText::_( 'Register' ); ?></a> + <?php endif; ?> + </p> + + <input type="submit" name="submit" class="button" value="<?php echo JText::_( 'Login' ); ?>" /> + <noscript><?php echo JText::_( 'WARNJAVASCRIPT' ); ?></noscript> + <input type="hidden" name="option" value="com_user" /> + <input type="hidden" name="task" value="login" /> + <input type="hidden" name="return" value="<?php echo $this->return; ?>" /> + <?php echo JHTML::_( 'form.token' ); ?> +</form> diff --git a/templates/beez/html/com_user/login/default_logout.php b/templates/beez/html/com_user/login/default_logout.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/login/default_logout.php @@ -0,0 +1,32 @@ +<?php // @version $Id: default_logout.php 10381 2008-06-01 03:35:53Z pasamio $ +defined( '_JEXEC' ) or die( 'Restricted access' ); +?> + +<form action="index.php" method="post" name="login" id="login" class="logout_form<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <?php if ( $this->params->get( 'page_title' ) ) : ?> + <h1 class="componentheading<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <?php echo $this->params->get( 'header_logout' ); ?> + </h1> + <?php endif; ?> + + <?php if ( $this->params->get( 'description_logout' ) || isset( $this->image ) ) : ?> + <div class="contentdescription<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <?php if (isset ($this->image)) : + echo $this->image; + endif; + if ( $this->params->get( 'description_logout' ) ) : ?> + <p> + <?php echo $this->params->get('description_logout_text'); ?> + </p> + <?php endif; + if (isset ($this->image)) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> + </div> + <?php endif; ?> + + <p><input type="submit" name="Submit" class="button" value="<?php echo JText::_( 'Logout' ); ?>" /></p> + <input type="hidden" name="option" value="com_user" /> + <input type="hidden" name="task" value="logout" /> + <input type="hidden" name="return" value="<?php echo $this->return; ?>" /> +</form> diff --git a/templates/beez/html/com_user/login/index.html b/templates/beez/html/com_user/login/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/login/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_user/register/default.php b/templates/beez/html/com_user/register/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/register/default.php @@ -0,0 +1,50 @@ +<?php // @version $Id: default.php 11305 2008-11-23 19:14:25Z ian $ +defined( '_JEXEC' ) or die( 'Restricted access' ); +?> +<?php if($this->params->get('show_page_title',1)) : ?> +<h2 class="componentheading<?php echo $this->params->get('pageclass_sfx') ?>"> + <?php echo $this->escape($this->params->get('page_title')) ?> +</h2> +<?php endif; ?> + +<script type="text/javascript"> + Window.onDomReady(function(){ + document.formvalidator.setHandler('passverify', function (value) { return ($('password').value == value); } ); + }); +</script> + +<form action="<?php echo JRoute::_('index.php?option=com_user#content'); ?>" method="post" id="josForm" name="josForm" class="form-validate user"> + <?php if(isset($this->message)) : + $this->display('message'); + endif; ?> + <fieldset> + <p><?php echo JText::_('REGISTER_REQUIRED'); ?></p> + <div class="name"> + <label id="namemsg" for="name"><?php echo JText::_('Name'); ?>: *</label> + <input type="text" name="name" id="name" value="<?php echo $this->user->get('name'); ?>" class="inputbox validate required none namemsg" maxlength="50" /> + </div> + <div class="user"> + <label id="usernamemsg" for="username"><?php echo JText::_('Username'); ?>: *</label> + <input type="text" id="username" name="username" value="<?php echo $this->user->get('username'); ?>" class="inputbox validate required username usernamemsg" maxlength="25" /> + </div> + <div class="email"> + <label id="emailmsg" for="email"><?php echo JText::_('Email'); ?>: *</label> + <input type="text" id="email" name="email" value="<?php echo $this->user->get('email'); ?>" class="inputbox validate required email emailmsg" maxlength="100" /> + </div> + </fieldset> + <fieldset> + <div class="pass"> + <label id="pwmsg" for="password"><?php echo JText::_('Password'); ?>: *</label> + <input type="password" id="password" name="password" value="" class="inputbox required validate-password" /> + </div> + <div class="verify_pass"> + <label id="pw2msg" for="password2"><?php echo JText::_('Verify Password'); ?>: *</label> + <input type="password" id="password2" name="password2" value="" class="inputbox required validate-passverify" /> + </div> + </fieldset> + <button class="button validate" type="submit"><?php echo JText::_('Register'); ?></button> + <input type="hidden" name="task" value="register_save" /> + <input type="hidden" name="id" value="0" /> + <input type="hidden" name="gid" value="0" /> + <?php echo JHTML::_( 'form.token' ); ?> +</form> diff --git a/templates/beez/html/com_user/register/default_message.php b/templates/beez/html/com_user/register/default_message.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/register/default_message.php @@ -0,0 +1,11 @@ +<?php // @version $Id: default_message.php 10381 2008-06-01 03:35:53Z pasamio $ +defined( '_JEXEC' ) or die( 'Restricted access' ); +?> + +<h3> + <?php echo $this->message->title; ?> +</h3> + +<p class="message"> + <?php echo $this->message->text; ?> +</p> diff --git a/templates/beez/html/com_user/register/index.html b/templates/beez/html/com_user/register/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/register/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_user/remind/default.php b/templates/beez/html/com_user/remind/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/remind/default.php @@ -0,0 +1,18 @@ +<?php // @version $Id: default.php$ +defined('_JEXEC') or die('Restricted access'); +?> +<?php if($this->params->get('show_page_title',1)) : ?> +<h2 class="componentheading<?php echo $this->params->get('pageclass_sfx') ?>"> + <?php echo $this->escape($this->params->get('page_title')) ?> +</h2> +<?php endif; ?> + +<form action="index.php?option=com_user&task=remindusername" method="post" class="josForm form-validate"> + <p><?php echo JText::_('REMIND_USERNAME_DESCRIPTION'); ?></p> + + <label for="email" class="hasTip" title="<?php echo JText::_('REMIND_USERNAME_EMAIL_TIP_TITLE'); ?>::<?php echo JText::_('REMIND_USERNAME_EMAIL_TIP_TEXT'); ?>"><?php echo JText::_('Email Address'); ?>:</label> + <input id="email" name="email" type="text" class="required validate-email" /> + + <button type="submit" class="validate"><?php echo JText::_('Submit'); ?></button> + <?php echo JHTML::_( 'form.token' ); ?> +</form> diff --git a/templates/beez/html/com_user/remind/default_message.php b/templates/beez/html/com_user/remind/default_message.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/remind/default_message.php @@ -0,0 +1,11 @@ +<?php // @version $Id: default_message.php$ +defined('_JEXEC') or die('Restricted access'); +?> + +<div class="componentheading"> + <?php echo $this->message->title; ?> +</div> + +<div class="message"> + <?php echo $this->message->text; ?> +</div> diff --git a/templates/beez/html/com_user/remind/index.html b/templates/beez/html/com_user/remind/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/remind/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_user/reset/complete.php b/templates/beez/html/com_user/reset/complete.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/reset/complete.php @@ -0,0 +1,36 @@ +<?php // @version $Id: complete.php 10822 2008-08-27 17:16:00Z tcp $ +defined('_JEXEC') or die('Restricted access'); +?> + +<div class="componentheading"> + <?php echo JText::_('Reset your Password'); ?> +</div> + +<form action="index.php?option=com_user&task=completereset" method="post" class="josForm form-validate"> + <table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane"> + <tr> + <td colspan="2" height="40"> + <p><?php echo JText::_('RESET_PASSWORD_COMPLETE_DESCRIPTION'); ?></p> + </td> + </tr> + <tr> + <td height="40"> + <label for="password1" class="hasTip" title="<?php echo JText::_('RESET_PASSWORD_PASSWORD1_TIP_TITLE'); ?>::<?php echo JText::_('RESET_PASSWORD_PASSWORD1_TIP_TEXT'); ?>"><?php echo JText::_('Password'); ?>:</label> + </td> + <td> + <input id="password1" name="password1" type="password" class="required validate-password" /> + </td> + </tr> + <tr> + <td height="40"> + <label for="password2" class="hasTip" title="<?php echo JText::_('RESET_PASSWORD_PASSWORD2_TIP_TITLE'); ?>::<?php echo JText::_('RESET_PASSWORD_PASSWORD2_TIP_TEXT'); ?>"><?php echo JText::_('Verify Password'); ?>:</label> + </td> + <td> + <input id="password2" name="password2" type="password" class="required validate-password" /> + </td> + </tr> + </table> + + <button type="submit" class="validate"><?php echo JText::_('Submit'); ?></button> + <?php echo JHTML::_( 'form.token' ); ?> +</form> \ No newline at end of file diff --git a/templates/beez/html/com_user/reset/confirm.php b/templates/beez/html/com_user/reset/confirm.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/reset/confirm.php @@ -0,0 +1,28 @@ +<?php // @version $Id: confirm.php 10822 2008-08-27 17:16:00Z tcp $ +defined('_JEXEC') or die('Restricted access'); +?> + +<div class="componentheading"> + <?php echo JText::_('Confirm your Account'); ?> +</div> + +<form action="index.php?option=com_user&task=confirmreset" method="post" class="josForm form-validate"> + <table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane"> + <tr> + <td colspan="2" height="40"> + <p><?php echo JText::_('RESET_PASSWORD_CONFIRM_DESCRIPTION'); ?></p> + </td> + </tr> + <tr> + <td height="40"> + <label for="token" class="hasTip" title="<?php echo JText::_('RESET_PASSWORD_TOKEN_TIP_TITLE'); ?>::<?php echo JText::_('RESET_PASSWORD_TOKEN_TIP_TEXT'); ?>"><?php echo JText::_('Token'); ?>:</label> + </td> + <td> + <input id="token" name="token" type="text" class="required" size="36" /> + </td> + </tr> + </table> + + <button type="submit" class="validate"><?php echo JText::_('Submit'); ?></button> + <?php echo JHTML::_( 'form.token' ); ?> +</form> \ No newline at end of file diff --git a/templates/beez/html/com_user/reset/default.php b/templates/beez/html/com_user/reset/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/reset/default.php @@ -0,0 +1,18 @@ +<?php // @version $Id: default.php 11305 2008-11-23 19:14:25Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> +<?php if($this->params->get('show_page_title',1)) : ?> +<h2 class="componentheading<?php echo $this->params->get('pageclass_sfx') ?>"> + <?php echo $this->escape($this->params->get('page_title')) ?> +</h2> +<?php endif; ?> + +<form action="index.php?option=com_user&task=requestreset" method="post" class="josForm form-validate"> + <p><?php echo JText::_('RESET_PASSWORD_REQUEST_DESCRIPTION'); ?></p> + + <label for="email" class="hasTip" title="<?php echo JText::_('RESET_PASSWORD_EMAIL_TIP_TITLE'); ?>::<?php echo JText::_('RESET_PASSWORD_EMAIL_TIP_TEXT'); ?>"><?php echo JText::_('Email Address'); ?>:</label> + <input id="email" name="email" type="text" class="required validate-email" /> + + <button type="submit" class="validate"><?php echo JText::_('Submit'); ?></button> + <?php echo JHTML::_( 'form.token' ); ?> +</form> diff --git a/templates/beez/html/com_user/reset/index.html b/templates/beez/html/com_user/reset/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/reset/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_user/user/default.php b/templates/beez/html/com_user/user/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/user/default.php @@ -0,0 +1,15 @@ +<?php // @version $Id: default.php 10822 2008-08-27 17:16:00Z tcp $ +defined('_JEXEC') or die('Restricted access'); +?> +<?php if($this->params->get('show_page_title',1)) : ?> +<h2 class="componentheading<?php echo $this->params->get('pageclass_sfx') ?>"> + <?php echo $this->escape($this->params->get('page_title')) ?> +</h2> +<?php endif; ?> +<h1 class="componentheading"> + <?php echo JText::_('Welcome!'); ?> +</h1> + +<div class="contentdescription"> + <?php echo JText::_('WELCOME_DESC'); ?> +</div> diff --git a/templates/beez/html/com_user/user/form.php b/templates/beez/html/com_user/user/form.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/user/form.php @@ -0,0 +1,58 @@ +<?php // @version $Id: form.php 11232 2008-10-30 19:23:59Z kdevine $ +defined('_JEXEC') or die('Restricted access'); +?> +<?php if($this->params->get('show_page_title',1)) : ?> +<h2 class="componentheading<?php echo $this->params->get('pageclass_sfx') ?>"> + <?php echo $this->escape($this->params->get('page_title')) ?> +</h2> +<?php endif; ?> +<script type="text/javascript"> +<!-- + Window.onDomReady(function(){ + document.formvalidator.setHandler('passverify', function (value) { return ($('password').value == value); } ); + }); +// --> +</script> + +<form action="index.php" method="post" name="userform" autocomplete="off" class="user"> + + <div class="user_name"> + <label for="username"><?php echo JText::_( 'User Name' ); ?>: </label> + <span><?php echo $this->user->get('username'); ?></span> + </div> + + <div class="name"> + <label for="name"><?php echo JText::_( 'Your Name' ); ?>: </label> + <input class="inputbox" type="text" id="name" name="name" value="<?php echo $this->user->get('name');?>" size="40" /> + </div> + + <div class="email"> + <label for="email"><?php echo JText::_( 'email' ); ?>: </label> + <input class="inputbox required validate-email" type="text" id="email" name="email" value="<?php echo $this->user->get('email');?>" size="40" /> + </div> + + <?php if($this->user->get('password')) : ?> + <div class="pass"> + <label for="password"><?php echo JText::_( 'Password' ); ?>: </label> + <input class="inputbox validate-password" type="password" id="password" name="password" value="" size="40" /> + </div> + + <div class="verify_pass"> + <label for="verifyPass"><?php echo JText::_( 'Verify Password' ); ?>: </label> + <input class="inputbox validate-passverify" type="password" id="password2" name="password2" size="40" /> + </div> + <?php endif; ?> + <?php if(isset($this->params)) : + echo $this->params->render( 'params' ); + endif; ?> + + <button class="button validate" type="submit" onclick="submitbutton( this.form );return false;"><?php echo JText::_( 'Save' ); ?></button> + + <input type="hidden" name="username" value="<?php echo $this->user->get('username');?>" /> + <input type="hidden" name="id" value="<?php echo $this->user->get('id');?>" /> + <input type="hidden" name="gid" value="<?php echo $this->user->get('gid');?>" /> + <input type="hidden" name="option" value="com_user" /> + <input type="hidden" name="task" value="save" /> + <?php echo JHTML::_( 'form.token' ); ?> + +</form> diff --git a/templates/beez/html/com_user/user/index.html b/templates/beez/html/com_user/user/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_user/user/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_weblinks/categories/default.php b/templates/beez/html/com_weblinks/categories/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_weblinks/categories/default.php @@ -0,0 +1,46 @@ +<?php // @version $Id: default.php 10498 2008-07-04 00:05:36Z ian $ +defined('_JEXEC') or die('Restricted access'); +$cparams = JComponentHelper::getParams ('com_media'); +?> + +<?php if ($this->params->get('show_page_title',1)) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + + +<div class="weblinks<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ($this->params->def('show_comp_description', 1) || $this->params->def('image', -1) != -1) : ?> + <div class="contentdescription<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ($this->params->def('image', -1) != -1) : ?> + <img src="<?php echo $this->baseurl . $cparams->get('image_path').'/'.$this->params->get('image'); ?>" alt="" class="image_<?php echo $this->params->get('image_align'); ?>" /> + <?php endif; ?> + + <?php if ($this->params->get('show_comp_description')) : + echo $this->params->get('comp_description'); + endif; ?> + + <?php if ($this->params->def('image', -1) != -1) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> + + </div> + <?php endif; ?> + +</div> + + +<?php if (count($this->categories)) : ?> +<ul> + <?php foreach ($this->categories as $category) : ?> + <li> + <a href="<?php echo $category->link; ?>" class="category<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $category->title; ?></a> +  <span class="small">(<?php echo $category->numlinks ?>)</span> + </li> + <?php endforeach; ?> +</ul> +<?php endif; diff --git a/templates/beez/html/com_weblinks/categories/index.html b/templates/beez/html/com_weblinks/categories/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_weblinks/categories/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_weblinks/category/default.php b/templates/beez/html/com_weblinks/category/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_weblinks/category/default.php @@ -0,0 +1,32 @@ +<?php // @version $Id: default.php 10498 2008-07-04 00:05:36Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if ($this->params->get('show_page_title', 1)) : ?> +<h1 class="componentheading<?php echo $this->params->get('pageclass_sfx'); ?>"> + <?php echo $this->escape($this->params->get('page_title')); ?> +</h1> +<?php endif; ?> + + +<div class="weblinks<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ( $this->category->image || $this->category->description) : ?> + <div class="contentdescription<?php echo $this->params->get('pageclass_sfx'); ?>"> + + <?php if ($this->category->image) : + echo $this->category->image; + endif; ?> + + <?php echo $this->category->description; ?> + + <?php if ($this->category->image) : ?> + <div class="wrap_image"> </div> + <?php endif; ?> + + </div> + <?php endif; ?> + + <?php echo $this->loadTemplate('items'); ?> + +</div> diff --git a/templates/beez/html/com_weblinks/category/default_items.php b/templates/beez/html/com_weblinks/category/default_items.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_weblinks/category/default_items.php @@ -0,0 +1,80 @@ +<?php // @version $Id: default_items.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<script type="text/javascript"> + function tableOrdering(order, dir, task) { + var form = document.adminForm; + + form.filter_order.value = order; + form.filter_order_Dir.value = dir; + document.adminForm.submit(task); + } +</script> + +<div class="display"> + <form action="<?php echo htmlspecialchars($this->action); ?>" method="post" name="adminForm"> + <?php echo JText :: _('Display Num'); ?>  + <?php echo $this->pagination->getLimitBox(); ?> + <input type="hidden" name="filter_order" value="<?php echo $this->lists['order'] ?>" /> + <input type="hidden" name="filter_order_Dir" value="" /> + </form> +</div> + + +<table class="weblinks"> + + <?php if ($this->params->def('show_headings', 1)) : ?> + <tr> + + <th class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>" width="5" id="num"> + <?php echo JText::_('Num'); ?> + </th> + + <th width="90%" class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>" id="title"> + <?php echo JHTML::_('grid.sort', 'Web Link', 'title', $this->lists['order_Dir'], $this->lists['order']); ?> + </th> + + <?php if ($this->params->get('show_link_hits')) : ?> + <th width="10%" class="sectiontableheader<?php echo $this->params->get('pageclass_sfx'); ?>" nowrap="nowrap" id="hits"> + <?php echo JHTML::_('grid.sort', 'Hits', 'hits', $this->lists['order_Dir'], $this->lists['order']); ?> + </th> + <?php endif; ?> + + </tr> + <?php endif; ?> + + <?php foreach ($this->items as $item) : ?> + <tr class="sectiontableentry<?php echo $item->odd + 1; ?>"> + + <td align="center" headers="num"> + <?php echo $this->pagination->getRowOffset($item->count); ?> + </td> + + <td headers="title"> + <?php if ($item->image) : + echo $item->image; + endif; + echo $item->link; + if ($this->params->get('show_link_description')) : ?> + <br /> + <?php echo nl2br($item->description); + endif; ?> + </td> + + <?php if ($this->params->get('show_link_hits')) : ?> + <td headers="hits"> + <?php echo $item->hits; ?> + </td> + <?php endif; ?> + + </tr> + <?php endforeach; ?> + +</table> + + +<p class="counter"> + <?php echo $this->pagination->getPagesCounter(); ?> +</p> +<?php echo $this->pagination->getPagesLinks(); diff --git a/templates/beez/html/com_weblinks/category/index.html b/templates/beez/html/com_weblinks/category/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_weblinks/category/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_weblinks/index.html b/templates/beez/html/com_weblinks/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_weblinks/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/com_weblinks/weblink/form.php b/templates/beez/html/com_weblinks/weblink/form.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_weblinks/weblink/form.php @@ -0,0 +1,88 @@ +<?php // @version $Id: form.php 11215 2008-10-26 02:25:51Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> +<?php if($this->params->get('show_page_title',1)) : ?> +<h2 class="componentheading<?php echo $this->params->get('pageclass_sfx') ?>"> + <?php echo $this->escape($this->params->get('page_title')) ?> +</h2> +<?php endif; ?> +<script type="text/javascript"> + //<![CDATA[ +function submitbutton(pressbutton) +{ + var form = document.adminForm; + if (pressbutton == 'cancel') { + submitform( pressbutton ); + return; + } + + // do field validation + if (document.getElementById('jformtitle').value == ""){ + alert( "<?php echo JText::_( 'Weblink item must have a title', true ); ?>" ); + } else if (document.getElementById('jformcatid').value < 1) { + alert( "<?php echo JText::_( 'You must select a category.', true ); ?>" ); + } else if (document.getElementById('jformurl').value == ""){ + alert( "<?php echo JText::_( 'You must have a url.', true ); ?>" ); + } else { + submitform( pressbutton ); + } +} + //]]> +</script> + +<form action="<?php echo $this->action ?>" method="post" name="adminForm" class="editor" id="adminForm"> +<fieldset class="publishing"> +<legend><?php echo JText::_( 'Submit A Web Link' );?></legend> + <div> + <label for="jformtitle"><?php echo JText::_( 'Name' ); ?>:</label> + <input class="inputbox" type="text" id="jformtitle" name="jform[title]" size="50" maxlength="250" value="<?php echo $this->escape($this->weblink->title);?>" /> + </div> + + <div> + <label for="jformcatid"><?php echo JText::_( 'Category' ); ?>:</label> + <?php echo $this->lists['catid']; ?> + </div> + <div> + <label for="jformurl"><?php echo JText::_( 'URL' ); ?>:</label> + <input class="inputbox" type="text" id="jformurl" name="jform[url]" value="<?php echo $this->weblink->url; ?>" size="50" maxlength="250" /> + </div> + + <div> + <label for="jformdescription"><?php echo JText::_( 'Description' ); ?>:</label> + <textarea class="inputbox" cols="30" rows="6" id="jformdescription" name="jform[description]" style="width:300px"><?php echo htmlspecialchars( $this->weblink->description, ENT_QUOTES );?></textarea> + </div> +</fieldset> + +<fieldset> +<legend><?php echo JText::_( 'Published' );?></legend> +<div> + <label for="jformpublished"> + <?php echo JText::_( 'Published' ); ?>: + </label> + <?php echo $this->lists['published']; ?> +</div> +<div><label for="jformordering"> + <?php echo JText::_( 'Ordering' ); ?>: + </label> + <?php echo $this->lists['ordering']; ?> +</div> +</fieldset> + + +<div> + <button type="button" onclick="submitbutton('save')"> + <?php echo JText::_('Save') ?> + </button> + <button type="button" onclick="submitbutton('cancel')" > + <?php echo JText::_('Cancel') ?> + </button> +</div> + + <input type="hidden" name="jform[id]" value="<?php echo $this->weblink->id; ?>" /> + <input type="hidden" name="jform[ordering]" value="<?php echo $this->weblink->ordering; ?>" /> + <input type="hidden" name="jform[approved]" value="<?php echo $this->weblink->approved; ?>" /> + <input type="hidden" name="option" value="com_weblinks" /> + <input type="hidden" name="controller" value="weblink" /> + <input type="hidden" name="task" value="" /> + <?php echo JHTML::_( 'form.token' ); ?> +</form> \ No newline at end of file diff --git a/templates/beez/html/com_weblinks/weblink/index.html b/templates/beez/html/com_weblinks/weblink/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/com_weblinks/weblink/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/editor_content.css b/templates/beez/html/editor_content.css new file mode 100644 --- /dev/null +++ b/templates/beez/html/editor_content.css @@ -0,0 +1,50 @@ +body { + background: #000; + font-family: Arial,sans-serif; + line-height: 1.3em; + font-size: 96%; + color: #333; +} + +h1 { + font-family:Helvetica ,Arial,sans-serif; + font-size: 16px; + font-weight: bold; + color: #ff0000; +} + +h2 { + font-family: Arial, Helvetica,sans-serif; + font-size: 14px;; + font-weight: normal; + color: #333; +} + +h3 { + font-weight: bold; + font-family: Helvetica,Arial,sans-serif; + font-size: 19px; + color: #135cae; +} + +h4 { + font-weight: bold; + font-family: Arial, Helvetica, sans-serif; + color: #333; +} + +a:link, a:visited { + color: #1B57B1; text-decoration: none; + font-weight: normal; +} + +a:hover { + color: #00c; text-decoration: underline; + font-weight: normal; +} + +div.caption { padding: 0 10px 0 10px; } +div.caption img { border: 1px solid #CCC; } +div.caption p { font-size: .90em; color: #666; text-align: center; } + +div.teaser { background:#ccc; } \ No newline at end of file diff --git a/templates/beez/html/index.html b/templates/beez/html/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/mod_latestnews/default.php b/templates/beez/html/mod_latestnews/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_latestnews/default.php @@ -0,0 +1,14 @@ +<?php // @version $Id: default.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if (count($list)) : ?> +<ul class="latestnews<?php echo $params->get('pageclass_sfx'); ?>"> + <?php foreach ($list as $item) : ?> + <li class="latestnews<?php echo $params->get('pageclass_sfx'); ?>"> + <a href="<?php echo $item->link; ?>" class="latestnews<?php echo $params->get('pageclass_sfx'); ?>"> + <?php echo $item->text; ?></a> + </li> + <?php endforeach; ?> +</ul> +<?php endif; diff --git a/templates/beez/html/mod_latestnews/index.html b/templates/beez/html/mod_latestnews/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_latestnews/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/mod_login/default.php b/templates/beez/html/mod_login/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_login/default.php @@ -0,0 +1,70 @@ +<?php // @version $Id: default.php 10864 2008-08-30 07:08:04Z willebil $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php +$return = base64_encode(base64_decode($return).'#content'); + +if ($type == 'logout') : ?> +<form action="index.php" method="post" name="login" class="log"> + <?php if ($params->get('greeting')) : ?> + <p> + <?php if ($params->get('name')) : { + echo JText::sprintf( 'HINAME', $user->get('name') ); + } else : { + echo JText::sprintf( 'HINAME', $user->get('username') ); + } endif; ?> + </p> + <?php endif; ?> + <p> + <input type="submit" name="Submit" class="button" value="<?php echo JText::_('BUTTON_LOGOUT'); ?>" /> + </p> + <input type="hidden" name="option" value="com_user" /> + <input type="hidden" name="task" value="logout" /> + <input type="hidden" name="return" value="<?php echo $return; ?>" /> +</form> +<?php else : ?> +<form action="<?php echo JRoute::_( 'index.php', true, $params->get('usesecure')); ?>" method="post" name="login" class="form-login"> + <?php if ($params->get('pretext')) : ?> + <p> + <?php echo $params->get('pretext'); ?> + </p> + <?php endif; ?> + <fieldset> + <label for="mod_login_username"> + <?php echo JText::_('Username'); ?> + </label> + <input name="username" id="mod_login_username" type="text" class="inputbox" alt="<?php echo JText::_('Username'); ?>" /> + <label for="mod_login_password"> + <?php echo JText::_('Password'); ?> + </label> + <input type="password" id="mod_login_password" name="passwd" class="inputbox" alt="<?php echo JText::_('Password'); ?>" /> + </fieldset> + <label for="mod_login_remember" class="remember"> + <?php echo JText::_('Remember me'); ?> + </label> + <input type="checkbox" name="remember" id="mod_login_remember" class="checkbox" value="yes" alt="<?php echo JText::_('Remember me'); ?>" /> + <input type="submit" name="Submit" class="button" value="<?php echo JText::_('BUTTON_LOGIN'); ?>" /> + <p> + <a href="<?php echo JRoute::_('index.php?option=com_user&view=reset#content'); ?>"> + <?php echo JText::_('FORGOT_YOUR_PASSWORD'); ?></a> + </p> + <p> + <a href="<?php echo JRoute::_('index.php?option=com_user&view=remind#content'); ?>"> + <?php echo JText::_('FORGOT_YOUR_USERNAME'); ?></a> + </p> + <?php $usersConfig =& JComponentHelper::getParams('com_users'); + if ($usersConfig->get('allowUserRegistration')) : ?> + <p> + <?php echo JText::_('No account yet?'); ?> + <a href="<?php echo JRoute::_('index.php?option=com_user&task=register#content'); ?>"> + <?php echo JText::_('Register'); ?></a> + </p> + <?php endif; + echo $params->get('posttext'); ?> + <input type="hidden" name="option" value="com_user" /> + <input type="hidden" name="task" value="login" /> + <input type="hidden" name="return" value="<?php echo $return; ?>" /> + <?php echo JHTML::_( 'form.token' ); ?> +</form> +<?php endif; diff --git a/templates/beez/html/mod_login/index.html b/templates/beez/html/mod_login/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_login/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/mod_newsflash/_item.php b/templates/beez/html/mod_newsflash/_item.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_newsflash/_item.php @@ -0,0 +1,29 @@ +<?php // @version $Id: _item.php 11215 2008-10-26 02:25:51Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if ($params->get('item_title')) : ?> +<h4> + <?php if ($params->get('link_titles') && (isset($item->linkOn))) : ?> + <a href="<?php echo JRoute::_($item->linkOn); ?>" class="contentpagetitle<?php echo $params->get('moduleclass_sfx'); ?>"> + <?php echo $item->title; ?></a> + <?php else : + echo $item->title; + endif; ?> +</h4> +<?php endif; ?> + +<?php if (!$params->get('intro_only')) : + echo $item->afterDisplayTitle; +endif; ?> + +<?php echo $item->beforeDisplayContent; +echo JFilterOutput::ampReplace($item->text); + +$itemparams=new JParameter($item->attribs); +$readmoretxt=$itemparams->get('readmore',JText::_('Read more')); +if (isset($item->linkOn) && $item->readmore && $params->get('readmore')) : ?> +<a href="<?php echo $item->linkOn; ?>" class="readon"> + <?php echo $readmoretxt; ?></a> +<?php endif; ?> +<span class="article_separator"> </span> diff --git a/templates/beez/html/mod_newsflash/default.php b/templates/beez/html/mod_newsflash/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_newsflash/default.php @@ -0,0 +1,10 @@ +<?php // @version $Id: default.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php +srand((double) microtime() * 1000000); +$flashnum = rand(0, $items - 1); +$item = $list[$flashnum]; +modNewsFlashHelper::renderItem($item, $params, $access); +?> diff --git a/templates/beez/html/mod_newsflash/horiz.php b/templates/beez/html/mod_newsflash/horiz.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_newsflash/horiz.php @@ -0,0 +1,16 @@ +<?php // @version $Id: horiz.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if (count($list) == 1) : + $item = $list[0]; + modNewsFlashHelper::renderItem($item, $params, $access); +elseif (count($list) > 1) : ?> +<ul class="horiz<?php echo $params->get('moduleclass_sfx'); ?>"> + <?php foreach ($list as $item) : ?> + <li> + <?php modNewsFlashHelper::renderItem($item, $params, $access); ?> + </li> + <?php endforeach; ?> +</ul> +<?php endif; diff --git a/templates/beez/html/mod_newsflash/index.html b/templates/beez/html/mod_newsflash/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_newsflash/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/mod_newsflash/vert.php b/templates/beez/html/mod_newsflash/vert.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_newsflash/vert.php @@ -0,0 +1,16 @@ +<?php // @version $Id: vert.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<?php if (count($list) == 1) : + $item = $list[0]; + modNewsFlashHelper::renderItem($item, $params, $access); +elseif (count($list) > 1) : ?> +<ul class="vert<?php echo $params->get('moduleclass_sfx'); ?>"> + <?php foreach ($list as $item) : ?> + <li> + <?php modNewsFlashHelper::renderItem($item, $params, $access); ?> + </li> + <?php endforeach; ?> +</ul> +<?php endif; diff --git a/templates/beez/html/mod_poll/default.php b/templates/beez/html/mod_poll/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_poll/default.php @@ -0,0 +1,26 @@ +<?php +// @version $Id: default.php 10381 2008-06-01 03:35:53Z pasamio $ +defined('_JEXEC') or die('Restricted access'); +?> + +<h4><?php echo $poll->title; ?></h4> +<form name="form2" method="post" action="index.php" class="poll"> + <fieldset> + <?php for ($i = 0, $n = count($options); $i < $n; $i++) : ?> + <input type="radio" name="voteid" id="voteid<?php echo $options[$i]->id; ?>" value="<?php echo $options[$i]->id; ?>" alt="<?php echo $options[$i]->id; ?>" /> + <label for="voteid<?php echo $options[$i]->id; ?>"> + <?php echo $options[$i]->text; ?> + </label> + <br /> + <?php endfor; ?> + </fieldset> + + <input type="submit" name="task_button" class="button" value="<?php echo JText::_('Vote'); ?>" /> + <a href="<?php echo JRoute::_('index.php?option=com_poll&id='.$poll->slug.$itemid.'#content'); ?>"> + <?php echo JText::_('Results'); ?></a> + + <input type="hidden" name="option" value="com_poll" /> + <input type="hidden" name="id" value="<?php echo $poll->id; ?>" /> + <input type="hidden" name="task" value="vote" /> + <?php echo JHTML::_( 'form.token' ); ?> +</form> diff --git a/templates/beez/html/mod_poll/index.html b/templates/beez/html/mod_poll/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_poll/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/mod_search/default.php b/templates/beez/html/mod_search/default.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_search/default.php @@ -0,0 +1,46 @@ +<?php +// @version $Id: default.php 11215 2008-10-26 02:25:51Z ian $ +defined('_JEXEC') or die('Restricted access'); +?> + +<form action="index.php" method="post" class="search<?php echo $params->get('moduleclass_sfx'); ?>"> + <label for="mod_search_searchword"> + <?php echo JText::_('search') ?> + </label> + <?php + $output = '<input name="searchword" id="mod_search_searchword" maxlength="20" class="inputbox'.$moduleclass_sfx.'" type="text" size="'.$width.'" value="'.$text.'" onblur="if(this.value==\'\') this.value=\''.$text.'\';" onfocus="if(this.value==\''.$text.'\') this.value=\'\';" />'; + + if ($button) : + if ($imagebutton) : + $button = '<input type="image" value="'.$button_text.'" class="button'.$moduleclass_sfx.'" src="'.$img.'"/>'; + else : + $button = '<input type="submit" value="'.$button_text.'" class="button'.$moduleclass_sfx.'"/>'; + endif; + endif; + + switch ($button_pos) : + case 'top' : + $button = $button.'<br />'; + $output = $button.$output; + break; + + case 'bottom' : + $button = '<br />'.$button; + $output = $output.$button; + break; + + case 'right' : + $output = $output.$button; + break; + + case 'left' : + default : + $output = $button.$output; + break; + endswitch; + + echo $output; + ?> + <input type="hidden" name="option" value="com_search" /> + <input type="hidden" name="task" value="search" /> +</form> diff --git a/templates/beez/html/mod_search/index.html b/templates/beez/html/mod_search/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/html/mod_search/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/html/modules.php b/templates/beez/html/modules.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/modules.php @@ -0,0 +1,35 @@ +<?php +defined('_JEXEC') or die('Restricted access'); + +/** + * This is a file to add template specific chrome to module rendering. To use it you would + * set the style attribute for the given module(s) include in your template to use the style + * for each given modChrome function. + * + * eg. To render a module mod_test in the sliders style, you would use the following include: + * <jdoc:include type="module" name="test" style="slider" /> + * + * This gives template designers ultimate control over how modules are rendered. + * + * NOTICE: All chrome wrapping methods should be named: modChrome_{STYLE} and take the same + * three arguments. + */ + + +/** + * Custom module chrome, echos the whole module in a <div> and the header in <h{x}>. The level of + * the header can be configured through a 'headerLevel' attribute of the <jdoc:include /> tag. + * Defaults to <h3> if none given + */ +function modChrome_beezDivision($module, &$params, &$attribs) +{ + $headerLevel = isset($attribs['headerLevel']) ? (int) $attribs['headerLevel'] : 3; + if (!empty ($module->content)) : ?> + <div class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>"> + <?php if ($module->showtitle) : ?> + <h<?php echo $headerLevel; ?>><?php echo $module->title; ?></h<?php echo $headerLevel; ?>> + <?php endif; ?> + <?php echo $module->content; ?> + </div> + <?php endif; +} diff --git a/templates/beez/html/pagination.php b/templates/beez/html/pagination.php new file mode 100644 --- /dev/null +++ b/templates/beez/html/pagination.php @@ -0,0 +1,120 @@ +<?php +/** + * @version $Id: pagination.php 10381 2008-06-01 03:35:53Z pasamio $ + * @package Joomla + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined('_JEXEC') or die('Restricted access'); + +/** + * This is a file to add template specific chrome to pagination rendering. + * + * pagination_list_footer + * Input variable $list is an array with offsets: + * $list[limit] : int + * $list[limitstart] : int + * $list[total] : int + * $list[limitfield] : string + * $list[pagescounter] : string + * $list[pageslinks] : string + * + * pagination_list_render + * Input variable $list is an array with offsets: + * $list[all] + * [data] : string + * [active] : boolean + * $list[start] + * [data] : string + * [active] : boolean + * $list[previous] + * [data] : string + * [active] : boolean + * $list[next] + * [data] : string + * [active] : boolean + * $list[end] + * [data] : string + * [active] : boolean + * $list[pages] + * [{PAGE}][data] : string + * [{PAGE}][active] : boolean + * + * pagination_item_active + * Input variable $item is an object with fields: + * $item->base : integer + * $item->link : string + * $item->text : string + * + * pagination_item_inactive + * Input variable $item is an object with fields: + * $item->base : integer + * $item->link : string + * $item->text : string + * + * This gives template designers ultimate control over how pagination is rendered. + * + * NOTE: If you override pagination_item_active OR pagination_item_inactive you MUST override them both + */ + +function pagination_list_footer($list) +{ + // Initialize variables + $lang =& JFactory::getLanguage(); + $html = "<div class=\"list-footer\">\n"; + + $html .= "\n<div class=\"limit\">".JText::_('Display Num').$list['limitfield']."</div>"; + $html .= $list['pageslinks']; + $html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>"; + + $html .= "\n<input type=\"hidden\" name=\"limitstart\" value=\"".$list['limitstart']."\" />"; + $html .= "\n</div>"; + + return $html; +} + +function pagination_list_render($list) +{ + // Initialize variables + $lang =& JFactory::getLanguage(); + $html = "<ul class=\"pagination\">"; + + $html .= $list['start']['data']; + $html .= $list['previous']['data']; + + foreach( $list['pages'] as $page ) + { + if($page['data']['active']) { + // $html .= '<strong>'; + } + + $html .= $page['data']; + + if($page['data']['active']) { + // $html .= '</strong>'; + } + } + + $html .= $list['next']['data']; + $html .= $list['end']['data']; + // $html .= '«'; + + $html .= "</ul>"; + return $html; +} + +function pagination_item_active(&$item) { + return "<li><strong><a href=\"".$item->link."\" title=\"".$item->text."\">".$item->text."</a></strong></li>"; +} + +function pagination_item_inactive(&$item) { + return "<li>".$item->text."</li>"; +} +?> \ No newline at end of file diff --git a/templates/beez/images/arrow.gif b/templates/beez/images/arrow.gif new file mode 100644 index 0000000000000000000000000000000000000000..375d206e50cf21436281035ca2dab2e63dca18c3 GIT binary patch literal 116 zc${<hbhEHb<YM4w*v!E2|Ns9VAHTi6_T<UQ+t=5gJUMCmp0cIuq9-r3Z=7XRF<B*_ z0Tn3zWML6u_|KpN;(*LxU{Mq};kkOR#cSyz%R`|WT^9qDXNqWe&I+#L32hXZUXT~e H!e9*mj<qPb diff --git a/templates/beez/images/arrow.png b/templates/beez/images/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..78e0fb519bfaad704cb87c2064a5f7085b5b5250 GIT binary patch literal 265 zc%17D@N?(olHy`uVBq!ia0vp^AT}2ZGmxy8xzq=wn2Vh}LpV4%Za?&Y0OYC!_=LDl zR>?m(Y5R|l-)0(?Ut4=}xlh-V6SvnzP5$`g?e4Or|NsA=WmMs>#Pb@cp0mIsvY3H^ zTL^?1FWs&C0~8c1ag8W(E=o--$;{7F2+7P%WiT+(H!#&VFjx37`36vhDo90eep*R+ zVo@rCZ(?#$er{??W}<>yW>IQ+eo=O@f^UR^k%56pd)b=vKn<FnE{-7;bCMGp8h8_e zbQoN`bQwP`3DayksmkV16v;S2*N{;~`V0dz!>tMIx&jMhw*WOUc)I$ztaD0e0stRK BS3Cd! diff --git a/templates/beez/images/arrow_rtl.png b/templates/beez/images/arrow_rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..27cc182c3b7e88bc753fe25e7eea7e401b44f3c8 GIT binary patch literal 309 zc%17D@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4F%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl{SNcITwWnidMV_;}#VPN<L6l!?Ez))(y!0;-8fx&791A}<MoLzx7KnczQ zkH}&M25vzRW~@(%p9mCGEpd$~3C>R|DNig)W$;Z*F3QhMP037DaLX)8Ezd8?E>`f3 zP%ttuFljGaa~`N6*VDx@L?bwP&YDU8=Qm0)1a<J9H_`dO|ITu5z2gnO7vF7K`rqEJ z^7sEIOWxiPUDrM9&;OI1xBn+HI4ho*m7VQ>Nc2Gn$0oTYzmFf!*XSyYvOT?m>1fIv wu0%QJpJGqKnz$0B9Lx^fh-hYyp1{b^@%cql*<|KxK#LhXUHx3vIVCg!0L2SwPXGV_ diff --git a/templates/beez/images/biene.gif b/templates/beez/images/biene.gif new file mode 100644 index 0000000000000000000000000000000000000000..0012e4a1f370e27ecf45c3c545d9259c075b20c4 GIT binary patch literal 8551 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 diff --git a/templates/beez/images/biene_rtl.gif b/templates/beez/images/biene_rtl.gif new file mode 100644 index 0000000000000000000000000000000000000000..48a69d534765199e282b2fa0d739c0e0f844a2cb GIT binary patch literal 34218 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 I2L%KGJ8696H2?qr diff --git a/templates/beez/images/con_address.png b/templates/beez/images/con_address.png new file mode 100644 index 0000000000000000000000000000000000000000..08179e2f5a461c3382482f4b573936f37a443519 GIT binary patch literal 420 zc%17D@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy%*9TgAsieWw;%dH0CMdEd_r7j z8mImI{O!!l&C7f%-`srk?Ci~*MN>aNdo$mm;PSFPM|)OoPV4#f^v%spNB7sy|NsC0 zn#ks#pT6GTe|~?%f;TrGue?6X7HAY_fk$L90|U1Z2s2)~TlWVjC|2ScQQ};bnpl#V zpQjL#nVZUBV5DzotZ!g$@%iZ%pbAxxis1aTlJdl&R0iL~<f8oC)RfFb1-Hzi)bjkI z>|zDq2n8bp1C#c$HRpjER(iTPhE&YCdf~LtAq5`R3nHAn{gYh&{?DJfEjfBa&ttE> z-3K1=s4&(E{|Id8*v1~R$cW(xpTnm(p$#t?{7>ZQ+b-}cvCMyd!0X1l^n|9&`Zr#| z+)ZyLpFJPAqM_?@mdv#sW?PzE=0zW9yTr!EDVW`$clu$sHRGmfqKoxJg_(MftF<$2 zSR+xeGC|;2Raf|d`^@JJ?b&ZWkxbdFw%wtLQ%~qkrh|DsqukRqM$;u&7J%Y|!PC{x JWt~$(69D1mt%U#p diff --git a/templates/beez/images/index.html b/templates/beez/images/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/images/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/images/logo.gif b/templates/beez/images/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c1a40fb61e3799c5dfdd40360e6a3f63b57fb496 GIT binary patch literal 8725 zc$^)Ud0dS9`~TnfGW&Ly_C=FQNiw3e(cQF|vW;vZOd)AuQjR#`o~F{uq!5L>MP;8h zq7G9@DKQZ$IY!oqGnUU$r1_rT@A~8Q$Mw(abv+)h=i_lL2nuxf2zP?Q!4CjhTU#z% zxG;R*^iFo|<;qOYA~Y+3Gy0LYJVabtTAH|s`|rR1-pMsh+P(YA5%#H5r^d!cCnhF7 zfBw8}n}6+=6JNf386F<aSiw4&y7j&ii`=qhpub<E(JXYPKY9F^NrC_V`}y6wjrq1a z-oAO$qgLnVAIaP4)Y;iNaAjeCsl)yI-OtX=Jh)SolauqhcFvnd$Kl&{)nyJJySERu z^_M5x{~oWnmSkvS0Lx^uwgSic`g+0484vF-b+e{ixpL*^UpH4Tw7GHp`uY6TBR%5o zJ5dwA>nDD#`FGH~=eYF}oZC>!n;1W?yd>?f*-~{f{*Nfm=iaFY&c=?u_j=grtos#| zmoBKk<UcX$7PZ>(Xx=*A_|BWx^1Dthebp$wUT8P*BTDx>b>es1KyCMjJKpEEu;08M zc-d$=_F>K5&F+^Tk^dW*doIDOF54k5Q~%$W0aa<XqwiuSej4?6@uKE4p4UzJ@c6`| z?&7a6_l%7=+}O+59=_yWh5e}Ze>JJzohJpaA9)o=nNABaeDL5wZ5*q-IKTIX+tc2z zFGC}m%X7v)5l^2yxpt{yu(fL6?(olDb`!rwPFG$%d3^te*EM%k<$m+s{?|GuE;jnF z&YrgVDXlmBD}pl`uGXu|+<$*8`1^w0xBvbAi!f+Ox4dxiYIBC$VBht_hYz1v&w0^* zKP&ghyXPr4PIwHz*9<&+|L)zp(H~!x+p#y#BMOfn=gvmH-n9QT5<`+%uik6#-MyWe znK7aJ@!<a5`r2BR>eh|Mzj}Ln(!)(ED=H4ArJg7%z14VeT&ElTr8`@MU%ps4_POiF zPu-n6ZQ5@?UcVk17<e8ZAAh0d+(^@$qeqV=CnsB&n+-mD_UPfm;YXSeA3k(-b#-)f zeE;@sXlQ6xQ_$D%-+N!HfBpIuC;g-CP1DEWk&h!IAKna)jEwX>eY!p@?7_qPy}iAM z^NQA`EPgRK@cQ-Zd-v`QYTlLX<29bz{H*7~r+2D`YuA2!x;gwR@8`D{LoegsJU`de z)YRD6SX)#3X2@msY@pNWtjAFB|HkS6%YRG&x(?_V79u6tET>O$4C_#qv>wE4f{R7f zrES?Jv!e$)s>|9B^Zl|cf@;d|<~uAuA9lCqY}awYrq1G^+KTQX_k<6FcWWyjoWbQx z%iy}Io-$Fs<ND6JbB`*;WfM8lI4dQMS8AtjhEjU3NR|d`zYwWcWqR(T8OJ`w_FeP1 z738pBbqidmp9nryX#Jh^rAT`izL?TaW9ZxC78<mk=?Hm8*^6OUp7}tKLLA;aR|X|9 zCSTfFbQm39(cl{DOYxDY27?@~6O)MpERnXfeP%{Ybgz4C%&x^LPxW6NT1D4?oyrBf zgWA~&RWVM#G%)L#Tj^0W?hI{}uEPkJ(DE$w3$iiWC-QeGZm9A7oPIh>e~SMzNuvA^ z{e_db+1*$BLk(X7D&7uIH%XSrTM7DcRsorVv$T^2b_^HVyr90NAK|(hrOp*%4Dq)- z8e@DDH`a5rAIwNuQPx4_OYs-<+P0RQW&PvJA=+ezvPGVKVI6AN9<|Ph$D&$gUh@ep zkH8#X%cmgQmbdI#9g^RD$S7yI%#Gzlb`us3A)MK~V>Tx!7IA=${w#khn_^o<3Udo( z3LBbDaT`nUQZJxozD>@iX6on7ub`Q}js=V5FVL#R9`^`A5!VP;E<Q$|K`u?yfigJF zrog7zRe4O8P_dQAL`k<#<z*df2DJI$yurK%8PCugu<37;6iZxZA5mMo4z7Qc<uSjG z^egq=_O0yF3-3@_!u)Z3v6s2Fh6VbvDqE>GD?qaxTE+J*(T!rw`^xpp7q5NW`(a5o zywB#7>#q3pw=kAy-rNGHeOXM9qg_l<ZO;Gf_sU^N#v8aD(n2+Nh&VLGwu>eV|89#d zcJd^oUxa$L_a4rDEB&K|=Q)ZwgJ;^{rEZ3WWlMoYT?j@GTUpx;*UzW>QjEgB@#g7? zB$AuDaWdB<Wa9}{EF2#^7`ZiCJ{4tbJ@1CX+usf_6w|)d`wuwywQR7flW<)pcj^|r zr}{|F%4ruCqcZOJB8MkUtQC{|U&3*%3$fwk)@I%tddq|PZ^>xxyx#KKW(ELQDi3<E z<n)Go+vHIgdPd7*NLFKA_>0X?JKd>8pBhhYD?L@wbcx<BbMY-S^j*W<x15Ut5eC{G zR)Lhe7Y^f=iSz(*Gkr23AI$fBujGNZf=A5rSc6e&k9}P0y(bqYUU|>%&0q_s8x~yX z;6c*%`I9xyGD1Z&?^^(pNjNewkZ({6W*hNkd~0?L3@viK5$Uz6z6HK~L_xPpt#BP% zvcag2N*^uY8ltkv<{7|ev<G8YTrjg4l`)<CIb-5YDAp0^r1O?4b{5*u-^e)gRwyB^ ze=g!k(soT&@jkLq^gCD=bh+oy4zzi{O+)`wquVUQBm#Y`0j~SSSv0f+eS>wl|1HPc z4E-rS4OG{vbl()Ma6|CVJIL)#va0LRv!4RqvpdZ`CnzI-mP|_ZQbMz=-j}(KSFIGH z)rX^<_ylj%x5nGxeDAieRv6zGleF^m`{J!FNbZR3j}w&J%WOdwE}!sqo(~a|RU#0Z zdg2COa@L@9jOtt(-$jv<W+|hS7z23~v;rbypKZo=zSdl(l`mN-Kk7b1?Hql(WnRV_ z_A0DQo+v0&ScuvgHSuul#SpAlq?*QZ(H#N>uNKeO8rt<V<nHv=xFNF+UP&S8SH$HO z5LtqgV?4%)jfd?R)h7uetjO(Fj_M)YRwLWzj~L5eQ=D-%d*6FMN~&4AYtmL(v~~zp zbyocLR-1ZuA4-4ew0U}<lEYGvlwJ+H$x(bLCX}?aP`9rP2JH4&oYJqlQ^G`*@;V0k zMy)W<O@ssLUY*2xec{{nda=Mp(xgz$RU{sX8ChJ;%nU%z%j8DIv!PzSwuM0zbgV#h zys!7%r6pszs5%HX>fq9rM9M;PRMt!VPX3u>T@y_#w32&w+#X0Vk!XchK1y@vlV5nT z<(H=$+@R8M|C+ya^<@@|66iDci%nxmeSuR6>BpI}ZkxLwq5_1An>8I+$c+y&0f@SN z`+x)TN7k0y`Nnwf$7v}@)2uL$oS>C@rzGjTKKpCvvaHZiKHZZ%$d#%thB{2~VQGm4 zU4DzK*t4hGIRwnfsqcwRT=JJLqiy|72%I|?WvAJc?vWgf`R+qZ9x88BCzG^!w$`j8 z5}}~9SvCo5T4<D{;MEjikpS^|)^X-xu!5TnM0(jle>*m=Rj}Hpn0fZKZF92bNMdnw zp5GKfB0kOhWfam+eCF*3FN!JrUGp;n;F_L8G3>d`wV9wm_eE0>$_J}U``6%t%o(xG zIz}s?Qd98^QQ?2??{WQ+>Qwvh8jB5gv$<$Vu+elh{y<B**B>&ZX;o^(S#5K&-CD&T z1@PJNz5v*akpDVQCfmO+qMfg{k1o7%a2P|~YMMVx>RnE;Roydny;`^E_bW(ZPLpgu zal}dk3wUeOEHlJN=s3*CFlnPK^37N)Dq&hR`0_4_kxd#8{nm^_lQ^6%eUYD;yBY{N zrPKDD8t!6ji)Fwhq|vvfzob%qnk)fU=sf?k_GtTBB76UF)jZ<2uiHd<%F5c4r;(MY z>)&IRPyq7W>2Bb(;P|sU2YtatLT=ipq9%bBDid#=iN#a+{?CA`uEU=<Uz}!!5znxa zzz>68bM>lb(anU<k1lKfM){zjrIZSMYxHtxp~CVv4!($)mI!rk&0T#n*vUx5+bvbO zgPKKdi5StuaEIj2anC6KC?4JgZ=WU`iI{S>KbAjv6N#|No-gwj$=Gftw=Fs}GzWuH z+T0}ABuV+z-pP8BN1BIU6cwM^_|V$0>ds6=kvlb7ALW=xlWyv5+&bQXHb-rWc2|t1 ziAb|?Z74&Z$o;K%(cN%#k!wVW?a3S!Gt(r+DoV>TYf^DW`&!Jul3;mG1UuSc+;BoF z=a~@94U$Vk=0XxUwDv$ns}2^vvG-}ak!jJ9t~+3*V#O9$!tM@`@Imr$)Ep9ZBo_tp zK^t1YH|rsCT^CkwAA4GE{67Vw5HO8Z)Iu#ffpgjf%-g%6J$xVrNlP(Wq&hiHidqtp zk18=e#q7QSYrb^$cmB4Y0H`VJJCAZY!TNqaJw>oIsBV=u9SO97+%@d`Qf>+%F)iUd zRk2g>X<uc_=KAt<7*|F@`_$+*jII&0Z3IlT3b<+DG<C8TqnT<UD;2mU;B2gu(VN)} z&4H^fa34QlT#Ep8^k+VO?vy|J!J@N#&cYvY4>9(NqqA3sGxm;h`f!Gs8mvn7eWl`^ zkuq8Z%nT{-j84I>RMY0DC<!EpQB&0aLR=}}YN1CGn9k=E@zZJH&@Fwz0M20!A-_oW zb6U)>26FxmW?<}Q%?5jg%_SG^^P?PwRBk3=93y}k3D4~V^-mXAsL;iL$yUP7d}OhT z5u>7(si6b~Z3E7*QX?V_g{p<#DLDGdu=2i5JyIh*HFsPRWH07ynrrh|aCoPj<qp`V zHu(&cvae|j<GxwG)Pq<`o<|b*9SJpyg1(37MYqa*tHBA9nn=(yl<;W<?4hBtrH~~F zxFqwDfD@!)OjSeoC7!|>2A7fGUv}7jQ^H$t*tQH_RdO)q#~eK!$zdoc{tD)(2IUc; zKn)cTlx7W7)xzdTxpXP_J|Ak&H%SriWi_uq-R8f3lferWD&gmy*3kAVkYWW~!H>J8 zrA}Z+2nFmU&e6v>4JGX9+oDpwbC%XlH6jB&Q}$M?VFsU$G_wOMp=JW|79-&pb)lFt zSDhE7f}IFzkQx-|p<YrhgmL_j9kmeb>N}2k`15SZz)s~d%-En6uog<G2LLh?a70ol z_Z(O%;8@`dFC1|qSe`iEjG=n`#PS9(1Lnu(Pt_-3h8kWe#Jc<#a|JX@HL@H~GuOmD z@5{phYWW1RB0#o8F++!O%rKUQU_QpN8yM&KW2{%jTP?S))~;GGi|tSFHu5QvI6}PR zg(@g!1fVMuhcsMB1JMC6Q^W5<F+DL%?6I^E?5HN3sd}vE?zA8^^59@$Tl&_AjHJ2h zWGjL)OH64|(wFejl{h_@U;#Dj63NPzGEoA2<1^}UkdMKuLa?_a()6}?DBVDxWUa$s zGc7nPVPvbg1_hiM0G`3;%*T0;)!<D?B*zhZsxDewxdmutG7nCV2hGNl5-3IkNJ^X* zvi$EtL237HWTl$1P(dkGvAzg$zbL83DtIqAK`5yX1Z62nbx|<=bqdBRj4>j>Y&1wq z5Vr7#i~lkv+Y^Hbq(K=`En)D$+%^4YsSu>xc~Yllw@cZRKqXU986>4F6r-*<#e4vI z6jb^MLugWpi<<sH%{5WRUXelxQmBl8*AuV^Fn6etSrT-iqVU2tO1;EKP=Gxqq1<W% zAYs_)^Dh{4cvGNed}D=~Q>qFrS0O>5^3iZ|j2TrTpd?+ru*(dICTKJT6a~1G&w>Q8 zax)R@{2#3vc$$JXSAi}dshMJ4>`D3oz_J!ouk+V31SG)E1VPZd*X(!8e9<q+F>Ub2 z0nCtqlnPe3fYM!gp}P`Yt5a13Vo2`w3t^+IXbp9@7A8r6II=^<$}1R?kYuto3}?VO zt!3Q;$RR$Esu^3Q)DS-4N_gf)`4@Ts@)Ph$S#VF08L^Kgo-*BBuU-mVwe&z`TK|cP zx$BTXZAB6_>2wt{1f%&8a4eu3OCcr+jEUVP5~O1wkE)_(2v}+@JQE;(QkodZxC+Kb zHRCcrL7C5SFAR$;GWaZJruAJl_GPccXaN{Co<w`nw?3y+){2pZIAtk6E}4a%*TP~c zP^%c(3#k=~i<<@X`-QX$Eh|_7#VODr9GMO{YMkcBM+AHzAkhPWwqD0a!$YxN3^h7` zqu&l%Nzm%e8fzPO&I6Q<VniaPG-hw@K1hwm>o+NBC4hMar&jNU<PwApcwJLz@i-+( zL*D_=APM}qQJKH6J`qDU2&i|I^z&Iaov6@CDH<q7R+DIV`?U!`*$Sv@G1`x3jbc#e zprM7S7;ZTA;fbdEQA}LI-l@9js-Z3rGj{O*(r;4k*HD5N(bQ7fDHS6RKgv1DJy*-C znq9uHoE<7)C21+E70^|WQYn)XBBid@v^?*)wp5BHNvX~XBuqugS(ka&oXHl@+m)Pk z63TLtvQ<M@iy6)m*gP8EA?f&23vbf#kq$9$tAv_I-WYgv8Y!WF=eN;9O!~yD3hzyN zr$*Qs`c@~}bo)D&8hUIph?jt-XUSB}l?6DBt!2vjDob2NEv6BwwR&3aA7Tm@udfv| zjw<0$DRL|W&GJU2fVN#iJt1HZU$2=_bM={o+X+CH0DkYMcTZveL~iv4z+?X+h36-+ zaK=0VZ5q}jz^;UiLK9ke0oh3-uSMt3qNV5p71*qOz*Hj*_rM+rd{uy5lvK#n)L9zZ zX~8{0!X(Lihcxs^1yrb{*eKcjnDbF?+<Ro;WDU1TgM4e?>6M7h3Bi>k!j7R}OaTIy zyC&$SO?pAnx__`v^T8qTAgm8b<O7<Z_mo3icO?kXP{n*2y1wh7hnkeAk!75#V^ED4 zP!yCeB-4CN<}C?`6N5o9m9^@|`e3`qYHm{lG`p1UTgdsT!J@0@C?1=}BCgN>$A_fG zho4U3NL$<#aH5v=#Uk!c@dLk8(3FAX2^FG0cF|4R+L6_zYovZAyk=kzB0h1RV?6U9 zI!BeZ`V<w>dz57#>6mTQtK<>&yb;)CckQmDABsP%;65u}cjx-lB1pJ8CGwlgGuIxD zfn?`%_nsJaa`;6wV;^d&ITbN@VF4c$3z+*bRRUj4DMma5^d*9@+d38Np_03d;OeA2 z2aLH{MehP!D~$e8IYUP*$lA(vlp4RJ;j8cP`fyHF2-h!xV}svUX%Sl$+h2rjeZu_e z&&jQGi!S9T9tZp{#r%@W&MS|TE#VB(E8PHdp7^oVf271wnOL0d+W(45Tdbz(?Q81r zrkAPFFu>f5@v_8h+84TuhA}ZnyR7AzYuVawyl2?j{(wiRUwK&se%cp{$>wCpm;Z~L zu~9-m(#Ds}!f){McfymUyS}-sb5sOk&QMOGanw{Fqsx<uq)Z;4-I@XR0y++cVw}KE zJ}naOix`KT_=rCNlYoBbPw3+~Gfbx(O8pa>qoh<ypffldj^}yZghc{+1;(pXvUNE7 zE+6XCO4B2uw_?b#g%@@bV<~n#DM9)q+;>L-U(A^j02cvJVieH(1-Tpu^ToC*ph>$u z$5YFDov3lIW?fVFT-wFubE{1i=qw49+m+VQ{a*r}h(u$wtf$YR%__<lEh|=f>_I2> zi;|Mh=j~EcPHPy3d)g}`Od$@oN1heX;ED-Oub{i?HhcA1_D_{Xto!<O!<9{#^t%@P zB4*fPU>JbP5}u7pKCDHaDdWb~&2y_6)mqsQ2{nix&y!GR;fy~eRFUS?>5ep9(7@Gz z4xQtvxsv2EtS<&fGBof%hftA{_Ro?$gKfim#9ezxG*V5^YWEp0VJocd>~Y>tC2L%p za5>54^p?4vE*q;AF4qzQcnX(J^<8)w+$(i?VPG&HV=I<3&6J=Dd%#vv3pA9O1X`g= z^O6+3<D(m-DoRYlo>i(60xiZ7&wpUAE2F{}qlUwbL<uz-qpeYWF-f&6TfS_1ozt*_ z3(pDo*qiwENqV>=hgt*vdH2t(<=znsqFKk+-7#Umq8fab&A_BwgC87sNs%$2(>0XS z+Kb)S5HC&U9Rd0$;8FSY7Gpzh7;~Bu-hm^<8rWG0A9^u*bUN6s)3hC3n)O}9aztTU z03eA|CxEX9V6K(HJc4!dysTRFuTHzjQyVfY3Eli{UKYSWq9RoLK;xUrFm&GBr+(Qg zpOI*b5|T5%^kWs_W4jLJRvMHTBp0S@T4@KIDja5!lKWlx#<4_a9=wcewqv|Ob9YkD zQh(<SboZTstkWXQBwhQoclc4|r0An-n2$d^X3$S;cr!5Pqpx0g+abH@$Kc!XKBE-P z*;3d)l|^{4uHq-^_z*Fsv3rj)c$3fPb)?71({@mAh5srs_`Inj&lG-jRM2-_&*Z@= zR;fy#W9xxKQ!*v(cP;PyTUhw2rj^rYjHjKy9zoIFpBuY#WJB|}HnD>=I?6-nAbfmz zb<B*xlY<{t%ezl42nc=R*<X94Ubj%S=HyvPLoiC$AfYKV2CQEG(w71@bly8U`~9m= ze~gb!`Y@W;N2Vo6rLi*0^09W)g-<$KsnkD50hGVwC!lW%T{u+#bbH}{JB4;r8o5f_ z%F@>x<4~a#RvF!~prPD)xFRO{dTK<0-i-sX#oYFfdkw6;KHW4uXv#PglYz9Bd(fcp zy0NXOmHue6V$)TTeM)p<5}$~56Z@x4QpUT0-<|gkn;DL;BhDmDcF#CzIk=+Pbl!ez zdCuy$qY@gYB2P=@hf43(Pu@OCBDkl&E`qW&HHAtQQAEpf{afg*8OV{8Wq}ujRe8%l za3A(~Ox{<=?dWg>#7Vt-)=?$&6%AjDqNJ*3eQpW_bDTUy5t)JvrT<|XUqKwF5kU*! zIObOZnO)X4GX*&K&aB=cB~ju)Rkba|3ywnNMoS)PEEr2~yv%gdoUq9hhJW;h%oU<= zisy#WRy_w&`YOjiI<$xGAuwsT9u`Qdj@h1$e!aX>n!Ly}v)jAeY1Y+0i4$^LRRwtf zFMMsXht8K2PSRJY820qLDQVmGzAuqa4t0pgbn|>q9NEl1Pn<yk-v#_EcQtdNn~^AO ztCJ+~Zo<IW0@$L|S4U5^ERL@T^RfF*%XJI8A!y}o7XyQ(kzZCbr|C~C%`j65O3#=? zf7!9T(jfAEVI@KIP5<ODe=oGS!%X6pQ2qs!>~xo=fhj|Wd?8!+WfTSL$@^CaMO7Ki z>Jwh%*$kgKBaj@+nrKfEobvv;E5nG6%PleKL9<{?tx7pC#es4#hMN_6l35o|J&5Y7 zN}z27BRo5hP{G+OOYcm5Bh6hLOuJ0B&>ep^+fwb-vgzRme@;9*lVz<x7{ye!J~(A{ z|K&R?I<vD<G5eUvpMzY4%%+*NnJ=0}n@7T|NNrgEhWyMaQP76DA|dChl-0KdbJ5Gd z=M<Od4!6x<K)nJHBcdedKwX)^BliUn?|X<4Cx7^cz+dp4qy^s|vFKE{&vA%n+i&*G z$m5^z;LGQyuh2{j4c+)_^4FVD9Kz|O2HEeXB|;pAtX`1mmiGw;#13Z*q>wpVeZ-eY zVKW<m={QMski10FvYPc(TC{KU6+1wgvT4rff`f(f)E5~5;CN=NiS10D0(^4tt@!&T z-{@>8a7!V4p8jq%G%|sl%@n!Y$8F4==5)Zed|4R!dD`A}^cTfKn`LQ^E@G#A*Ukve zw)L%yv_8c0y?|=m^wN08C}QZsFY<OEHh4&7W=yEayv~=kHc8mOm!D>*lcek>UcdD_ zw45DQrQ*LyQXzX~#NbN}pQTnIW|GVh@X8`^QHI;N13P$*YLRGB20EqZ+OOL#5$7$c zPK=5hsy92WWnr*|=dAR3P2n7zl(9%DHMIAo$sW)KJryvQH28uq(efW`vD<;9e>j65 zA{Sc1vPMdo*;yrUm-f`j8(vuqJG6PMC0P1(ts+*>smGmj&R@1|PX5@aw|qC6H=6rK z`tU=5X_6pqminb3vjeh>kbnb{S5_mTax*VUmhWc3vq{TEhNQ&CVp|4{@YSFEHl)e3 z+>-7t^D6GCps<g6-3NE5125TV*b(c`|GhegnU4Q13(#4M-elc&$Ub^d6z^2!lFz%^ zk&7o1l$a=?8B<xQF^!nIxllgsD}gT944(|nXw?h+D%*H3!nV32W`}VLv`~{`Wu{2y zjVEDy=7Xqa`s9oE<C_}aysKFSrBoINpZ_?uJ(H@}YT!Hdl4`uw{3C(dP<zrMQZ=Sm z3)gx_`K8xhma(=+$z8j}&uoh~b1ITB>*QY>Q&;#ScG3=pn>?GC@LOrF4xAn=1AqC) z+*s`q_(x;JnvR+)*2Xqn){-Cc4GOtMPN<)Qw>7dFC)xS$TPaa$ba|o%zM>UQBBV#S zh1SSUshS&#<%HNu^in9&4RWy;D$-cL(9P?hJNYuCb5y29QBeNb#?CYday*iI$m#I= zEuZ)+oEq+F1cE%dZz}A68b|Hj^I+R1YlE^vKbisH(F!GI`+rg_)g*c(w556|i8z`) z@{kinpuQsQrUB^CwmM*L*pa@~F6WJHw8xIM(6=#9j%jz+mh)SVrI_8*z$8l1+b{7G zEt++OWkO<3{JWe*Iq40KEMscsfBoARb==I%<uR^GC~JoHi#|Op+MY4J=m@&RIPut- z^o6_6GCS6NN7!QbT}8iDA1p2c#%6~VF-_vMd5dirA{;jRPC^m3mkg;d4<3>2+fiQM zV)0IyYF8Zo&%TJ0)?4~&bU0*hx>lIp8qtH!Z46Jd>%}>W0lzjq>(8t~No0bcIoE0q z=LBfc&vK{jTMKgjK85#<Mve)SWJCzzhqOQD`4|hel~RwFr;oX9=6V`A{_)6o6=;>- zC(|?kY@r4bi)s7A!N<qjX)5<S&VPJj!wV3|yf32buL&%!;FbAV0P?Qfi%n-Ej?nY# zzp6edst)y^eI*f2O#<0Ik|9pr6L)MXmdV!$wHj5r-R*P81&Un%E$+m)H8I*W5M~`3 z8d1la|LJtAU2pg@hYi`yIqOV>m{(Mwn-jzicn!l?RKWCLNj+_Zn7r;M?d!2-wm!b$ zhx5^<s;OUrVd&fUpOPBA!(#V*n&PLia9ALkUbqV0W?^p>w--F^_WkyJ>qhycitQ=a zd4?aEKCKhl-nWYbj+sVb#%3ZB2qtr=cuaJ2MgZ$!$-eR3-+nEfm7116Y2tT6)>p4v zA4Rv=EmR8!$`+Cq8$=jIU5<YUID*FU3-~sM%9idUmpcIqpRd0THrS}D1uAwhh*kqM z<MQ4i+T3c~*!$!^*{PaZZ|)#2HpTV)Z~4Gf3pD`ZW@EO{+Cn(nLq^k3__jj3FyYi# pp?$K@AxAi^Sm=0BIK4^ebWb>AQ0P1&oH;HOu>EFzzeE7w^?zwiN&)}? diff --git a/templates/beez/images/lupe_larger.gif b/templates/beez/images/lupe_larger.gif new file mode 100644 index 0000000000000000000000000000000000000000..6b092136e978f187188b47dfcb8b5ef7dd1cc905 GIT binary patch literal 395 zc${<hbhEHb6k!lyxXQqgmX`MZ{rk<EH&<6z&ooYZ_UzfN_J#ld|G#qO%0l;&nKNe| zJ$kgLsHmr>=i9e$C)V%2d-v|rrAt@GwcOl)=FF!3cTQdgsyTD!%(`{!E^I%tHlgkI ziHl1Ds?ILkwXb{0t+SUe?>xppOQ86Zg++wnKZ6d41M(9C+lm9t1s*z5{U=mh4kj>2 zaCv-skYT{W+Rof0X(Ho(+(EE_<=pe8BnCY*r5Al}n;o^Kj<VjC`5?d{$;!&e%ERr# z#Z<#u$08!o#3;z+!V@W6KXYa?2agLw)QnlPTNtKBiWYO$%Lob0ndjV@*2GrNFED|T zYl<^BPexCDf0F=1y9;khx`LdXd=o2gg=-S;!HELAIf-F{9O)cB@xk7H{(-@-UcY(k I?#N&b0Fixue*gdg diff --git a/templates/beez/images/lupe_larger_black.gif b/templates/beez/images/lupe_larger_black.gif new file mode 100644 index 0000000000000000000000000000000000000000..9edbd0f7b48b92d3660cd731592f8abddd81b3d5 GIT binary patch literal 393 zc${<hbhEHb6k!lyxXJ(mGiT0BOG|tI{{8I}7iSu$d3kxASiifbre>jgiHL~E=FOXn zi;JH<d$y~6;h8gMdU|@kefxIz?%kzJm#&U$xpL*onN9meMMZD!KeKM#I-pS(wjWuW z(01$W<+ICnEeWXF*S+M<$;+2_9%G;lQ2fclBEs;WK?lSE`H6vTnL|T?hmKVLi6x8& z1vn%)oP`P!^`s_ts4(x9(eF8+V5Bi!nz3zr$BY@aGJFSR97I?<awJ1Ea-?{fd3{|t zxKo;HSjB`In1#!nc_Jigr%h`V<#Az(oH~6*6O+qiLB&GOT6qzXnX{eSQX2Sb*@b$U zOXu*U@pknz2>InCr79^X$Tsi_OmyMm5!l-&B*4Sv&gCO4nkt&fal^~UFCZxR#miT( I-5eRL0a9vsjQ{`u diff --git a/templates/beez/images/lupe_reset.gif b/templates/beez/images/lupe_reset.gif new file mode 100644 index 0000000000000000000000000000000000000000..256583846137749938a59cb4c75eb4ff8e3367d3 GIT binary patch literal 276 zc${<hbhEHb6k!lyIKse?mX`MI+qb)S@2*?7uBWHx+O=!%-@l(Zb7oOd(U~)6{{R2~ z?Af!UM~_xlS1(<<6ezxV^JWH8fZ|UU77>R33_2hV$W8{<i3^naQZnadM9FY4DYQ?} zVr+Eq7T|DpW?Am=IDtc=@A%P$j5>lc9*2{<Yy`Y`mKB~_swcp6i7{yk*SYjnj~$$z zEa7%coM$E?pwe(o$Nz$O5JPT$VQqa`g>rIqVKHkddyX;>hevBhFcU+f3X4lYY%oi> ksuRn!5GEEMM>9TFcWn-P<4p|u?5xJS_w3!LuE<~w0O1x`tN;K2 diff --git a/templates/beez/images/lupe_reset_black.gif b/templates/beez/images/lupe_reset_black.gif new file mode 100644 index 0000000000000000000000000000000000000000..7dd12f133a2aba7f3b8a810c8935006f973beaa0 GIT binary patch literal 276 zc${<hbhEHb6k!lyIKlt|n>TMxOH1?e@~Ww+dG_pCPfyR?yLUxIMBcxDf9=|};^N{n zXU;5Ly7b$(Z!>4k6crU+w{9Jf!9W~P{K>*1!tkF#2gCu{$-p{ML7^`tb6$p(K(~U< zkqJx!(jtAuE(Rq|-R_4bYKU?7x2|`|kPvQN@zGI(lfyEjB)VanM+<{smB#d?y{|GF zFUyI1D0bSYz`3b)Q<LC(F&32^m&*JaF80`xgrvNJ_72XFGH$n)v_N(}AE&68K(;Iu m4sN!oLF{bY9O@i8yj-qao-C`ibo302jCb$ZyH8D#!5RP)J5~+= diff --git a/templates/beez/images/lupe_smaller.gif b/templates/beez/images/lupe_smaller.gif new file mode 100644 index 0000000000000000000000000000000000000000..4060ff7eb87db7fd7884e619846a70e7b2264965 GIT binary patch literal 279 zc${<hbhEHb6k!lyIKse?mX`MI+qcU*kIe)E<Fw72H@|=XzPh^l*|TTs65H?Iy?gZN z(f|Md7Znv<xpJkar)TNXrN`Iq0;)Z|Y2TSMXV$G-cklF-%e#(W*mihrat{LrQ2fcl zBEs;WK?lSE*~!2<MM1eQC39ZJDjr{EljccA2QQ0w2xwgW$g=!EVgiRmpZk#q3_7+7 z9?VHyGB#e^%L-2|Rg&Vqv>;)M*12@86o;%QLM=ON>I^NUR2ul~rgJZ0$jz^<E2~gW zW)u^b5Ekqgmf&Jz&Qa#(_29_JoXwD^!tW9k8^a&2>cl@Qgp1$D(M*8PolnQ!SX)ou O(0Jee0|(U=8LR<TA!_*m diff --git a/templates/beez/images/lupe_smaller_black.gif b/templates/beez/images/lupe_smaller_black.gif new file mode 100644 index 0000000000000000000000000000000000000000..f444e960c35c98367222c59b0821e36b53510664 GIT binary patch literal 278 zc${<hbhEHb6k!lyIKlt|OP4N9OG|tI{(VhN&9i6Eu3Wh?(>Tq`%j@{sT|GTL>(;Fk z5fNFJ*j`**eCEuVZ{NPnoH_IE-MgnZ?GqIhy}axAwXH`tZ{7?Pym$J_g>8q|CigHP z0mYvzEFuj58FWA#kev*ylNA*DQZnadbP4n+Sg=fD5~&syP|-Cg4eC3=V5A|&E!e)^ zg+qe9b%mjm1}BGQMoDzTHjfr=K`qVcOB-LEXv~(m_n|yBp<n`wWx0%<K8Ht+Kvgw+ zacM%5q^OiIXP>Z?5OYX5pBrmh`V2iEr>K}ft}GQEKCbCOLR@@2>O4A(Y_4pcENiuN R^bCxQ_wL(&KuwXs8UUmkV<rFq diff --git a/templates/beez/images/pfeil.gif b/templates/beez/images/pfeil.gif new file mode 100644 index 0000000000000000000000000000000000000000..e527a0e8076ed922003427b3457042db21973163 GIT binary patch literal 137 zc${<hbhEHb6k!ly*v!E2|NsBbpFiKeef!+GbDK78N=;3TjEwa4^>uV~G&MD4zyOLr zSy)6E{xj%+I3P0^Sj-GgdamAU@%rrU`5u7^@l6~J4t43fsyH6TIpp5oTEJU#e=)<M Z;|)SpJdF>YPcWG_@4||bU!4pL)&S9fF|Ggr diff --git a/templates/beez/images/pfeil_rtl.gif b/templates/beez/images/pfeil_rtl.gif new file mode 100644 index 0000000000000000000000000000000000000000..bcce203a5b703b430f57a35f3921e50c3ebe9159 GIT binary patch literal 131 zc${<hbhEHb6k!lyC}3bv{K>+|z`(_z!vF*zv1U_K(@mQ;{r~^}^XJdLzP^!>k+*N( zK6mb%qoZSLYAOQ;U@;Il;kkOR#p|=X|3@froKWX#)s$FSF6FLsdb;7gAH6pjHEy!W TGe!JT5aOI)bTX$(iNP8GAkiwI diff --git a/templates/beez/images/trans.gif b/templates/beez/images/trans.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7bee69bd268892c08d79e0eb4eb50dafe6b5fbf GIT binary patch literal 49 tc${<hbhEHbWMp7un8*ME|G@yrQ2fclD#F0TpaT*G$ulr9g)lN$0{}WY3NZix diff --git a/templates/beez/images_general/calendar.png b/templates/beez/images_general/calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..658913852d60fc6ca8557568d26b8e93e7d56525 GIT binary patch literal 675 zc$@*F0$lxxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!HAzH4R5;6} zlg&$%Q51)t_rp;eb2R1ynyAP^0*fRNTU9%06XZ5%)h1|L(IOOT)uK&*LKH@tQP?Jg zGV=?GB7)G;A^e;noHA_Y-g{1qSDjh32`?PZJ)7Ts&hOmgsVX};A;5!?wOguOb}IWs z1Seoca87WdSSMBCa8_|5Q+F;N=?DQt^=fy=?&SZx+|xIEe4D_DBmv_6S3nh<1#w_Z zbT5~{l%Zt67=GUv#u!&yC9vg#!rl~!jY93FNC`{{Y#BZ;0bs1Fc;K9D3V5)X2bG9K zBqDKJ8OUS+C~pd&s@#9Mr0W|-AC9c3s%qccWmQ#u{4T1Wj79a}c$D+S4ZU=4N>w!? zFisFv!T|cmRtW;1f$>$s0G>^*GP-h`H-mzTP&3`b(d;hDCL-{+T2LSiJi1S%34OTG znWn~v^Brk?FQB#MFuosf?qnt!t(A%g#tAAA`tV{p&t%~)6GMus628BV?|aP6=Lr0O zrxPn=6Fy3{fE84gngF`mQ;ZG4p#ul`mYb)mJw@Q%q_eddamvg>kv)yI#B0M!3sxev z!1s9dp#Z>KE{BK5@W%p1Kt!2cEYj2vBiUHDJ-HCTS{r%b!`Wj=!r&Tb+LFBfRN!=5 zl7aC&Ul)Foh{s4J>JU)^p9+C-Q44MR8(8|WK})8dx#e}T%`v`wFOp3_q9I1QsXihN zJVaEgK9Y|1KAJgEb`m$%VXVVh!8pM>`_Eli`}OBJfVb0i{tF{QT8%v&>u>-7002ov JPDHLkV1feuD8K*! diff --git a/templates/beez/images_general/index.html b/templates/beez/images_general/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/images_general/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/images_general/j_button2_blank.png b/templates/beez/images_general/j_button2_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..a8c2e300aa6b94615c4e98bb44b43fb802c1ca17 GIT binary patch literal 398 zc$@)_0df9`P)<h;3K|Lk000e1NJLTq000&M000&U0{{R3^J<(400003b3#c}2nYz< z;ZNWI003!FOjJer`T6+x`1kks_V)Jm_4V`f^YZfY@$vES@bK*H?Cb06>gww0>FMX^ z=jG+)<mBYz<KyDu;^E=p;Nali-rn8a-Q3*V+uPgP+S=II*w@$B*4Eb2($dk<(a_M) z&(F`!&d$xv&CJZq(05Zv00009a7bBm000XT000XT0n*)m`~Uy|6?8>dbVG7wVRUJ4 zZXi@?ZDjy7FETJMFgAXJ@C*O|03UQkSaefwW^{L9a%BKbVPkS{ZDnL>VIW3na%FdK za%*!SIJIcfcmMzZa7jc#R2Y?Y(MuMBFc3u1LJ>OgM-T&Q#L)X+BpIj6JAAV`1+Ap$ zL<E)AFFBOl815GY2g_%NBk`Ki64x)yo#MnOI!4hm3Skr%M)6?&=8;hZhUaC)K%@`u s)^j`KX2d*+$uVtHIjz2UefzS02h9~2u=SH^6#xJL07*qoM6N<$f|32gGXMYp diff --git a/templates/beez/images_general/j_button2_image.png b/templates/beez/images_general/j_button2_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c1fc2e4df8a17362b212d235876ea8c336aac22b GIT binary patch literal 1018 zc$@+H0|oqvP)<h;3K|Lk000e1NJLTq000&M000&U0{{R3^J<(400003b3#c}2nYz< z;ZNWI00I6`OjJer`T6+x`1kks_V)Jm_4V`f^YZfY_wwBF@$vBR@bK{Q?Ck98>+9<3 z>hbK&>FVq4>(J@x>F?>s=jZ3{=*Q^i&E@6g<mBYw=iB4s<Kp7t;o;%n;Nafg-q_^2 z;^4*I-QC>W+}qpR&)(PC+S=II*vi}D*Vot8*WSO}=hoKNyxZr~*51w7)4|!>%Gu4- z)YQ|{)6vq_!`i#j($dk<(a+J`&e7Y>(cI9`(9O}?&CuG+(BHn>qrBUp&(F`y&)Lh* z-Nn<=%h27<&d$ru*~`z_&CSis&C$2h-ptI*$j#cz%ge{i*s;>wtI^=9(ci?#)veCk zsLk8L#?q?OrNqR<!^FqH#L%G2+rz`d!o$bF!_TD3*}=lcqsiEu(uuvn&78^Go5<R{ zz{{G)*}A>Sm&Mn-yu7%)$GE%2w7tf;y1$Rik+HnRox#PN!O4)q)wQ|9kipcnx4^cx zwus1)qq@YZxWcNp!J@dyeado^yULij#j>)puCctLv&47Cf26U$bH#j)w#9PAdycim zfwjnhw8)mNyMMFCezL}>sib|e#fY!Ie6YoPu*7<=!<VSFTftdfzhQl<yL+j+o1m?7 zs=aWjy-T`PYo@zsrMqLHxM7^LUY)gIo3dY<v0j?7U74_4nXp)zvRjz1D6}(Mm#<Tn zuFC8P4FCWD32;bRa{vGf5&!@T5&_cPe*6Fc02OpaSad^jWnpw_Z*Cw|X>DZyG%qqR zFEBQKgYXOh0019!MObuGZ)S9NVRB^vO<`klZ*65{X<;BnX>w(EZ*psMAUL&X(s%#> z0Y^zhK~xx(WAH))CW_pgoSY13fQ3iJMG7d)hyl3mr8pUwFaeJXHv=;>Gb=w5-~tM$ zDlxFIu*Aj18Nq-@4p2bY6eL`dU0GQH1$p&A0X8oNR#w)czJ{t5K(Gi1rey&ISiKn7 z*w`{_r#DRmg6{6__L?-H08ljt2S-Zzq|VgT)X0DUP0gT0pa6##1JFw`YM$}wg@v)f zetNn+5kLV>F9tzD!H}sdm(HI%TUk^@L_|IiC?M#?AR{9a*fM9%oS6j@?0mM>Q+$B} zGGJlvwi)^Q0&;c<lb0`_<p>d$mX>yQG7imcY;A3AZf-8K0SZWaF-S>CX_%RrIlzDp zP(TVStYYXBl~Gz(SDF##W1t8Uuw;+~0T~%Z6%de>l>%{1v>3!Ofr2|PgBS)-bdlx6 o5LPsCmjy-|dK6o#^8kGh0P+1_hp-mhrvLx|07*qoM6N<$f}~_P3;+NC diff --git a/templates/beez/images_general/j_button2_left.png b/templates/beez/images_general/j_button2_left.png new file mode 100644 index 0000000000000000000000000000000000000000..c364b745514dadd1059c0a03082edb15d2d8a5d8 GIT binary patch literal 410 zc$@*60cHM)P)<h;3K|Lk000e1NJLTq004^s000&U0{{R3$3LG?00003b3#c}2nYz< z;ZNWI003rCOjJer`T6+x`1kks_V)Jm_4V`f^YZfY@$vES@bK^N@9ysI?Ck98>+9<3 z>gnm}<>lq%<mBVy<Kp7t;o;%n;Nafg-rU^W+uPgM*Voq8*3;9|($dn=(b3S*(9h4$ z&d$!w&CSfr%;acgy8r+H32;bRa{vGf5&!@T5&_cPe*6Fc03UQkSaefwW^{L9a%BKb zVPkS{ZDnL>VIW3na%FdKa%*!SIJIcfcmMzZ6?8>dbVG7wVRUJ4ZXi@?ZDjy7FETJM zFgAXJ@C*O|0DnnDK~zYI&DKc*f-n#T(JxMoh(k0%(FlG2OB!8ph15GiElXzBrI!=P zEaY@(L{L)N6@$7@+dya-))ad88w&ZhcEX~xV90kE@;!#!Fyto;`5lARa>FPsfkHXe zPFUzUUMbYi@d6=>Q#>=2$BgrsLhX*9(qhL)uD#uVUtYkNUU#^;E&u=k07*qoM6N<$ Ef|QTRu>b%7 diff --git a/templates/beez/images_general/j_button2_pagebreak.png b/templates/beez/images_general/j_button2_pagebreak.png new file mode 100644 index 0000000000000000000000000000000000000000..aa619b49f69125753b8527ff6646c6209412fe58 GIT binary patch literal 803 zc$^iHTWAwo6oyADoV40=MDYI5a8#(ER-|}&5nEf^aI{LTq6lKuNTbAP5>a2YsCY%Z zfQaX`Ryk-<ti{&Ys<k0)H8v)bOcE!tnM{*OYc4aLnM`JOCYPc+AOHH-TATl6vu^Ba zs4Fd5Qi32zsj9xF5%vXzQWQZ?9d9d!t;kTVYEmc^f$+`{g3M^$wY{l!dU`sahsx&) z<a7CaHk-?2vzZK3MuudvvYbt)GiivN0YC<6=s+qUOF$OIv?!%T5v0U)Dg}fTNI^u9 z6rdzQ5R%CxF91FXctPTm630tC&vS)AWO=|P!4xNP9MAF+%Slr_Tmi#E7a2Hk62n4? zGz%Dpp=mnKh;cfVNF?I%cr2cX#^`7?I{7m`IXO8oF%g-FMIsT3qQa3_h)RU0_&7y} z!{JaUM3Q7M7$gWH5D1Kojrsk4pP$72q|fKW{lV`(631~bPIz$A;|*Y5(&Y&{J(SZ! zINb#59(TLlm>Wm2aSX#;E|=5k{N^N36t$rNhr?laV0OFRX7^gZ`9{8aN30&pXKZ-H zYWeIM8n#-7tb@bopvCdYJo?dW>mT^?{)5@nZ+Y`}@ZZY4MtGXyQ}z1|2r_$Kp=P*) z7xM6NzOi<najRb4Y}DvZDw{M~HBwozZf(Wd^%pMlb6}vX5ZJ9dW<1-hS0g)`kLYz; z^-)c;a+^l4KC9E8Feo>gTHNPglvUMKH7$Ce#T*qyRg0|2&V@r&G4kk&-r`5M^i|B^ z7k!!^U8Z^6e;7^b1OH!t)hBfSH-6<wZ^y7fCLibPf$HyvhK8-b_8)93d2p?iHH9h< z3ylwNZu%39_V^QJEB;xzVGr8FB&^!M9;te!?(Cjo6`QqpNBp@bjpeUO%SGFk`;md$ z$LS+H)w&$*u$sDx&r!<JbXn(H+j1hOTsf!gn5lhn>}o5~j=#*lGaKd-t6ILFZ<(c3 zUC-WM*EjG{5uJJWPQ{vw?N7g~9z*Z7xt?pfd#jgTE$=$LtWMSWd>h@-e<t>VGb4MR V>9jK2S_glQsA?N(URNKw^c%9H2mAm4 diff --git a/templates/beez/images_general/j_button2_readmore.png b/templates/beez/images_general/j_button2_readmore.png new file mode 100644 index 0000000000000000000000000000000000000000..8cf01ccd2bb949a20493c72306bf2c4174083b9c GIT binary patch literal 875 zc$@)i1C;!UP)<h;3K|Lk000e1NJLTq000&M000&U0{{R3^J<(400003b3#c}2nYz< z;ZNWI00FH~OjJex|Nr~^{rmg;`~3X+`uqC&{QCR+`TP0#`T6+x`1kks_xJht`1$qr z`S$nt_4oPq_W1Vp_V)Mr_4W1j_4oDm`1JPq^!4}j^!D=e`1AAg@bdWb^78TW`0?}j z@bUEV@$vBT_wexW@9^{O@b~WT^6l^T@9*&L@AK~P^X%{T?e6mI?eXmF?CS0G>+9>< z_Oj~g>gnt7>FV$3>hJ04>FDY2=jiU}>FVd{?&j$3=jZ3<=jzw*zt-=+<>u+;=IQ0- z<<{-H<mBYz<KyGw=i=hx;o;%n;NZ#al-}On+~3;W-QC;W<lNlc+TG*Y+~eEZ+u7XX z+S=OJ+2PpO*w@$B)z{v=<d)Xf*16`BvFc&e)YH(@-M8YB($dn=($>$@-Otn9&eGqz z-Jj9X(a_M)#@4vc&(EUkK+ew2%Fo-)&CSfs(ag-uzSOJ7%h#^iiK5?Qo#Q{R)RDx; z)2q~spxj);#K*wI(YVOI!o$bG!pFYC&Aq|Tyui(x)?%*8ov6-<x5TWwy~(=1$ho}6 zo6cjoy1%!(#kIJ>vbDdRw}^+nU5vGBjbyUo00009a7bBm000XT000XT0n*)m`~Uy| z6?8>dbVG7wVRUJ4ZXi@?ZDjy7FETJMFgAXJ@C*O|03UQkSaefwW^{L9a%BKbVPkS{ zZDnL>VIW3na%FdKa%*!SIJIcfcmMza2}wjjR2Y?Q(aB50KorOEhvc9J4-yaw!6t*? zL1VNK5Gxh8NvtI(jayYx)K-mk+!ZD6`}#LKuOTiSKc~m{_V@v-6L=;e1RDQRtU^e6 zZW5TAlt8n{3QcJJ$LtI!iZ<{|m%?SrJV#MfO6)vi))=Vj>%=e`s(Dip15JBrPsp<T zs38Wr{?OB%NTu#|#DI{C!EfpG6+sMa`^@+K>BOat7`X1SBuNc5>$gYeF2cOm))G6} zFBU(h;_NuvhGBG|>xFFgVAtUoP`cL3b#kYDFuJutIn47btFfEI$)zW(g$j)S$lraw zFT4B*7GX@3ulB=;zzcIk$X-y*@zLrhuFP5d`!5#pZ}%!KSL^@)002ovPDHLkV1lkr BCt3gi diff --git a/templates/beez/images_general/selector-arrow.png b/templates/beez/images_general/selector-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..1c74b08275ec445f972536ceb5ad40ab0684a762 GIT binary patch literal 299 zc%17D@N?(olHy`uVBq!ia0vp@K+MI#3?w5ARK5Wz=3*z$5DpHG+YkL80J+8iJ|V8x zudn(3{rUU%m!Ce{{^sr8|NqbY`Sbnmy^a6>AHDxz+w&Jke*QfE_3Oj`|NlRFwCl;! zeZPLa*I2V-4p6&bNswRge`LS_#Mf38$N?oe3p^r=85p>QK$!8;-MT+OLHQEbh?3y^ zw370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=#Du7DeJzX3_IA;2uaTID$;9)t) z8oAx6=g0r+T0sknU!PV`T0TQ@k<$MZ=~wDI7W>93XufrBm)ohich#}Dm-<H{cXUkP ezj&2lVz+s$I!j@pfl&+4NCr<=KbLh*2~7aj(uZ#V diff --git a/templates/beez/index.html b/templates/beez/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/index.php b/templates/beez/index.php new file mode 100644 --- /dev/null +++ b/templates/beez/index.php @@ -0,0 +1,139 @@ +<?php +/** + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +defined('_JEXEC') or die('Restricted access'); + +$url = clone(JURI::getInstance()); +$showRightColumn = $this->countModules('user1 or user2 or right or top'); +$showRightColumn &= JRequest::getCmd('layout') != 'form'; +$showRightColumn &= JRequest::getCmd('task') != 'edit' +?> +<?php echo '<?xml version="1.0" encoding="utf-8"?'.'>'; ?> +<!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="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" > +<head> + <jdoc:include type="head" /> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/beez/css/template.css" type="text/css" /> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/beez/css/position.css" type="text/css" media="screen,projection" /> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/beez/css/layout.css" type="text/css" media="screen,projection" /> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/beez/css/print.css" type="text/css" media="Print" /> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/beez/css/general.css" type="text/css" /> + <?php if($this->direction == 'rtl') : ?> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/beez/css/template_rtl.css" type="text/css" /> + <?php endif; ?> + <!--[if lte IE 6]> + <link href="<?php echo $this->baseurl ?>/templates/beez/css/ieonly.css" rel="stylesheet" type="text/css" /> + <![endif]--> + <!--[if IE 7]> + <link href="<?php echo $this->baseurl ?>/templates/beez/css/ie7only.css" rel="stylesheet" type="text/css" /> + <![endif]--> + <script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/beez/javascript/md_stylechanger.js"></script> +</head> +<body> + <div id="all"> + <div id="header"> + <h1 id="logo"> + <img src="<?php echo $this->baseurl ?>/templates/beez/images/logo.gif" border="0" alt="<?php echo JText::_('Logo Beez, Three little Bees'); ?>" width="300" height="97" /> + <span class="header1"><?php echo JText::_('Joomla Accessible Template'); ?></span> + </h1> + + <ul> + <li><a href="#content" class="u2"><?php echo JText::_('Skip to Content'); ?></a></li> + <li><a href="#mainmenu" class="u2"><?php echo JText::_('Jump to Main Navigation and Login'); ?></a></li> + <li><a href="#additional" class="u2"><?php echo JText::_('Jump to additional Information'); ?></a></li> + </ul> + + <h2 class="unseen"> + <?php echo JText::_('Search, View and Navigation'); ?> + </h2> + + <div id="fontsize"> + <script type="text/javascript"> + //<![CDATA[ + document.write('<h3><?php echo JText::_('FONTSIZE'); ?></h3><p class="fontsize">'); + document.write('<a href="index.php" title="<?php echo JText::_('Increase size'); ?>" onclick="changeFontSize(2); return false;" class="larger"><?php echo JText::_('bigger'); ?></a><span class="unseen"> </span>'); + document.write('<a href="index.php" title="<?php echo JText::_('Decrease size'); ?>" onclick="changeFontSize(-2); return false;" class="smaller"><?php echo JText::_('smaller'); ?></a><span class="unseen"> </span>'); + document.write('<a href="index.php" title="<?php echo JText::_('Revert styles to default'); ?>" onclick="revertStyles(); return false;" class="reset"><?php echo JText::_('reset'); ?></a></p>'); + //]]> + </script> + </div> + + <jdoc:include type="modules" name="user3" /> + <jdoc:include type="modules" name="user4" /> + + <div id="breadcrumbs"> + <p> + <?php echo JText::_('You are here'); ?> + <jdoc:include type="modules" name="breadcrumb" /> + </p> + </div> + + <div class="wrap"> </div> + </div><!-- end header --> + + <div id="<?php echo $showRightColumn ? 'contentarea2' : 'contentarea'; ?>"> + <a name="mainmenu"></a> + <div id="left"> + <jdoc:include type="modules" name="left" style="beezDivision" headerLevel="3" /> + </div><!-- left --> + + <a name="content"></a> + <div id="wrapper"> + <div id="<?php echo $showRightColumn ? 'main2' : 'main'; ?>"> + <?php if ($this->getBuffer('message')) : ?> + <div class="error"> + <h2> + <?php echo JText::_('Message'); ?> + </h2> + <jdoc:include type="message" /> + </div> + <?php endif; ?> + + <jdoc:include type="component" /> + </div><!-- end main or main2 --> + + <?php if ($showRightColumn) : ?> + <div id="right"> + + <a name="additional"></a> + <h2 class="unseen"> + <?php echo JText::_('Additional Information'); ?> + </h2> + + <jdoc:include type="modules" name="top" style="beezDivision" headerLevel="3" /> + <jdoc:include type="modules" name="user1" style="beezDivision" headerLevel="3" /> + <jdoc:include type="modules" name="user2" style="beezDivision" headerLevel="3" /> + <jdoc:include type="modules" name="right" style="beezDivision" headerLevel="3" /> + + </div><!-- right --> + <?php endif; ?> + + <div class="wrap"></div> + </div><!-- wrapper --> + </div><!-- contentarea --> + + <div id="footer"> + <p class="syndicate"> + <jdoc:include type="modules" name="syndicate" /> + </p> + + <p> + <?php echo JText::_('Powered by');?> <a href="http://www.joomla.org/">Joomla!</a> + </p> + + <div class="wrap"></div> + </div><!-- footer --> + </div><!-- all --> + + <jdoc:include type="modules" name="debug" /> + +</body> +</html> \ No newline at end of file diff --git a/templates/beez/javascript/index.html b/templates/beez/javascript/index.html new file mode 100644 --- /dev/null +++ b/templates/beez/javascript/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/beez/javascript/md_stylechanger.js b/templates/beez/javascript/md_stylechanger.js new file mode 100644 --- /dev/null +++ b/templates/beez/javascript/md_stylechanger.js @@ -0,0 +1,80 @@ +var prefsLoaded = false; +var defaultFontSize =100; +var currentFontSize = defaultFontSize; + +function revertStyles(){ + + currentFontSize = defaultFontSize; + changeFontSize(0); + +} + +function toggleColors(){ + if(currentStyle == "White"){ + setColor("Black"); + }else{ + setColor("White"); + } +} + +function changeFontSize(sizeDifference){ + currentFontSize = parseInt(currentFontSize) + parseInt(sizeDifference * 5); + + if(currentFontSize > 220){ + currentFontSize = 220; + }else if(currentFontSize < 60){ + currentFontSize = 60; + } + + setFontSize(currentFontSize); +}; + +function setFontSize(fontSize){ + var stObj = (document.getElementById) ? document.getElementById('content_area') : document.all('content_area'); + document.body.style.fontSize = fontSize + '%'; + + //alert (document.body.style.fontSize); +}; + + +function createCookie(name,value,days) { + if (days) { + var date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + var expires = "; expires="+date.toGMTString(); + } + else expires = ""; + document.cookie = name+"="+value+expires+"; path=/"; +}; + +function readCookie(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; +}; + +window.onload = setUserOptions; + +function setUserOptions(){ + if(!prefsLoaded){ + + cookie = readCookie("fontSize"); + currentFontSize = cookie ? cookie : defaultFontSize; + setFontSize(currentFontSize); + + prefsLoaded = true; + } + +} + +window.onunload = saveSettings; + +function saveSettings() +{ + createCookie("fontSize", currentFontSize, 365); +} \ No newline at end of file diff --git a/templates/beez/params.ini b/templates/beez/params.ini new file mode 100644 diff --git a/templates/beez/templateDetails.xml b/templates/beez/templateDetails.xml new file mode 100644 --- /dev/null +++ b/templates/beez/templateDetails.xml @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE install PUBLIC "-//Joomla! 1.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.5/template-install.dtd"> +<install version="1.5" type="template"> + <name>beez</name> + <creationDate>19 February 2007</creationDate> + <author>Angie Radtke/Robert Deutz</author> + <authorEmail>joomla@run-digital.com</authorEmail> + <authorUrl>http://www.run-digital.com</authorUrl> + <copyright></copyright> + <license>GNU/GPL</license> + <version>1.0.0</version> + <description>Accessible template for Joomla 1.5</description> + <files> + <filename>css/layout.css</filename> + <filename>css/position.css</filename> + <filename>css/template.css</filename> + <filename>css/ieonly.css</filename> + <filename>css/ie7only.css</filename> + <filename>css/print.css</filename> + <filename>css/general.css</filename> + <filename>css/index.html</filename> + <filename>css/template_rtl.css</filename> + <filename>html/com_contact/category/default.php</filename> + <filename>html/com_contact/category/default_items.php</filename> + <filename>html/com_contact/category/index.html</filename> + <filename>html/com_contact/contact/default.php</filename> + <filename>html/com_contact/contact/default_address.php</filename> + <filename>html/com_contact/contact/default_form.php</filename> + <filename>html/com_contact/contact/index.html</filename> + <filename>html/com_contact/index.html</filename> + <filename>html/com_content/article/default.php</filename> + <filename>html/com_content/article/index.html</filename> + <filename>html/com_content/article/form.php</filename> + <filename>html/com_content/category/blog.php</filename> + <filename>html/com_content/category/blog_item.php</filename> + <filename>html/com_content/category/blog_links.php</filename> + <filename>html/com_content/category/index.html</filename> + <filename>html/com_content/category/default_items.php</filename> + <filename>html/com_content/category/default.php</filename> + <filename>html/com_content/frontpage/default.php</filename> + <filename>html/com_content/frontpage/default_item.php</filename> + <filename>html/com_content/frontpage/default_links.php</filename> + <filename>html/com_content/frontpage/index.html</filename> + <filename>html/com_content/section/blog.php</filename> + <filename>html/com_content/section/blog_item.php</filename> + <filename>html/com_content/section/blog_links.php</filename> + <filename>html/com_content/section/default.php</filename> + <filename>html/com_content/section/index.html</filename> + <filename>html/com_content/index.html</filename> + <filename>html/index.html</filename> + <filename>html/com_search/search/default.php</filename> + <filename>html/com_search/search/default_error.php</filename> + <filename>html/com_search/search/default_form.php</filename> + <filename>html/com_search/search/default_results.php</filename> + <filename>html/com_search/search/index.html</filename> + <filename>html/com_search/index.html</filename> + <filename>html/editor_content.css</filename> + <filename>html/mod_latestnews/default.php</filename> + <filename>html/mod_latestnews/index.html</filename> + <filename>html/mod_login/default.php</filename> + <filename>html/mod_login/index.html</filename> + <filename>html/mod_newsflash/_item.php</filename> + <filename>html/mod_newsflash/default.php</filename> + <filename>html/mod_newsflash/horiz.php</filename> + <filename>html/mod_newsflash/vert.php</filename> + <filename>html/mod_newsflash/index.html</filename> + <filename>html/mod_poll/default.php</filename> + <filename>html/mod_poll/index.html</filename> + <filename>html/mod_search/default.php</filename> + <filename>html/mod_search/index.html</filename> + <filename>html/modules.php</filename> + <filename>html/pagination.php</filename> + <filename>html/com_poll/poll/default.php</filename> + <filename>html/com_poll/poll/default_graph.php</filename> + <filename>html/com_poll/poll/index.html</filename> + <filename>html/com_poll/index.html</filename> + <filename>html/com_newsfeeds/categories/default.php</filename> + <filename>html/com_newsfeeds/categories/index.html</filename> + <filename>html/com_newsfeeds/category/default.php</filename> + <filename>html/com_newsfeeds/category/default_items.php</filename> + <filename>html/com_newsfeeds/category/index.html</filename> + <filename>html/com_newsfeeds/newsfeed/default.php</filename> + <filename>html/com_newsfeeds/newsfeed/index.html</filename> + <filename>html/com_newsfeeds/index.html</filename> + <filename>html/com_weblinks/categories/default.php</filename> + <filename>html/com_weblinks/categories/index.html</filename> + <filename>html/com_weblinks/category/default.php</filename> + <filename>html/com_weblinks/category/default_items.php</filename> + <filename>html/com_weblinks/category/index.html</filename> + <filename>html/com_weblinks/weblink/form.php</filename> + <filename>html/com_weblinks/weblink/index.html</filename> + <filename>html/com_weblinks/index.html</filename> + <filename>html/com_user/user/index.html</filename> + <filename>html/com_user/user/default.php</filename> + <filename>html/com_user/user/form.php</filename> + <filename>html/com_user/login/index.html</filename> + <filename>html/com_user/login/default_login.php</filename> + <filename>html/com_user/login/default.php</filename> + <filename>html/com_user/login/default_logout.php</filename> + <filename>html/com_user/register/default.php</filename> + <filename>html/com_user/register/index.html</filename> + <filename>html/com_user/register/default_message.php</filename> + <filename>html/com_user/index.html</filename> + <filename>html/com_user/remind/index.html</filename> + <filename>html/com_user/remind/default.php</filename> + <filename>html/com_user/remind/default_message.php</filename> + <filename>html/com_user/reset/index.html</filename> + <filename>html/com_user/reset/default.php</filename> + <filename>html/com_user/reset/confirm.php</filename> + <filename>html/com_user/reset/complete.php</filename> + <filename>images_general/index.html</filename> + <filename>images_general/calendar.png</filename> + <filename>images_general/j_button2_blank.png</filename> + <filename>images_general/j_button2_image.png</filename> + <filename>images_general/j_button2_left.png</filename> + <filename>images_general/j_button2_pagebreak.png</filename> + <filename>images_general/j_button2_readmore.png</filename> + <filename>images_general/selector-arrow.png</filename> + <filename>images/arrow.png</filename> + <filename>images/arrow_rtl.png</filename> + <filename>images/pfeil.gif</filename> + <filename>images/pfeil_rtl.gif</filename> + <filename>images/trans.gif</filename> + <filename>images/logo.gif</filename> + <filename>images/arrow.gif</filename> + <filename>images/biene.gif</filename> + <filename>images/biene_rtl.gif</filename> + <filename>images/index.html</filename> + <filename>images/con_address.png</filename> + <filename>images/lupe_larger.gif</filename> + <filename>images/lupe_larger_black.gif</filename> + <filename>images/lupe_reset.gif</filename> + <filename>images/lupe_reset_black.gif</filename> + <filename>images/lupe_smaller.gif</filename> + <filename>images/lupe_smaller_black.gif</filename> + <filename>index.html</filename> + <filename>index.php</filename> + <filename>javascript/md_stylechanger.js</filename> + <filename>javascript/index.html</filename> + <filename>params.ini</filename> + <filename>templateDetails.xml</filename> + <filename>template_thumbnail.png</filename> + <filename>favicon.ico</filename> + <filename>component.php</filename> + </files> + <languages> + <language tag="en-GB">en-GB.tpl_beez.ini</language> + </languages> + <administration> + <languages folder="admin"> + <language tag="en-GB">en-GB.tpl_beez.ini</language> + </languages> + </administration> + <positions> + <position>left</position> + <position>right</position> + <position>top</position> + <position>breadcrumb</position> + <position>user1</position> + <position>user2</position> + <position>user3</position> + <position>user4</position> + <position>debug</position> + <position>syndicate</position> + </positions> + <params> + </params> +</install> diff --git a/templates/beez/template_thumbnail.png b/templates/beez/template_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..b272f27a6e719f7392218ecb0c371d3be25e11d5 GIT binary patch literal 10721 zc$@*@DIV5|P)<h;3K|Lk000e1NJLTq007Pa005Q<0{{R3p&UnS00003b3#c}2nYz< z;ZNWI00RI}OjJbx008ga@29iTsA&nVq^wF@CdVU?jTmU=#2KZWrD`Tq-rnA<F@yi_ z_>75*q?VqwwY7b7c}*+_)y381!&+u$X3VW8!KAmhl3vtYtncsdAuAWGR*_v;Td|^; zy?Um(loH&&MDXIH#>K_XoV~=gzEV<B|7K?I-semTHs;RVnPw0F|Nku+0{iup+RC-| z><#?iW^`|I*4EZ&b{6*R(XM+hnVFfTN{Ggav(l`^v64df@AvTL?`=*D$+1MBu-o>8 zjDvMnNl8WbkeK_|KK}i=l_+x7$ItfA8?L3N(yUm8goKHOW&HT2R@NcXUt_&}6f-k3 zj9(TU5Ci7l=F5>I-Ob({92~(umH+qn-Oq>i>4x{^@2sqy^rfzuW;2zHlhC6xz_w*# zIto)uBEGb~iEt$M_xJA2Dc!WqtevLaWwokPjrE+Q&cn^_?&#*$-%~&_ZDmM#ToSaV zukPcz%TZB@3}8Ym58kmo&cDap&eoBQf5jb*xsNVi#4P^tKltt`hkS$N$wszpp5WGM zv73iSIwbVq@w0FexT>7supq^oM9edp*1a<S|7KsH8Pdg&#Kgey#n2NC2ApRcXq-** z-k0_8@4XO&H4G(|a#R2J|2rW9pgw@{-4w^Tq-Rk!n~iAlvAVE)9mc%It$9AxtV5C^ zZFnwVnU0lkUpU^?-grwC^m>8Vv(4z$=IiN);j}R3lA4BHGlFh!@7YD-HmS^+Gv?;z zwyd<0l6udzm5UK$Jv}{N7Do5w_gX>?`rRnKm_hydgQ{>Fcwsr6oquOjDF5#N!?TaZ ziywpsTXb(g^W16DsAk=(GR!NLznm(zoO-RTt?$+r`t?xY!`Z#Pz1^@WSyNchsz#-y zrDkR`Kr<t~e=wJZ6?=PoEGsJJ#V**zX~TPdW@cuIdpz>I#=f(G)yJN5Z7~1;%-zsJ z{oGL_9TU5?x6I7UZa)aooF*b29KNizn~YMKfj`5B9`^YE|KoAjp^=bI0G8i*?&kKS zGIN~(000SaNLh0L01EH`01EH{Laa2H0000MbVXQnLvm$dbZKvHAXI5>WdJcTFETPO zFg4VpgDwC703~!qSaefwW^{L9a%BKbVPkS{ZDnL>VIW3na%FdKa%*!SO;{i@FfcTS zcC60;03ZNKL_t(|ob7!NcoSv1Z)4*^oMkd0#C3Biung(WmQ*0~;7DoI1B(n2xTipY zt;BU$%riAtlM&(`%y@Popq5jVHP*AeSN^CF^<<;uvdUqiixp8pJ<94}2OL*Z+{Zu1 zgB@#D^z7xn-y~_%Hfc-Y2<~%U+GPGU`F``g-~0aF_j|vg?1{fADLdZ{IJfdQ2*>$1 zBHtA_Jl|)R?|Xs%dV#``w5>dnV6dS<-*<%V_IjRgXwdiVw1)9nA%i+HiKc_j3l>h) zqp1wuNqA&J)u6fT*o}OGVHjCeRSn?$U}MIqnQ>KNTsWiJolaV!u~u0wfYTZb2J>CW zW0+(=k8m)ORvDEh7(y{3I9Mji2h|8?O5+TI!#XslhI_a;&M<KV2ct>5U1qxB@IgQT zq63nm8tnD@0v^+XPP=rzK-zgHFJTz1(R#ahXoelj3u<$)6)<6WI6O2IiKZc_iU=14 zgZ3Ocr>>itM$=LskQbU1^o}G3?RHFyN=`+EmV-#ap3ab@;KO&m@-WudqFh)~Fm^Bv z42cw^J26#7T}YBzfogqy`_;dC@TxWJd28vAqySD((numIkCP)x_8f0794G*1%~i9o z^U%gKkRCW-%&>8XuD@yRCksA#Zp!o^n1<e$PJHD~Q{ucda_Ca%cle1fyzpV!u1gn} zmrrQ?Fer+>Fa7%K+(ti-eBnqToZy73E*@FkSU&l~Pj>BkYhtNC0R!2JG*Pl&c(4lL zNV5*DZLXd<dGht-Coeu*!XgL3WGfnP$AaLbzQu+PO?vfCP+9%p+O>;cs5`cydBb$4 zrrr?cr5kRz0mINsRZY!qFCU~eNm3LAScTMZo*Um^dW{`u=D1lMhYr2))*UBT@Y3p= z7F-;?VePXEv}fUkWoOKNq6&1)&QE`J!K_CgWzQ!IDj~fnsGZa_6RV1*SEfw=+9|DG z5PgpzE@oN&+4opzy!XmU`c)sk_13Ayi@$jF!W%mM7_}00(sqfcb)up4-h$N+KYY`I zXQgrI#eK_+>@{y*x_R<dYu<bK!qc_l0YWs2Ua{5B24}6l;XNSQ3swVP7`wfy3c++v zpEh&W>SxKX`+wSbmjU9P-~#9!HhR;71<@NWUa(-?*s(LlC-pO@$$I;FjUP(NK;fI6 zjRu`O%>pUKqEW0>Xm79mmYa8`GOTE{7nkENq;47j4j+w57)?hNnv}rFplzBofy?0` zfWRP*Qlhj%+M~Fpku*<|-*(fB$pCPqcwAL+4~U7E(=x$uoX6ve;4Vp%<BY|U_Au$R z3rnSO9FJfM@ohJ~m<$9bDv~602HB}eBmrGOlAWCjsdZu!#6k+;Q8WT}Xe}Dm2sjq} zuMiX@mpW7A+(2W8&u6pvAg}M}dpzO=Xj9VnbIBq-iFB62^C-OMgLeI0e+4B+2khBX z5G-Rs^!@hiDJgqpHZ7pbg_M|5XnO<CV?f!R=r&<Ia9sGOz-^PVX*Fbo$WD|7LATQ> z5m9sw?yEhQb-RGzkS-UesvcKRji@T)@uV3X!6DO8Ty~{B91}6Y{dcDKdsI)_gTX10 zbKz-87LAMt#yA?<7Z4mtgaN9-4To0<^A!>q%ODD`qM95fV1SaSgJ{^2<*40h2hOZT z3A-f0Ux7s7HxH+_wzlCsOEHLcsW;DcySq2}?o$PSnS(QS<HoU9UU|zcw_JJ4*s){L zI|$l5&+@|`{_uYlO2Ka5Q@Z5fyuSU)E4S-%%M-8vVS9Fa#Or_fhx02V{_%T5lYh)f z4$g>MHf|ihQJ3u_=H8-jjNd-utmlr-R_;ARc_KIaHh25n?dWIw+_|uWw&BQm#_~iK z&iDRzANk|G_x@`?=?&)s6=>nlHcsl68M^%JU%&q^mt1nm^GJS@lYjZHz`1t@m|{th z>#_V4)r>!We^F({^0Kn!l^rcD9hJ*lmM{OwcLdHK@0~>8X;lWo>tV71@QgohuT<3z zfMavvuH(1|nDBQ6&b>byPo`2CM`tRP@`+-izP^4u^iD+uz-j5|*uSU)$@1sFD{$`p zSwFe=-tXsS?p*i*`TlnX&b@!^BSSFM7pM%^?_8iVOgMkIFy)Ew^;NV%BnRgQ7pT;n zq2%E3e<Sk5g%iG=3;Az27qa{}oC{fc;7Axs!tp#xTk(U=wPTv5*&B#_ehZH9G&)Xq zYG_+#Bt4xGqzBAwoO9`c!?<LN#lrC%kZzMll?R@drd>9I!Oa9gsD#HOD``oB0~l{( z(i)@k9-L%4Rh5&|3=_j;*~~D*pL%RnWKFW$C5`Enf|@eWj71L|_;yzuP!KBTO364r z@H~g6a-_wg#z}}oR9VJtSS!OYN&~~FjEi&1ShTZ~!9%i&Gp4i$$6fgF;n>x*EzRJn z*~qwXHKGj(&M>}4;_VvzL%B&BRg-B*3GIAPav~)RioBhtxoAVZ=ECh~QG>us7^wv% zjBdpg4a0&1T-pPtc8D^p2A$<3_tsuAK;ydMRE-@{mhj54)Y-LcSdz6kXdVHj;hnT* zFJv}S&)w>VvwOsdxpV(8V#J6)ygpDO@AVN?-#!{lRunKgGJ#<j5#^mJlSXzDx@ZcC zF@%~|<!(4P&%JW|_^}%|ZoG29WZ^$-7ru2gyrw7$%El`Vd{Cq9FhFTSmZMrK7NZqS zqP6~TcB9ncmD{)9qIXeAd42AA=$-BYVl)VIUat6+-Ei8+W^>fruN+XepNFv%Bovwy zNrKcgaMFaPMX`Y0PQ$JuX(YUnyeMikO_BwZiDx!%fy_uf?dIXF6^TUC_4e%MxfK1o z>@-F&stWo=Xp$3bwW2a2rkKG)Vi+nEm+dlPmI;RGfiueMb>}RF+bz^KG?cQ1TlKFH z*<@QX6iOm7P*flji)9?tIhUb#Vb;2J!>OgHki+4~WHP=O8_GEJ?HKFz8hT4p7S5DM zAI(g8c)=_8Pnj|$d6@N4Uhk-Qz<Z9-xU*?bl-1Q!y4l%kG)vx~>GgrACLH{=m@ixH zf#bEBK#WE+&ayr;#~ICWj`JOM_mwQ1=O%x#=G4CCFD865@viGdUn>By;;C~DhtlEj zBmo+QGa3eTO2%m5QHmt1GCC@&G|)1YvG;}J76ecnuOXRiY7)I(xZUt^O-&`>jC-Mc z!mhWPADpmb;)(;8-fj?^1Y2684EjAS6n(evLH8NKK{M|X229_MK|kp$2f(4y5|2p@ zywvJM9me;8!}B_U7}Z~jjZWyDy7I*nK7bC|&^WSr!zY2ZWM`)c4XCP0wzs!aRC`ss zU@*XoaI?M-N8y+O?v@)~&a8KkO6jEqs1&uE5ZI+4z-+)U#2F<z804`6%a$GITN{uO zKo$(PTU$q!G6m1o)h)jIojF|(KKSCXOOGAf@S)hWwH6v`sF_hSetb<;`=lE9H)+QB z_T=~(lO|Qw&X`dH?~`g~v{RF6YN#Rhj}FJKa$whxO3@guVwz0IQH)lQt`Tus0S#0! zVD@TIReO}pAUa|`DiIJV(I*NZVp6mwQZZ{=Z(ERuQy#^hyL!hR6V|Lb)p&Btv4<&x zu14+SXUv!Z4Ziv28rT>=p7Pez?5=4yj0ZToC&7^#xMKGi!GXvUi%J?HD|Si2?3zYL zB|b>g7){bND4HmWs0c&@E>~a*0(d+g!p%NkAi~8>jsO=B9pSi7tSxE^>dFP@va;&m zY<O|a<jEggeS5vAj~k>^?UQ!bRMoWCAVr%5D%QSxw;PV`uG+o3s%rP7-R+=sXQFIq z^#BYTR6fIJi2*Wpc?)gtd6NnawGd!ghY>I&W1&<guq-1|%a%FBrlN-Wxl`rOIi2Z6 z|Gex+r^a<$j5)DHu8DmtN0Q18{nnmCt*t`@lUFt^Iu1fZyJj@XicH!;u?Tsbswq)B zK}1!FAcLTJq$Zn`0?Xz`kpvp~ZHJMx9d2uDgReea+)!^mRsO2v{Cex{ca%?20$*c= zJ|_=-$gS=rg@2tl1zJ?Y?47DYl7tpyeLhtAK`M$JsJ0SRw4kEEo=SFCeK>U%&@V|^ zk`>&)`PAgP&DT#^(R^%a`J4B@stm8`#nI?QgX)HpbNhqx0_ew{-f3!TLS`AfJ19)P z?S`g)lJh&0>-N31w7I$Y*s(j7)-_)$oGTAnwX<Giqt<0sM_V@>6jR$F6hKR)G#LLp zFhuY=Xh-gyIp|Arhzt-M7(;;!@SIGbFU9E|JDzRj&HHq@<BpLBwloUE)U3YZzV$y7 z;Ty)qVi$FG!{G^>ATXL!3HUKF9z{~X%DEK=<y;7RaX4<PStmIrE)WidGI3ML952Fg z@~ohGTlt<n2u^cz<HRkSljjHywUZTuSS*=H)En|}oWUR%HXfWmbdsdeXmJYoPvCBP z6<={UhANPxAt@|t5?JJSghV3Q)US7Pe&>ejvg)hq_RMQ+eCM4NE3Re>(e%Fs{RBRz z1m`(@+F)pFGkA55RXBErBn7OXA)hH3HL5#l(pr)gT(uSeJ=is}am$vwKAh6l-JGf_ z3Iz>r7|&iRsgLWb{GHHm7@R|BlCa$l=aS&43hza4n>cJZh}0BHEAX7HInGlA&We#& z?^^rduC<qLxZ|!ViPJp|+FhfQnRXyGKnrRRuR#KvR1$4Zno)Bz{DQBAy{enR+t$>S z_Nv2%Q|k@{0u;KR2@!6O*p^7ZjTJ>fq})Z6ZQ_ABbMBb)LFHZFocv~bTR{Wb+Y!OJ zxvHk7eK(>vyAdDQ4VyLX&=0^0YV<3hYk(uvSGBj_jJWE#hf|x0;C?gM0ZZKPH~HPB zxDiZ)8G;yZ5mRvc$vJZl%scex$&-MmumJ{l-vHTQ@S<LY(SY7^BPTCLTiS!CZ7%U# z!!d|HBqHmF*Hl12JF%D}#P+73IYT{h-n_TEW?GKTn>X*|G^*h4Cfm^nY0rutFBsYj zq^j44nK=b(MTtL6RfTg4r>O~UUH*<{sZ~~ry3vVq=Do1`qUWHG=B=1sNN3t7!O*G6 z)@p&i!6*_Cwax|yaH!zgn3?XGCXrNADLCC#pMbmD%kXwR(k=z3p*H)`{fJIq%a;AS z+Z*R~Rk&W9^UXIWC!X%5`iN5JIw*<Emj2QX>{`$dH8pjkiJ_!fFeuR^TIlVh<Kg0P zASy6I#1m6H?Tm*Z2qGQ_52{2#P|QOY?Hw<b@OtYL{drAMHwwx&=hB&7^X5#OHnI0W zcIR(^?oPb$R=c%UKhej<n2|F?=?faI2T-6@QGZc5b{Y3Dj7L^UyTYW?X-2_Xy8-YR z$uPy>`1}rYI9$wg78yG$=1rS3Z_dei^ZLTk;~6k&&?{iW+98V5jT*Ap$izW3npZcx zUWWsbGooS&$B|AfUUck8V!hj4Uk~c<zK+p*(%Bl!E?J@L(NdOlqVEhstv41(0mrHL zx(AkA?@XI^VBX1Z=FB^J^7dYE0LdiX_q5ly?{3$@0FWx=ecB;@+dZQ_uWn|E&!RzG z5<*N;mV;76C<3RuC$gF)AsE>w70?hd0H7eJAYW;67lv=}=YlwJ-*o$(+fUy0A)$P8 za>a@j{S-b~Alcob$qvDz>AI$O4#I=cDjkgX!qW>5fxrM3%-)bS4A8r1=pjRaqv+Jr z6TUU%`3y2<r81yBreOMA%0<^)1TLpvkaqgC`}7cn<5Xb%S#8Tonrvn219~>AFC3a7 z(K9f*hYiZ*WY@dsakUE#vYymO0|YuqwvNjAyi$_=uvYS#Yp!|jddkob&d!fde_Vx# zB=xc30g#U$cwlGMtq+`TH&gBh9sq4chkpL^ogd%&zyp*tjx)zqG)1VR!L&4K=eSV! z$L1I{&GQVwJ87A=cTcM8xhZ|Ui*BwvWq47axa9fnENDn<^@_11G&wow*l{P9U31Mv z*A&qqK=9O4fA@D!A^9nF>#aL~`qQU&{`kj#|HwVRhc`F@+mrtOmrwovDe9*`-g)a& zPu=?QFCV%St#Q(y`Cy~5Up}MV`qZtb3rqn<dT0pZNDSq4d$|!E4pOwB2VUe6m;9eR z9MNbthpadrH=F&*w!z>C7hQ9Wby<CXIF!5U=O6Ffx%1~ps0Vh!_QzGX{^v74zZE*= z&(B2S{*;4sI8xWe&GA3~;AS{Y!G(XuHG4h6LwJJzk3BzlW@iB$EY0vi1x2Ii0WtPG zker*(K5vD`bvPsPa0~{k)fb=wK3^af6H42+ZaCsa7nP!py-6#CHev+y?=-_j>kFc- zR*8<PINq7iFXH5^=_MH2=<~ah1<DpzS{0c@)`G^QU=~EMXGxVL!FaNBaG~jmOMcP~ zr`He}3=T9Pktl(tx3Ce4iY$BJr@w!OEK>Tx*J~<nL<}^=WQ`m{s6spy>49USX%$T- zYP#9LG_)d5R@Kf<4OzCFF^~wSlhH=}WW=zhtA?C3rzkE=8U3d}{$;#m;e}mOIfp=r z9^GOq9Fa1HaUl;!r4@$M(Ez7mIFl@Q5(KG{3gIH8tf0pj1;L#<pMSlZQ5&-TLs6rE zjh617t!D_w=%)mZGPHC39&(jio~IuVMwz$>o=A%-3d1l0PUU;Y)G5mdi=ui^wTx<n z{*h&ZPzaT%0F#Ji;bb4TQkc{=8zCkTSTU0c2dLr0$*U{cgdGd(HD)L(o@a_YhVsds z&}IhB&&V?TD(HDv_1DFHE`4?#kBed+&UM$xBoGD$=VYLq8gz;l)i+>^Bsfer54=<3 z`@#|ZDKqC!ghFPs(U=%DOgMr`5Jamr<*<eVDTrsS`(uJ7K#6I+_9Q5gjH*QegiI)C zO)B!CnnD0365}Psa@+)PI4&P7d@VDC2DF(hku=0n?hTV#wVZP;AUU9H^@3o~Z;U`0 zN=VZna8j;F+~TsiB9?IKc*x;$RJtOSjEGmlu;X>Mr8AnG(76LT2_+O7V{Cwj@py8d zM%ZK-S7|g+kgH2WlRSEj8d?d<<2Xs8$?H74-bvk|$RKb6B9cIW4TwTmtO^LQ$BL8~ zp@S&m%F;~~5g>t~&2V@m;_=`NGG0-F?1YGhslbid58KahOoJ0Mfm$kBrz&%u8k4H; zG=X802`0+(6*h~F=_z08fzwtrBYnnj5T{5cg;B{SwAnPOEhkjG6+Oo)2S)=WaXf;X zePJ|73<FIB9gibTQ`060YIG(lRCqjSh=U6S{{%LTAfnlup%8?LiOA4X_0hswtb(z_ zhIQL0ghaPH$qK_%wv5q;!wvUa%v>syv6@nTE}rrGlQD}$&Q3PdGz?)2u#XTIGDjkQ zkxiwH0b>L=I*blm1m`%8Nh@afEF5=XdVoem(PHI3<EJ%<X#~-`9IOD213t)PGKwY# zZZ^gJLJ4CqFdVPN5^+U1OHNpq4G!QImm}kfxGHVwG&Iqbc10oyKb*ni7VfwsgEJAo z3$DgpR(PqXsEB)*PKxTpJs76IkW!+^fa^s?XjAJcY2z_PEzvuPK+53=#FB!La>N`C zq0KN1IFy5GLk3z`JJvBOfhrErpXq8S_@L+EWE)VzdI#0o3Rh;5Uf4%=-McK)M7c$u zS6F0mS-`8NEpjJ9gAAeEsb#GQ(ljvbTK*|Lk|Gy_L!Hh}RKr&vKCI`*`cH=RWO7Qv zu?m8q$D3>n+;S2?Eb|4d0nwcsS!jS8eN8Oub_ZD4X=*bV#8fV7^yYjyWwY%UagU9` z(Mqtis{%>d!>Mw1R)p3_aIX1LLl?;voFkIs#X)Oe)Z%`ZEsitGEEdjk+~$Wdg2y9~ zIQ&Me=KZd?#bPzPTyW4GgOO%)ahAdw3pVcZcr2B(D_k5Qq32K{0aY^rHn4n}9*iUV zj_JizJ$MSzh6W+u0aTA`?=J)QPE(3Ahy1BjJcSYuDG{O#vkGj(9QSjPxXFY^;sR?5 z8IAsgKN81{@c?Ut0SkjQoX=Q^X55r=;jRiBjz~@`d0iYg5!$Dpe)>=P6Dw%W6DPEs zx5_@*u-owzS~j0G><9${F^A~$iKPOb!ITZ+S$%3XtGP`*br)Nys>6r3Qo>fRS3j8w zky<R|pt_^r+`UXiP^l7IX~W}{*M03&?wmDi*2_2DwtCCu3orlX6-MQtD<l&rUQ~}? zCH>(HY7sbrRNU`3;~57KolprwFsLaIS(Xj6u^7B{a{d7FppL+@WhO3QpsZFaoG_=_ zz{ymY#28y|HF6=NAZFll_zA-W7CZnkVFq_`jL&8xOpCTXGV75;helU_wD7afE`R5? zdmfpc*6AjJ;{+|`!c($u5eq1rm`u9C1tuu3KneYeafSq^$ppj0=5o0#@M5!BT)2=r z4yGCo`28*p2Xkz*IjSs+j^mMvNFrjh%;q{RoCtdr$B(-#`)A|F9Z8>-X6{`5=&S16 zFTVHrlIrT}(W6Iy{)@{$yLQWcpRZa~U734Yp((9u*-AvBZ}0GEB0fL21Haw@E9M61 z9gtWopbPYr=m;mEM}YM>#FR0?iV*Pze9L?hU&3e#B;iUQF0ewt|MoBLS~2neUVYpA z7ax1u#ytAuWpB>E{!{Ihg9{)1vSrDV>d}X`9on+++JozEs$R8fi7oGVXpU2X7|FrD zaGb3@#!Iis$<4$KgXD}FwQSkp!)-!xYj!F;H;!_q1eGipVrtxLXd7if$62G7eRc0N z(4`f7Z<=3Mw{-se&5u3!;7bqAl!*9mPp%)csBFoSZ6JFOUb}GJ%$Ct#tX+O5L3BTP zQ7TAMcf)A~dIQv6q>@&FLi1GFv|p*TVQDuCM2vH}QmKdy>{i5_C^kbcYK#jH=g;`3 z+;!lah1V{e)_8T<rq}lD*>hy&YmYts*Dvm-@dd}GPMtFb`UlkQ^O;+&y>`ogd|AC} zblFD-r@vb4!90cG8`xH}A4H^}F=n$Lc2b4KCqo)LDexv1Kd_}V*k~?-JBq<!vCedb zEeyEOq`~zYjvm;1V8yhfjqhI8wP#OP*S?wi>fV3)NrFi~G`abWy$AkM)>6G~boIZ# zv+%Qn>;44D%5K`y`q^DK3<Rf%MFo=%Kj=1W`5hs%DeQ1G_07N!W~hPM2;yNcs8U-S z(y*eXYl5c5BPa%_GNr^f-uUf(M~@zT<Bbz1_8i-@a^_cu9((b%x=k-Vx%kG%ChvOu zjj8MAFIx0@^|tDp)*Xbwa|jf#<xlGmI^X#ZdH^_7e(<|RR`&&>;jp{Dtsm7HEVxE= zzt;^YdKJs&HSHHC_U_%#*mz>Y22iujFF!P9?}jVN>t3rXFMsl{<(p2eJTdj?p1T%& zS-oxBJ?pkCJh<-P%K%Qtfpx71cXXD9Q#fm#-O<nUXP?O#NW^ht#*F#V3FsFjFaGYb zF^vZf9$bILOZ!f3+Vu3Q$(!m<b-~#=vsw_G^;<4KxbEM|s&zP@y>s-{(s0gD2I!qq zVR;b|@7^<J`foS<=tu9~apcJ6-z^xk=S1U*h3iJ%|In#Zo64_v@~@j#&fhnG#ohzI z0}R{#w0_;eEeAd-tF8uRduQSLkq>_haDeT%p#hg{1I=vHOE};cHsJ*}b%oVcxUDTY z?!?Hwzn%ETh7I#K&%9^#htNTdN7wJYzSTLU9JKAFr@tuQw|VK2b?Xs^ZPoW2Sif%F zfv?JzRF~bhe%(7qS61{}6m-tvB#hy3*yl^7SXM8_HfCaCveO~5j<6#jhErjnGZ0J# ze7=~E!)`xu^eBv*V@qFr<k2HX_Ut)v;)8!fQ!dy`r?T2sUVf^1$By+noSSw`ow{S* zN8p9Zez#-&`sT0J_OsPJV+VQ2e6j98>wX4-;{e(W7Cz32K%#+8<G49yjl|g$9yj|_ zoo2JoXy!OE&iNxa?sNt}ytH{_bJwQw2ahx#Te<Q#|D&u7v6lKAobvMWx*a?Au0I50 zXGtDTOH0dFM|U*uyJuUfBph&~%Roiy>jgtql{MK^UrOHxv22N~^9A}B7Mjp>9-4yF zb6tX9wR$OmO2C%a$9jRgqfh#OzrOgU(GNYeYvrfYfBioJO(i-g?RpKt`2uV~T{D=z zwLsij)*J;mjlV;1X2LCaq~)Ial5lD%!30Fw?>CtoaEFb+t;M3*f<fT4=}aamx?!v& z5-3J!^6I%7o#f>6#uO?C^@jC_u>WRJS>@KZ%a=+{?AQOiKb!lVvT5nkESz2MFCE!9 zzoiA>Tmf*7Ha=3;QP%Np*V2z#T3%L4E+I$LRUny6$SjHuqcIaQiKB{i&R~AW2eiTn zv^wt3SWTQiBSJI>KX7*-oHLsJ5F3Qd;ZVjHkHZPQ>CY0p^QH2xF`yz?HZ6bquDZ?h z-{17e=*i_*T=wqX9W#N2F6me~65yP;r)>73dzRMSxV+5vz(4gJ2?Zra`ow>>;6pb= zZnt|Fa2ybdn$0N)H#4jwWl9NX*Jp|YJfF#L^d(H71Yxw?0o}d4BYgF*bt{|i%I(-c zdFhH@?R)dhU5~6<JbCd;A71~)Wy_Z=X}PTn!MU%aY<cCHO<(QruwCbMlvK9f1z<U5 zU0bAve-KlE2!+9*6X<NdFiWKa*28UHU<{*l#%;(2@1wjVX}8;_T=v)UrALl5kC_fT zx8J|HZu92(GdI6^#cit=zf`w$!i4Mhx3nxNd%0`m%=?bMxEzMptZ~j(l;0KmrmhQ= z&FjqtJ8pM<-n6;f`pIA^cQoV^3DF9Xj}Q<j2M~0Mb%cE3Ok%5>Wd)&0Kt=Rc5gcwZ zkyx<d@qOjxn*a@xm7DK4*45Rud2`qM@4tWJ+ErgHo-kqZ%$Hj}U(~Yvv95W~%$)aC zOIewV%Ql{-OTz&@VcCEq9A?8lV<KP`V*$2w@nq?gJ4(*RIkQ=U{q-#X00tRJL_t(E zn~gAF&{V4<6%U#4NUBxjIM6XTg2P2dw>84V|8jKij{v}toa{j_n_pbHv~Cj&ohQFo zHF?6W4`2DRV}IG7mUcDH`fB7OWo5Qno2p@$NGd5bhZRM2{5&mbQZGgg-*3_@*ihLQ zga@!^Em_)H5)KRA68vN!P#*|~1K>x)4s(pM3L+e}LSPyTpc@8vE$k44R5*Ou)OWsV zJhA6Ufoz_CqzlaS%iEq@ym-yzw>DfqyR5RK?9gjn&9gr0`m$xejM*v}MwQ1g>FdxO zk%|$jr0D;-NI~z2R*+>@YZyEQYz3;sfN<u$)0!J%UJAYHNgc`nFDMG7yobGp!%bA~ z5`o$}D*4LP^_QP)+|z^S-T8oKX<gloUvB&2izg>fxbGJWI$F|Se);}uN4g$;=!*T7 z8mXx^nLx9pHnfmWBSrM4MCo4Zcly}8B1?CMk}C+rC=oiqkqLxEu=vnT&=Y}J$OpZ{ zQmm0>&A@fw0!O_s<wzKx0XUyc(;4;SAe-mUzXQ;ms=KkHW!tJJSFL$#%$>{2W_y<3 zw)C~GrLR2nwmMr2+9eO6yBVGke(t;wE)~z{TH1NviK~nCixIVREHU)5CZ=4Co zaiht^;Sk%JjiS+PHCtE*VnH})At#1HBd4yr_Ooe?5F<SP?z@ja4*dgYPCfnQwr$m; zSFM?OS!G#SS-PU-Mi@++?oLb0ew2h#J-S6_`dETq;hUfv&-zioLeQIcSa~)o;ReeE zR?Q8%N(sv{*|k9W>#}4*@Fqk<63t<W$O<M6-nXYtedpTGK;cfD(BmFJv-FDFP;%g^ zt6uoaUuJ_P>)<|Leg)9Fr*WBN_M;~sC>~VZ&X;D?wQj-h4<W~Gjyd9Be8RQEf+Kj7 zdMrydwW2X1SYvQ&kP|@DzR<aX(48J0MNx+hg7C?Xsp}3dy!P75r#0@~dkpOKzJ~zK zlC`7Pd@yqXfGKNXY+u@<caPIFM#e}RuA!Ox<3%4yT$lw7g;FU8A~&MLZ;U&JHNQjo z(L}KsQ5crx;08I&VY3MgB^(bYfaLhukVAwo0xASb>5qp^p}X&!I(6#0EeEH~nRBAK z`BzUbYFSeK!rB*}{NU=@z&4k6*i@OQL}OMXXeZCPDmC7N+e`z)F?6q-(X;M}`eGDk zaLeWkg@CqY%%M~u!1;{6fH55MrOX*<y+bq^Lm@Hc6H}o$;05AlG>gE8ypLYp2;_h2 zj**xC>Y>V(me1F&J@nOAcZw(nN!tmTp^5!CL6WLW+iBcpgT8T@(9}pLshc*ep&uM) zPpSS{RehkqGbdiECt=d}GBIB{&_q?CVq{AE^!`t$h>;E><-hH=)ptLft<sb1P9^H0 zRdx344l{#r$u`SzLgmsjTHB{GvP>{4(f@e`weHq>FL({Fx1mAz7R6O<P-P1^s3b&9 z5I3=`*UN?>Sb!l<<qIeB(o`I2yaQE(=F>d5Urxt0Mw6mZ*YOG$2b&79UoVl!Pk-xg zS`jz~a1xo2!(k1Dmjzg{RL#_2j2iJ5;1+S*jK{;_NG2SI;M1HM;>xj5WkE4$z~o{W zTCc;!JRTf9vj8?FT}OI{ImJvtAQK9ixm3V}rkL<>sqPu9cffDPkg&cO*pvjkp#=O8 z7rwIT%ASSjmI$fQL>fVmG#r=hvZ@m^-d^(mmMM%zS%KC41Is2vHc_GgdGIW#-mO_v zY{<u-LtaXz&c?g9jjBX59v;;d5VFg~NEIHtsHoXdQ~dEV1+}1kynp}DU`PSNS&AcW z<A4kK^qmlH(?bDTMI}-kXCXDYlaTeP?EVSe-f)1v)DHB_mLX1voTUf~up--jS8g}A z3>KB(scD->>XG8bafR_t!Yk+@wVTox#1Bu|&R7h+twf4e6x<fC>IDZa<;7@}$m%OS zg}Z%C0UPnf(VQ~yf{ZbqGK!;$PLG~rINm<YJt6TVQ{fV_d)Y?Ppj?_l+BFGPQKHq> zdSR#%3=(7~LDF`#pj<-_0eRwrdyr;?i#&fe55m5{;9T<jC4WnBp8v_&{r&$35}+mm T)dl@>00000NkvXXu0mjfIG6M2 diff --git a/templates/index.html b/templates/index.html new file mode 100644 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/component.php b/templates/ja_purity/component.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/component.php @@ -0,0 +1,29 @@ +<?php +/** + * @copyright Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined( '_JEXEC' ) or die( 'Restricted access' ); +?> +<!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="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>"> +<head> + <jdoc:include type="head" /> + <link rel="stylesheet" href="templates/<?php echo $this->template; ?>/css/template.css" type="text/css" /> + +<?php if($this->direction == 'rtl') : ?> + <link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/template_rtl.css" type="text/css" /> +<?php endif; ?> +</head> +<body class="contentpane"> + <jdoc:include type="message" /> + <jdoc:include type="component" /> +</body> +</html> diff --git a/templates/ja_purity/css/index.html b/templates/ja_purity/css/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/css/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/css/ja-sosdmenu.css b/templates/ja_purity/css/ja-sosdmenu.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/css/ja-sosdmenu.css @@ -0,0 +1,313 @@ +/* Son of Suckerfish Dropdowns +--------------------------------------------------------- +Originally developed by Patrick Griffiths and Dan Webb +http://www.htmldog.com/articles/suckerfish/dropdowns/ +--------------------------------------------------------- +NOTE: After a deep research, we decide to divide this +CSS into 2 parts. The first part will define the layout. +The second part will define the visual look for this menu. +---------------------------------------------------------*/ + +/*--------------------------- LAYOUT ----------------------------*/ +#ja-mainnav, #ja-mainnav ul { + padding: 0; + margin: 0; + line-height: 20px; +} + +#ja-mainnav a { + display: block; + line-height: 20px; + margin: 0; + padding: 10px 20px; +} + +#ja-mainnav li { /* all list items */ + float: left; + margin: 0; + padding: 0; +} + +#ja-mainnav li ul { /* second-level lists */ + position: absolute; + width: 202px; + /* + * Using left instead of display to hide menus because display: none isn't + * read by screen readers + */ + left: -999em; +} + +#ja-mainnav ul ul a { /* sub-links */ + width: 160px; +} + +#ja-mainnav li ul ul { /* third-and-above-level lists */ + margin: -42px 0 0 200px; +} + +#ja-mainnav li:hover ul ul, +#ja-mainnav li:hover ul ul ul, +#ja-mainnav li.sfhover ul ul, +#ja-mainnav li.sfhover ul ul ul { + left: -999em; +} + +#ja-mainnav li:hover ul, +#ja-mainnav li li:hover ul, +#ja-mainnav li li li:hover ul, +#ja-mainnav li.sfhover ul, +#ja-mainnav li li.sfhover ul, +#ja-mainnav li li li.sfhover ul { /* lists nested under hovered list items */ + left: auto; +} +/*--------------------------- VISUAL ----------------------------*/ +/* -------- All levels -------- */ +#ja-mainnavwrap { + border-top: 1px solid #666666; + background: #444444; +} +#ja-mainnav ul, #ja-mainnav li { + background-image: none; + list-style: none; +} + +#ja-mainnav span.separator { + display:none; +} + +/* -------- Top level -------- */ +#ja-mainnav > ul { + background-color: #444444; + padding-left: 20px; +} + +#ja-mainnav > ul > li { + background-color: #444444; + border-left: 1px solid #666666; + border-right: 1px solid #333333; + margin-right: 1px; +} + +#ja-mainnav > ul > li.active { + background: url(../images/arrow2.png) no-repeat bottom center #444444; + color: #CCCCCC; +} + +#ja-mainnav > ul > li:hover, +#ja-mainnav > ul > li:active, +#ja-mainnav > ul > li:focus { + background: url(../images/arrow2.png) no-repeat bottom center #555555; + color: #FFFFFF; +} + +/* -------- sub-levels -------- */ +#ja-mainnav ul ul li { + border-left: 1px solid #666666; + border-right: 1px solid #333333; + border-top: 1px solid #666666; + border-bottom: 1px solid #333333; + margin-bottom: 1px; +} + +#ja-mainnav li ul { /* second-level lists */ + background-color: #555555; +} + +#ja-mainnav li a { + color: #CCCCCC; + font-weight: bold; + text-decoration: none; +} + +#ja-mainnav ul ul li:hover, +#ja-mainnav ul ul li:active, +#ja-mainnav ul ul li:focus { + background: #444444; + color: #FFFFFF; +} +/*old css*/ +/* Son of Suckerfish Dropdowns +--------------------------------------------------------- +Originally developed by Patrick Griffiths and Dan Webb +http://www.htmldog.com/articles/suckerfish/dropdowns/ +--------------------------------------------------------- +NOTE: After a deep research, we decide to divide this +CSS into 2 parts. The first part will define the layout. +The second part will define the visual look for this menu. +---------------------------------------------------------*/ + +#ja-mainnav ul.menu { + margin: 0; /* all lists */ + padding: 0; + float: left; + border-right: 1px solid #555555; +} + +#ja-mainnav ul.menu ul { + margin: 0; /* all lists */ + padding: 0; +} + +#ja-mainnav ul.menu li { + margin: 0; /* all list items */ + padding: 0; + float: left; + display: block; + background: none; + cursor: pointer; + position: relative; + list-style: none; +} + +#ja-mainnav ul.menu li ul { + width: 16.4em; + position: absolute; /* second-level lists */ + z-index: 99; + height: auto; + w\idth: 15.9em; +} + +#ja-mainnav ul.menu li ul ul { + margin: -1.5em 0 0 14em; /* third-and-above-level lists */ +} + +#ja-mainnav ul.menu li li { + padding: 0 1em 0 0; + margin: 0; + width: 14.9em; +} + +#ja-mainnav ul.menu ul a { + width: 14.8em; + w\idth: 10.8em; +} + +#ja-mainnav ul.menu li ul { + left: -999em; /* using left instead of display to hide menus because display: none isn't read by screen readers */ +} + +#ja-mainnav ul.menu li:hover ul ul, #ja-mainnav ul.menu li:hover ul ul ul, +#ja-mainnav ul.menu li.sfhover ul ul, #ja-mainnav ul.menu li.parentsfhover ul ul, #ja-mainnav ul.menu li.parent-activesfhover ul ul, #ja-mainnav ul.menu li.activesfhover ul ul, +#ja-mainnav ul.menu li.sfhover ul ul ul, #ja-mainnav ul.menu li.parentsfhover ul ul ul, #ja-mainnav ul.menu li.parent-activesfhover ul ul ul, #ja-mainnav ul.menu li.activesfhover ul ul ul { + left: -999em; +} + +/* This "unhides" the sub-menus (left: -999em is what hides them) */ +#ja-mainnav ul.menu li:hover ul, #ja-mainnav ul.menu li li:hover ul, #ja-mainnav ul.menu li li li:hover ul, +#ja-mainnav ul.menu li.sfhover ul, #ja-mainnav ul.menu li.parentsfhover ul, #ja-mainnav ul.menu li.parent-activesfhover ul, #ja-mainnav ul.menu li.activesfhover ul, +#ja-mainnav ul.menu li li.sfhover ul, #ja-mainnav ul.menu li li.havesubchildsfhover ul, #ja-mainnav ul.menu li li.havesubchild-activesfhover ul, #ja-mainnav ul.menu li li.activesfhover ul, +#ja-mainnav ul.menu li li li.sfhover ul, #ja-mainnav ul.menu li li li.havesubchildsfhover ul, #ja-mainnav ul.menu li li li.havesubchild-activesfhover ul, #ja-mainnav ul.menu li li li.activesfhover ul { + left: auto; +} + +/* STYLING THE MENU +-----------------------------------*/ +/* 1st level */ +#ja-mainnav ul.menu li a { + margin: 0; + padding: 10px 20px; + border-left: 1px solid #555555; + border-right: 1px solid #333333; + display: block; + color: #CCCCCC; + font-weight: bold; + line-height: normal; + text-decoration: none; +} + +#ja-mainnav ul.menu li a:hover, +#ja-mainnav ul.menu li a:active, +#ja-mainnav ul.menu li a:focus { + background: url(../images/arrow2.png) no-repeat bottom center #555555; + color: #FFFFFF; +} + +#ja-mainnav ul.menu li { + margin: 0; +} + +#ja-mainnav ul.menu li:hover, +#ja-mainnav ul.menu li.sfhover, +#ja-mainnav ul.menu li.parentsfhover, +#ja-mainnav ul.menu li.parent-activesfhover { + background: url(../images/arrow2.png) no-repeat bottom center #555555; + color: #FFFFFF; +} + +#ja-mainnav ul.menu li.active a, +#ja-mainnav ul.menu li.active a:hover, +#ja-mainnav ul.menu li.active a:active, +#ja-mainnav ul.menu li.active a:focus { + background: url(../images/arrow2.png) no-repeat bottom center #333333; + color: #FFFFFF; +} + +/* 2nd level and above */ +#ja-mainnav ul.menu li ul { + border: 1px solid #555555; + background: url(../images/opaque.png); +} + +#ja-mainnav ul.menu li ul li { + border-top: 1px solid #777777; + border-bottom: 1px solid #444444; + background: none; +} + +#ja-mainnav ul.menu li ul a { + border-right: none; + margin: 0; + padding: 7px 10px; + background: none; + color: #CCCCCC; + font-weight: normal; + line-height: normal; + text-transform: none; +} + +#ja-mainnav ul.menu li.havesubchild, +#ja-mainnav ul.menu li.havesubchild-active { + background: url(../images/bullet2.gif) no-repeat 94% 50%; +} + +#ja-mainnav ul.menu li ul a:hover, +#ja-mainnav ul.menu li ul a:active, +#ja-mainnav ul.menu li ul a:focus, +#ja-mainnav ul.menu ul li:hover, +#ja-mainnav ul.menu ul li.sfhover, +#ja-mainnav ul.menu ul li.havesubchildsfhover, +#ja-mainnav ul.menu ul li.havesubchild-activesfhover, +#ja-mainnav ul.menu ul ul li:hover, +#ja-mainnav ul.menu ul ul li.sfhover, +#ja-mainnav ul.menu ul ul li.havesubchildsfhover, +#ja-mainnav ul.menu ul ul li.havesubchild-activesfhover { + background: #333333; + color: #CCCCCC; +} + +#ja-mainnav ul.menu ul li.active a, +#ja-mainnav ul.menu ul li.active a:hover, +#ja-mainnav ul.menu ul li.active a:active, +#ja-mainnav ul.menu ul li.active a:focus { + background: none !important; + color: #FFFFFF; + font-weight: bold; +} + +#ja-mainnav ul.menu li.active li a, +#ja-mainnav ul.menu li.active li a:hover, +#ja-mainnav ul.menu li.active li a:active, +#ja-mainnav ul.menu li.active li a:focus { + background: none !important; +} + +#ja-mainnav h3 { + display: none; +} + +#ja-mainnav .moduletable_menu { + background: none; + margin: 0; + padding: 0; +} \ No newline at end of file diff --git a/templates/ja_purity/css/menu.css b/templates/ja_purity/css/menu.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/css/menu.css @@ -0,0 +1,79 @@ +/* Default Joomla! Menu */ +#ja-container2 ul.menu { + margin: 0; + padding: 1px 0 0; + list-style: none; + background: url(../images/hdot2.gif) repeat-x top; +} + +#ja-container2 ul.menu li { + margin: 0 !important; + padding: 0 !important; + background: none !important; +} + +#ja-container2 ul.menu li a { + padding: 2px 0; + display: block; + color: #333333; + background: url(../images/hdot2.gif) repeat-x bottom; + text-decoration: none; + outline: none; +} + +#ja-container2 ul.menu li a span { + padding-left: 16px; + background: url(../images/bullet.gif) no-repeat 5px 5px; +} + +#ja-container2 ul.menu li a:hover, +#ja-container2 ul.menu li a:active, +#ja-container2 ul.menu li a:focus { + color: #333333; + background: url(../images/hdot2.gif) repeat-x bottom #DDDDDD; + text-decoration: none; +} + +#ja-container2 ul.menu li.active a { + background: url(../images/hdot2.gif) repeat-x bottom #FFFFFF; + color: #7BA566; + font-weight: bold; + text-decoration: none; +} + +#ja-container2 ul.menu li.active a span { + background: url(../images/bullet3.gif) no-repeat 5px 5px; +} + +#ja-container2 ul.menu li li a span { + background: none; +} + +#ja-container2 ul.menu li ul { + margin: 0; + padding: 0; + list-style: none; +} + +#ja-container2 ul.menu li li { + padding: 0 0 0 15px !important; + list-style: none; +} + +#ja-container2 ul.menu li li a { + color: #333333; + background: none !important; + font-size: 92%; + font-weight: normal; +} + +#ja-container2 ul.menu li li a:hover, +#ja-container2 ul.menu li li a:active, +#ja-container2 ul.menu li li a:focus { + color: #006699; +} + +#ja-container2 ul.menu li li a span { + background: url(../images/bullet.gif) no-repeat 5px; + font-weight: normal; +} \ No newline at end of file diff --git a/templates/ja_purity/css/template.css b/templates/ja_purity/css/template.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/css/template.css @@ -0,0 +1,1631 @@ +/* COMMON STYLE +--------------------------------------------------------- */ +html, body, form, fieldset { + margin: 0; + padding: 0; +} + +body { + color: #000000; + background: #FFFFFF; + font-family: Arial, Helvetica, sans-serif; + line-height: 150%; +} + +body#bd { + color: #333333; + background: #F2F2F2; +} + +body.contentpane { + width: auto; /* Printable Page */ + margin: 1em 2em; + line-height: 1.3em; + margin: 0px 0px 0px 0px; + font-size: 12px; + color: #333; +} + +body.fs1 { + font-size: 10px; +} + +body.fs2{ + font-size: 11px; +} + +body.fs3{ + font-size: 12px; +} + +body.fs4{ + font-size: 13px; +} + +body.fs5{ + font-size: 14px; +} + +body.fs6{ + font-size: 15px; +} + +/* Normal link */ +a { + color: #006699; + text-decoration: underline; +} + +a:hover, a:active, a:focus { + color: #333333; + text-decoration: underline; +} + +/* Title text */ +.contentheading, .componentheading, .blog_more strong, h1, h2, h3, h4 { + font-family: "Segoe UI", Arial, Helvetica, sans-serif; +} + +/* Small text */ +small, .small, .smalldark, .mosimage_caption, .createby, .createdate, .modifydate, a.readon, .img_caption { + color: #666666; + font-size: 92%; +} + +/* Heading */ +h1 { + font-size: 180%; +} + +h2 { + font-size: 150%; +} + +h3 { + font-size: 125%; +} + +h4 { + font-size: 100%; + text-transform: uppercase; +} + +p, pre, blockquote, ul, ol, h1, h2, h3, h4, h5, h6 { + margin: 1em 0; + padding: 0; +} + +ul { + list-style: none; +} + +ul li { + padding-left: 30px; + background: url(../images/bullet.gif) no-repeat 18px 8px; + line-height: 180%; +} + +ol li { + margin-left: 35px; + line-height: 180%; +} + +th { + padding: 5px; + font-weight: bold; + text-align: left; +} + +fieldset { + border: none; + padding: 10px 5px; + background: url(../images/hdot2.gif) repeat-x top; +} + +fieldset a { + font-weight: bold; +} + +hr { + border-top: 1px solid #CCCCCC; + border-right: 0; + border-left: 0; + border-bottom: 0; + height: 1px; +} + +td, div { + font-size: 100%; +} + +img { + border: none; +} +/* FORM +--------------------------------------------------------- */ +form { + margin: 0; + padding: 0; +} + +form label { + cursor: pointer; +} + +input, select, textarea, .inputbox { + padding: 3px 5px; + font-family: Tahoma, Arial, Helvetica, sans-serif; + font-size: 100%; +} + +.button { + padding: 3px 5px; + border: 1px solid #333333; + background: url(../images/grad1.gif) repeat-x top #333333; + color: #CCCCCC; + font-size: 85%; + text-transform: uppercase; +} + +.button:hover, .button:focus { + border: 1px solid #999999; + background: #333333; + color: #FFFFFF; +} + +* html .button { + padding: 2px 0 !important; /*IE 6*/ +} + +*+html .button { + padding: 2px 0 !important; /*IE 7*/ +} + +.inputbox { + border: 1px solid #CCCCCC; + background: #FFFFFF; +} + +.inputbox:hover, .inputbox:focus { + background: #FFFFCC; +} + +/* BONUS TYPOGRAPHY STYLES +--------------------------------------------------------- */ +pre, .code { + padding: 10px 15px; + margin: 5px 0 15px; + border-left: 5px solid #999999; + background: #FFFFFF; + font: 1em/1.5 "Courier News", monospace; +} + +blockquote { + padding: 1em 40px 1em 15px; +} + +blockquote span.open { + padding: 0 0 0 20px; + background: url(../images/so-q.gif) no-repeat left top; +} + +blockquote span.close { + padding: 0 20px 0 0; + background: url(../images/sc-q.gif) no-repeat bottom right; +} + +/* Quote hilight */ +.quote-hilite { + padding: 10px 15px; + margin: 0; + border: 1px solid #CACACC; + background: #FFFFFF; +} + +/* Small quote */ +.small-quote { + margin: 0; + padding: 0; + background: none; +} + +.small-quote span.open-quote { + margin: 0; + padding-left: 20px; + background: url(../images/so-q.gif) no-repeat center left; +} + +.small-quote span.close-quote { + margin: 0; + padding-right: 20px; + background: url(../images/sc-q.gif) no-repeat center right; +} + +.small-quote span.author { + padding: 2px 5px 2px 20px; + border-top: 1px solid #DCDDE0; + margin: 0.5em 0 0; + display: block; + background: url(../images/author.gif) no-repeat 5px 4px #EAEBEE; + font-size: 90%; + text-transform: uppercase; +} + +/* Rropcap */ +.dropcap { + float: left; + padding: 4px 8px 0 0; + display: block; + color: #999999; + font: 50px/40px Georgia, Times, serif; +} + +/* Tips, Error, Message, Hightlight*/ +p.error { + padding-left: 25px; + color: #BF0000; + background: url(../images/icon-error.gif) no-repeat top left; +} + +p.message { + padding-left: 25px; + color: #006699; + background: url(../images/icon-info.gif) no-repeat top left; +} + +p.tips { + padding-left: 25px; + color: #EE9600; + background: url(../images/icon-tips.gif) no-repeat top left; +} + +.highlight { + padding: 1px 5px; + background: #FFFFCC; + font-weight: bold; +} + +/* Note Style */ +p.stickynote { + padding: 10px 0px 10px 40px; + border: 1px solid #CACACC; + background: url(../images/sticky-bg.gif) no-repeat 5px center #FFFFFF; +} + +p.download { + padding: 10px 0px 10px 40px; + border: 1px solid #CACACC; + background: url(../images/download-bg.gif) no-repeat 5px center #FFFFFF; +} + +.blocknumber { + clear: both; + padding: 5px 15px 10px; + position: relative; +} + +/* Check list */ +ul.checklist { + list-style: none; +} + +ul.checklist li { + margin-left: 15px; + padding: 0 0 5px 20px; + background: url(../images/checklist-bg.gif) no-repeat 0 3px; +} + +/* Small checklist */ +ul.small-checklist { + list-style: none; +} + +ul.small-checklist li { + margin-left: 15px; + padding: 0 0 5px 20px; + background: url(../images/icon_list.gif) no-repeat 0 3px; +} + +/* Check list */ +ul.stars { + list-style: none; +} + +ul.stars li { + margin-left: 15px; + padding: 0px 0 5px 20px; + background: url(../images/star-bg.gif) no-repeat 0 3px; +} + +/* Bignumber */ +.bignumber { + float: left; + margin-right: 8px; + padding: 6px 7px; + display: block; + background: url(../images/ol-bg.gif) no-repeat top left; + color: #7BA566; + font: bold 20px/normal Arial, sans-serif; +} + +/* Talking box. Thinking box. */ +div.bubble1, div.bubble2, div.bubble3, div.bubble4 { + margin: 15px 0; +} + +div.bubble1 span.author, +div.bubble2 span.author, +div.bubble3 span.author, +div.bubble4 span.author { + padding-left: 15px; + margin-left: 15px; + background: url(../images/author.gif) no-repeat center left; + font-weight: bold; +} + +div.bubble1 div { + margin: 0; + width: 100%; + background: url(../images/bub1-br.gif) no-repeat bottom right; +} + +div.bubble1 div div { + background: url(../images/bub1-bl.gif) no-repeat bottom left; +} + +div.bubble1 div div div { + background: url(../images/bub1-tr.gif) no-repeat top right; +} + +div.bubble1 div div div div { + background: url(../images/bub1-tl.gif) no-repeat top left; +} + +div.bubble1 div div div div div { + margin: 0; + padding: 15px 15px 30px 15px; + width: auto; +} + +div.bubble2 div { + margin: 0; + width: 100%; + background: url(../images/bub2-br.gif) no-repeat bottom right; +} + +div.bubble2 div div { + background: url(../images/bub2-bl.gif) no-repeat bottom left; +} + +div.bubble2 div div div { + background: url(../images/bub2-tr.gif) no-repeat top right; +} + +div.bubble2 div div div div { + background: url(../images/bub2-tl.gif) no-repeat top left; +} + +div.bubble2 div div div div div { + margin: 0; + padding: 15px 15px 35px 15px; + width: auto; +} + +div.bubble3 div { + margin: 0; + width: 100%; + background: url(../images/bub3-br.gif) no-repeat bottom right; +} + +div.bubble3 div div { + background: url(../images/bub3-bl.gif) no-repeat bottom left; +} + +div.bubble3 div div div { + background: url(../images/bub3-tr.gif) no-repeat top right; +} + +div.bubble3 div div div div { + background: url(../images/bub3-tl.gif) no-repeat top left; +} + +div.bubble3 div div div div div { + margin: 0; + padding: 15px 15px 50px 15px; + width: auto; +} + +div.bubble4 div { + margin: 0; + width: 100%; + background: url(../images/bub4-br.gif) no-repeat bottom right; +} + +div.bubble4 div div { + background: url(../images/bub4-bl.gif) no-repeat bottom left; +} + +div.bubble4 div div div { + background: url(../images/bub4-tr.gif) no-repeat top right; +} + +div.bubble4 div div div div { + background: url(../images/bub4-tl.gif) no-repeat top left; +} + +div.bubble4 div div div div div { + margin: 0; + padding: 15px 15px 55px 15px; + width: auto; +} + +/* Legend */ +.legend-title { + margin: 0; + padding: 0 3px; + float: left; + display: block; + background: #F6F6F6; + font-weight: bold; + position: absolute; + top: -10px; + left: 7px; +} + +.legend { + margin: 20px 0; + padding: 0 10px; + border: 1px solid #CACACC; + background: #FFFFFF; + position: relative; +} + +/* JOOMLA STYLE +--------------------------------------------------------- */ +table.blog { +} + +.article_separator { + clear: both; + display: block; + height: 20px; +} + +.article_column { +} + +.column_separator { + padding: 0 25px; +} + +/* content tables */ +td.sectiontableheader { + padding: 4px; + border-right: 1px solid #fff; +} + +tr.sectiontableentry0 td, +tr.sectiontableentry1 td, +tr.sectiontableentry2 td { + padding: 4px; +} + +td.sectiontableentry0, +td.sectiontableentry1, +td.sectiontableentry2 { + padding: 3px; +} + +table.contentpane { + border: none; + width: 100%; +} + +table.contentpaneopen { + border: none; + border-collapse: collapse; + border-spacing: 0; +} + +table.contenttoc { + margin: 0 0 10px 10px; + padding: 0; + width: 35%; + float: right; +} + +table.contenttoc a { + text-decoration: none; +} + +table.contenttoc td { + padding: 1px 5px 1px 25px; + background: url(../images/bullet-list.gif) no-repeat 5% 50%; +} + +table.contenttoc th { + padding: 0 0 3PX; + border-bottom: 1px solid #CCCCCC; + text-indent: 5px; +} + +table.poll { + padding: 0; + width: 100%; + border-collapse: collapse; +} + +table.pollstableborder { + padding: 0; + width: 100%; + border: none; + text-align: left; +} + +table.pollstableborder img { + vertical-align: baseline; +} + +table.pollstableborder td { + padding: 4px!important; + border-collapse: collapse; + border-spacing: 0; +} + +table.pollstableborder tr.sectiontableentry1 td { + background: #ECECEC; +} + +table.searchintro { + padding: 10px 0; + width: 100%; +} + +table.searchintro td { + padding: 5px!important; +} + +table.adminform { +} + +.adminform .inputbox { +} + +.blog_more { + padding: 10px 0; + background: url(../images/hdot.gif) repeat-x top; +} + +.blog_more strong { + margin: 0 0 5px; + display: block; + font-size: 125%; +} + +.blog_more ul { + margin: 0; + padding: 0; +} + +.blog_more ul li { + margin: 0; + padding: 0 0 0 17px; + background: url(../images/bullet.gif) no-repeat 6px 8px; +} + +.category { + font-weight: bold; +} + +h1.componentheading, .componentheading { + padding: 5px 0 15px; + margin: 0 0 10px; + background: url(../images/hdot.gif) repeat-x bottom; +} + +.componentheading { + font-size: 200%; + font-weight: bold; +} + +.contentdescription { + padding-bottom: 30px; +} + +h2.contentheading, .contentheading { + padding: 5px 0 8px; + margin: 0; + font-weight: normal; +} + +table.blog .contentheading { + font-size: 150%; +} + +.contentheading { + font-size: 200%; +} + +a.contentpagetitle, +a.contentpagetitle:hover, +a.contentpagetitle:active, +a.contentpagetitle:focus { + text-decoration: none !important; +} + +a.readon { + float: left; + margin-top: 10px; + padding: 1px 5px 1px 14px; + border: 1px solid #F6F6F6; + display: block; + background: url(../images/arrow.png) no-repeat 5px 48%; + color: #006699; + font-weight: bold; + text-decoration: none; + text-transform: uppercase; +} + +a.readon:hover, a.readon:active, a.readon:focus { + border: 1px solid #ECECEC; + background: url(../images/arrow.png) no-repeat 5px 48% #FFFFFF; +} + +table.contentpaneopen td, table.contentpane td { +} + +table.contentpaneopen, table.contentpane, table.blog { + width: 100%; +} + +.moduletable { + padding: 0; +} + +ul.pagination { + margin: 15px auto; + padding: 10px 0; + background: url(../images/hdot.gif) repeat-x top; +} + +ul.pagination li { + margin: 0; + padding: 0; + display: inline; + background: none; +} + +ul.pagination li span{ + padding: 2px 5px; +} + +ul.pagination a { + padding: 2px 5px; + border: 1px solid #F6F6F6; +} + +ul.pagination a:hover, ul.pagination a:active, ul.pagination a:focus { + border: 1px solid #ECECEC; + background: #FFFFFF; +} + +.pagenavbar { + padding-left: 14px; +} + +.pagenavcounter { + padding: 8px 14px 0 14px; +} + +.sectiontableheader { + padding: 8px 5px; + background: #444444; + color: #FFFFFF; +} + +.sectiontableheader a { + color: #FFFFFF; +} + +tr.sectiontableentry1 td { + padding: 8px 5px; + background: url(../images/hdot2.gif) repeat-x bottom; +} + +tr.sectiontableentry2 td { + padding: 8px 5px; + background: url(../images/hdot2.gif) repeat-x bottom #ECECEC; +} + +tr.sectiontableentry1:hover td, +tr.sectiontableentry2:hover td { + background: url(../images/hdot2.gif) repeat-x bottom #FFFFCC; +} + +.smalldark { + text-align: left; +} + +div.syndicate div { + text-align: center; +} + +.pollstableborder tr.sectiontableentry1 td, +.pollstableborder tr.sectiontableentry2 td { + background: none; +} + +/* META +--------------------------------------------------------- */ +.article-tools { + border-top: 1px solid #DDDDDD; + width: 100%; + float: left; + clear: both; + margin-bottom: 15px; + display: block; + background: #ECECEC; +} + +.article-meta { + padding: 5px; + width: 80%; + float: left; +} + +.createby { + padding: 3px 3px 3px 20px; + background: url(../images/icon-user.gif) no-repeat 0 2px; +} + +.createdate { + padding: 3px 3px 3px 20px; + background: url(../images/icon-date.gif) no-repeat 0 2px; +} + +.modifydate { + width: 100%; + float: left; +} + +div.buttonheading { + float: right; + width: 15%; +} + +.buttonheading img { + margin: 7px 5px 0 0; + border: 0; + float: right; +} + +/* MAIN LAYOUT DIVS +--------------------------------------------------------- */ +#ja-wrapper { + width: 100%; + margin: 0; + background: #F2F2F2; +} + +#ja-containerwrap { + background: url(../images/cw-bg1.gif) repeat-y 50% 0; +} + +#ja-containerwrap2 { + background: url(../images/cw-bg2.gif) no-repeat 50% 0; +} + +#ja-container { + background: url(../images/c-bg1.gif) repeat-y 18% 0; +} + +#ja-container2 { + padding: 20px 0; + background: url(../images/c-bg2.gif) no-repeat 18% 0; +} + +#ja-mainbody-fr #ja-col1 { + width: 20%; +} + +#ja-mainbody-fr #ja-contentwrap { + width: 80%; +} + +#ja-mainbody, #ja-mainbody-fl { + float: left; + width: 80%; +} + +#ja-mainbody #ja-contentwrap { + float: right; + width: 75%; +} + +#ja-mainbody-fl #ja-contentwrap { + float: left; + width: 100%; +} + +#ja-mainbody-f, #ja-mainbody-fr { + float: none; + width: 100%; +} + +#ja-mainbody-fr #ja-contentwrap { + width: 74.8%; + float: right; +} + +#ja-mainbody-fr #ja-col1 { + width: 20%; + float: left; +} + +#ja-mainbody-fr #ja-contentwrap { + width: 80%; +} + +#ja-content { + padding: 0 20px 0 40px; +} +#ja-contentwrap { + min-height: 300px; + height: auto; +} +* html #ja-contentwrap { + height: 300px; +} +#ja-mainbody-fl #ja-content { + padding-left: 0; +} + +#ja-mainbody-f #ja-content { + padding: 0; +} + +/* Full */ +#ja-containerwrap-f { + background: url(../images/cwf-bg.gif) repeat-x top left #F6F6F6; +} + +#ja-containerwrap-f #ja-containerwrap2 { + background: none; +} + +#ja-containerwrap-f #ja-container, +#ja-containerwrap-f #ja-container2 { + background: none; +} + +/* Full left */ +#ja-containerwrap-fl { + background: url(../images/cwf-bg.gif) repeat-x top left #F6F6F6; +} + +#ja-containerwrap-fl #ja-containerwrap2, +#ja-containerwrap-fl #ja-container, +#ja-containerwrap-fl #ja-container2 { + background: none; +} + +/* Full right */ +#ja-containerwrap-fr { + background: url(../images/cw-bg1.gif) repeat-y 50% 0; +} + +#ja-containerwrap-fr #ja-containerwrap2 { + background: url(../images/cw-bg2.gif) no-repeat 50% 0; +} + +/* HEADER +--------------------------------------------------------- */ +#ja-headerwrap { + background: #333333; + color: #CCCCCC; + line-height: normal; + height: 80px; +} + +#ja-header { + position: relative; + height: 80px; +} + +.ja-headermask { + width: 602px; + display: block; + background: url(../images/header-mask.png) no-repeat top right; + height: 80px; + position: absolute; + top: 0; + right: -1px; +} + +#ja-header a { + color: #CCCCCC; +} + +h1.logo, h1.logo-text { + margin: 0 0 0 5px; + padding: 0; + font-size: 180%; + text-transform: uppercase; +} + +h1.logo a { + width: 208px; + display: block; + background: url(../images/logo.png) no-repeat; + height: 80px; + position: relative; + z-index: 100; +} + +h1.logo a span { + position: absolute; + top: -1000px; +} + +h1.logo-text a { + color: #CCCCCC !important; + text-decoration: none; + outline: none; + position: absolute; + bottom: 40px; + left: 5px; +} + +p.site-slogan { + margin: 0; + padding: 0; + padding: 2px 5px; + color: #FFFFFF; + background: #444444; + font-size: 92%; + position: absolute; + bottom: 20px; + left: 0; +} + +/* Search */ +#ja-search { + padding-left: 20px; + background: url(../images/icon-search.gif) no-repeat center left; + position: absolute; + bottom: 15px; + right: 0; +} + +#ja-search .inputbox { + width: 120px; + border: 1px solid #333333; + padding: 3px 5px; + color: #999999; + background: #444444; + font-size: 92%; +} + +/* MAIN NAVIGATION +--------------------------------------------------------- */ + +#ja-pathway { + font-size: 92%; +} + +#ja-pathway strong { + margin-right: 5px; + font-weight: normal; +} + +#ja-pathway a { + text-decoration: none; +} + +#ja-pathway img { + margin: 1px 5px; +} + +/* MODULE +--------------------------------------------------------- */ +div.moduletable, +div.moduletable_menu, +div.moduletable_text { + padding: 0 0 20px; + margin-bottom: 15px; + background: url(../images/hdot.gif) repeat-x bottom; +} + +div.moduletable h3, +div.moduletable_menu h3, +div.moduletable_text h3 { + padding: 0 0 8px; + margin: 0; + color: #7BA566; + font-size: 125%; + font-weight: bold; + text-transform: uppercase; +} + +/* Module rounded */ +div.module h3 { + margin: 0 -15px 10px; + padding: 8px 15px 5px; + border-bottom: 2px solid #F6F6F6; + color: #7BA566; + font-size: 125%; + font-weight: bold; + text-transform: uppercase; +} + +div.module_black, +div.module_green, +div.module_blue, +div.module_red, +div.module { + margin-bottom: 20px; + float: left; + clear: both; + width: 100%; + background: url(../images/b-br.gif) no-repeat bottom right #FFFFFF; +} + +div.module div { + background: url(../images/b-bl.gif) no-repeat bottom left; +} + +div.module div div { + background: url(../images/b-tr.gif) no-repeat top right; +} + +div.module div div div { + padding: 0 15px 10px; + background: url(../images/b-tl.gif) no-repeat top left; +} + +div.module_black div div div div, +div.module_green div div div div, +div.module_blue div div div div, +div.module_red div div div div, +div.module_text div div div div, +div.module div div div div { + margin: 0; + padding: 0; + float: none; + width: 99%; + background: none; +} + +div.module_text h3 { + margin: 0 0 10px; + width: 100%; + clear: both; + display: block; + overflow: hidden; +} + +div.module_text span { + padding: 0 3px 0 0; + float: left; + clear: both; + display: block; + background: #F6F6F6; + font-weight: bold; +} + +div.module_text { + margin-bottom: 20px; + padding: 0; + float: left; + clear: both; + width: 100%; + background: url(../images/bt-br.gif) no-repeat bottom right #F6F6F6; +} + +div.module_text div { + background: url(../images/bt-bl.gif) no-repeat bottom left; +} + +div.module_text div div { + background: url(../images/bt-tr.gif) no-repeat top right; +} + +div.module_text div div div { + padding: 0 15px 10px; + display: block; + background: url(../images/bt-tl.gif) no-repeat top left; +} + +div.banneritem_text { + padding: 5px 0 !important; +} + +/* red */ +div.module_black h3, +div.module_green h3, +div.module_blue h3, +div.module_red h3 { + margin: 0 -15px 10px; + padding: 8px 15px 5px; + border-bottom: 1px solid #F6F6F6; + color: #FFFFFF; + font-size: 125%; + font-weight: bold; + text-transform: uppercase; +} + +div.module_red { + background: url(../images/br-br.gif) no-repeat bottom right #BF0000; + color: #FFFFFF; +} + +div.module_red div { + background: url(../images/br-bl.gif) no-repeat bottom left; +} + +div.module_red div div { + background: url(../images/br-tr.gif) no-repeat top right; +} + +div.module_red div div div { + padding: 0 15px 10px; + background: url(../images/br-tl.gif) no-repeat top left; +} + +/* blue */ +div.module_blue { + background: url(../images/bb-br.gif) no-repeat bottom right #006699; + color: #FFFFFF; +} + +div.module_blue div { + background: url(../images/bb-bl.gif) no-repeat bottom left; +} + +div.module_blue div div { + background: url(../images/bb-tr.gif) no-repeat top right; +} + +div.module_blue div div div { + padding: 0 15px 10px; + background: url(../images/bb-tl.gif) no-repeat top left; +} + +/* green */ +div.module_green { + background: url(../images/bg-br.gif) no-repeat bottom right #7BA566; + color: #FFFFFF; +} + +div.module_green div { + background: url(../images/bg-bl.gif) no-repeat bottom left; +} + +div.module_green div div { + background: url(../images/bg-tr.gif) no-repeat top right; +} + +div.module_green div div div { + padding: 0 15px 10px; + background: url(../images/bg-tl.gif) no-repeat top left; +} + +/* black */ +div.module_black { + background: url(../images/bl-br.gif) no-repeat bottom right #333333; + color: #FFFFFF; +} + +div.module_black div { + background: url(../images/bl-bl.gif) no-repeat bottom left; +} + +div.module_black div div { + background: url(../images/bl-tr.gif) no-repeat top right; +} + +div.module_black div div div { + padding: 0 15px 10px; + background: url(../images/bl-tl.gif) no-repeat top left; +} + +div.module_blue ul, +div.module_blue ol, +div.module_red ul, +div.module_red ol, +div.module_black ul, +div.module_black ol, +div.module_green ul, +div.module_green ol { + margin: 0; + padding: 0; +} + +div.module_blue li, +div.module_red li, +div.module_black li, +div.module_green li { + margin-left: 20px; + padding: 0; + line-height: 150%; +} + +div.module_blue a, +div.module_red a, +div.module_black a, +div.module_green a { + color: #FFFFFF; +} + +div.advs { + float: left; + width: 100%; + clear: both; + display: block; +} + +/* LEFT COLUMN + RIGHT COLUMN +--------------------------------------------------------- */ +#ja-col1 { + float: left; + width: 24.99%; + padding-top: 10px; + overflow: hidden; +} + +#ja-col2 { + float: right; + width: 20%; + overflow: hidden; +} + +#ja-col1 table, +#ja-col2 table { + border-collapse: collapse; + border-spacing: 0; +} + +#ja-col1 ul li, +#ja-col2 ul li { + padding-left: 15px; + margin: 0; + background: url(../images/bullet.gif) no-repeat 5px 50%; +} + +#ja-col1 ul, #ja-col2 ul { + margin: 0; +} + +#ja-col1 ol, #ja-col2 ol { + margin-left: 5px; +} + +#ja-col1 .article_separator, +#ja-col2 .article_separator { + display: none; +} + +/* SPOTLIGHT +--------------------------------------------------------- */ +/* Spotlight Box Style */ +.ja-box-full, .ja-box-left, .ja-box-center, .ja-box-right { + float: left; + overflow: hidden; +} + +.ja-box-left div.moduletable, +.ja-box-full div.moduletable { + padding-right: 30px; + background: none; +} + +.ja-box-right div.moduletable { + padding-left: 30px; + background: url(../images/vdot2.gif) repeat-y left; +} + +.ja-box-center div.moduletable { + padding: 0 30px; + background: url(../images/vdot2.gif) repeat-y left; +} + +#ja-botsl h3 { + background: none; +} + +#ja-botslwrap { + border-top: 5px solid #CCCCCC; + background: #444444; + color: #CCCCCC; +} + +#ja-botsl { + padding: 15px 0; +} + +#ja-botsl div.moduletable { + padding-top: 0; + padding-bottom: 0; + margin: 0; +} + +#ja-botsl h3 { + margin: 0 0 12px; + padding: 0; + color: #FFFFFF; +} + +#ja-botsl a { + color: #CCCCCC; +} + +#ja-botsl a:hover, #ja-botsl a:active, #ja-botsl a:focus { + color: #FFFFFF; +} + +#ja-botsl ul, #ja-botsl p, #ja-botsl ol { + padding: 0; + margin: 0 !important; +} + +#ja-botsl ul li { + padding: 0 0 0 15px; + margin: 0; + background: url(../images/bullet2.gif) no-repeat 3px 8px; +} + +#ja-botsl ol li { + margin-left: 25px; + padding: 0 !important; +} + +#ja-botsl td { + padding: 0; +} + +#ja-botsl .article_separator { + display: none; +} + +#ja-botsl table { + border-spacing: 0; + border-collapse: collapse; +} + +/* FOOTER +--------------------------------------------------------- */ +#ja-footerwrap { + border-top: 5px solid #CCCCCC; + padding: 20px 0 30px; + clear: both; + background: url(../images/grad3.gif) repeat-x bottom #F6F6F6; +} + +#ja-footer { + padding: 0; + color: #666666; + background: url(../images/vdot.gif) repeat-y 22% 0; + position: relative; +} + +#ja-footer .copyright { + clear: both; + display: block; + padding-left: 25%; + color: #666666; + font-style: normal; + font-size: 92%; +} + +#ja-footnav { + padding-left: 25%; +} + +#ja-footer ul { + margin: 0 0 5px; + padding: 0; +} + +#ja-footer li { + margin: 0; + padding: 0; + display: inline; + background: none; +} + +#ja-footer li a { + padding: 0 15px 0 0; + display: inline; + color: #666666; + font-weight: bold; + font-size: 92%; + line-height: normal; + text-decoration: none; + text-transform: uppercase; +} + +#ja-footer li a:hover, #ja-footer li a:active, #ja-footer li a:focus { + color: #333333; + text-decoration: none; +} + +.ja-cert { + font-size: 92%; + position: absolute; + right: 0; + top: 18px; +} + +.ja-cert a { + margin: 0 0 0 5px; + padding: 0; + border: none; + border: none; + text-decoration: none; +} + +.ja-cert a span { + display: none; +} + +.ja-cert a img { + border: none; +} + +.banneritem { + display: block; + margin-top: 15px; +} + +/* MISCELLANOUS +----------------------------------------------------------- */ +ul.accessibility { + position: absolute; + top: -100%; +} + +/*usertool*/ +ul.ja-usertools-font { + font-size: 11px; + position: absolute; + top: 8px; + right: 70px; +} + +ul.ja-usertools-font li { + padding: 0; + margin: 0; + display: inline; + background: none; +} + +/*collapsible h3*/ +h3.show { + background: url(../images/arrow2.png) no-repeat 90% 60%; + cursor: pointer; +} + +h3.hide { + background: url(../images/arrow3.png) no-repeat 90% 60%; + cursor: pointer; +} + +/*others*/ +#ja-banner { + margin: 15px 0; + text-align: center; +} + +div.back_button a, +div.back_button a:hover, +div.back_button a:active { + margin: 10px 0; + display: block; + background: none!important; + text-decoration: none!important; +} + +#form-login p { + margin: 0 0 5px; +} + +#form-login ul { + margin: 10px 0 0; +} + +#form-login .inputbox { + width: 90%; +} + +.clr { + clear: both; +} + +.hasTip img { + margin: 10px 5px 0 0; + border: none; +} + +/* Tooltips */ +.tool-tip { + float: left; + border: 1px solid #D4D5AA; + padding: 5px; + background: #FFFFCC; + max-width: 200px; +} + +.tool-title { + padding: 0; + margin: 0; + margin-top: -15px; + padding-top: 15px; + padding-bottom: 5px; + background: url(../../system/images/selector-arrow.png) no-repeat; + font-size: 100%; + font-weight: bold; +} + +.tool-text { + margin: 0; + font-size: 100%; +} + +#system-message dd.message ul, +#system-message dd.error ul, +#system-message dd.notice ul { + padding: 0; + margin: 0; +} + +#system-message dd.message ul li, +#system-message dd.error ul li, +#system-message dd.notice ul li { + background: none; + padding: 5px; + margin: 0; + color: #FFFFFF; +} + +/* System Standard Messages */ +#system-message dd.message ul { + background: #006699; + border: none; +} + +/* System Error Messages */ +#system-message dd.error ul { + background: #BF0000; + border: none; +} + +/* System Notice Messages */ +#system-message dd.notice ul { + background: #EE9600; + border: none; +} + +/* Clearfix */ +.clearfix:after { + clear: both; + display: block; + content: "."; + height: 0; + visibility: hidden; +} + +* html > body .clearfix { + width: 100%; + display: block; +} + +* html .clearfix { + height: 1%; +} + +/* Firefox Scrollbar Hack - Do not remove */ +html { + margin-bottom: 1px; + height: 100%!important; + height: auto; +} diff --git a/templates/ja_purity/css/template_rtl.css b/templates/ja_purity/css/template_rtl.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/css/template_rtl.css @@ -0,0 +1,655 @@ +/* COMMON STYLE +--------------------------------------------------------- */ +html { + direction: rtl; +} + +ul li { + padding-right: 30px; + background-position: 98% 8px; +} + +ol li { + margin-right: 35px; + margin-left: -35px; + padding: 0; +} + +th { + text-align: right; +} + +/* JOOMLA STYLE +--------------------------------------------------------- */ +td.sectiontableheader { + border-left: 1px solid #fff; + border-right: none; +} + +table.contenttoc { + float:left; + margin: 0 10px 10px 0px; +} + +table.contenttoc td { + padding: 1px 25px 1px 5px; + background-position: 95% 50%; +} + +table.pollstableborder { + text-align: right; +} + +.blog_more ul li { + padding: 0 17px 0 0; + background-position: 98% 8px; +} + +a.readon { + float: right; + padding: 1px 14px 1px 5px; + background: url(../images/rtl/arrow.png) no-repeat 95% 48%; +} + +a.readon:hover, a.readon:active, a.readon:focus { + background: url(../images/rtl/arrow.png) no-repeat 95% 48% #FFFFFF; +} + +ul.pagination li span{ + padding: 0; +} + +.pagenavbar { + padding-right: 14px; + background-position: center right; +} + +.pagenavcounter { + padding: 8px 14px 0 14px; + background-position: 0 11px; +} + +.smalldark { + text-align: right; +} + +/* META +--------------------------------------------------------- */ +.article-tools { + float: right; +} + +.article-meta { + float: right; +} + +.createby { + padding: 3px 20px 3px 3px; + background-position: 100% 5px; + float: right; +} + +.createdate { + padding: 3px 20px 3px 3px; + background-position: 100% 5px; + float: right; +} + +.buttonheading img { + margin: 7px 0 0 5px; + float: left; +} + +/* MAIN LAYOUT DIVS +--------------------------------------------------------- */ +#ja-containerwrap { + background: url(../images/rtl/cw-bg12.gif) repeat-y 50% 0; +} + +#ja-containerwrap-fr { + background: url(../images/rtl/cw-bg12.gif) repeat-y 50% 0; +} + +#ja-containerwrap2 { + background: url(../images/rtl/cw-bg2.gif) no-repeat 50% 0; +} + +#ja-container { + background: url(../images/rtl/c-bg1.gif) repeat-y 82% 0; + padding: 0; +} + +#ja-container2 { + background: url(../images/rtl/c-bg2.gif) no-repeat 82% top; + padding: 20px 0; +} + +#ja-mainbody, #ja-mainbody-fl { + float: right; +} + +#ja-mainbody #ja-contentwrap, +#ja-mainbody-fr #ja-contentwrap, +#ja-mainbody-fl #ja-contentwrap { + float: left; +} + +#ja-mainbody-fl #ja-contentwrap #ja-content { + padding-left: 20px; +} + +#ja-mainbody-f, #ja-mainbody-fr { + float: right; +} + +#ja-content { + padding: 0 40px 0 20px; +} +.OPE #ja-content { + padding-left: 40px; +} +.OPE #ja-mainbody #ja-content { + padding-right: 20px; +} +#ja-mainbody-fl #ja-content { + padding-right: 0; +} + +/* Full */ +#ja-containerwrap-f { + background: url(../images/rtl/cwf-bg.gif) repeat-x top right #F6F6F6; +} + +/* Full right */ +#ja-containerwrap-fl { + background: url(../images/rtl/cwf-bg.gif) repeat-x top right #F6F6F6; +} + +#ja-containerwrap-fr #ja-containerwrap2 { + background: url(../images/rtl/cw-bg2.gif) no-repeat 50% 0; +} + +/* HEADER +--------------------------------------------------------- */ +.ja-headermask { + background-position: top left; + left: -1px; + right: auto; +} + +h1.logo-text a { + right: 5px; + left: auto; +} + +p.site-slogan { + right: 0; + left: auto; +} + +/* Search */ +#ja-search { + background-position: center right; + left: 0; + right: auto; +} + +/* MAIN NAVIGATION +--------------------------------------------------------- */ + +/* MODULE +--------------------------------------------------------- */ +div.module_black, +div.module_green, +div.module_blue, +div.module_red, +div.module { + float: right; +} + +div.module_black div div div div, +div.module_green div div div div, +div.module_blue div div div div, +div.module_red div div div div, +div.module_text div div div div, +div.module div div div div { + float: none; +} + +div.module_text span { + float: right; +} + +div.module_text { + float: right; +} + +div.module_blue li, +div.module_red li, +div.module_black li, +div.module_green li { + margin-right: 20px; + margin-left: auto; +} + +div.advs { + float: right; +} + +/* PATHWAY +--------------------------------------------------------- */ +#ja-pathway { +} + +/* right COLUMN + left COLUMN +--------------------------------------------------------- */ +#ja-col1 { + float: right; +} + +#ja-col2 { + float: left; +} + +#ja-col1 ul li, +#ja-col2 ul li { + padding-right: 15px; + background-position: 100% 10px; +} + +#ja-col1 ol, #ja-col2 ol, +#ja-col1 ul, #ja-col2 ul +{ + margin-right: 5px; +} +ul.menu li.active a span { + background: none; +} + +/* SPOTLIGHT +--------------------------------------------------------- */ +/* Spotlight Box Style */ +.ja-box-full, .ja-box-right, .ja-box-center, .ja-box-left { + float: right; +} + +.ja-box-left div.moduletable, +.ja-box-full div.moduletable { + padding-left: 30px; +} + +.ja-box-right div.moduletable { + padding-left: 30px; + padding-right: 30px; + background-position: right; +} + +.ja-box-center div.moduletable { + background-position: right; +} + +#ja-botsl ul li { + padding: 0 15px 0 0; + background-position: 99% 8px; +} + +#ja-botsl ol li { + margin-right: 25px; +} + +/* FOOTER +--------------------------------------------------------- */ +#ja-footer { + background-position: 78% 0; +} + +#ja-footer .copyright { + padding-right: 25%; +} + +#ja-footnav { + padding-right: 25%; +} + +#ja-footnav li{ + float: right; + direction: ltr; +} + +#ja-footer li a { + padding: 0 0 0 15px; +} + +.ja-cert { + left: 0; + right: auto; +} + +.ja-cert a { + margin: 0 5px 0 0; +} + +.banneritem { + display: block; + margin-top: 15px; +} + +/* MISCELLANOUS +----------------------------------------------------------- */ +/*usertool*/ +ul.ja-usertools-font { + left: 70px; + right: auto; +} + +/*collapsible h3*/ +h3.show { + background-position: 10% 60%; +} + +h3.hide { + background-position: 10% 60%; +} + +.hasTip img { + margin: 10px 0 0 5px; +} + +/* Tooltips */ +.tool-tip { + float: right; +} + +.breadcrumbs { +} + +.breadcrumbs a { + float: right; +} + +.breadcrumbs img { + float: right; + margin-top: 10px; + padding-top: 5px; +} + +/* MainNav +--------------------------------------------------------- */ +#ja-mainnav{ + direction: ltr; +} + +#ja-mainnav li a { + direction: rtl; +} + +#ja-cssmenu { + float: right; +} + +#ja-cssmenu li { + float: right; +} + +#ja-cssmenu li ul { + right: 0; +} + +#ja-cssmenu li ul ul { + margin: -1.5em 14em 0 0; /* third-and-above-level lists */ +} + +#ja-cssmenu li li { + padding: 0 0 0 1em; +} + +/* STYLING THE MENU +-----------------------------------*/ +/* 1st level */ +#ja-cssmenu li ul a { + border-left: none; +} + +#ja-cssmenu li.havesubchild, +#ja-cssmenu li.havesubchild-active { + background-position: 6% 50%; +} + +body.IE6 #ja-cssmenu li ul, +body.IE7 #ja-cssmenu li ul, +body.OPE #ja-cssmenu li ul { + left: auto; + top: -999em; /* using left instead of display to hide menus because display: none isn't read by screen readers */ +} + +body.IE6 #ja-cssmenu li.sfhover ul ul, body.IE6 #ja-cssmenu li.havechildsfhover ul ul, body.IE6 #ja-cssmenu li.havechild-activesfhover ul ul, body.IE6 #ja-cssmenu li.activesfhover ul ul, +body.IE6 #ja-cssmenu li.sfhover ul ul ul, body.IE6 #ja-cssmenu li.havechildsfhover ul ul ul, body.IE6 #ja-cssmenu li.havechild-activesfhover ul ul ul, body.IE6 #ja-cssmenu li.activesfhover ul ul ul, +body.IE7 #ja-cssmenu li.sfhover ul ul, body.IE7 #ja-cssmenu li.havechildsfhover ul ul, body.IE7 #ja-cssmenu li.havechild-activesfhover ul ul, body.IE7 #ja-cssmenu li.activesfhover ul ul, +body.IE7 #ja-cssmenu li.sfhover ul ul ul, body.IE7 #ja-cssmenu li.havechildsfhover ul ul ul, body.IE7 #ja-cssmenu li.havechild-activesfhover ul ul ul, body.IE7 #ja-cssmenu li.activesfhover ul ul ul, +body.OPE #ja-cssmenu li.sfhover ul ul, body.OPE #ja-cssmenu li.havechildsfhover ul ul, body.OPE #ja-cssmenu li.havechild-activesfhover ul ul, body.OPE #ja-cssmenu li.activesfhover ul ul, +body.OPE #ja-cssmenu li.sfhover ul ul ul, body.OPE #ja-cssmenu li.havechildsfhover ul ul ul, body.OPE #ja-cssmenu li.havechild-activesfhover ul ul ul, body.OPE #ja-cssmenu li.activesfhover ul ul ul { + left: auto; + left: auto; + top: -999em; +} + +/* This "unhides" the sub-menus (left: -999em is what hides them) */ +body.IE6 #ja-cssmenu li.sfhover ul, body.IE6 #ja-cssmenu li.havechildsfhover ul, body.IE6 #ja-cssmenu li.havechild-activesfhover ul, body.IE6 #ja-cssmenu li.activesfhover ul, +body.IE6 #ja-cssmenu li li.sfhover ul, body.IE6 #ja-cssmenu li li.havesubchildsfhover ul, body.IE6 #ja-cssmenu li li.havesubchild-activesfhover ul, body.IE6 #ja-cssmenu li li.activesfhover ul, +body.IE6 #ja-cssmenu li li li.sfhover ul, body.IE6 #ja-cssmenu li li li.havesubchildsfhover ul, body.IE6 #ja-cssmenu li li li.havesubchild-activesfhover ul, body.IE6 #ja-cssmenu li li li.activesfhover ul, +body.IE7 #ja-cssmenu li.sfhover ul, body.IE7 #ja-cssmenu li.havechildsfhover ul, body.IE7 #ja-cssmenu li.havechild-activesfhover ul, body.IE7 #ja-cssmenu li.activesfhover ul, +body.IE7 #ja-cssmenu li li.sfhover ul, body.IE7 #ja-cssmenu li li.havesubchildsfhover ul, body.IE7 #ja-cssmenu li li.havesubchild-activesfhover ul, body.IE7 #ja-cssmenu li li.activesfhover ul, +body.IE7 #ja-cssmenu li li li.sfhover ul, body.IE7 #ja-cssmenu li li li.havesubchildsfhover ul, body.IE7 #ja-cssmenu li li li.havesubchild-activesfhover ul, body.IE7 #ja-cssmenu li li li.activesfhover ul, +body.OPE #ja-cssmenu li.sfhover ul, body.OPE #ja-cssmenu li.havechildsfhover ul, body.OPE #ja-cssmenu li.havechild-activesfhover ul, body.OPE #ja-cssmenu li.activesfhover ul, +body.OPE #ja-cssmenu li li.sfhover ul, body.OPE #ja-cssmenu li li.havesubchildsfhover ul, body.OPE #ja-cssmenu li li.havesubchild-activesfhover ul, body.OPE #ja-cssmenu li li.activesfhover ul, +body.OPE #ja-cssmenu li li li.sfhover ul, body.OPE #ja-cssmenu li li li.havesubchildsfhover ul, body.OPE #ja-cssmenu li li li.havesubchild-activesfhover ul, body.OPE #ja-cssmenu li li li.activesfhover ul { + top: auto; +} + +/* TYPOGRAPY FIX FOR RTL */ +pre, .code { + border-right: 5px solid #999999; + border-left: none; +} + +blockquote { + padding: 1em 40px 1em 15px; +} + +blockquote span.open { + float: right; + padding: 0 20px 0 0; + background-position: right top; +} + +blockquote span.close { + padding: 0 0 0 20px; + background-position: bottom left; +} + +/* Small quote */ +.small-quote span.open-quote { + padding-left: 20px; + background-position: center left; +} + +.small-quote span.close-quote { + padding-right: 20px; + background-position: center right; +} + +.small-quote span.author { + padding: 2px 20px 2px 5px; + background-position: 99% 4px; +} + +/* Dropcap */ +.dropcap { + float: right; + padding: 4px 0 0 8px; +} + +/* Note Style */ +p.stickynote { + padding: 10px 40px 10px 0; + background-position: 99% 50%; +} + +p.download { + padding: 10px 40px 10px 0; + background-position: 99% 50%; +} + +.blocknumber { + clear: both; + padding: 5px 15px 10px; + position: relative; +} + +/* Check list */ +ul.checklist { + list-style: none; +} + +ul.checklist li { + margin-right: 15px; + padding: 0 20px 5px 0px; + background-position: right 3px; +} +/* Small checklist */ +ul.small-checklist { + list-style: none; +} + +ul.small-checklist li { + margin-right: 15px; + padding: 0 20px 5px 0; + background-position: right 3px; +} + +/* Check list */ +ul.stars { + list-style: none; +} + +ul.stars li { + margin-right: 15px; + padding: 0px 20px 5px 0; + background-position: right 3px; +} + +.IE7 ul li, +.IE7 ul.checklist li, +.IE7 ul.small-checklist li, +.IE7 ul.stars li +{ + padding-right: 40px; +} + +/* Tips, Error, Message, Hightlight*/ +p.error { + padding-right: 25px; + background-position: top right; +} + +p.message { + padding-right: 25px; + background-position: top right; +} + +p.tips { + padding-right: 25px; + background-position: top right; +} + +/* Bignumber */ +.bignumber { + float: right; + margin-left: 8px; + padding: 6px 7px; + display: block; + background-position: top right; +} + +/* Talking box. Thinking box. */ +div.bubble1 span.author, +div.bubble2 span.author, +div.bubble3 span.author, +div.bubble4 span.author { + padding-right: 15px; + margin-right: 15px; + background-position: center right; + float: right; +} + +div.bubble1 div { + background: url(../images/rtl/bub12-br.gif) no-repeat bottom left; +} + +div.bubble1 div div { + background: url(../images/rtl/bub12-bl.gif) no-repeat bottom right; +} + +div.bubble1 div div div { + background: url(../images/rtl/bub12-tr.gif) no-repeat top left; +} + +div.bubble1 div div div div { + background: url(../images/rtl/bub12-tl.gif) no-repeat top right; +} + +div.bubble2 div { + background: url(../images/rtl/bub22-br.gif) no-repeat bottom left; +} + +div.bubble2 div div { + background: url(../images/rtl/bub22-bl.gif) no-repeat bottom right; +} + +div.bubble2 div div div { + background: url(../images/rtl/bub22-tr.gif) no-repeat top left; +} + +div.bubble2 div div div div { + background: url(../images/rtl/bub22-tl.gif) no-repeat top right; +} + +div.bubble3 div { + background: url(../images/rtl/bub32-br.gif) no-repeat bottom left; +} + +div.bubble3 div div { + background: url(../images/rtl/bub32-bl.gif) no-repeat bottom right; +} + +div.bubble3 div div div { + background: url(../images/rtl/bub32-tr.gif) no-repeat top left; +} + +div.bubble3 div div div div { + background: url(../images/rtl/bub32-tl.gif) no-repeat top right; +} + +div.bubble4 div { + background: url(../images/rtl/bub42-br.gif) no-repeat bottom left; +} + +div.bubble4 div div { + background: url(../images/rtl/bub42-bl.gif) no-repeat bottom right; +} + +div.bubble4 div div div { + background: url(../images/rtl/bub42-tr.gif) no-repeat top left; +} + +div.bubble4 div div div div { + background: url(../images/rtl/bub42-tl.gif) no-repeat top right; +} + +/* Legend */ +.legend-title { + display: block; + float: left; + right: 7px; + left: auto; +} diff --git a/templates/ja_purity/favicon.ico b/templates/ja_purity/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3925be4f9ceb5e872ed489f7260c9714d979ee36 GIT binary patch literal 1150 zc$}5fUr19?90%|tcO{!{&HcIQ-LBhQU0q?jaMKcV3KpW3mRR9Nx+xQfwb@*fWF_H4 zMiBk?DWR|)46aEOBK}Q$l?)_`AnL6ieCjFX+qn}jE_%>&`P_5P?{~g%UJfB?^fMX> z{X0p!h7gtzQb5rXt*qBKhACs+=AqGOyp&8~i<GloC7Yg}?xj{JY?G4l>U27pLI(B3 z&)_ko?ElAVoug(q*JQn355-`B!EB6RzKh^u<xW)X*TP`XBQw(ulc@z}^8i?OjjmVe zJcW&%(P&H>Jg>pekw$#H#bMzx!Iygi<aP!;Hw%*$uv!4A1PERNa&o5BoY`zv_0+Ri zxI$3vF`&Lq!jC}-uOnL6vX3Im6i1#55XIh<49l{rx`Vs0)Jah6vw?Zlh~u}*@VS@4 zyXX#j*KP!wfuf@FlnlplDz`lc-5~>V$NeatXvS{Qi5kg**0Oephk#IcJmtKC=XsSa z-vzVWgy5%#D7d=}M`;Z#mJm34?~2A>u*KehceqkAPN!4FHi)QP>_O?t)9~I|hIix- zvJZbnp7kvpRbdFjfUD$0O2+MWtN26(xXC8in?%_CJ~T}HM)??!UD<}cZ4V$k1NH>^ zQ!;`eB-tO;!ZdysSrk7VME?6A9M{j_=HwFm(}3qWkoy#HP{NHlHRtholJf4K!qxA? zh<_VGLG&1;+H$p5eJ%iR%K*9-*U<A}75lDDs=dO(LYY!#bc_w4b+jKF`+s%3oJZ`% z)aIHju8$Q8+oWVf<qb-bBvPXkwn#af%+4@AU0<43OGq?9NH|W&5&EtZVM5|QLX>(3 aUAM*v33bx`0YV~C+K=?5g%dN(g~(qs{jVGV diff --git a/templates/ja_purity/html/com_content/article/default.php b/templates/ja_purity/html/com_content/article/default.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/com_content/article/default.php @@ -0,0 +1,133 @@ +<?php // no direct access +defined('_JEXEC') or die('Restricted access'); ?> +<?php if ($this->params->get('show_page_title', 1) && $this->params->get('page_title') != $this->article->title) : ?> +<div class="componentheading<?php echo $this->params->get('pageclass_sfx')?>"><?php echo $this->escape($this->params->get('page_title')); ?></div> +<?php endif; ?> +<?php if (($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')) && !$this->print) : ?> + <div class="contentpaneopen_edit<?php echo $this->params->get( 'pageclass_sfx' ); ?>" > + <?php echo JHTML::_('icon.edit', $this->article, $this->params, $this->access); ?> + </div> +<?php endif; ?> + +<?php if ($this->params->get('show_title',1)) : ?> +<h2 class="contentheading<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <?php if ($this->params->get('link_titles') && $this->article->readmore_link != '') : ?> + <a href="<?php echo $this->article->readmore_link; ?>" class="contentpagetitle<?php echo $this->params->get( 'pageclass_sfx' ); ?>"> + <?php echo $this->escape($this->article->title); ?> + </a> + <?php else : ?> + <?php echo $this->article->title; ?> + <?php endif; ?> +</h2> +<?php endif; ?> + +<?php if (!$this->params->get('show_intro')) : + echo $this->article->event->afterDisplayTitle; +endif; ?> + +<?php +if ( +($this->params->get('show_create_date')) +|| (($this->params->get('show_author')) && ($this->article->author != "")) +|| (($this->params->get('show_section') && $this->article->sectionid) || ($this->params->get('show_category') && $this->article->catid)) +|| ($this->params->get('show_pdf_icon') || $this->params->get('show_print_icon') || $this->params->get('show_email_icon')) +|| ($this->params->get('show_url') && $this->article->urls) +) : +?> +<div class="article-tools"> + <div class="article-meta"> + <?php if ($this->params->get('show_create_date')) : ?> + <span class="createdate"> + <?php echo JHTML::_('date', $this->article->created, JText::_('DATE_FORMAT_LC2')) ?> + </span> + <?php endif; ?> + + <?php if (($this->params->get('show_author')) && ($this->article->author != "")) : ?> + <span class="createby"> + <?php JText::printf(($this->article->created_by_alias ? $this->article->created_by_alias : $this->article->author) ); ?> + </span> + <?php endif; ?> + + <?php if (($this->params->get('show_section') && $this->article->sectionid) || ($this->params->get('show_category') && $this->article->catid)) : ?> + <?php if ($this->params->get('show_section') && $this->article->sectionid && isset($this->article->section)) : ?> + <span class="article-section"> + <?php if ($this->params->get('link_section')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->article->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->article->section; ?> + <?php if ($this->params->get('link_section')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + <?php if ($this->params->get('show_category')) : ?> + <?php echo ' - '; ?> + <?php endif; ?> + </span> + <?php endif; ?> + <?php if ($this->params->get('show_category') && $this->article->catid) : ?> + <span class="article-section"> + <?php if ($this->params->get('link_category')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->article->catslug, $this->article->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->article->category; ?> + <?php if ($this->params->get('link_section')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + </span> + <?php endif; ?> + <?php endif; ?> + </div> + + <?php if ($this->params->get('show_pdf_icon') || $this->params->get('show_print_icon') || $this->params->get('show_email_icon')) : ?> + <div class="buttonheading"> + <?php if (!$this->print) : ?> + <?php if ($this->params->get('show_email_icon')) : ?> + <span> + <?php echo JHTML::_('icon.email', $this->article, $this->params, $this->access); ?> + </span> + <?php endif; ?> + + <?php if ( $this->params->get( 'show_print_icon' )) : ?> + <span> + <?php echo JHTML::_('icon.print_popup', $this->article, $this->params, $this->access); ?> + </span> + <?php endif; ?> + + <?php if ($this->params->get('show_pdf_icon')) : ?> + <span> + <?php echo JHTML::_('icon.pdf', $this->article, $this->params, $this->access); ?> + </span> + <?php endif; ?> + <?php else : ?> + <span> + <?php echo JHTML::_('icon.print_screen', $this->article, $this->params, $this->access); ?> + </span> + <?php endif; ?> + </div> + <?php endif; ?> + + <?php if ($this->params->get('show_url') && $this->article->urls) : ?> + <span class="article-url"> + <a href="http://<?php echo $this->article->urls ; ?>" target="_blank"> + <?php echo $this->article->urls; ?></a> + </span> + <?php endif; ?> +</div> +<?php endif; ?> + +<?php echo $this->article->event->beforeDisplayContent; ?> + +<div class="article-content"> +<?php if (isset ($this->article->toc)) : ?> + <?php echo $this->article->toc; ?> +<?php endif; ?> +<?php echo $this->article->text; ?> +</div> + +<?php if ( intval($this->article->modified) !=0 && $this->params->get('show_modify_date')) : ?> + <span class="modifydate"> + <?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->article->modified, JText::_('DATE_FORMAT_LC2'))); ?> + </span> +<?php endif; ?> + +<span class="article_separator"> </span> +<?php echo $this->article->event->afterDisplayContent; ?> diff --git a/templates/ja_purity/html/com_content/article/index.html b/templates/ja_purity/html/com_content/article/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/com_content/article/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/html/com_content/category/blog_item.php b/templates/ja_purity/html/com_content/category/blog_item.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/com_content/category/blog_item.php @@ -0,0 +1,140 @@ +<?php // no direct access +defined('_JEXEC') or die('Restricted access'); ?> + +<?php if ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')) : ?> + <div class="contentpaneopen_edit<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>" style="float: left;"> + <?php echo JHTML::_('icon.edit', $this->item, $this->item->params, $this->access); ?> + </div> +<?php endif; ?> +<div class="contentpaneopen<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>"> + +<?php if ($this->item->params->get('show_title')) : ?> +<h2 class="contentheading<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>"> + <?php if ($this->item->params->get('link_titles') && $this->item->readmore_link != '') : ?> + <a href="<?php echo $this->item->readmore_link; ?>" class="contentpagetitle<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>"> + <?php echo $this->escape($this->item->title); ?> + </a> + <?php else : ?> + <?php echo $this->escape($this->item->title); ?> + <?php endif; ?> +</h2> +<?php endif; ?> + +<?php if (!$this->item->params->get('show_intro')) : + echo $this->item->event->afterDisplayTitle; +endif; ?> + +<?php +if ( +($this->item->params->get('show_create_date')) +|| (($this->item->params->get('show_author')) && ($this->item->author != "")) +|| (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) +|| ($this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) +|| ($this->item->params->get('show_url') && $this->item->urls) +) : +?> +<div class="article-tools"> +<div class="article-meta"> + +<?php if ($this->item->params->get('show_create_date')) : ?> + <span class="createdate"> + <?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?> + </span> +<?php endif; ?> + +<?php if (($this->item->params->get('show_author')) && ($this->item->author != "")) : ?> + <span class="createby"> + <?php JText::printf(($this->item->created_by_alias ? $this->item->created_by_alias : $this->item->author) ); ?> + </span> +<?php endif; ?> + +<?php if (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?> + <?php if ($this->item->params->get('show_section') && $this->item->sectionid && isset($this->item->section)) : ?> + <span class="article-section"> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->section; ?> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + <?php if ($this->item->params->get('show_category')) : ?> + <?php echo ' - '; ?> + <?php endif; ?> + </span> + <?php endif; ?> + <?php if ($this->item->params->get('show_category') && $this->item->catid) : ?> + <span class="article-section"> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug, $this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->category; ?> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + </span> + <?php endif; ?> +<?php endif; ?> +</div> + +<?php if ($this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) : ?> +<div class="buttonheading"> + <?php if ($this->item->params->get('show_email_icon')) : ?> + <span> + <?php echo JHTML::_('icon.email', $this->item, $this->item->params, $this->access); ?> + </span> + <?php endif; ?> + + <?php if ( $this->item->params->get( 'show_print_icon' )) : ?> + <span> + <?php echo JHTML::_('icon.print_popup', $this->item, $this->item->params, $this->access); ?> + </span> + <?php endif; ?> + + <?php if ($this->item->params->get('show_pdf_icon')) : ?> + <span> + <?php echo JHTML::_('icon.pdf', $this->item, $this->item->params, $this->access); ?> + </span> + <?php endif; ?> +</div> +<?php endif; ?> + +<?php if ($this->item->params->get('show_url') && $this->item->urls) : ?> + <span class="article-url"> + <a href="http://<?php echo $this->item->urls ; ?>" target="_blank"> + <?php echo $this->item->urls; ?> + </a> + </span> +<?php endif; ?> +</div> +<?php endif; ?> + +<?php echo $this->item->event->beforeDisplayContent; ?> + +<div class="article-content"> +<?php if (isset ($this->item->toc)) : ?> + <?php echo $this->item->toc; ?> +<?php endif; ?> +<?php echo $this->item->text; ?> +</div> + +<?php if ( intval($this->item->modified) != 0 && $this->item->params->get('show_modify_date')) : ?> + <span class="modifydate"> + <?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?> + </span> +<?php endif; ?> + +<?php if ($this->item->params->get('show_readmore') && $this->item->readmore) : ?> + <a href="<?php echo $this->item->readmore_link; ?>" title="<?php echo $this->item->title; ?>" class="readon<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php if ($this->item->readmore_register) : ?> + <?php echo JText::_('Register to read more...'); ?> + <?php else : ?> + <?php echo JText::_('Read more...'); ?> + <?php endif; ?> + </a> +<?php endif; ?> + +</div> + +<span class="article_separator"> </span> +<?php echo $this->item->event->afterDisplayContent; ?> diff --git a/templates/ja_purity/html/com_content/category/index.html b/templates/ja_purity/html/com_content/category/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/com_content/category/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/html/com_content/frontpage/default_item.php b/templates/ja_purity/html/com_content/frontpage/default_item.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/com_content/frontpage/default_item.php @@ -0,0 +1,139 @@ +<?php // no direct access +defined('_JEXEC') or die('Restricted access'); ?> + +<?php if ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')) : ?> + <div class="contentpaneopen_edit<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>" style="float: left;"> + <?php echo JHTML::_('icon.edit', $this->item, $this->item->params, $this->access); ?> + </div> +<?php endif; ?> +<div class="contentpaneopen<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>"> + +<?php if ($this->item->params->get('show_title')) : ?> +<h2 class="contentheading<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>"> + <?php if ($this->item->params->get('link_titles') && $this->item->readmore_link != '') : ?> + <a href="<?php echo $this->item->readmore_link; ?>" class="contentpagetitle<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>"> + <?php echo $this->escape($this->item->title); ?> + </a> + <?php else : ?> + <?php echo $this->escape($this->item->title); ?> + <?php endif; ?> +</h2> +<?php endif; ?> + +<?php if (!$this->item->params->get('show_intro')) : + echo $this->item->event->afterDisplayTitle; +endif; ?> + +<?php +if ( +($this->item->params->get('show_create_date')) +|| (($this->item->params->get('show_author')) && ($this->item->author != "")) +|| (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) +|| ($this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) +|| ($this->item->params->get('show_url') && $this->item->urls) +) : +?> +<div class="article-tools"> +<div class="article-meta"> + +<?php if ($this->item->params->get('show_create_date')) : ?> + <span class="createdate"> + <?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?> + </span> +<?php endif; ?> + +<?php if (($this->item->params->get('show_author')) && ($this->item->author != "")) : ?> + <span class="createby"> + <?php JText::printf(($this->item->created_by_alias ? $this->item->created_by_alias : $this->item->author) ); ?> + </span> +<?php endif; ?> + +<?php if (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?> + <?php if ($this->item->params->get('show_section') && $this->item->sectionid && isset($this->item->section)) : ?> + <span class="article-section"> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->section; ?> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + <?php if ($this->item->params->get('show_category')) : ?> + <?php echo ' - '; ?> + <?php endif; ?> + </span> + <?php endif; ?> + <?php if ($this->item->params->get('show_category') && $this->item->catid) : ?> + <span class="article-section"> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug, $this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->category; ?> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + </span> + <?php endif; ?> +<?php endif; ?> +</div> + +<?php if ($this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) : ?> +<div class="buttonheading"> + <?php if ($this->item->params->get('show_email_icon')) : ?> + <span> + <?php echo JHTML::_('icon.email', $this->item, $this->item->params, $this->access); ?> + </span> + <?php endif; ?> + + <?php if ( $this->item->params->get( 'show_print_icon' )) : ?> + <span> + <?php echo JHTML::_('icon.print_popup', $this->item, $this->item->params, $this->access); ?> + </span> + <?php endif; ?> + + <?php if ($this->item->params->get('show_pdf_icon')) : ?> + <span> + <?php echo JHTML::_('icon.pdf', $this->item, $this->item->params, $this->access); ?> + </span> + <?php endif; ?> +</div> +<?php endif; ?> + +<?php if ($this->item->params->get('show_url') && $this->item->urls) : ?> + <span class="article-url"> + <a href="http://<?php echo $this->item->urls ; ?>" target="_blank"> + <?php echo $this->item->urls; ?></a> + </span> +<?php endif; ?> +</div> +<?php endif; ?> + +<?php echo $this->item->event->beforeDisplayContent; ?> + +<div class="article-content"> +<?php if (isset ($this->item->toc)) : ?> + <?php echo $this->item->toc; ?> +<?php endif; ?> +<?php echo $this->item->text; ?> +</div> + +<?php if ( intval($this->item->modified) != 0 && $this->item->params->get('show_modify_date')) : ?> + <span class="modifydate"> + <?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?> + </span> +<?php endif; ?> + +<?php if ($this->item->params->get('show_readmore') && $this->item->readmore) : ?> + <a href="<?php echo $this->item->readmore_link; ?>" title="<?php echo $this->item->title; ?>" class="readon<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php if ($this->item->readmore_register) : ?> + <?php echo JText::_('Register to read more...'); ?> + <?php else : ?> + <?php echo JText::_('Read more...'); ?> + <?php endif; ?> + </a> +<?php endif; ?> + +</div> + +<span class="article_separator"> </span> +<?php echo $this->item->event->afterDisplayContent; ?> diff --git a/templates/ja_purity/html/com_content/frontpage/index.html b/templates/ja_purity/html/com_content/frontpage/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/com_content/frontpage/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/html/com_content/index.html b/templates/ja_purity/html/com_content/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/com_content/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/html/com_content/section/blog_item.php b/templates/ja_purity/html/com_content/section/blog_item.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/com_content/section/blog_item.php @@ -0,0 +1,139 @@ +<?php // no direct access +defined('_JEXEC') or die('Restricted access'); ?> + +<?php if ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')) : ?> + <div class="contentpaneopen_edit<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>" style="float: left;"> + <?php echo JHTML::_('icon.edit', $this->item, $this->item->params, $this->access); ?> + </div> +<?php endif; ?> +<div class="contentpaneopen<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>"> + +<?php if ($this->item->params->get('show_title')) : ?> +<h2 class="contentheading<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>"> + <?php if ($this->item->params->get('link_titles') && $this->item->readmore_link != '') : ?> + <a href="<?php echo $this->item->readmore_link; ?>" class="contentpagetitle<?php echo $this->item->params->get( 'pageclass_sfx' ); ?>"> + <?php echo $this->escape($this->item->title); ?> + </a> + <?php else : ?> + <?php echo $this->escape($this->item->title); ?> + <?php endif; ?> +</h2> +<?php endif; ?> + +<?php if (!$this->item->params->get('show_intro')) : + echo $this->item->event->afterDisplayTitle; +endif; ?> + +<?php +if ( +($this->item->params->get('show_create_date')) +|| (($this->item->params->get('show_author')) && ($this->item->author != "")) +|| (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) +|| ($this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) +|| ($this->item->params->get('show_url') && $this->item->urls) +) : +?> +<div class="article-tools"> +<div class="article-meta"> + +<?php if ($this->item->params->get('show_create_date')) : ?> + <span class="createdate"> + <?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?> + </span> +<?php endif; ?> + +<?php if (($this->item->params->get('show_author')) && ($this->item->author != "")) : ?> + <span class="createby"> + <?php JText::printf(($this->item->created_by_alias ? $this->item->created_by_alias : $this->item->author) ); ?> + </span> +<?php endif; ?> + +<?php if (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?> + <?php if ($this->item->params->get('show_section') && $this->item->sectionid && isset($this->item->section)) : ?> + <span class="article-section"> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->section; ?> + <?php if ($this->item->params->get('link_section')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + <?php if ($this->item->params->get('show_category')) : ?> + <?php echo ' - '; ?> + <?php endif; ?> + </span> + <?php endif; ?> + <?php if ($this->item->params->get('show_category') && $this->item->catid) : ?> + <span class="article-section"> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug, $this->item->sectionid)).'">'; ?> + <?php endif; ?> + <?php echo $this->item->category; ?> + <?php if ($this->item->params->get('link_category')) : ?> + <?php echo '</a>'; ?> + <?php endif; ?> + </span> + <?php endif; ?> +<?php endif; ?> +</div> + +<?php if ($this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon')) : ?> +<div class="buttonheading"> + <?php if ($this->item->params->get('show_email_icon')) : ?> + <span> + <?php echo JHTML::_('icon.email', $this->item, $this->item->params, $this->access); ?> + </span> + <?php endif; ?> + + <?php if ( $this->item->params->get( 'show_print_icon' )) : ?> + <span> + <?php echo JHTML::_('icon.print_popup', $this->item, $this->item->params, $this->access); ?> + </span> + <?php endif; ?> + + <?php if ($this->item->params->get('show_pdf_icon')) : ?> + <span> + <?php echo JHTML::_('icon.pdf', $this->item, $this->item->params, $this->access); ?> + </span> + <?php endif; ?> +</div> +<?php endif; ?> + +<?php if ($this->item->params->get('show_url') && $this->item->urls) : ?> + <span class="article-url"> + <a href="http://<?php echo $this->item->urls ; ?>" target="_blank"> + <?php echo $this->item->urls; ?></a> + </span> +<?php endif; ?> +</div> +<?php endif; ?> + +<?php echo $this->item->event->beforeDisplayContent; ?> + +<div class="article-content"> +<?php if (isset ($this->item->toc)) : ?> + <?php echo $this->item->toc; ?> +<?php endif; ?> +<?php echo $this->item->text; ?> +</div> + +<?php if ( intval($this->item->modified) != 0 && $this->item->params->get('show_modify_date')) : ?> + <span class="modifydate"> + <?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?> + </span> +<?php endif; ?> + +<?php if ($this->item->params->get('show_readmore') && $this->item->readmore) : ?> + <a href="<?php echo $this->item->readmore_link; ?>" title="<?php echo $this->item->title; ?>" class="readon<?php echo $this->item->params->get('pageclass_sfx'); ?>"> + <?php if ($this->item->readmore_register) : ?> + <?php echo JText::_('Register to read more...'); ?> + <?php else : ?> + <?php echo JText::_('Read more...'); ?> + <?php endif; ?> + </a> +<?php endif; ?> + +</div> + +<span class="article_separator"> </span> +<?php echo $this->item->event->afterDisplayContent; ?> diff --git a/templates/ja_purity/html/com_content/section/index.html b/templates/ja_purity/html/com_content/section/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/com_content/section/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/html/index.html b/templates/ja_purity/html/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/html/mod_banners/default.php b/templates/ja_purity/html/mod_banners/default.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/mod_banners/default.php @@ -0,0 +1,22 @@ +<?php // no direct access +defined('_JEXEC') or die('Restricted access'); ?> +<div class="advs bannergroup<?php echo $params->get( 'moduleclass_sfx' ) ?>"> + +<?php if ($headerText) : ?> + <div class="bannerheader"><?php echo $headerText ?></div> +<?php endif; + +foreach($list as $item) : + + ?><div class="banneritem<?php echo $params->get( 'moduleclass_sfx' ) ?>"><?php + echo modBannersHelper::renderBanner($params, $item); + ?> + </div> +<?php endforeach; ?> + +<?php if ($footerText) : ?> + <div class="bannerfooter<?php echo $params->get( 'moduleclass_sfx' ) ?>"> + <?php echo $footerText ?> + </div> +<?php endif; ?> +</div> diff --git a/templates/ja_purity/html/mod_banners/index.html b/templates/ja_purity/html/mod_banners/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/mod_banners/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/html/mod_login/default.php b/templates/ja_purity/html/mod_login/default.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/mod_login/default.php @@ -0,0 +1,79 @@ +<?php // no direct access +defined('_JEXEC') or die('Restricted access'); ?> +<?php if($type == 'logout') : ?> +<form action="index.php" method="post" name="form-login" id="form-login"> +<?php if ($params->get('greeting')) : ?> + <div> + <?php if ($params->get('name')) : { + echo JText::sprintf( 'HINAME', $user->get('name') ); + } else : { + echo JText::sprintf( 'HINAME', $user->get('username') ); + } endif; ?> + </div> +<?php endif; ?> + <div align="center"> + <input type="submit" name="Submit" class="button" value="<?php echo JText::_( 'BUTTON_LOGOUT'); ?>" /> + </div> + + <input type="hidden" name="option" value="com_user" /> + <input type="hidden" name="task" value="logout" /> + <input type="hidden" name="return" value="<?php echo $return; ?>" /> +</form> +<?php else : ?> +<?php if(JPluginHelper::isEnabled('authentication', 'openid')) : ?> + <?php JHTML::_('script', 'openid'); ?> +<?php endif; ?> +<form action="index.php" method="post" name="form-login" id="form-login" > + <?php echo $params->get('pretext'); ?> + <fieldset class="input"> + <p id="form-login-username"> + <label for="username"> + <?php echo JText::_('Username') ?><br /> + <input name="username" id="username" type="text" class="inputbox" alt="username" size="18" /> + </label> + </p> + <p id="form-login-password"> + <label for="passwd"> + <?php echo JText::_('Password') ?><br /> + <input type="password" name="passwd" id="passwd" class="inputbox" size="18" alt="password" /> + </label> + </p> + <?php if(JPluginHelper::isEnabled('system', 'remember')) : ?> + <p id="form-login-remember"> + <label for="remember"> + <?php echo JText::_('Remember me') ?> + <input type="checkbox" name="remember" id="remember" value="yes" alt="Remember Me" /> + </label> + </p> + <?php endif; ?> + <input type="submit" name="Submit" class="button" value="<?php echo JText::_('LOGIN') ?>" /> + </fieldset> + <ul> + <li> + <a href="<?php echo JRoute::_( 'index.php?option=com_user&view=reset' ); ?>"> + <?php echo JText::_('FORGOT_YOUR_PASSWORD'); ?> + </a> + </li> + <li> + <a href="<?php echo JRoute::_( 'index.php?option=com_user&view=remind' ); ?>"> + <?php echo JText::_('FORGOT_YOUR_USERNAME'); ?> + </a> + </li> + <?php + $usersConfig = &JComponentHelper::getParams( 'com_users' ); + if ($usersConfig->get('allowUserRegistration')) : ?> + <li> + <a href="<?php echo JRoute::_( 'index.php?option=com_user&task=register' ); ?>"> + <?php echo JText::_('REGISTER'); ?> + </a> + </li> + <?php endif; ?> + </ul> + <?php echo $params->get('posttext'); ?> + + <input type="hidden" name="option" value="com_user" /> + <input type="hidden" name="task" value="login" /> + <input type="hidden" name="return" value="<?php echo $return; ?>" /> + <?php echo JHTML::_( 'form.token' ); ?> +</form> +<?php endif; ?> diff --git a/templates/ja_purity/html/mod_login/index.html b/templates/ja_purity/html/mod_login/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/mod_login/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/html/modules.php b/templates/ja_purity/html/modules.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/modules.php @@ -0,0 +1,67 @@ +<?php +/** + * @version $Id: modules.php 10822 2008-08-27 17:16:00Z tcp $ + * @package Joomla + * @copyright Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined('_JEXEC') or die('Restricted access'); + +/** + * This is a file to add template specific chrome to module rendering. To use it you would + * set the style attribute for the given module(s) include in your template to use the style + * for each given modChrome function. + * + * eg. To render a module mod_test in the sliders style, you would use the following include: + * <jdoc:include type="module" name="test" style="slider" /> + * + * This gives template designers ultimate control over how modules are rendered. + * + * NOTICE: All chrome wrapping methods should be named: modChrome_{STYLE} and take the same + * two arguments. + */ + +/* + * Module chrome for rendering the module in a slider + */ +function modChrome_slider($module, &$params, &$attribs) +{ + jimport('joomla.html.pane'); + // Initialize variables + $sliders = & JPane::getInstance('sliders'); + $sliders->startPanel( JText::_( $module->title ), 'module' . $module->id ); + echo $module->content; + $sliders->endPanel(); +} + +/* + * Module chrome that allows for rounded corners by wrapping in nested div tags + */ +function modChrome_jarounded($module, &$params, &$attribs) +{ ?> + <div class="jamod module<?php echo $params->get('moduleclass_sfx'); ?>" id="Mod<?php echo $module->id; ?>"> + <div> + <div> + <div> + <?php if ($module->showtitle != 0) : ?> + <?php + if(isset($_COOKIE['Mod'.$module->id])) $modhide = $_COOKIE['Mod'.$module->id]; + else $modhide = 'show'; + ?> + <h3 class="<?php echo $modhide; ?>"><span><?php echo $module->title; ?></span></h3> + <?php endif; ?> + <div class="jamod-content"><?php echo $module->content; ?></div> + </div> + </div> + </div> + </div> + <?php +} +?> diff --git a/templates/ja_purity/html/pagination.php b/templates/ja_purity/html/pagination.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/html/pagination.php @@ -0,0 +1,157 @@ +<?php +/** + * @version $Id: pagination.php 10822 2008-08-27 17:16:00Z tcp $ + * @package Joomla + * @copyright Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined('_JEXEC') or die('Restricted access'); + +/** + * This is a file to add template specific chrome to pagination rendering. + * + * pagination_list_footer + * Input variable $list is an array with offsets: + * $list[limit] : int + * $list[limitstart] : int + * $list[total] : int + * $list[limitfield] : string + * $list[pagescounter] : string + * $list[pageslinks] : string + * + * pagination_list_render + * Input variable $list is an array with offsets: + * $list[all] + * [data] : string + * [active] : boolean + * $list[start] + * [data] : string + * [active] : boolean + * $list[previous] + * [data] : string + * [active] : boolean + * $list[next] + * [data] : string + * [active] : boolean + * $list[end] + * [data] : string + * [active] : boolean + * $list[pages] + * [{PAGE}][data] : string + * [{PAGE}][active] : boolean + * + * pagination_item_active + * Input variable $item is an object with fields: + * $item->base : integer + * $item->link : string + * $item->text : string + * + * pagination_item_inactive + * Input variable $item is an object with fields: + * $item->base : integer + * $item->link : string + * $item->text : string + * + * This gives template designers ultimate control over how pagination is rendered. + * + * NOTE: If you override pagination_item_active OR pagination_item_inactive you MUST override them both + */ + +function pagination_list_footer($list) +{ + // Initialize variables + $lang =& JFactory::getLanguage(); + $html = "<div class=\"list-footer\">\n"; + + if ($lang->isRTL()) + { + $html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>"; + $html .= $list['pageslinks']; + $html .= "\n<div class=\"limit\">".JText::_('Display Num').$list['limitfield']."</div>"; + } + else + { + $html .= "\n<div class=\"limit\">".JText::_('Display Num').$list['limitfield']."</div>"; + $html .= $list['pageslinks']; + $html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>"; + } + + $html .= "\n<input type=\"hidden\" name=\"limitstart\" value=\"".$list['limitstart']."\" />"; + $html .= "\n</div>"; + + return $html; +} + +function pagination_list_render($list) +{ + // Initialize variables + $lang =& JFactory::getLanguage(); + $html = "<ul class=\"pagination\">"; + $html .= '<li>«</li>'; + // Reverse output rendering for right-to-left display + if($lang->isRTL()) + { + $html .= $list['start']['data']; + $html .= $list['previous']['data']; + + $list['pages'] = array_reverse( $list['pages'] ); + + foreach( $list['pages'] as $page ) { + if($page['data']['active']) { + // $html .= '<strong>'; + } + + $html .= $page['data']; + + if($page['data']['active']) { + // $html .= '</strong>'; + } + } + + $html .= $list['next']['data']; + $html .= $list['end']['data']; + // $html .= '«'; + } + else + { + $html .= $list['start']['data']; + $html .= $list['previous']['data']; + + foreach( $list['pages'] as $page ) + { + if($page['data']['active']) { + // $html .= '<strong>'; + } + + $html .= $page['data']; + + if($page['data']['active']) { + // $html .= '</strong>'; + } + } + + $html .= $list['next']['data']; + $html .= $list['end']['data']; + // $html .= '«'; + + } + $html .= '<li>»</li>'; + $html .= "</ul>"; + return $html; +} + +function pagination_item_active(&$item) { + return "<li> <strong><a href=\"".$item->link."\" title=\"".$item->text."\">".$item->text."</a></strong> </li>"; +} + +function pagination_item_inactive(&$item) { + return "<li> <span>".$item->text."</span> </li>"; +} +?> diff --git a/templates/ja_purity/images/arrow.png b/templates/ja_purity/images/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f0b3c34adf662eb0bd9ac42db37ac705eea346 GIT binary patch literal 149 zc%17D@N?(olHy`uVBq!ia0vp^%s|Y_0V21rUp4_qNtU=qlmzFem6RtIr7}3C<R_&n zc;+Uirv{}arc@T5Otk?jVhivIaZO80`~Uxcv3KMOpa@e*kYDhBhNs&NynsA$PZ!6K rid#tu2`MQF2@HvB9A{5(2qZ8t_%N{Nh3BXMl`wd^`njxgN@xNAg5xR{ diff --git a/templates/ja_purity/images/arrow2.png b/templates/ja_purity/images/arrow2.png new file mode 100644 index 0000000000000000000000000000000000000000..50e7c26c6f984a6c533dd2e4005e0db025e023bb GIT binary patch literal 152 zc%17D@N?(olHy`uVBq!ia0vp^>_E)I!3-ozC9e7dDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MQi~+A+Bf6ocaI%|K(oMGN1@kNswRge}<>q4ZMInDNh&2 ukcwML2`MQl4GC;)0*s3!7N`g?ut+d48UXEn9&r+=iow&>&t;ucLK6Vwb}Hon diff --git a/templates/ja_purity/images/arrow3.png b/templates/ja_purity/images/arrow3.png new file mode 100644 index 0000000000000000000000000000000000000000..031c4c0143ad04e0f32e39f22717891895934340 GIT binary patch literal 149 zc%17D@N?(olHy`uVBq!ia0vp^>_E)I!3-ozC9e7dDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MQi~+A+Bf6ocaI%|K(oMGN1@kNswRge}<>q4ZMInaZeY= skcwML2@Onc8YelD44N_w*f<Or7$z|Ao{H+s1S(<hboFyt=akR{0CfQ>-T(jq diff --git a/templates/ja_purity/images/author.gif b/templates/ja_purity/images/author.gif new file mode 100644 index 0000000000000000000000000000000000000000..9274f527d102eff8165d4dbf7f0844cc02403f1f GIT binary patch literal 122 zc${<hbhEHb<YM4r*v!H3>eZ_U4<3B|`t{<)iwhSnJb(WD!-o$$J3IgX|IdI8DE?$& zWMJT6&;fBkW-zd*3(QQOu;iP<-rsBEpJgsl%(+r2<I1q+ZM6XF#!KJA3Uus$><M*~ IU}Ufc0EuNS0{{R3 diff --git a/templates/ja_purity/images/b-bl.gif b/templates/ja_purity/images/b-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..c94c31384d3f661c158cb9f9c99bcaefa7ec23d9 GIT binary patch literal 410 zc$@*60cHM2Nk%w1VF>`b0<!=B_V)Jo_xI}R>htsS?Ck9R{{H;@{O#@S{r&y$@bK>L z?&<02|Ns900000000000A^8LV00000EC2ui00{uP0ssX6aIs0Jtn^~0aj##tStD15 z<cON;>9+8;&aYg1H<*ht-s?Y}Etnb_eMewYh-@mI%%?O;EkdnRY?Zatdbw9{R=lMV z$zO99%~prqV|aO&rnl|#`Z<5!<NtnvYkY)&gNAR2af)+-iH?hqjfawYl$Vc~k(!g4 zo|~VYprfLtmZ7Jlsiu9LtFNu7v8uDIg_X6ix30OpyRyHu!M2RL#lFYG#<<GJ%*oKt z(!9;p(bU(#*}~hz)7szM;ojKe%jM|c>Ei3;>hJ9E?(y{V_UH2W_4@bD?fd}!<rBD% zU_Wc-3<gB_PoYDG10fcac(B_-iw`kUyqIuf#*P|CLxLRH(4$F_B~eCHIgw>Wk}F}h zl=(6xO^!Bm#?(2JXU&~Jdj|a}v?wb91x64EFk-+00~-J&P!Iq?1pojB91yUe>w*XX EJ0<|&;s5{u diff --git a/templates/ja_purity/images/b-br.gif b/templates/ja_purity/images/b-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..293af34e75093d343c77e7b318ca496a7faae1e9 GIT binary patch literal 2167 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 diff --git a/templates/ja_purity/images/b-tl.gif b/templates/ja_purity/images/b-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..7efe0ef947e87a00ada598358f34989de151d0ab GIT binary patch literal 134 zc${<hbhEHb<YbU%*v!E2?c2BS-@m_l_3HEI&u`wm`S<VNpFe-zzJ2@m@81s}KD>MP z?&Zsu|NsAIfC0syEMQs(M1ag-U@;bGC_J)@TSZjh_n8e63LY$~8X_;ZZ_zum$KdWQ e&A3+z^4E>->v*t8<-0yHoSvdrem01O!5RR^i9TKc diff --git a/templates/ja_purity/images/b-tr.gif b/templates/ja_purity/images/b-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..89b2ca8e98cadea6582d2119a04e5655ea19842b GIT binary patch literal 342 zc$@)N0jd5+Nk%w1VHg4*0J8u9_V)Jo_xI}R>htsS?Ck9R{{H;@{O#@S{r&y$@bK>L z?&<02|Ns900000000000A^8LV00000EC2ui02l%v000F4aLGxly*TU5yZ>M)j$~<` zXsWJk>%Q<L90LF_c&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty*)4fFg0bdcWYXcuX#v z&*=2iuo$S{@VI<VuiNj_00GbM`~QG}f_()7gNKNTii?bh3yqMGl9QB`M~{}7nwy-R zbC{l?qNAjxM4+ars;jJ!sI9QEva@Qhw70mqx=OaYzQ4e^y}`uA#-hW=%FE1)$<5Hw z(sa+$*4Nly)!E$L-bmZu;^X8D;pOP*(&y^!?!@fx^7FLu^!NCt_WAt%n*06&3S<Ou opuvNG3L;#{P>#Ze5F?U#D6yhNDikkj+{lZg$B$kE7DNC5JMd}7G5`Po diff --git a/templates/ja_purity/images/bb-bl.gif b/templates/ja_purity/images/bb-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..23fcef3449627ebbef1b5a4e373796973a5a3f70 GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7+qZ8!FWna}S;U+%t7+3IzPx$fleSuQtY=7@$$$+g{$v5u zIv@gM1_MjBz)8>5do5m{-Tgm7qc0_MUdF0*Ij{E>=$tRfy<f5Jea-v-2No1~=t%XS zSW<K{$7=qC6(wG4qt@S8Q+E1o)&2(?Dtz>2pMSBX>TKTb`yY1H_^rSF{>PrW^Y4HE YS7nu8mtbTTXJF}IU}R$w5oE9i09NEpH~;_u diff --git a/templates/ja_purity/images/bb-br.gif b/templates/ja_purity/images/bb-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b7f4892b16475e9a40f9d1c6679416c2e4e0d0c GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B_V)IIvdRo?odal^7j&Y$)ZjgeuuGD)xzgVNW|;s0 z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3j&;IfQbVXU}69Oj7Y!%2mk;;1OPjuReRz9 diff --git a/templates/ja_purity/images/bb-tl.gif b/templates/ja_purity/images/bb-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..f02c96cf2c39e2773e1300d670724d8874717486 GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!E2?c2AVm+niIE@sY{)wJmpU*0_LNn5Qt)-$BdWWWX#f3kpS s9S{LBgMmdxpdo=}7l*)^!w+sSCLPU~m$7PH&g*>zI_FEyx-wV;02|97?*IS* diff --git a/templates/ja_purity/images/bb-tr.gif b/templates/ja_purity/images/bb-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..65faef76ff0c55b7387ff96dc6e9a3765f87dc56 GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2?b|oot_^&7^O!Scc~9EfwCU8&OZTNp7w@_9fFW%r0|rq1 z$pWTzKm^DP29}KmCp}m1wRnAY_x}WqzLd;)8LQUiyx#YrM1YOqNX5GMHShl)SWvJ- z>rTgsB}FH5tmX$?V-Q>$wf@GMvTELf{SP)&_^@%Gda<SIY~JqsA9mFEt-t;L$DX?L z?|=VqXl!b3X>Duo=<Mq5>Fw*EFmcl4DO0CSpD}aR>^XDi&0nx^(c&dbmn~nha@FcJ zYuBycuyNDoEnBy3-?4Mo?mc_=?LTnv(BUITj~zd8^3>@wXV0C#aPiXRD~kmgtO2>M Bgf{>H diff --git a/templates/ja_purity/images/bg-bl.gif b/templates/ja_purity/images/bg-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb921535733a30f61268b10ed0c7b4ebf00fa6cc GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7+qZ8w9$ji$l{aHYNBi26nq?Ua_f6V!VN><eGzM%y@h1zI z)&UV9GZ<L11x|Xd-fQvt?C$>w8ht65^D<Vg%Xz)8K<9i(?){2&?`z)wKd_*{Lr1Fr z#FC<uIac#8tSIqX8@2w%nzGYxtM)(GP~oFD`}~V7RcG^d-~X_q#&7-Y_doX3oqzxP YzbcaivjiinI0JhJ10x%Yh#-SC09q$dX8-^I diff --git a/templates/ja_purity/images/bg-br.gif b/templates/ja_purity/images/bg-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..3e40d13740af335be1b2423662b8995da314cd00 GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B_V)JK<J8#V(t)XMnYoIGt#qNjl6<CUywI|HrDgyC z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3j>@;fQbhLU?Ktlj97pH0ssI&1OPiKN`8?5 diff --git a/templates/ja_purity/images/bg-tl.gif b/templates/ja_purity/images/bg-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..1fd62de0055a5c7e6a2de40018e7521334e4cf45 GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!E2?c28-k1jQ>%A2vHqhnoZ&9aPz`zGzVu&H`!8Ur?<_>%=p s>wpN584N5k0u2cqyEtUdI6u6>kaQ?xUdF0*Ij{E>=$tP(>&jpa02xCgsQ>@~ diff --git a/templates/ja_purity/images/bg-tr.gif b/templates/ja_purity/images/bg-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..97d5639ea92f8c3dcac0d996b769e91390a30f53 GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2?c2ATkFVT#bg5}o-prj{9qURL?weGzEMw1wP1Q@&7%+h1 zPZlt(10q0XFtBViIO(~1uf^-LyZ<L>^rd9Z%UHE8=k>l1AredsM=I96uX+Ffz=DDu zPIo#^EGasfV>LhEnxeqksP#A2lvS%1?0>MK!iSCj)Qc@uXY+R7|FEORZ~g7}Klap} zfB*Y`Lt|5OOKV$uM`u@ePj6rUgo%?TPnkMx`iz;gX3v>BZ~lUXixw|gx@`H1m8({- zS-WoihK-vxZ`rzS`;MKvcJJA{Z~uXVhYlY(dhGa#lc!FfIeYH>g^QOiUs){3U=0B2 CUx&H? diff --git a/templates/ja_purity/images/bl-bl.gif b/templates/ja_purity/images/bl-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..afda43abda5f3532b04448e1e525d07c0b5e8e83 GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7+qZAWjvbpdYgS@nVt#(UtE;Q2si~cvow2bo12&-elLbuc zfC!Ko3@q6KCp}m1wRnAY_x}WqzLd;)8LQUiyxv!!bG{_^e#N@?HShl)SWw`hBh`Om zNzut1tN9mJlz6R;T7P3r+3B}c`yXtm@X?!n{>7H6vw6Gkf7nsuxBm9~AA9P~zyJMT Xm0f~af{{&}fvJOmk%d)6kii-N=C(@H diff --git a/templates/ja_purity/images/bl-br.gif b/templates/ja_purity/images/bl-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..b7470d49c65c2ef1cc6c6dade3659f2e4cd87f3a GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B_V)HXJUqzA$i~LTZ*OlkH8n*=MVgwLV`F18Gcy1H z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3jv&nfQbbNVB!G)jA#G>0{{R(1OPjd?0HlG diff --git a/templates/ja_purity/images/bl-tl.gif b/templates/ja_purity/images/bl-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8d15d1bf6d4554933ca466fd5c3aabc90109a75 GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!E2?c29w$BxaKH7hYOF+V@w!^6YW)YQ(-&e+(P0UJ>K$pWTz rKm^DP1{N8C1_!QP92{qwAKqX{I-W5vW7WEx*ZT@|&X=5ZWv~VSVEi5~ diff --git a/templates/ja_purity/images/bl-tr.gif b/templates/ja_purity/images/bl-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..8896bba33fd1c65f91b15b0efc4974b69af88ef4 GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2?b|myJG&DnP8>USEI&Wr)YR0&!(-O0S;@)C#>U1B7(nqS z3z*gc5g;=dST-7*^jy8y;`Q0x{}VL&QZnadtXh}zdf$f>0cM6H73<#Dy#Ie-LBS5I zI~^yM6rIemnjaA6D6lqa{f#wc)vg8mA8e@bVPik_VoTN8yxsRd?5OcufBXH9J$2{b z|Nh_5*woz8+ScCD+11_C+t)u~;-tw_rcRqaW9F>cbLP&QzhL2_#Y>hhTfSoDs?}@O zu3Nuh<EG79wr<<LW9P2jd-m?zf8gMu!$*!DJAUHisnci9o;!cx;-$-177H?10|1f2 Bfv*4n diff --git a/templates/ja_purity/images/blank.png b/templates/ja_purity/images/blank.png new file mode 100644 index 0000000000000000000000000000000000000000..b67de7c4691a899cb79138e2ec217c030661f039 GIT binary patch literal 151 zc%17D@N?(olHy`uVBq!ia0vp^j3CUx3?wy9o9qTs>?NMQuI!gNICu>WjUF0b0Sa*z zctjR6FmMZjFyp1Wb$@_@Ea{HEjtmSN`?>!lvI6<c0X`wF|NsAAenk2N$jp);zhDN3 mXE)M-94=26$B>F!$q7I<69eN@^?M)_7(8A5T-G@yGywpjP$k&_ diff --git a/templates/ja_purity/images/br-bl.gif b/templates/ja_purity/images/br-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..5dff98cdba4dfafc21306eb6d59e187eaa538076 GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7+qZ8ocJ4gD%zQ*#{7zHT1#j;&R#u1j`1Uhk2Z}#gz_bpC z0GYwSk}Yu3bM;<}*JpSCPtfQ~$()z5YF*CjeFZw_OLFg5tb1Sc{{Mjm1s*z5{U??b zoy@VCe_=(5*V?G{H`bJ$ep|Kw!G;PSz1inqY^ge%xBLEw9W{RIZ@>Ssr|$gw-~UzF VCD<ewnZy}bIv5yPnMDK{tO0IJOSb?3 diff --git a/templates/ja_purity/images/br-br.gif b/templates/ja_purity/images/br-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ca3ad87d89449c445d8191eae2720b4e95b2588 GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B_V)JBOH1jzyu=q5%{@KB3=G_Yg6O%qzykxn00000 z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3k94=fQbkQV4?v4j5t652LJ#-1OPi-uzB79 diff --git a/templates/ja_purity/images/br-tl.gif b/templates/ja_purity/images/br-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d374a086cee62b711840334b2db4067fdac8541 GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!E2?c28(J9i#nW<Dw<b*HK6g17e>E2~3%eES)&1I3>#U|I)6 pfXrZEkr8MJVB5tZaHjde492A68S^q$t;>16uR!N~$yrwhYXF|H9^?Q3 diff --git a/templates/ja_purity/images/br-tr.gif b/templates/ja_purity/images/br-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebb6455d725be27da7e4ecbfe3b60d221c1aaaaa GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2?c28t-rk4!_zo~LAC;22)712G&z`fkwl8+>+|PgoDE?#t z(>fpmWCjDvMuU@{tM^*GKD+yWf<|9T=Ddtm>vCT2`{2UD!EmHv-TRvN{|_uE*r9c& z<HVAplQ~xN1FjtqSR1we#+tHf+k*WMHdOeqai4mzrRr?n?)x8h)cCEx{r<<Ey7TXU z|8Hn)YHn$5Ywzgn>h9_7>z^=j(&Q;qr%j(RbJpxRbLY)puyE1hB}<nrU$Ju4>NRWE zt>3V5)8;K(w{73CbJy-Yd-v@>aPZLKBS()NKXLNZ=`&}~oxgDL(&a0Q1sSXXtZ0K@ diff --git a/templates/ja_purity/images/bt-bl.gif b/templates/ja_purity/images/bt-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..60ddbfdd6235212512cebdc961007d7dcd6bebf4 GIT binary patch literal 407 zc$@*30cie5Nk%w1VF>`b0<!=B>+9>()YS9y^Y!)h;o;%v=;-qD^32T4*Vot0&CSWl z$@cd4000000000000000A^8LV00000EC2ui00{uP0ssX6P_0R)tn}igaj##tStD15 z<cON;>9+8;&aYg1H<*ht-s?Y}Etnb_eMewYh-@mI%%?O;EkdnRY?Zatdbw9{R=lMV z$zO99%~prqV|aO&rnl|#`Z<5!<NtnvYkY)&gNAR2af)+-iH?hqjfawYl$Vc~k(!g4 zo|~VYprfLtmZ7Jlsiu9LtFNu7v8uDIg_X6ix30OpyRyHu!M2RL#lFYG#<<GJ%*oKt z(!9;p(bU(#*}~hz)7szM;ojKe%jM|c>Ei3;>hJ9E?(y{V_UH2W_4@bD?fd}!<rBD% zU_Wc-3<gB_PoYDG10fcac(B_-iw`kUyqIuf#*P|9LxLRH(4$F_B~eCHIgw>Wk}F}h zl=(6xO^!Bm#?(2JXU&~Jdj|a}v?!|s0!9P?Fakh;0V4<mC}3a%00apXXjKpa06RP0 B+5rFn diff --git a/templates/ja_purity/images/bt-br.gif b/templates/ja_purity/images/bt-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd43be0e870f713a357f1529d2398fd51d027400 GIT binary patch literal 2166 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 diff --git a/templates/ja_purity/images/bt-tl.gif b/templates/ja_purity/images/bt-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..455566c6ba4d0d5a2c13b309ebfdd6296738af51 GIT binary patch literal 140 zc${<hbhEHb<Ydrb*v!N5`t|E8SFU{g`0>n{GcR7ec=+()_3PKqojdpS>(|epKc75# z^4qs>|NsAIfC0syEQ|~cJPbM@4#*4!7R!Q@o~!p-ygsXK(5|HAEhxam%F-dqaD76I oO7B&%xR)aKKZPDRdF+wQJ#pvap$x0}7gm&bt&LiLj)TD(08XDkPXGV_ diff --git a/templates/ja_purity/images/bt-tr.gif b/templates/ja_purity/images/bt-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..d46afa421a6baf24d13192417d5615d88528cde4 GIT binary patch literal 433 zc$@*T0Z#r$Nk%w1VHg4^0J97L>+9>()YS3u@yyK3=;-L-;o;ZU*Urw)_4W1h^Yh8c z$@cd4|Ns900000000000A^8LW000aCEC2ui02l%&000F4aLGxly*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@c30huiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l640L0CJd_nwv2K z1OWw{qNAjx83+NFrmL*2ZvX+Vva_^c2?Mpcy1P*dyuZM~LB7Jp#>X(k$ji*lAIi?r z($Ub<*4M$+*xTH)+TGycoZsT*=56HX>g!|a?C<bd?(y{XPYMkA`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!UhLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! b!-^eCwyfE+Xw#})%eJlCw{YV!hyVaPC-w8B diff --git a/templates/ja_purity/images/bub1-bl.gif b/templates/ja_purity/images/bub1-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a26c057773ba5a08ca7ba5717f4232d6cee86d8 GIT binary patch literal 1803 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 diff --git a/templates/ja_purity/images/bub1-br.gif b/templates/ja_purity/images/bub1-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..57d381429f28be9f508ef17e59320d0ffb7737a2 GIT binary patch literal 3511 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 diff --git a/templates/ja_purity/images/bub1-tl.gif b/templates/ja_purity/images/bub1-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..e2f89efbd9cc52ba6c35bfed3931a3b09961e5c9 GIT binary patch literal 474 zc${<hbhEHb3}ldGxXQrr<;$0^Uw{1k`Sbbn7q4Eu`uq3qw{PEm{P^+v_wSc4Up{&A z<kP3Gj~_qz^5y%hS8v|FefQwOgM0Vxy?F8R-MbH;KY#uF`SZt*AD=yY_W1GR=g(ih zef#$H>$i^{J$nEC{jXoYzJC4s@87>afBt;`{{8>|{|qz$ia%Mvv<`>>`H6w;`+<gn z8#7WQ<}4{XnPWBo!ip)DB34RWEz1tSt=j)!LxqoCeS3G~A*KvwyAL~R{MO%o|6@;# zhos7_0yd@Qme#iRj?S*`o;Iht1~zu4DRR@M&zL!D_MEx%=1*tjmuXO9m*e12T)k%P zy7e12ZrZ$MEu(~Nz7mt1A}g!H!9$0S96fgY#K}{KxdlWSCdnO8zH;^2^&2;D-M(}8 zhP3#uy$bi9K70P+s!;vK%P-%5c+bpofr*3l<Ii7rKQrw9{+o$w$+i6H>l-;fi;4&| z#T;sXA!gR%v2l(|yQp#6?iCv!oA${$H}TvoR5{tB<{#v<@{{7}X&mu~L^O(@?NeZ| F1^~~7<i7v_ diff --git a/templates/ja_purity/images/bub1-tr.gif b/templates/ja_purity/images/bub1-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c66806fb075e01ff710d9ed312f45ef7fd7488a GIT binary patch literal 1066 zc$}@0=}(gf0Eb^f>B^C;8?JMLzy@JJiD7YJ%J@Ly0<|DBF;TN{ZCMBuV#s1T=8OWZ zfRxFl1?6rz-nJZt7AR*6<tS%y$l-uq^mxnL`$CSk)BO#5KK!1~zvM}}o_OWz&wE~9 z0Gj|{x4(Oj!{M-6txl&?E|;6l*3;8do6UB7d@Pg6R4TPr3+r?Si^a0PzpvBjBoc|u zcBE3NluDIeuZLmSVzHY{CbQWFL6FgChM+?j)*FpRg+g(3baZxhc5-rJx7%GVm)q?I z{#U*{M*QdK5A)#@fOHG03UJXEsze>XE#}9yu7mgSy+8Hu^bnWz5BM^6ValaOF~oha zdT(56;yq05-=+8_A_Ydz_@d$x68TAKS^3inO66bAs;X;h>z==$);GL-)!5YB(%RNe zqjz+6b%P8htEacGpFJ?h;gT>HynF*50ijcT!Ssx9c5Z$_w79gqvbrW-fBpByo6W85 zowxt&?(IvYGP&YFsZwho?IEnw8;mBig^#k^(LR2ULe88nH{j_Lh-0@+lTiLqX(D#J zunZlFZ^8}G<|yYc6ZS*{^o6RBYZZal2Rjz)B5pC$76&_*>tmeW=onfH>EpnY@|{Ia zx7gj9K=QeW=Yp^4xVotHB`#y5`z9UVj2~idvhH#S`%6Qt?fxub#l_^|p0}Kw4QBfC zaPRI&ynh%9C<!m|@QO2ePmlCV`9+?-K`A`8Tv+ap%~;_L94u6aCby)F4yu+LF6T*B zMmZXB+ciqijWMov1H8q`SREUJx7p4h^f%j=N<VstgCwitBSxu!<Qtqi!80F->adw> z6QfqmIz72Hb#lxO?{M;@Ym?(gMwyTj{NvQbu@%~2Ws0XJ|CAt5Wb`Kj0~rb6A*q<p zf1eIALRN&p<j9Iq;h?O<FBX!K(1{Up^10hN@+arBL3wE)5pv7RLP{eP<zdtu#nXr` zP*D**4E^#rOq7&)<FlL9Qpy!Ic<?OV0UcB&AS0F4KVWi|HMnqwvNnZ@6L@%|3hp32 z{We$i;%+uWMNK1WRrOh=k?MwDsegRsZ7q(O0esT3)Qtu6k(#FaTe+I%LN!Cvl1{rC znt?P$LTzLW0ctM~XF{~f*r=?^#~3t7e}0>w?QF<qYP*_<ufFcEdmL)P4l3c00d_GD znJ?!H6TsTRD7c5aMSy#GY9>tXn~Br*36NMFdlr+Y8^~}(6@j8ySjSmU#Ok?kPP(Hx zo7pV=@E#G?j}S8guskI-&oBygv62jB3fGun+%%6hPS_H6?@hi_vy4+`j$LTdg^V@{ t5TEC>Yk=S$(~RGDI+M^Z+|N9F?oPgW&VsKr&j<dlGcO2+0}#OX{{mx1P^JI? diff --git a/templates/ja_purity/images/bub2-bl.gif b/templates/ja_purity/images/bub2-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..c614a4209131cdd29f59d6addcc84b86931a9dce GIT binary patch literal 1747 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 Qn<$))QiG?178r2+ACWXzEdT%j diff --git a/templates/ja_purity/images/bub2-br.gif b/templates/ja_purity/images/bub2-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d0135d1eea3ba644e9ac22fb648e11ba6460c44 GIT binary patch literal 3243 zc$@*N3{>++Nk%w1VcZ4F0kZ%A-QC^w_4WAp`1AAg`uh6){r&#_{`U6v^z`)i_xJq# z{Q3F$`}_On=jiqI`2YX^A^8LV00000EC2ui0Ne%30RRO5@X1N5y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~F@^#`5EuZC(5Q4uty-_xtai)odcWYXcuXcH zm(6E+&2GEj@VI<VuiNkVy#9A)I`@Eqf`f#GhKGoWii?bMeQAx6l9QB`mY0~Bnwy*( zkAIz^qNAjxrl+W>s*9g$tFN%Jva__cwzs9NxVyZ)zQ4f1!ow`O#K*|V%FE2n&UMDm z($mz{*4NnC7SY<>-rwNi;^T+h<mc$=>g(+7HRkT|^7Hid_SNwB`uqI-{{NTq0USuM zpuvL(vj|Mcu%W|;5F>tAD6yi&ix@Muqo}c?$B!WYLjvO{vZTqAC{s=%sj{WZmoQ_B zVJWkw&6_xLzEk4ImCm0)g9;t$i6<nYNRujEs*)ztr%<Cx)#r4o)vH*uVymjPtJkk! zad8bxwyfE+n8u=A%eJlCJ8Iv`olCbambiBF>fOuN2Hw7a0}CF^;V<FCh!fj2thlk` z$6pyko=mwiQpuJxYu@Y<Gw08sLtpePy0q!j07;`>&ARnE)vja9o^1^_?c2C>2eYla zx9{Jpcmp3!ym&yPpo}YD&K#BS=Fp={fAf60_3PLbBKMiSyZ7&Gs)HX-zB~-^=F_WR zKXE(z_weJ-Krg?({qFSd>)+2jKmY##_U2#zfCLuU+JFWosNiP^F6iKck2MJ4gcJrQ zVTBlGIM;<5cIaVQ9DXR`h*yP3;)y6GWnzjfwusY;F2*QhQ|`@Z<Bep&h~thtMx<kp zKn7XRk3tq{<UK?lspOKc)yU+NP==IblvGwp&6HMVsU<R4Zt3NhymSfXm}J5tW|?TF zIm(%8w&|uNY`!VyoQcFq=bd=&VP~Fv_8G^Xeg-P&Oim7J=%J(lis+(@9-(NXkVe|W zqmou?>3oG=s_CZCWXkEMpsqn_sHB#9!KkLDS}Lllw#q51uEts^tg_b1D6O{UIw-EX z_R1%(z6Ludu)-FrCb7mQJ0`NqHmfE7v(82vCA893t0cA7W*a27+IEX0x88;uBe>$0 ziz2z^ru!kf>b8p^yY9yOAiVO{YaqS$=KCMM`u1xdzy1dN9>4+@Y#zY|C;T143O9Tm z!wyFb9mEn>Y#hZFXZ#z+8h4Bv#~z0q8^|J;j2g)%ryLr}Dz~f|%Pz+}8O$=*tQgHU z=R6qBI`_;M&proT7tlf%?H18SCw&&uN;eG_(@sa771UB!Efv*PXT22GT6aAZ*ItLM z6WC&xT@%@6r`?&SYPYQ%+HS`!CEIe>tsC5S=WP+*diVVh-+l*<5a5CrJ`mxCC(aMz ziZ@;l<Bmt}4&;(oo(|=fXD$x^=9+ij4d<SRUK`z_m%btCrl-yp=&HAV4C}7PJ`(D( z*FH7vw|?z;EBHSfL$|26Q!7e6-f#wUL^^2#^AHX6w}FMUq1PjCH7%wMm4N7Zld zeL2~GFFr)wk8i#n<)5#9r_gh^{`)?L5C8o8q)-3-W7v=X{$A+M|Nq))9{>mF5C0MH zfKV_X0v9+01v2n~K5!reCzt~XQt*N_upkCE_yP@b@PjJwAP7fT0uhq%gdi{>3RhSZ z0kZIguah4PXP62V(r|`0yx|LTsKXWVu!kr7ArMC>#36pLh(_EX5|enrB{Fe>PJH46 zqbS7%Qn88$ydo9{sKqV+{;!K(+#eXjc)u}{aeihz<NMO6M)k3=jplnJ9K|QcIeM>- zcGMmo^Ju+2@=<zz{A2S1DahmzvXI3)BqD>S$VK+9k&etABqLe7Nm4R)mb_%^GO5Yb zak7)8`y?nsC(2QFu9T+C94b>;xmB_<a;|)3<6<ex#L=>rg}Ws#1E<Sf_N|w`%o{L+ zS+`*lGj7H_X4{gf%(OAHnPqz>G{Yv%X?Cre*323<vstxmax-e){ASa_DbA#kvz$dc zCpv?s&UN;zo$kyTJmXojdD1gx_Pl4y@~O|1@w1;L`zJs{CeVR)te^(X7(x?Tv4t`; zVh(+1!y+otgi*Brq6NDsMgykNjrOaf9?cg>Lt3wqk~Cf>J!!jAs?v0^w58>GDNMs9 z)0uXwrZ&wMPIFqVo$@qVKK*I4f-2Nx5w)nrIx13wrPQVNs;N%R6;z{ItEo~oR#v@g ztFo%qRB^SdtCAsD1^Lynf~u@$eU(_#YDcuP^-^wq>#Wu)S2f19u8_JbUT;O$y?Rlv zemxXm1G}rf5>|?XJ*=M+tJq%|wy{QJEM)H_*~t#;v6j_gWi#uh&2siwnEfmaJuBKW zk+!tU3N30;c-qx^skN?smTF@QLfF!_O18c2v}UVY4Cc1CO!_Twuf^NpLQuHIEfR8* zyRG6f7lF(FeJ+opE8TB7x4HnNE_P?6-R+L+y57ZKcf-q~@sjsk;5{$=%&XoJvA4bJ zN-uoR_ulzxsJ`}nmwfa4J^b=_LjL{ly!I>L>jk*L3OX=???vDRJ5Rw54iJPRysrjR z*mx7ZuzoVE;eT1U!@lD%h~p#T5fALcCbnIPQ>>m9v-n^rezEIZEaUOexW)^MF^)}l z;~i(G$3A|Tj)UwuAQM?SMn3YyhOA`ECArDVc`}qQ#^fnGPRdpu4wkdLu_|-fa9jTJ z-MlPjUXr=YzdSRVg{kH>7qiW7Mkbu&yv#Y%*_n2}b2Rg;XKM1f&)57jptULJL3gvz zh6X49q7yyNMKju*j(&7HBQ0rmQo7Rbyfmiesp(DEv(ui&C#XZc&ry@wpQb)_KvS)1 zg0i~R2YofH6)NjlH?-EahA6IcJ<(nB+M>Sxbw-0NY>pDU*dIMMvPG)wWtX(s&PFM; zqrK8;Q`@E1zIIHrt!<ieyW2PYHn?>v?s50D+~x)<y3;+>b+g;3?tXVt<1KHd(!1VI zy*Iw4s_%VQwcq~6D!>E2)qxY-s|G)KSY4=aIWxTBb$&R+@htI)@44a@_cO*b9_Wp8 zoX{Ts_@P5Caz&H8<c&T#$|0@tl~20mF1IwyW1i`m)11@oGl0%_&hwu8{O3Rqy3mLJ zPV}N1{pd(fy3&`<^rk!g=}?cl)Td7Ms$2c)SkJoFx6bvhd;RNR54+gMPWG~!{p@H@ zyV}>z_O`nn=mk(f`wBq!y4(Hkc+b1u_s;je`~B~L54_+9Px!(c{_u!Tyy6$n_{KZ_ z@sN+a<R?%0%3J>On9scCH_!Rbd;asF554F|Px{iE{`9EVy8;-n00A5T0RSL?>}OB= z+S~s2xX-=rchCFY`~LU955Dk+PyFH=|M<vHzVesP{N_9V`OuHP^ruh#>RbQ%*w4Q9 zx6l3Vd;k0355M@wPyX_oKliOq!0Q1ZfcCrp{qT>!{O3>q`rH5h_|L!o_s{?T{`>#` z02qJ*IDiCLfChMg2$+BhxPT1UfDZV85Ey|HIDr&cffjgy7?^<?xPctlfgbpQAQ*!6 zmjLP)000mGD42pOxPmO$f-d-iFc^a}ID<4;gEn}BIGBSvxPv^{gFg6!Kp2EVID|x4 zghqITNSK65xP(mDgiiQ`P#A?$IE7SLg;sclSeS)cxP@H!f(P)02VjB&FotAUhGuw% zXqbj-xQ1-lhHm(Va2SVjIEQpthjw^}c$kNJxQBe$hkp2nfEb8^IEaK;h=zEGh?t0q zxQL9{h>rM(kQj-QIEj>4iI#YYYKQ;`fPx1A0G{}XpcsmxIEtiLil%t~il~^1s<?`* z*ov<Bim(`qvN(&hSc|rJi@2DJy10wH*o(gSi@+F+!Z?h?Sd7MajL4Xb%D9Zo*o@Bj zjL;a3(zuEZ-~iTmjo6rt+PIC}*p1%!jo=uL;y8}vSdQj+j_8<<>bQ>V*pBY_j_??d z@;Hz5SdaF2kNB96`nZq$*pL4Bj{q5v0y&TbS&#;KkO-NO3b~LB*^mzTkPsP>5;>6+ zS&<fbkr<hg8o7}i*^wUkksuk8A~}*IS&}Ask|>#yD!Gy@*^(~#k}w&QGC7kpS(7$- zlQ@}^I=PcP*^@r`lRz1iLOGN~S(HY3lt`JBO1YFw*_2NClu#L1l~OsCR9Tf)d6ih1 zm0G!#T-lXg`ITT9mSQ=UWLcJGd6sCImTI|{Y}uA>`Ic}QmvT9mbXk{nd6#&ZmwLIE deA$<N`Imqhn1VT&gjtw|d6<ZqnDH0^06Vlp-r4{F diff --git a/templates/ja_purity/images/bub2-tl.gif b/templates/ja_purity/images/bub2-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..6b23fb27febaaca2b397ff192c80c0f0baa13412 GIT binary patch literal 271 zc$@(b0r37uNk%w1VNn1X0J8u9_V)Jl^z`@l_x$|)`T6<h=ji+U`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui08s!L000EMu(V05y*TU5I|U3A1W9S0 zXsWJk>#_|4%wTBWc&_h!@AEN$K(HtpkI1BQ$!t2Cjeu}LP*|_ntai)odcWN$fNB^Z z&gisy&2GEj@OC4?SSZYgynfH``~QG}f`4;$3J3=dii?bmj*pO$l9P~yc8HXjnwy-A zmWPR*qNAgqn53wwlBS`muCJ`GvZ}GOwxYGSx|zAVzLj*Bt-r*c!Jx&-i@nOf%+0&c V(6`dlv(?tH$EVr4*xjiS06Xv;o<;xw diff --git a/templates/ja_purity/images/bub2-tr.gif b/templates/ja_purity/images/bub2-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bc266a47e1c07ed054691b722da44a5b8ea429a GIT binary patch literal 835 zc$@)41HAl4Nk%w1VcZ270J8u9_V)Jl^z`@l_x$|)`T6<h=ji+U`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui0Ne!`000F4u*pfQy*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~J%xmF$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``=bE?3=9AbgNKNTii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sx{d(701OQa!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_R0bRzYPlg{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ@z zB(OkVfCdP1>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eL*$0S0ISxOt$i-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8jDnFhIcq1_>HCm`%I3?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PKxep+4 z4O=$)_weJ(pHIKO{rmXy>)+46zyJRL1}Nb0faIyiUTg#=sNjMOHt67k5Jo8BgcMe2 z;e{B6XW(lHX6WIEAciR7h$NP1;)y7xs3L?LwzuMoFvck3j5OA0<Bd4xs3UJJcDUn@ zKn5w~kVF<~<dI0C*rR(%HtFP(P(~@`lvGwZ<dRlqspXbjcIoApV20TomSUD^=9y@w zspgt&PDo~(aK<U;oOIS{=bg8`iRYet_UY%JfCgHko`M!?=%I)vs_3HD5z6SJkVY!$ zq?FF-Xr-8Ds_CYjc3R`5o`x#wsHB!^Dt@4zs_Lq&w(9Duz@-Z7thCl@>#d8*itDbt N_Uh}eUM?8{06Vy?>R$i= diff --git a/templates/ja_purity/images/bub3-bl.gif b/templates/ja_purity/images/bub3-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed29b2374c0bcb71dccdc21ff2a2d814933a9e0d GIT binary patch literal 2196 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 W7(l!b7=Zy$aNaGO`OKaT0suR>BtirL diff --git a/templates/ja_purity/images/bub3-br.gif b/templates/ja_purity/images/bub3-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6ef44713d465fb3b7407ceafd453f39260fba94 GIT binary patch literal 3725 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 diff --git a/templates/ja_purity/images/bub3-tl.gif b/templates/ja_purity/images/bub3-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..e2f89efbd9cc52ba6c35bfed3931a3b09961e5c9 GIT binary patch literal 474 zc${<hbhEHb3}ldGxXQrr<;$0^Uw{1k`Sbbn7q4Eu`uq3qw{PEm{P^+v_wSc4Up{&A z<kP3Gj~_qz^5y%hS8v|FefQwOgM0Vxy?F8R-MbH;KY#uF`SZt*AD=yY_W1GR=g(ih zef#$H>$i^{J$nEC{jXoYzJC4s@87>afBt;`{{8>|{|qz$ia%Mvv<`>>`H6w;`+<gn z8#7WQ<}4{XnPWBo!ip)DB34RWEz1tSt=j)!LxqoCeS3G~A*KvwyAL~R{MO%o|6@;# zhos7_0yd@Qme#iRj?S*`o;Iht1~zu4DRR@M&zL!D_MEx%=1*tjmuXO9m*e12T)k%P zy7e12ZrZ$MEu(~Nz7mt1A}g!H!9$0S96fgY#K}{KxdlWSCdnO8zH;^2^&2;D-M(}8 zhP3#uy$bi9K70P+s!;vK%P-%5c+bpofr*3l<Ii7rKQrw9{+o$w$+i6H>l-;fi;4&| z#T;sXA!gR%v2l(|yQp#6?iCv!oA${$H}TvoR5{tB<{#v<@{{7}X&mu~L^O(@?NeZ| F1^~~7<i7v_ diff --git a/templates/ja_purity/images/bub3-tr.gif b/templates/ja_purity/images/bub3-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c66806fb075e01ff710d9ed312f45ef7fd7488a GIT binary patch literal 1066 zc$}@0=}(gf0Eb^f>B^C;8?JMLzy@JJiD7YJ%J@Ly0<|DBF;TN{ZCMBuV#s1T=8OWZ zfRxFl1?6rz-nJZt7AR*6<tS%y$l-uq^mxnL`$CSk)BO#5KK!1~zvM}}o_OWz&wE~9 z0Gj|{x4(Oj!{M-6txl&?E|;6l*3;8do6UB7d@Pg6R4TPr3+r?Si^a0PzpvBjBoc|u zcBE3NluDIeuZLmSVzHY{CbQWFL6FgChM+?j)*FpRg+g(3baZxhc5-rJx7%GVm)q?I z{#U*{M*QdK5A)#@fOHG03UJXEsze>XE#}9yu7mgSy+8Hu^bnWz5BM^6ValaOF~oha zdT(56;yq05-=+8_A_Ydz_@d$x68TAKS^3inO66bAs;X;h>z==$);GL-)!5YB(%RNe zqjz+6b%P8htEacGpFJ?h;gT>HynF*50ijcT!Ssx9c5Z$_w79gqvbrW-fBpByo6W85 zowxt&?(IvYGP&YFsZwho?IEnw8;mBig^#k^(LR2ULe88nH{j_Lh-0@+lTiLqX(D#J zunZlFZ^8}G<|yYc6ZS*{^o6RBYZZal2Rjz)B5pC$76&_*>tmeW=onfH>EpnY@|{Ia zx7gj9K=QeW=Yp^4xVotHB`#y5`z9UVj2~idvhH#S`%6Qt?fxub#l_^|p0}Kw4QBfC zaPRI&ynh%9C<!m|@QO2ePmlCV`9+?-K`A`8Tv+ap%~;_L94u6aCby)F4yu+LF6T*B zMmZXB+ciqijWMov1H8q`SREUJx7p4h^f%j=N<VstgCwitBSxu!<Qtqi!80F->adw> z6QfqmIz72Hb#lxO?{M;@Ym?(gMwyTj{NvQbu@%~2Ws0XJ|CAt5Wb`Kj0~rb6A*q<p zf1eIALRN&p<j9Iq;h?O<FBX!K(1{Up^10hN@+arBL3wE)5pv7RLP{eP<zdtu#nXr` zP*D**4E^#rOq7&)<FlL9Qpy!Ic<?OV0UcB&AS0F4KVWi|HMnqwvNnZ@6L@%|3hp32 z{We$i;%+uWMNK1WRrOh=k?MwDsegRsZ7q(O0esT3)Qtu6k(#FaTe+I%LN!Cvl1{rC znt?P$LTzLW0ctM~XF{~f*r=?^#~3t7e}0>w?QF<qYP*_<ufFcEdmL)P4l3c00d_GD znJ?!H6TsTRD7c5aMSy#GY9>tXn~Br*36NMFdlr+Y8^~}(6@j8ySjSmU#Ok?kPP(Hx zo7pV=@E#G?j}S8guskI-&oBygv62jB3fGun+%%6hPS_H6?@hi_vy4+`j$LTdg^V@{ t5TEC>Yk=S$(~RGDI+M^Z+|N9F?oPgW&VsKr&j<dlGcO2+0}#OX{{mx1P^JI? diff --git a/templates/ja_purity/images/bub4-bl.gif b/templates/ja_purity/images/bub4-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..0465cb1702c57e8e9ba68d45de498ac473f9717f GIT binary patch literal 2136 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 OzJ0NdcU;#X0028zcp=>Y diff --git a/templates/ja_purity/images/bub4-br.gif b/templates/ja_purity/images/bub4-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..34b858cd5f21ca8c02cceb24bc18d16c3ff4596b GIT binary patch literal 3457 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 diff --git a/templates/ja_purity/images/bub4-tl.gif b/templates/ja_purity/images/bub4-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..6b23fb27febaaca2b397ff192c80c0f0baa13412 GIT binary patch literal 271 zc$@(b0r37uNk%w1VNn1X0J8u9_V)Jl^z`@l_x$|)`T6<h=ji+U`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui08s!L000EMu(V05y*TU5I|U3A1W9S0 zXsWJk>#_|4%wTBWc&_h!@AEN$K(HtpkI1BQ$!t2Cjeu}LP*|_ntai)odcWN$fNB^Z z&gisy&2GEj@OC4?SSZYgynfH``~QG}f`4;$3J3=dii?bmj*pO$l9P~yc8HXjnwy-A zmWPR*qNAgqn53wwlBS`muCJ`GvZ}GOwxYGSx|zAVzLj*Bt-r*c!Jx&-i@nOf%+0&c V(6`dlv(?tH$EVr4*xjiS06Xv;o<;xw diff --git a/templates/ja_purity/images/bub4-tr.gif b/templates/ja_purity/images/bub4-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bc266a47e1c07ed054691b722da44a5b8ea429a GIT binary patch literal 835 zc$@)41HAl4Nk%w1VcZ270J8u9_V)Jl^z`@l_x$|)`T6<h=ji+U`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui0Ne!`000F4u*pfQy*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~J%xmF$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``=bE?3=9AbgNKNTii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sx{d(701OQa!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_R0bRzYPlg{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ@z zB(OkVfCdP1>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eL*$0S0ISxOt$i-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8jDnFhIcq1_>HCm`%I3?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PKxep+4 z4O=$)_weJ(pHIKO{rmXy>)+46zyJRL1}Nb0faIyiUTg#=sNjMOHt67k5Jo8BgcMe2 z;e{B6XW(lHX6WIEAciR7h$NP1;)y7xs3L?LwzuMoFvck3j5OA0<Bd4xs3UJJcDUn@ zKn5w~kVF<~<dI0C*rR(%HtFP(P(~@`lvGwZ<dRlqspXbjcIoApV20TomSUD^=9y@w zspgt&PDo~(aK<U;oOIS{=bg8`iRYet_UY%JfCgHko`M!?=%I)vs_3HD5z6SJkVY!$ zq?FF-Xr-8Ds_CYjc3R`5o`x#wsHB!^Dt@4zs_Lq&w(9Duz@-Z7thCl@>#d8*itDbt N_Uh}eUM?8{06Vy?>R$i= diff --git a/templates/ja_purity/images/bullet-list.gif b/templates/ja_purity/images/bullet-list.gif new file mode 100644 index 0000000000000000000000000000000000000000..359f124b1b86df9ad8837ac204061d9d8af8db82 GIT binary patch literal 98 zc${<hbhEHbWMyDw*v!Dt(b3t`(sJwez24rw>o;!a<m6;#X12Dr-Mn?DtE)RLEsX&c jDE?#t(>fpmWCjBZzW}4CN6-(EHD}HqTA<>=!e9*mhKC(Q diff --git a/templates/ja_purity/images/bullet.gif b/templates/ja_purity/images/bullet.gif new file mode 100644 index 0000000000000000000000000000000000000000..359f124b1b86df9ad8837ac204061d9d8af8db82 GIT binary patch literal 98 zc${<hbhEHbWMyDw*v!Dt(b3t`(sJwez24rw>o;!a<m6;#X12Dr-Mn?DtE)RLEsX&c jDE?#t(>fpmWCjBZzW}4CN6-(EHD}HqTA<>=!e9*mhKC(Q diff --git a/templates/ja_purity/images/bullet2.gif b/templates/ja_purity/images/bullet2.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d3d8f6f7b10fc20dfaf982004b1e085ca1666bd GIT binary patch literal 98 zc${<hbhEHbWMyDw*v!Ci=gytf)YQwDFaQ1f_rZe)*RNksPENje@7~p`SL5R1{{R2a kfC?0UvVdtF5CJlSfrZ~du~jG_BEjZ_-ob@3ZY&Je0O*1tqW}N^ diff --git a/templates/ja_purity/images/bullet3.gif b/templates/ja_purity/images/bullet3.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d6bdb2e005e4fa8460802374ebf145405099d6e GIT binary patch literal 72 zc${<hbhEHbWMyDwSj50EeMei}@~m0Ax@PX|c=PFH_0lv3Fi`x-0;Y991V}9dGp|Rm Rb5H<F1k(a1!$}Mb)&M7465s#; diff --git a/templates/ja_purity/images/but-css.gif b/templates/ja_purity/images/but-css.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f4efc6fc4abdfdbd07acc355c1d0e286c5daa3b GIT binary patch literal 770 zc${<hbhEHbG+_{6c*ejm`)J$5JvH~fUz)zBZOzGfXYL)j{r2*?`$uoRzIf^J$!pKg zUU_=Db5lvn`ux>bryaVnWB26^GxxO5Jls0(K=1O46BnNC?cG-X`TNH?$2&fJeLM9) z<HFOu^G|gxIWlF+zWQhHANB93UU;Tw@}9a$d+PRI-SXh|?Q{2!HLuC*-&ytM^UEub z&raA?-LtK{c}?!|+xu2rn!M!vgt^B%n%CyFtSi`her4PG!WoBKHk?_!;8b_-_KGFv z`==df?ATPi;_~E{b@@J(X7wwx8&+j6JT!6RojL1o&02GPdgtcS|Ns9p3=yFClLbuc zfCx~WFtGn`a90y{Yi(=q=<Mq5abwnVmsj9(o;q#%jG41$&vABD)-sWHS+aE5au+wI z6>HY66Om;Rb=|Uc+jiGgJ9h8ctIy0LV|)0>QCoNSBdd<Fop5J6eD=fz+e_z<*%};> zu)2Hi{<(Xr?sK@?KX>PN`rQ8I>lYmNtrQOkS$zNT<J`|xKcAg@`%jTu;zPWhjA272 z!vO(FXNGffMj@&n<r!Gr4aCl92+U;aWXNF<-ne+lW?6ObRUu1-Qg=_|KC>`dVDjCG zth(hD3~fpc=NZmT_$#w2>&1Qs&OQ|nu7J!7WzNiN7>+5mhps-iF6-<<uWa`w-~Dno zvlu0q<uWeId7c(qtF?_iK4qJ=z;(6Qo$h>Fo-(d!>)+qN%>8YlR{>)>>pwZSX*Z5P zQto9o?{G+Rn{axDaW>zgtj*8QFYv!};(!C&gv%>}SBEX#we|J&710J7g-;GKEAA+M Ueedk<?eFh9DJ-!N;$W}_0Ql86#{d8T diff --git a/templates/ja_purity/images/but-rss.gif b/templates/ja_purity/images/but-rss.gif new file mode 100644 index 0000000000000000000000000000000000000000..419c6a9959821bd77830c8ff8aff40e2adca7459 GIT binary patch literal 724 zc$@*$0xSJTNk%w1VI2St0Oo%H`0eKS+R6Q+Tgz$(>eb4~R{;H*Q*I>ylznsb^783+ zIsLF^`ja;NmoBF@0RFXR{f$fKx1RsKY5lHd>y0e^_w)OfI{lMQ>54R~f^q$^X!esk z^JxI+QUlak0M~UK?VEAu<>aE3kLkUm*UicPx@hj2SLtE^mNo$ViAVWt0R5|B{<LZ7 zj3wXM*Rq?D|NsBRk9x9pS@q@G%S{0IizLfM0R5+5yL(CP(!c$lSMZ%&(Q_m7kty`L zhV7<+m_`|mJQ?EI*VN0&p>$!}wV%RH0Pd)7`{>y2XbP{Ro{&^O?xk7AgHWZ7g5qNt zrI(Q8eIVz24Eb;<@|;xki!t<(Go?NN*kUc;b~F90W28tK_+S9yVgTf61^&2a=Y=`> zphfS8FzSpr=Y16MQUHxb8Js`>%Xm-wo=v!jaf~(q{EHU!<ky&of%at(`1A7n^zzEK zt;W5(?5vOO-q+E}$<M8y=2igSXc^^L0O(o(_t?IpesRP{0RR90A^8LW004ggEC2ui z0384h000O7fPaEA4uyt?h>3<Wf`1N75|I)mlwXz)n3xNjn-dcz4vh{HVJ)UDJq@Z2 z6c|<v78V;AV;dG}3!#Fe12De6K5S`7z7<C`Q~<?047s8by&+H{zGQqbN(e9jQ8_SB zZZI=d&b!bsBvJz|FarcII3EZvAHGdIPA_8RjuHhha00Y}A;(J*UjRmANpi>6j1dan z2+-x|!M|THBB=0?VUDjjPiXY9^RWX2iVj%(8*;`Bj5;R*L@)w`9U7T_f`ov9B?U^A z=s0u{0>eWB7(YP3NwDQ82s$tl*zhSz!#@%nIK0cF<|vF1MD%3v8e&Nqs=G9RIdDLQ ziZur@Je)wm_R1bEc<3H*&|wN%M<z5Zn4o3FiW@fsDAu9Ffa41nAV`LwfMN_qm@~%+ G1OPh=AX&`- diff --git a/templates/ja_purity/images/but-xhtml10.gif b/templates/ja_purity/images/but-xhtml10.gif new file mode 100644 index 0000000000000000000000000000000000000000..7ea1bb7c0204c0d3a17fa5eb80659a4f95ecb0cf GIT binary patch literal 812 zc${<hbhEHbv||upc*ejm?LcGi_KGw2j@*8G`QG<SYfjFazNhuV!{fJJU%c}4bjPNW z=Cye@UY>7VUoh`L@1irk{X46!JU%<~aO=4T$7UXGnX$Kh`Nc_dj<=t?f3$Ud;hRq{ zChe(v_Wn`dj;aq|-}Y=PUwEcx>xGr8u1-CEd*8L^XZK&*vf<34NqcG^yuQ8gbkCt1 zJLVqmXj+rE_{fyc-#@ghE10mmdiUk^^G|h6+1Ie(RQK$oZ4>v@EIHrbv8lLaUH*#8 zlj~PzH>}EDcxd9rJ9F0GnziQo^v=ztK9y$w|Nmzgf<W;n3z*gc5ui9>VE^CXEX?QF z+ScCD+11_C>&T|;EF-IAH*NZinX_iknLE$UL0V8z(|+0V6)Wu>SyruEzhR@8E-Syo z_8mKSIjq^eZ~uXVR&1<BR>x1Av~qSnvF0SRGqcr2=BrmOow;@W_|-cn%#VnhKY9A> z*3&i5ot!zG-@JD=|LFAf>qidrcOTw7GgmmGazVml!h&s0Yq*RSn5QUOOMRSiu=@Li zMMo4_GuJ4vEogI3lgrNFemPOpbK;vD3$H9QlJhE4(b=Wq*?5DK!D1`ph0e|DtLIq= zAMxIB`QF||&J&jPoZ!=FkUXMrV@8&<wDGEl$i%g~rf8p5jN7aClwC}lCrO@ZMd<3> zwYM48bl#Cmu$Ug(P*MKYXs<-!iN>u*L>@@^RB${z+#D&}*Pf`~SJ8jd_1Wq3^Bx{N zV)W$3nVp-T%dD~DmQYeSp24`>cXC+luPxb^7H^$;?&1QcPH~%}*Z0oOW?y~pKr^@e zz5^}o3fyHH@#pqfu6}l5vG@FQb6S~1oMTqJIJkHB_xBGDcgy?lbLZi8W@2Qp1^_1- BPYM74 diff --git a/templates/ja_purity/images/but-xhtml101.gif b/templates/ja_purity/images/but-xhtml101.gif new file mode 100644 index 0000000000000000000000000000000000000000..99ce4d0c3afd9774f3e02e40dc9af9327c73ab05 GIT binary patch literal 639 zc${<hbhEHbG-QxtxXQp#y)^CHw{I(s%=-WT|EZgYZ#=qm@A<9!&u@SG`SsK1k8eM` ze){&o&hu-(fB$~)>W-<~TQ5I6^Zd<|XKx-aKRmN#b-~wfU*CRy{pIVI-i=i+-ah^O z<<q;5Z%^Gm^zrk@_n+Q<`SSV0r}uZBUz@kL|M9E)8%{2M^WoLkuU|fW`S|kP^ADfj zfBpLP{l|CjKD_z#<<o_`r!L+*{pIWD*Y96`{_>fDIH35G1x)LJ2#}u`*#0{-6nN-J z^`A%yJdk5G|H6urQzBebZsdI9dXTmM!Mdp@BrF&f9ZWJx;E-)Tp5T|hy>%KROGAXh z&NwITLT(O;oIHjC{w5A5k>Wau;_BM^WS64iypH_B-hSpv2^9{GsderRZmBEFO6D`P zE)-x^5l~!Sv(jy~YjYdJ+^&tA87A<F$#C%Onzm|&bE;z2q4Fa=oBEEYoh>}K$NM6K z1cw-dOzz?C1$X!|pFfzM<a|ZxxY(KNZ*DD2=aBgk(zG?bW4!^#R2iQW0WsoQ0?J-F z9)_L`-4e!GcTQ|ve7uLnsY}Ll(~^^uHQe_Z9N4t<^mK#dQ*%yUa%~i3EqZn5<mTn) z=gfB~lsi$dV8zA79+S0VPff{a5fW1Jn6O}>V-JU<7R!wb3C=AXa#9OAxReiE=i#++ z;h2z=%f!hjbt3md;;N7pTn-vHRwp<&aB;0FV{j~g-^r%^Z5GFd>8{PfiHz(M7AiDw z?wj#h%j1J$WBPgVfB&A!JYagkAZ3&N_0FP_j4O;GDiVKpmOby^QT+Pe+1=aU-#^gI PE$_Ey$H%*l3=Gx){3Jag diff --git a/templates/ja_purity/images/c-bg1.gif b/templates/ja_purity/images/c-bg1.gif new file mode 100644 index 0000000000000000000000000000000000000000..e40407c9179a84f2d8f23609fb4fcf1662ebc716 GIT binary patch literal 901 zc${<hbhEHbyui-L@STC-&6_vhzI|gD1*2d@0>z&!U|I)6fbs+bM-l@ghm6OD1qYis zgtcN$Y*=`>T|n7uj>pDDN4q7Av+iUVHXQF)aPE@v+_dE6WR2ieF()@IJw4qZ`P3ZG w&CAZtwkUpe=j7()=jS^#bIE#bS#fc($7HS8Q(IPEULLU6Yp$1QiUWf+0JmH^-T(jq diff --git a/templates/ja_purity/images/c-bg2.gif b/templates/ja_purity/images/c-bg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..487a4f179fe0a43ee7ab5a21e3871bbde02fe196 GIT binary patch literal 3997 zc%1E&`B&13`p5nDZIp4;oa!iA({!s*Gb_JyJBc=@uczBlRD@=3H_@7=ncL)2<9M1* zqID<S01*K<7IDE9+}C7r$;=dy#j;UEGjah07X*Y4pz`(3AMyR^zJ7R~=ZE+E{nPV2 z;Sphw;2$TPpblmS2en!~H#eu(>kS6O;^N}u<mBd`Xf&GjKhbKnQmIs_R4Nn-nM`Ih z8uyfM-n<csL~Cnn5{YEbzNZ-(85tfP-qS2BEC_`{xm-T^C(FyrD=RBYOG_%1YA=6p zo|>B43*5_}pPv^91Y28Md-m1URg=l&@E`ue|1W>B?EkX|{JZ@7CLBO^hwnj0q3z6< zS)fDyw*>7~udwbXBg>#2)vxowe@&VbbkvNJj{gmRG@`S1tjO>0jkm@+>&B^p{}h%* zbk&O)kl!?OV_hsM^~+4>FCx3yZ)%`L{@)9`8zx!TY9h-cpEv%|gzQRcNvdj^ZoBge z|3y?!^GsL5WaIbaJuS1Gltp2A6sPrlFUp{KKhA0U@B;ncpB;m7+dsa-9XfMc#O+ud zC7+C{*#1Y(@;L3U_vb~tE|rw|x4dJ~{O*-W_TQUsi}}yB(~VyVDx!OP)@HfCY3Ieg zoQ)5IS)Y9g@8fPR3X0DBAnD^7R1-B(mGFN4mR8nv|AVBz*Sw*4m1qAFG0<l*s1xIn z(t&=PS+_V|iFh%vV*?D@57HMe>~;r7KLvXKZqUmNkPlmt>2gu6$Z`+!`<Q+BM#9G& z@ICfN%+bf{kJ#fFzXjYWO2R^}Up;#PAJC&-$O|0tTO?eVN?6Q?DA|j|Z%nk~j-igH zm&jK=5|;{~J`GESu!}28Mc2YkFBf0Gk+@ufychBFC$}E2EK~1bPAh45DTzvYLVbg> z^g+*xl94iUT2=OFDp6IAQZ}e6o|;xvm1swQH8a~INnM5WX;fDeE^5>@<S_pRYTS*a zl{(tJ#+CZA$C^ZzZ??aNT}w&QG_dO%HI2<Z8ckFCh}~b?+&z_~ZQ&{#wXJ<7jkayj z@yu%bu*dz?4uMb8YNzO;cC~9F?95vCyBqh{p4U8NuJz14)~<0Bm^16#CCdGEp1Qti zoxj?nUGLS6oZ0AGPyTtMA5b=J3~ZaU8!sH30(67>Js;>^f_$5GLoPw9x>xSu0h_~z zV;*e2M*i5eIdU|0wWISuc7R@Riuyo5=ErK*3j;W-`tiWg0E6hl^aFz!qG~oszA>*F zq@hk{jT2Wre=)v+`nDL~!h+U}lh?w}ZoRu6^UKyBC;!>JHFYa>?fJLGIcH6>yVPGy zGYPB~ll%c^%`}@bde%JmX!;lP4?asR=J}^)`<nR!+UXpi$o5PIKH_{^fdxX)I<QC% zKbN-XeLdN-Op9-|D9cjUEh;AVoK;;*O}4JES*=!0GiTkZZ67^nTkW1swykkht+w?( z^SW(g(CPfPZrJnJ?M;Di+qRyXs@OJ6grDCrzKi*FXG<2}wqu%0-PkcJu;+JyCF-xc zmW3kbu632Ov1`+fp0{rsr+>BY0ID|o?zVYjZv$PJ4o=X)ecn1W2*%v!DHwDN(Pg+3 znEQR9FP-CbnP3sqF-Y*zEnSy&{O*VMVbGz2BQ5{s2di?95e#|obvc2ADwlZZD{r|D z0})lZr3zjhv+A&+F4gXKEOhvU_a+Vst3F5-4Euy^=3XOIA7(*c`^RnKk)mo3j^OpV z^lx)cgKEH|(2=i8Hwg)_8t-Yr$VL8UehQ)Hs0un7BHtvUL^a2>AoOMHCJF6Qd)z5P zaK&3s#=&Y&c#a9eLi7b>LhUKvh_T2xeIZR$>k~9K22a-)F<t8X!Xt#=mFkPxusZ*k zG2soqzNDQ{7Z7g=SI+1uTv6S*e_=CkTlLgIm-;|#gy<)415E&{|C%}`x))-gPY~)a zup-1safVWvsQw~nOq`r<U?^NzkkJUq!%{<;8paBl9+N!g8_IPA);B84xU0-i0f<<a z&0}`y?^Z*lgDX4KDRLsy+sFh(v#)pxComz#D(9awuKGs4!N(b^!D4n;knjyL-B@$n zwE-F)`L?jsSnC(v5E&zUOW_;q0`nVS@sX3Ia$`M2+yGA%PF7frtWej+YuLzl)!tid zXk7w`DtuQTvej^?7JZ!+`A1{iRwGi}c!MMSqcwf2>5gj?ax`+PvvjLDA-XAUS~%6i z-)c$8Z@Q(5oaW27T2bPr+h*bPfOV@4?b>|DDM~ivZEDBWHG(|GWg{V`4sw3;UEin~ zVVtRxCT_kLG(ICqH+3;xTN1*f<Whe{H#@o|DP~+g#Wy`~&u@7UA2lnt%S}C8aZ7UQ z`0TvZ#2IvLO~FRZEqI%`g6P(V)bTlGh?zH$-};CZ^<EQa=F7ybk2&M-*Xup@D_q-9 zqfztvQgfd=x-ETreBQ)2_v`Z8o~oigSmovcKz#mR{o@~Yt>zaFZtZ9%m}1`%U=Rdv z&-4^294`Sc-H9m=!$Uth-voxhl6Fjx=%d>c;MH-r4qP~F;UEJT_JeoeV?+xcHGo4P zv4ao~TlAg<Mj(<7VybBIm<<>Wb?YQ!VM`~DSOidbXCYOz<a5a~c8%Cs%z`cZ-?Rvk zl1>Uow0!P~W&Dm?7i|=#{F)Iv(hch>ofauCGQP7rq!7ExR4`S@tVM#7bXAx|s>?Qu z6z$f{bc$AAIbxl_!Mm$H#p<w2);DBgcdc*qO5{!JTbiW1K1jR*e`1|vx;<xyM{B-g z#7UCj&l_XJnj4?#MeW4r&GFINxLNBISMt0yRjj>jvrZ4X^|WK7SAUA)?H9m%I;rB- zdzWl86U3fwR`goZO`BXM>FME!*OH&uW)*HhoRgvJ4;i*OHJrnr7Oy|<wY}F7Ien_= zjr3XDJRso=n8h2v+iV{k4sZvZ;JVBs+X@hZJLD<RVJ>ZdbSH6#ec_w<o7)RuDR)GC zcAfZSd-3=Io**2qFJ$yB9kC;L!WfC3(!0GJNaBg&;fB)LZ6!p?lcY)v6}CBr(S<*O zg&V6GhxS1c{I^tzvHsG|$~6-I9SgqIcymXCl=7!IlC9P!JK8%3dS#<<Qzv6*H388p zpO%<<dUw`RNWF6^xS2n@vyPJX&YLCX0o(U05w3j-Cj>CG@#qsAqHn=d3XELZ-6WIx zmV6Nw;mut=P1>gnl3FBBb`8t}{pxUp^(|x9$VT*QVx-oo-rcQsQvYf^!X}^HHF2f= z>#0)PyzTZT=D>gsi`ZWH!DtpB2J}?vw(^qQGC>+JvJg9(n|7;AI$+{Rch;K*K2aQa zVFyMLyLyIwTa9>OotEyJdhI(p(u-{s!fu_l?*h{Q-FY@--?i<1VK90h1ic@Lc0{2; zG_*4p?IJ_F0cbnx*+EFgVPu8}Dg#W*@aATCgEEc*8OOnyCm@-pkeNQHOg~ztKQ}W# zmU-%BMj$xrYe?1wWY$GgmR6M+!p-_dmUS7(3I%6hfn;ArW{2T2A++pBZZ=Go4Toff zgLA%v<XlJQ+(6|ZX*qG+oLk(_5kSrzFy<!+1|iG2hr%S#FiBj@0~sb6z$8O44<Xn` zNbF<qvlJROor`@c!~PCn(O_IA=<`%04uitskeDnkjv&Jk?EsDp&Mk!GUM#>-P`NZ( z?jdMynJl*g$Yp}@)ew9vJGUN%XVdVD;rM15z7@c?gY!Bed1tEdJ*Yfx0=Ao**C)#x z0P+UGgbZ5VFp@CB&K{x>gj|A1MvwpmcNF0*B>x>MV*-^gqvgxF`E#=T!{6pBz{Ca6 zvw0*@i6W|LL=6bPC?l=|L<NVahmed&k_kon7DTdgNpEqaU4Z1^Mcx-o{#-zEOd~fy z$<92o%M97gLOz&5J{Vj;0Tp<p6@cjl-f6_cGX=*Yut&TKPXrg9iY=@K3jFAW_=LiM znZk3H!oXaNe{j)-#H{~GD}vbRMIpQ*e`L{ROVJmCqAS70S7VFA#twzjiz6GJh0hej zEydToO1wIXug8|4{7R7Yk~m&TSYpX-ONn~4<fmZD-B^nEr<4Rb<?J2GgBeP)g`#Iu z9wwHg#8MxpQBhum-+0tWI`wx8741bU7ErTSiZat^I64hKhRK<s`SWOGFM44x{fe4K zSt%%{(@S~uvXu;~g??~`UL9Oo8(Rwfw3N*w)$>Z5XG&Xx4>ou)Hh|LZSVm78!}-Uj zd>$j{D+brX81yQu8)FQ|mYrK>4AIMkyfR#3nZ#1|RZf{Gxcpsg`MpoeW%Tl+UzJbI zl+Rnr!y3vL(t|4wy)IXzRjBC|J`okG^m1iGh0d!|&m*tJR!S@t270BHSE)&;+#O>8 zW0m_tnET}fdm8h#C-W0N(?!l~$1&Z#pE_%phvTX|ymLP<t;!0j@|0H{vsR_Ct4`pr gA9b$wNw4<9=bYqMU;Rh*X=`<$cg<z6yThgb1FTEXqW}N^ diff --git a/templates/ja_purity/images/checklist-bg.gif b/templates/ja_purity/images/checklist-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..9e1e6ecab7ee8d5cb23a5e9406f6bc914082ff81 GIT binary patch literal 66 zc${<hbhEHb<YVAwXkcWRIdkU!|Nj+#vM@3*Ff!;c00Bsbfl0EbpK<oiJ7=16nJW8_ T78HBe2D7-$UzzI5$Y2csaT^oh diff --git a/templates/ja_purity/images/cw-bg1.gif b/templates/ja_purity/images/cw-bg1.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d58c91b933153a63bc74c24ede1cd465e0ff804 GIT binary patch literal 907 zc${<hbhEHbyui-L@STC-+qZ9T-n?NL1*2d@0>z&!U|I)6fbs+bM+O5khm6OD1qYis zgtcN$Y*=`>T|n7uj>pDDN4q7Av+kVOxcGR#f^(OQ=cXkmCu;<+ia8mi*f8B7`P3ZG z&CAZtwkUpe=j7()=jS^#bIE#bS#fc($7HS8Q(IPEULLU6Yp&PURaaL>Y`(|C!C(yl DL{L86 diff --git a/templates/ja_purity/images/cw-bg12.gif b/templates/ja_purity/images/cw-bg12.gif new file mode 100644 index 0000000000000000000000000000000000000000..457d28343e90963371a985722a117177501e5081 GIT binary patch literal 109 zc${<hbhEHbyui-L(7?d(_3MvUuiq*DWMKdS9S{MMVPJCU>0f#JE&t*<TW)o4zPIN$ zf7>IEY0o;By*jn+9k=xXpX=XxpZ_}d{U1LMSNoAgA3J=srk`2%nX}hx`IS{)yUu29 Lzw>S#1A{dHC<8TZ diff --git a/templates/ja_purity/images/cw-bg2.gif b/templates/ja_purity/images/cw-bg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c64ad1be335f406891e2ada365816692ba45dbc GIT binary patch literal 4193 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 TsO#)MDD3u-1_j97;oScM^@%&n diff --git a/templates/ja_purity/images/cw-bg22.gif b/templates/ja_purity/images/cw-bg22.gif new file mode 100644 index 0000000000000000000000000000000000000000..62d8846ed83256a0a9641a8800ae55f734e6f45a GIT binary patch literal 4084 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 E0-U^DhyVZp diff --git a/templates/ja_purity/images/cwf-bg.gif b/templates/ja_purity/images/cwf-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ccc2cb6a8a944572815a174b9aa5bff4a14c2de GIT binary patch literal 161 zc${<hbhEHbWMuGQIKsei{`~p3Z{MCfckbD<XE$!#`1I-1#fujoJb3W>_3Kx!UVZuU z<?-XkmoHy_@#4kDk00N?d-wJ0*E@IaeE$6T%$YOazI|gL1QdU=fN32N0kV^URZc-v jax#N~ONoy2WQBvDEn1a5xmW^g-v2+apumHZk--`OHl{~^ diff --git a/templates/ja_purity/images/download-bg.gif b/templates/ja_purity/images/download-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..617e6635768b5587edbeef11236a4402b9c08916 GIT binary patch literal 1301 zc$@(h1?u`oNk%w1VIBY;0QUd@EQ<e$!~O|v{*S)@I+6b<hW{c@wK9$W3Q@ft9-09X zr(C4}03Ng%R<UWX|95?se~_zQss9vK$NBmBPM!bu_V$s!|9QFpm7AggIlCf*|3jDm z05H5sV!LCj|GmG#0X?!$lkE#~|4CM~Nt^#{vHv`i|GvY@8GZi<N~H;D{CctfBT=?A zQPkt}{|8(76M6sC>Hk}&|E|;j237YzgXw*{|8=_mcenp>wErD{{||TnR-^w_qW@8$ z|3#Sp2x0psh5ra+`@h=%%i#am>HjfK(&h61v(x{l%>SIl|MvL&g}DD&rT;dM|1gXH zjK%+Tw*OF{{|IFIfxiE4s_r6W(NLA{LTRORwD?Gl<OOK`Ltu-Dt^CL0{{T44Xnmwe zPq9a5y>7Grb$F9DIGhY~{{u()06Fi4!vB=A`^w78owoY~R>v1@`yqVqIeh0IOp$A; z|2=NvH-X+lY~d(I&PiOjyTHc+Q__&i|4L@PmBIf7QudtC|0#g&o5lYjan}S(^lPW= z0XXJ^zyASB^Z+Bb0&M=|<>sWz{{>R{JbCz`#{PP={|`;`f4cZwZ-{@s|2%~0U5NLH zx&H-G>bu+jgSP*_-T!QHzFedKaj^DWr26yp`bkc&i@yJ&%>U;0|M2ke)YRA4*xTIP z+yX@M08X|H6_9;{#!hXrZhewImj82qnKD<S$m0K?y8P(q>F)0DVyypmlG0?X|4W_! z9!s#a)BjqV=v<!uIbGVY(*K;HsH)EYm!h*`aEmv2=Q(Aj2|$^Ok)C&Zm1n5`7%{># zci$u>oV&cn6?^|gWROE(pK7rG9bwK2ZuLo7wgy=D@B9B2egAiWmwADfeu0^r(f^jr z{{m9H_xSq)NZ01`{{U3?D0$!j7qJy;)hbYk7kKwsrvGZ7{GZeRB6ZyYK;#2S=lA&h z_xb#l#s55j=m%f<jIH}}w*CV>qzX8y15w$X#{UCX&H+E-I&$PVcIFX4r!Il$7e%K4 zP4y;IxBvhDA^8LV00000EC2ui03HAy000R80RIUbNU)&6g9sBUT*$CtK~I{LC74LD z;>0q`8mdxYr-hM^AVao5mWmX^PrO8VJHoQ1OKNNsU}G4jj*B8VbLuSOB33vu3`fj~ zL8PeBqeNn;31=)QJ}*O}N}W0c7CZ(`7fQ=_35nOQU~^^a!r%eJJHlopS<80quU<16 zQ95LHVFx&&l<3t9sGcGV<`_Lf!=bLi4({3wSiG3efL(6B^)qyegEfYGYJg(Gxe_Kh zK@e@3@`8q-4A&B}Te40}4M!_tA0wav1q?F+guLjJ!4<b9OA6NVXTZR`N#z!7qF~~{ zlOQ@^h)@A!S_XYASQuDE5SN52S3-31icpS+lv^8`7l=Onoh5bY2z>!T@C3hPH*Sn6 z;lNe|9u)jQzyU#^u!8`kEpo;^AOurTDX&<;Ng5a6kb?srG$Dn60BFFB8Pw6xjXcFn zV2~`%Km&;$h1d{92^mtbffMT;I0Ze#V31G+U`Q}XHUUs^0gOG6V8Rm`R1-}eaeTlK z1PD}d4ir>G@r(>U%m@HE_KdTJL%<-Qiyu(fkb?(2kkHB-ZE#_VLjvK^fEL=MfrA5B z{;^FYqrf@P2@TK@fFvc*vJWb(nCRy~iC_^(7V&_Sf{u$8G|MpJpp$|xl^#?91kE_v L>8PYK6c7MAXNaCQ diff --git a/templates/ja_purity/images/emailButton.png b/templates/ja_purity/images/emailButton.png new file mode 100644 index 0000000000000000000000000000000000000000..f2a99bbbb32dde33589f06f15ce22d0e18089c65 GIT binary patch literal 1188 zc%02sYfoDR04-Zw%(D4GzbMgV(IuKV)DMawP7H$rWvsM7_K<~)xng2Mn26J5VjS`u zAWH`2{eHg-r7e#_p$}+FfkL5_wiHTBpSQrJk9%+L%la=o$vNlaIXTHGXV4QaUktxU zp-?W<65~=s{?>nd^L$7@VeeT&_Fg{qUVd6`cK&Z!c`QoI<J?EAtF)Y~A6coatjEuO zR<LeRDCa4R<a8>6kwJ_^P~4AT4+{o8UYJoScX<gYh%Fc}HqT-Q2?Qk%T!;lg%pTl& zLTuS^db!jaK$#WGCI@um7vY|Zp#CM%Iq_zZhf%4(a5D3yzzX>5_!i&{9+0_G{+9L0 z0A{gFtcN>APB@4^D4T&%JUWM`wTGg~c9BzUhF^{zf)EP$;Nro<q#~*982R?eya~XW zm2#mPKrzzb!u3vk*9tzURA{Zp>H%zU6Pp&KU0}RhzRY^1^7sg5*#ZDUf3#?xu+`J+ zfM5qpE|cmU_|iVM4-f$an^1vL18i~=M;;`jjITMuy%5T%lAD|egkaqgU~b!Y?1gt6 z_z%^pDvl+qdZl&o^nQgrwm{4%kd^iulk>**?9iPeem&oE>PL_L1n9?Zmq}eGaK*q5 zcg2-nx)cbK`)(q!P%^aSVU$ZPZg2UZG5)DI`yUk)Br~g&Mi<_~)n=3^*7WYYhK)Im zk3DJm?wKg9RD$B9(Se)=P_EK#bQ5Yb0zw2w>8=%?j<13W6Xb(Yk|b+tYHDk1*=%-Q zU0r>BeM3V-V`F1eQ&V$ub4yE0Yiny;TU&d3dq+n{XJ=<uS66p;cTZ1GZ*Om3UtfQJ z|G>b&;NalU(9rPk@W{x>=;-L!*cgYy86O{?n3&*lxs#KVJRXnF=L-aasi~>y>FJr7 znc3M{p-?zCH#a{&FA|9s78Vv47sX<+L?V$&r81dpX=!PBd08%(D-;T)Qn|9SqEe|= zS6A28*4Ee8)oS&|#>VF6rbeUL+S=OQ-qvchJ3Bi%oo;t`SFhI_3<jgoxVN`wGMV=G z_YV#Z%x3f9;i1K1v0AN1M@KfB&2G0l91f?`>2kT;ZZ`k`9*^hv`1s`H<n;6u1i`bj zGq2a{^ZERKe;^QmAP9zG1VMtqAc~?GhT%9)5JYIhx94TgLx-u!Po<}k|36TuQOvMV zzeZYIO#1KoNA;EG-c?We-?$By^Z1H2YEn-4^-EV;BBHdvW@G1!!uUwrrPkzkK79V- z{XjVWXKZB2PrYA!mifWcyREOT<=%-bxzIZ`kraI;{`Hr1`qi&%X%n}iK8;O}{(igq ztHO>X4KwAN_`4(bIiDxSG%nWcibdCS9T`UDJm+T73+k=w)Xpv4$0_~Bh}XqoqK}x< bl&}jFW_1EBf_*O`)RID@(&I*NJ}mqf5m-+| diff --git a/templates/ja_purity/images/grad1.gif b/templates/ja_purity/images/grad1.gif new file mode 100644 index 0000000000000000000000000000000000000000..d78b45d1a7cb97e99a32358c1904864f47b50c1e GIT binary patch literal 148 zc${<hbhEHbWMmLwIKsf-?d|2}=4NSWX=Y|-YiH-|>}+Li?cm^GVr=5*=xAzU>h10A z>gwv@?rvdj?&ITQV`Jm#>1k|i%s?Da{K*2QbwC8jP6k%N2b&oJg$-Pb1STk2G&gw! IaWGf|0L7^n)c^nh diff --git a/templates/ja_purity/images/grad2.gif b/templates/ja_purity/images/grad2.gif new file mode 100644 index 0000000000000000000000000000000000000000..0176c2e98f5bfbc98b86f8522e55262c2bd111ea GIT binary patch literal 601 zc%02qJx^3Y6rB~=WfgV70E)7Jf`CDZ%)I%2^X;<B?(+8S($I;8rLnX!Ca8&pMq@+l zEY#XYZN*sG*qHDK^gq}+k6+=r$=o}0?>Xltv)O7;wzmRCz#jk*LRxFVMXJ&eJmXAh z6_FG`)*A0TA=qdgLeNSF@11ohi7XR*K(T@lAxH=nQc^;b1X~+NT!IoDFA3IK9Y1(R zV=ykbOe2&JK}g}eH%4>DQDKM(jts1#x;4gFDO06Vf{Ak$K}1Q>ciu%^?}M{8E*tG- zDj|ZHU>~BIiRy$zisPJHYlRSTN5&Y&m{KaG^xi`V!GC~-zr)9QtvHH50hLdW2DS?( zsy8m)%t-TmZ)tmE>qMvH^39?0+0yAoqkXw0Pxbq^h6mG+C&B1k_OUrLv;FFICr=KB zOu2Lpo@`$lZ@qiJI_OSyCnxHo^VwLF_j;eVIv4VMrBdD~tu?-l)7F)Kt#;<e^wfH_ zJ}0v9>uB-%muva*iz8aQbNFGY&F|Bz-z!gc*qgD^OYrq+J-dw#@3x;+?;UK+KKMBg Rp6|^*T-;sw{dV5~@ehd;aL@n% diff --git a/templates/ja_purity/images/grad3.gif b/templates/ja_purity/images/grad3.gif new file mode 100644 index 0000000000000000000000000000000000000000..a90a7ec1560449facc2df59951c3d74352756084 GIT binary patch literal 148 zc${<hbhEHbWMmLwIKsg2<;$1n&!0be^5o;kkMG{Sd;R+Lix)4xe*OCC)2I9Q@4tET z=G(V#&z?Q|{Q2{T4<BB=diChhqX!QjFc1wCf3kpS9S{MslYv$6K@kJ5kwr_8joSeZ L0TEYE4hCxg=aM>q diff --git a/templates/ja_purity/images/hdot.gif b/templates/ja_purity/images/hdot.gif new file mode 100644 index 0000000000000000000000000000000000000000..20246aac092645e2b2d7a9c347b0aeb5e01554e5 GIT binary patch literal 44 tc${<hbhEHbWMW`qXkcLY|NsAi0|yj;vM_*v4u}BBFfcLuFt9RM0{{%V2}u9| diff --git a/templates/ja_purity/images/hdot2.gif b/templates/ja_purity/images/hdot2.gif new file mode 100644 index 0000000000000000000000000000000000000000..b99f4ba0f19f93f0de94b908dad1574eba49ddc8 GIT binary patch literal 43 uc${<hbhEHbWM*JwXkcWRIdkU!|Nj+#vM@3L1#}pI03^e}#N-mhU=0BEHwha6 diff --git a/templates/ja_purity/images/header-mask.png b/templates/ja_purity/images/header-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..3f557bb5fdeed23793e50bf424ef5d6b17cf095b GIT binary patch literal 12113 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ЙuLI${QNIB?(WTG=%# zj+>3TIW&6fj5#_enF(GHaG=s_Fnag_127kKo2@}{;o6zOe;xs4YkREb8|$)A71*kV zWQXOn3^(#lv=%E0FkKb)S74+X&fUokL-yI(t^?XXRIhHei=C}Q$zr<_fgo*hx8F|g ziy201G$kiz{a_T&qEfk3KB2U=-B4*JN^#MMcEAiB*!xDL@LDQy@xExLf_27~5vsBq zSv1!XPpaTDNV#HwDB2mujJok6lgHK^A;1Zlj)2sMRbYczlbbVi!wdf%07Xv7e6_y^ z%rc>Y8dCiGY&z+{OvVfKv7Ru}h-Y#@J{aQIE(ob=%)&SVV<h0N?BF5xHSAuTUvY2+ z0lW;*kFGux?IuM6$SvPi*#gF{1OWPxOxPC1$NydT-vSH(XKV4bgPvz&00000NkvXX Hu0mjfbq)VA diff --git a/templates/ja_purity/images/header/header1.jpg b/templates/ja_purity/images/header/header1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..81217a3f947466712a743986bab63f7fa4e05756 GIT binary patch literal 9417 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 JV?mG0{{`d2a$o=e diff --git a/templates/ja_purity/images/header/header2.jpg b/templates/ja_purity/images/header/header2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f9e448d6a299ebfb4c8985528de4c9ec1524cffa GIT binary patch literal 12847 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 SLW;0L49^dKWVfNcuKgciTl@zA diff --git a/templates/ja_purity/images/header/header3.jpg b/templates/ja_purity/images/header/header3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b3af049b5e696e918f1450f56b6cc8d295ee0b1a GIT binary patch literal 14155 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 diff --git a/templates/ja_purity/images/icon-date.gif b/templates/ja_purity/images/icon-date.gif new file mode 100644 index 0000000000000000000000000000000000000000..169493b1fefa28612ed40e5fda465afc5ca31647 GIT binary patch literal 623 zc${<hbhEHb6krfwc$Um?oPpu=>C@l8e?NZw__}rLe*OA&=+L2`KY#xC@ng@PJ)b{+ z{`>duvuDqyPMvz<#EEtD<~@G=_}jN{*Nz-{%fxj1_U#uhUK~4i?C#yWm)P0wh>NdS zvEmjt_iYi8#~K<Jn3>njpMQ4Sw*C9}&ybNhy>;s|M#j&=!bguDJ-1`WjT<*!^Yc&Q z;J7X%v`1e4zO?j1A)&n*8u#Vo?%%(E>eQ)+e0)!zKD{R<_FPwY*REYxj~uxxEq(s{ z`HdSl?%1*8Is?PHg$v)jdGo^9c)@}NU%!4m!^!#K!-w+>4Cfgc@5;&j`}c3(zJ2fC zzu(Hsdq+_4p|bMH&6{6ZTVFeR^wFb7M~)nM_wL<W7M3$-&b)s8dJ7xd`t|G2iHOXY zG2_952Zs+IK6&!w#EBE{Ffjc7{rk_KKmWmifd)YFCkrD3Lo$O7hy#if2KF-z$xUKX zYza*XR@P!oP4NuMJbn!E{pvglQ~D%?1T5r)h1~)Kgk0nMr0t^RBlV1(`J?%5S0u-4 z>MQBE>zZnNYlW+9i&yn`Fq8E)u#}YX3E38#c=cLh0uxhGVr<iut4@r;M$9%z9(V6w zV~j{(7j0wZ;Cr2LmE|+1i6EEP*W?wAk~7vH>eV&W3y?_Yf6%BBt=AH{LG{4)MhQWU z4Ni%UB8H(XstQHxZ#8n*2jmDUH$0rdrnuw89L?Y^PG(*f){loaFZZ7pb&Q3H!5RSh Cp9fR` diff --git a/templates/ja_purity/images/icon-error.gif b/templates/ja_purity/images/icon-error.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7c14463ca294fbca7cd7d466f1051bab94c58c5 GIT binary patch literal 989 zc${<hbhEHb6ky<E_|Cxa@AtcZzu*4*{p#u>yRWw*{{4Rc<yOqUKkxtj`SSJ4w`+^- z{{Q{??M}>>kMG`J={i}b@#Rk3ms_zvo_2q|5%l(S(cfPm?=R8*dL!`3zLpP{`~UrZ z^K`5G-=A;4zdG@JyYt5@t)E|Ad9Ymf)3wkK5BI&;ZuRr!l+SPOzB(B3bd&kNKc8;S zQ2zRO-?h2Hw`Qwe?2`F*E9rcz*vIR0f4#r@{6OuO`z!A(w)%1{;PJNTGj)Q$zdZi( z>HVkc5!WUwe0+B4?~i+bzTNoq^~$SL&BqEkzkGcC<Jpu?*FrA$NdNu${9p$2%cB*) zUeEh<E#mEo!l(N?-kwPRc0c9o&5%#m!#`aQ`*JJ##r~wvH^RT%jJY#U{nBKY5BImc zzrFI+UY8G-dcNEYe|<Xq%XPnx*BAZ$_3UIh@4sKq59hG`{&e`y=i{%>t-iZZ^T+ck z-)=`e-JS9FSj@v!hVP%;`11I`>yzc5ZcO?2`}3C%um1o0`R~`8H`mrZJG=4n%%~Up zV!z%7hVAEH@3-FF=>Fki)AOA!R~OoT{rZDp6bukh{K*2QbwC6tPcU%oVqoT!nbFWY znT1(ctK`GMez8`8_MDXphY!niaB3d8X{_cf(8J_7AtJ!ZbFP`K!@LCt9UGYx67mwx z9BScfVPsyz5|Qk_u+LuhkP8EgM%PSpQz?~}!>$a1%(V=j7au3HwKb{*oX|Xc;DE5c z(t;%?A0FyGU}M<l5n$Y!F_F`(&LmMVgGH33hC^V*rex3Q-0^W72a3`UbFr{8Fjy2Q i6gDtO1<k3Ppwhx>5+1eUK_UwqpP|zUg@eKZ4Aua@SZkO7 diff --git a/templates/ja_purity/images/icon-info.gif b/templates/ja_purity/images/icon-info.gif new file mode 100644 index 0000000000000000000000000000000000000000..02c5b2e56f1fca118546c5a5a3f56103a9374773 GIT binary patch literal 1012 zc%1E%Yfn-E06;G;P16j^R=L$GEA8>YR&6<*r8QI6YEsKgqrx;$Ytc&7bju7KXbL_6 z1(ioAh#AGL%y=l5iyAU7goY`BLSU|RI+~Ux&A#;?Iv>vY1?N;^{L#p3fj}Uz0021+ za3^ff<0F+XM!zpEEqgqCl_i7vMxh<;(mRv#L9WV{UMjUu%@Lah?=<U0&;(EGa4-DS zTISO@BO<kp*sM!q8|<zbwzxlsr4eZ+9aFQIZ0@DT_gOSmM#bBvZW~`=$!2Pv_1RnG zw!6(kmrI|^-Z}Agy%P0=bihG+Vu-rHxWiDMtuf@X`W&+hF&Akj+e{)Aib`!z^xG7} zUm9MTIAR!ct0TSH*rl7ml0nC`yH+-qh^sGd(>)n*-DE*$=tD6nRRu!B^=c)SuHwkY zNL-}lt+}Lqs6}qA?J|-$P_cNVtkXnn(vc+w#o**a@rY~gC#Z9=<>Rf;$1J)sDGzkb z{UCC5l&8aNiS8bED7UdMn~TJxP(*{%B%YomfSEEw5>2l_oP|OYp&oi~{dR@&`f<Cy zU29FFz9G~o9betZ__RW6&g7Y~WEr#DjOXZamEAXLd-I!MatDHA_W%05j3G4Qs9ge; zMFLwBuGX|dV|3YQp#Y(QMgjwhA%e--JRJ2EU;Yt8gD>3g%&b<XJb01IfOA+dfuX_I zsbR}pLY9EtX{>!c97pNH6iTj^fx;dufvzS?J`@PG?uDi3(%$HF0rrv1<M9Ch`Ij9( zR{iaP6|Fo0_!@vjKQOK}FzE26of>riZ7=VG{$8u_#&Yf2vU+Sl0$P2pK5id>SJDY; zML8;*yLl9d1^k1GUM->@x~L($_xPfv+l2vPN11tbizsI-^SBQHAQ7Lds!s0@i1ZDm zoJXD98@@K^d}y#A3Wz`5h?<53p~O!hzE0y`d8E*s01yFWTi90Vb}?GKVcjurr(0SI zCHq9KVMQ2g+Vr9g0pmqp>XP7%$+3*+RB!;^awr2G0bcW4zb7s=kPvdRoY&)XC3qlw NK5Vs5843kN{Q(Q&l!gER diff --git a/templates/ja_purity/images/icon-search.gif b/templates/ja_purity/images/icon-search.gif new file mode 100644 index 0000000000000000000000000000000000000000..276c858fda996b95511029fed5c9eac9ea853e97 GIT binary patch literal 65 zc${<hbhEHb<YwSzXkcWRIdkU!|Nj+#vM@3*Ff!;c00Bsbfl0!rA)$KB?>J+xb7@PL SuG>7hVSaN@KxPvwgEatU7Zk_< diff --git a/templates/ja_purity/images/icon-tips.gif b/templates/ja_purity/images/icon-tips.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a677d1b75d897aeed0b1d369925062232cb8212 GIT binary patch literal 998 zc%1E%+e=e%0DzCBd5h2-VquEtLxPnT#90{5%QP}FA<{5dgt5GonpTEoy7F#QaHXK+ zCC8E|!&#OR+E&h6l6Ug9Gq;u7bZ5Gq%g*`zR{jq?_Pu>C-`kgPhRcq;dH``p2q6L) zBaRl>AcZUQarE}qw})F_OLk_&(5hz4qmWv{(ZZcMu2E3~nJt4j$p$vL+;~H0lIi<v z2A|Y_%!ag{RDXzxiKc$ZX_J)H4wLIrt6m1EHApFG!^mo}C(tI)vI_)ymr#uZN=bY^ zt9_Mh?BiqO729L=0AJIVI|IwmotwO$!br<<+V2L>oQ%tWn76F*d1)!cdU0)e5veKH zHJ>2VW!uvtd`0qHaD8H8lF;Nc=9!J&8|d3yZEw-Q;Gjiyg*J`V2pc;^_jSElv`J!` zZe%byvpq#^jPA^K)s}>lx@Q2NqD}q4tTIZk0erfnOKg<27`{{jYF^WQ3tE@4i6^)^ zlivO`QyB%QSzOhZ8h6~PuWqV7nS72*YQ`aBFuvnqibsZ_5<tv}o(iB<&sY?TRiTV| zWI=EYk}7iTJ)l&$GEdveebL^Te(5|QmmplGHWZM-nwnc7ZP2%~0fFM^0MKxBIz6;% zus0bCr9lj~*wG=OjngZl)0+cX%+7+%W<&n-Pw}Jd?GQwW1ntW16Nr-x@pbl2>}eYo z*hiRos*Jj7jzd^Ff+o7P#uXmE=*1Qbj(FsV1L}J<lP)ZwH8)u5Sn6xH2TA{daH>3g zYFPIW_1~JSuOx^glOV2a7T-QE|E056V05=U1dE%f^Uh33E$Z>-HXjW32~UiT87V`; zous^>3fG2&?6v}Dma?Y7E;K!<DJ)r08f)jYzu(`_wWBN+YjNZ7<0^w49|VMWXdDhb eX7?Pm3gr7@BH~?uB5W_}ALSn066ocIocaSb&5=t0 diff --git a/templates/ja_purity/images/icon-user.gif b/templates/ja_purity/images/icon-user.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2e4e5107f3118d236d50b632ac99ed128bdf9bc GIT binary patch literal 1004 zc${<hbhEHb6krfw_}<6Ry8d#p9gkDPmhV^A|NZ^_)tS}J>n_<;tgT&n!KG=NPuD)b zuKmu9TSNK|#8)nItlu1HC>lBOP>F@$_n*Ig+IM~a_S3UvhkfnFZx@zNEDE+PUA1N7 z`ZY@z)vvyIA=)d`QYfcuMS`ugYxDNPrfJq0GcxC#_;!Bj-3^U-^G`i^`ufM2If-Wc zvnm7Mo?KiRWd3$X-LeBWeH%A-dGgy=Z`eAyBGOVOqIX}ksbFNs_H)%51@?mJvyPvt z&^}qAA8#o-KTUVh&WmdsBd6@VQMv5guit+|`wnh6_2}Q<-yNR(=bKEPZ11uyTUBPq z6Fuqhw;#V+*Ij;bev5nS&i>V>`aStOHe6oRkkqsK#EPYhSLEnc*$Xe&cXR6cQ}d@! zI=iss-Kk~o&MrS+rybgVFtlTbQ}y~2>2X`*oagPo^J;U&f_*nG)@dy%3N4ttYnh*K zZvTcCN9R{8JNIr^lXuIu_j{V>Za!V>t6^Wg{>h8CF_VwHzP!EGj<?a3Z_l<P-!7~; zJUQK_Y~|m-|2}^G>0Q3Gbn%(@*Y_6N@wwD*vaMWqDIvhIc2lU4KuuD4nGMgY%e#L4 z{PF+)e}+*&ZJ_v*g^_`wk3k2-0p$q>j*|?soH8C87C7=ne$x4M;OK(`yd^0L7ljp$ zh_?5|_#_H7Oz0C8Fz{NiaLIXIc~c?Nq94ft+~%=<4-OU`Nfgy*HTa<ULAB#BXRgr- z34;SH+yZ`FOq+@r&vKZi%47&CEIo9<-avrUU~vNfOo<SsD>t276eg&-33UiOekjn& z&Mk0bhO)q!nTl)z4-yt@oSUm;9rs0G2AiLRVm`}S&6Y(+gt?0<I8vr8W@KhyuyQeE gNNAg{62K<3K{%slAv3#)j^e~7hGW<Jn3x!>0lo`E6951J diff --git a/templates/ja_purity/images/icon_list.gif b/templates/ja_purity/images/icon_list.gif new file mode 100644 index 0000000000000000000000000000000000000000..a939505188e52533f9cc2207aaf84ba513f7f768 GIT binary patch literal 914 zc${<hbhEHb<YnMx_^!wB^y$;DU%xgrH8sLOLqh{l5J*DU5E7^WC<r7QzyQbwibIq= zd-e=S*4Nkn`t|E67yy;kgTbOji|TQJpFe*-dGh4+>C?xLA78t6?f?J(8Aib<pgU0f z$->CMpvRyC;(+o514lkX><)*CNvz%cI$=v36fd|kh{~wNSQI8Qv5PXYt(s7=DEWAo z7Dv&H7aJe9iHULfX=H9X+Q!M|S!J`c@zFtHlfqqJItm`0<gvC_i&?pOnfnY)w^=%s gjfW5Q8rl1CycAG6-X(6#rII1A(5X$2iHX4)09<v3&Hw-a diff --git a/templates/ja_purity/images/icons_license.txt b/templates/ja_purity/images/icons_license.txt new file mode 100644 --- /dev/null +++ b/templates/ja_purity/images/icons_license.txt @@ -0,0 +1,22 @@ +Silk icon set 1.3 + +_________________________________________ +Mark James +http://www.famfamfam.com/lab/icons/silk/ +_________________________________________ + +This work is licensed under a +Creative Commons Attribution 2.5 License. +[ http://creativecommons.org/licenses/by/2.5/ ] + +This means you may use it for any purpose, +and make any changes you like. +All I ask is that you include a link back +to this page in your credits. + +Are you using this icon set? Send me an email +(including a link or picture if available) to +mjames@gmail.com + +Any other questions about this icon set please +contact mjames@gmail.com \ No newline at end of file diff --git a/templates/ja_purity/images/indent1.png b/templates/ja_purity/images/indent1.png new file mode 100644 index 0000000000000000000000000000000000000000..cb9fd6b4f0371ef2b0831f4f48170f7a746b4e78 GIT binary patch literal 255 zc%17D@N?(olHy`uVBq!ia0vp^d>}RpGmy;w<m3aSn2Vh}LpV4%Za?&Y0OSe<_=LEA z|Ni~v&6_uF-0=1FwX?GW3dhSE+W;xHk|4iehW{W?Rr%l_P=vF<BeIx*f$IYZGdis? znE@13Epd$~3C>R|DNig)W$;Z*F3QhMP037DaLX)8Ezd8?E>`f3P%ttuFljGaa~`Nc z45Y!iC^fMpGe1uuBr`Xa!N6SK$V}hBq<N2^H&BJVr;B4q#hl~>1xbUMQjM9@E(jQ$ km6GZ@lx|{r<O&Nz>K>+B7o#5E1uA9mboFyt=akR{03l*gZ2$lO diff --git a/templates/ja_purity/images/indent2.png b/templates/ja_purity/images/indent2.png new file mode 100644 index 0000000000000000000000000000000000000000..00c96328e1b619b86721e564f651d9d538a417df GIT binary patch literal 256 zc%17D@N?(olHy`uVBq!ia0vp^VjwmPGmwn$ZVmua%*9TgAsieWw;%dH0CI%_d_r8m zfB$~-=FJ;7Zut88+S%EG6w4di04cVTAirRS{~%CR`QRT=gtNdSvY3H^>jMZgI;}C8 z0Tfg%ag8Vm&QB{TPb^Ah@J&oE%Fj(r$xKvm%PdMQ&o9a@R`88bFfuSOX)jxI9^@*J z2Ir#G#FEVXJcW?V+*AewbA2N-eFKx`J%Zjq6$+j%jv*Cuk`oqaB^a4DZH{zuevotR jLcp3wJ<Hm5@G>(@p1^c#_7QOnpjrk`S3j3^P6<r_i}6y7 diff --git a/templates/ja_purity/images/indent3.png b/templates/ja_purity/images/indent3.png new file mode 100644 index 0000000000000000000000000000000000000000..9332e783b7ef31f2e1f1e6b06f433688243fe46a GIT binary patch literal 256 zc%17D@N?(olHy`uVBq!ia0vp^av(MfGm!L&IlKf&F&8^|hH!9j+<xf)0LT>z@CkAK z{{8#Sn>TOVxZ&&TYiDN%6poiSwgFOXB|(0{4F5r(s`9}<pa^GyM`SSr1J?%-W^`I( zG6N{6TH+c}5}cn_Ql40p%HW%rT$G=inv$8Q;FejGTAp8&U98|6p<rZSVA5W;<~&e? z7)XP2QEFmIW`3SRNM>#-gMqoek(s`MN%I~-Z=ebVPZ!6KiaE&%3#1c_Or0KXZfRTa lA=26T<0<1=QbOBU7!IZ|-P(NZLq1R~gQu&X%Q~loCIH<jQ+)sc diff --git a/templates/ja_purity/images/indent4.png b/templates/ja_purity/images/indent4.png new file mode 100644 index 0000000000000000000000000000000000000000..97838e996d09025e176c2dd51203f4c0f3fb9a94 GIT binary patch literal 257 zc%17D@N?(olHy`uVBq!ia0vp^Y9KZXGmtc|V9Wqg%*9TgAsieWw;%dH0CI%_d_r8m zfB$~-=FJ;7Zut88+S%Cwh2!OoZGaS8NswPK!+#K{s(kPdD8gCb5n0T@!1V!y8J*Uc z%m50imbgZg1m~xflqVLYGWaGY7v<-srer26xMdclmgg5`7c2NiC>R+Sn6#IzIS<qz z2GZbMl$uzQnV+W+l9`*zU|_CqWTtOm(!58|8>m9j)5S5QVoq{`gh<25D;&-}swOPX lJ*Fm8G)jAxwH=A(V|Z`DbW7AltQV-5!PC{xWt~$(69D^XPcZ-h diff --git a/templates/ja_purity/images/index.html b/templates/ja_purity/images/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/images/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/images/login-bg.gif b/templates/ja_purity/images/login-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..cde836c893f64bcfec04b9c817e3371ff122fe19 GIT binary patch literal 237 zc$@+4022R4Nk%w1VGsZi0K@<Q?d|R1;o{25%KZHN{%H*VYY@`X(*O4G|Ml+G)z#6& zyzubw&CSjE`T5=5-Tq?(-qOnX@94+N&Bw>b{bmUKcqz}))c5uC(7v?)v4a2P)ZNa- z@$&T2)z|&~{r~^}A^8LV00000EC2ui01yBW000GQ;3tk`X`bk)Wk@<6#nZYULKH{p zEx|?+kif!I0vIL|#ZMubBmjWH2OtmxIFVa~6JQ7!1CK!f5W#StOTv&C3=E8h2vI1s n+#cd5;2fT3B_0kF0v!+!GARoV78n&7dMN`JIW(4+BOw4gP{MS* diff --git a/templates/ja_purity/images/logo.gif b/templates/ja_purity/images/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..931f3544d3545f6205fccdc563e82d54260c04e8 GIT binary patch literal 4707 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%0A2?3~+459Zq2 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 diff --git a/templates/ja_purity/images/logo.png b/templates/ja_purity/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..08c0358b874daf58fb3be36d4403c11f378063e5 GIT binary patch literal 9885 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 diff --git a/templates/ja_purity/images/ol-bg.gif b/templates/ja_purity/images/ol-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b60139052041946ada6cb5a2e19638da03a0809 GIT binary patch literal 433 zc${<hbhEHbRAx|SxXQrr;K740U%ubFcmMO}Z?9gxe)Q<k!-o$aJb3uw!{>YV?tT3D z`SIf?FJHcX_3F)|M~^>z`1I-1*Jsb3zkK=X{ritkpFVr>;?<Wg-#&l-`sB&e`}ZHb ze*O0T{rhj;ynFrn&C{pPKYsl3{{5$i4<CK~`s421y9_h{ia%Mvv<`>>`H6w;oWsNd z50NH`iA{+jS}qd(i%P6yJQx<QDYIr0&<V*}F!8~x?M;3=DhlV^zkM`8w<_V`k9A5t z8qYs7RR;-_*H^L^yD;XpwQ;*j^-hv;W|W@P%fRR)G-DF4ljOW!b|vA(lQ=|I^s-2- zX%lJPP{7KxrE>F*bf)dQ^BH#Sk78YaI89{r@feonr=vNP7M)jKsx<e?0;Or^XE{$i zJ!NXo{(je%{T;!zI~o(qHZU|L=B_9zabjetYh$|gBUFOpanb{B2Q7JtiU6ZS4Z=(U JA6OX~tO2hqyE*^> diff --git a/templates/ja_purity/images/opaque.png b/templates/ja_purity/images/opaque.png new file mode 100644 index 0000000000000000000000000000000000000000..2512ffc5b67d44b2db7995589e11cbd41863e356 GIT binary patch literal 109 zc%17D@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}bl$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G{GKk3Ar-fhICyz$*#r_8m|rkHo2B$504T-a>FVdQ&MBb@ E02~|}v;Y7A diff --git a/templates/ja_purity/images/pages.gif b/templates/ja_purity/images/pages.gif new file mode 100644 index 0000000000000000000000000000000000000000..aa6abae2d9be973573df94702e5712ddb413f2a3 GIT binary patch literal 64 zc${<hbhEHb<YM4vXkcVWOH2Fz|G(l-7DfgJMg|=QAOOiQFp2l{v!CXWo6!?8v)#D1 Q?D(FL>B@yCB}Evl0TwF}>;M1& diff --git a/templates/ja_purity/images/pdf_button.png b/templates/ja_purity/images/pdf_button.png new file mode 100644 index 0000000000000000000000000000000000000000..9be891f5e9118d84fa14f59c4d8e15fc4b5708da GIT binary patch literal 1033 zc$^i}cTD1U6aesF&%|D@^>Y8}wdwuYH0fVW6Vvp(+Gtyoi#49&L_t9m!GXw9K-_!p zg&P(3#=ZBR2r8mKRFolbGF<d~FL~eh=X?3S&r5T0{>SQ-%_|6ktepOJa0T`Cmwagf z-k*w(&q1*!J9?5og$I$TXc88($Akx9-#HP{IIJrcjiE;_VgG<23&`c8o8#l-V}F1D z#l^+L!-GsFGa8LULqmGK{{H@cX=zET)!yCR4Gs<(3<em6bvm6wp}4-j)@U@VtE+0Y z+GH|G30PPtR8R<Vx!iChnq)E--rGuC{=U7v)yzy9bXvo)Sld*sVv`N~yW7rAa9EI1 zsWi%9lS*llU&2f(97|DALau|6pF!;HNZdc3VUbsOl-T`08J%?D_eqmTGlAX{g3HTG zU3=4MU(edw+VJr3SPV^GQ=u0LjVDJ2`PEH5_mCc~tSnLTc^Y<<jKlb>(cIkJ$U;ze zo2z@cK#}b)m(j$F6pnUfNj=o(=H}+^?v6kpJUl!+Jw3g=yu7`=eSCa;eSMKgq@SOk zzrQ~Ug+imz0RaJlfq@td28+c81qI=7xZvR6kdP2O9v>PSN+1x3L}FN2Sa^7NL_|bn zWF(11ii(ONlgZK1(G&`WN~O|hG&-HmU@&50Vq#-snM@{&#bUGBadB}R4ktc7J|Q6? zF)=YIDJeNQIVB|}H8nLYEiFAgJtHF{Gcz+QD=RxYJ0~Y6H#avgFE2kozo4L?u&}VG zsHnKOxTK_{w6wIWtgO7eyrQC_va+(Os;auWn#<+Z)YR10*4EY4)z{ZIG&D3eHa0ai z@p!!E=H`}`me$r*KA+##*4EzM-qF#~+1c6E)z#hI-P6<4+uPgM*9UA23=9AOK!rdc z0DnF*GBP?kIyN>oK0ZD%F)=wgIW;vkJv}`$Gc!9oJ2y8sKR>^)u&}te2>dKBFR!eu z04iW#>+9<q8ylOOn_F93+uPeaJ3G6(yL)?k`}_L`2M0o-@bK_ZBoc|m;-jOZ<KyF# zlM{(Va(a3yl}gXf&d$%zfj~eMSOpBOuC9PLKoRU0m;|C!Dir|vMV&?i+yXB^6VMAV z1HAw?unJTI=fM2a)6?_wv)OFkvUz+14u<RGVDCl~1<>>g1>&Wx2|oNa8Mi@se73L@ zb7J37`6U9`L5|wrP7<m8W~P_t!@mBRY1YesbD2WCF%0(HseknUFwU@)K5rEmE#L|E zx6<Fstoe|M`@w$btFUxCS2m0JU@5i1+qRlkYy{@Gi1!Id*y_dH_ka4n^{~!;%SwQ9 wZ+Lj~*RSK!xx^G5O97EK2uYkDaL|kIpb_7EZ^R<g4vY#pIXXLZ{Dq4DAGuJ37XSbN diff --git a/templates/ja_purity/images/printButton.png b/templates/ja_purity/images/printButton.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b5ecead436089d1be0c3d8c266dd1e4dda393a GIT binary patch literal 1219 zc%03X`A^zs9LH(>Wiho`va9QsW*OQn#w^avU)CnJsGHW-T3R#PEz58+vl-7}I&8J2 z+B&D0dT=P-w<sQXqT&hi6~zk`MNkptP>@5eFMNSL{V(<;&-3}|$@4y5Pf=X#4}QK^ zeNiZsUvyLi7R<}<_Ip0y{E8}9g7GOKGJ)_g{ddAsToxX6J1IR8|3!2vE*X!-<C2J( z3;3HTln*NI?xV=u++4HSytuf?;c%v=riO-wxYK+Xh9wfo`1m-2AUGTjPZN?zq@0|b zw6rvx*}lKOZ?eKkv;~pUH7j%A=|cUvgGQriG@3iFc_JmUsdnqk4zUW^-rjC(Y?P=y z6bj{D5r2MuUZg?_3k$=;!-WdxlEO8<Wi2QuFj^e3#R8ih<}7QLmzU?}<~BAq3Wg7P za#*7A2o9VbOjdSw_WhFi_%dNsK5tv&IW@t0i}L{)f)1Pxm-`ROuHwY9c7)`z55;0J zxmRv;I14&9?-ubf7))Sb;F-liAP`DROB1Qkx(ZoeUtd~U3JVKU>Fs+O^S;)CqX_2Y zu)zWoiNw6TywucGqXmWzU@RHZ8XYMqDKRlI3<jgCt4nWznccl{CD4izx%UqrS1I7} zcu6#2etv#NMn)n9%FN89QmJ=d3$zBS)8%e%ZbqZg28;7KQ_|kvP9~G1Ue0l)Hk}C$ z2nYxY3i9{&7l}kJm+O8BBvF~;-!4{HSIgyc@v%E0AwjHmW3kwwjq{ZwWMX2%>-CnE zm6ey5S5#C~R#t*w!CN4FI-OosRRt~rku^0nwY9Z%b#?Xi^$iUTpn|5RCLp7wrKPpC zwXLlU$mr<k=<MudGMT_pcXv07#p>zl>Fw?9>+9?9?`N~w0|NttgM)yF;o;$tk&)5S zQ9#Jp*chM!$l!9hlarGGnCa>1nVFf{*;&vU$brv)*Rnt$fFNjLVL>Pq0<=KXz#wRL zWo2b`b#-lR4df4M0xfTDZf<RD0oVX4J3Bj4sdRUDS0<AI`+IwPfV6{y1BF6yczCE( zDvyqij*pL3DwSHT2C!+h+LM!$)6-L(PN&!F&(6*a27}RPG?`2Q>GSh*i^XEKT5UF) z-EMa{9Dr)4(+P40RJ+}7kH-VTEJD|2fe%wgz{WoG{?8UF1jaFdxQXb9+mHU1Cenj( z82tCe@eKBjx1pp9&<DnkKB1*%=lUG`Mi=vnzhmZLIGI`UFE2mgV$*NQ{`&L5zagaR zrlBp_v+KdK+U)D1`9U#1i0$axfBZ&E`z83+OfkCulJte=`Ky<|z3_Y(!b1?E_uDH$ z9=L)*GB~ZDxn`!lPV4(`5Y|sbVl&KnwgHc%v67>nOorC_UAj8F{B?2yBx(IInQ`Uh ubE=$v)9)zon`_tVe#R*-HlQzDyo73b`dIccEA$5Nfr^fdjp)Jr`szPc(?h}l diff --git a/templates/ja_purity/images/rtl/arrow.png b/templates/ja_purity/images/rtl/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..eb0a57e3063744fe007451718de6138355f64954 GIT binary patch literal 150 zc%17D@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDb50q$YKTtzQZ8Qcszea3Q$n8 z#5JNMI6tkVJh3R1!7(L2DOJHUH!(dmC^a#qvhZZ84N#G?r;B5VM0oNaeij~w3G?Qi sJHYU0$<n2bhRi*T&la3$urOd`XcAOgy{UHoRG@MOPgg&ebxsLQ0N89Rv;Y7A diff --git a/templates/ja_purity/images/rtl/bub12-bl.gif b/templates/ja_purity/images/rtl/bub12-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..ba405e6fb523a35fadff44cacf35239de4bfbaa9 GIT binary patch literal 1805 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 diff --git a/templates/ja_purity/images/rtl/bub12-br.gif b/templates/ja_purity/images/rtl/bub12-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..83ea4327cd449c2ca2b0a3161475601f827093c8 GIT binary patch literal 3515 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 diff --git a/templates/ja_purity/images/rtl/bub12-tl.gif b/templates/ja_purity/images/rtl/bub12-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe0dcfc0ceecd094f438f348b0f380890ed6090a GIT binary patch literal 482 zc${<hbhEHb3}ldGxXQrr<;$0^Uw{1k`Sbbn7q4Eu`uq3qw{PEm{P^+v_wSc4Up{&A z<kP3Gj~_qz^5y%hS8v|FefQwOgM0Vxy?F8R-MbH;KY#uF`SZt*AD=yY_W1GR=g(ih zef#$H>$i^{J$nEC{jXoYzJC4s@87>afBt;`{{8>|{|qz$ia%Mvv<`>>`H6w;ze8Vv zhmKVLi6upmDJg2b4JEf$My<cGrtI|Fs*ST+lpf9SvVXCq>TKTb`yX~lIj~2FG#?E) z^8WY#hQ_AmmezW<j1o>}ks!JL2@@wxo-%dX^cfSFX0vy6F$XCwTD)ZGvgIpQu3Ei> zgF}v8NxnpepHX4Q&Rx6r?A^Ejz`<Rttcr3>n;2vz7?sbRzi{!=<ttaOUB9Hjx`B;B zRDk=&qsLF4o>w?_Qe67k+jsA7-C^JqdjIYFbyg0hyDZE<7?`atxAQdEH*&lc)vhpD zc(~|=#J_3}!DtsjHubPO7H^Z>`V<yd=13Sl@#s~xoad8i)Z#KtA^gxCjbgQ<v&>{4 Mo$36LBEVn`0Dk@9wg3PC diff --git a/templates/ja_purity/images/rtl/bub12-tr.gif b/templates/ja_purity/images/rtl/bub12-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..021f6258cc130bd84818c4a3418d8064138a4e1d GIT binary patch literal 1064 zc$}?|`A?e#06;&M!s;YTcZ8wCZ3@G3#1L7)BT*J6at%mkrZF3!)1@3L8iKeirsJkX zVe7^*juy&FFQBERl(xXQN@=-fxh538-e3E*^lm9vb^Z;$AKv@<eV&r^!H3^$`o96J z0D#N2`!8;{+u?8=9v&){N}J8GzrXKvI=x;m2!dLz&R~E|rX9Q8u23jUCezl|mec9c zYPA}T)@(MzFl@KGtX8Yd=7b=~VzEJx5r)kci$$eUc|4wjgM+=jJ(tUMbadqN`GEhG zx4nq}8vRPIo`3*f0=5V#i3uWh|1w+n5pjuHoZ9<!|2nfoX1+HDvP#q6Yh8r6_vU{T zZd>{HGx|3yyQ1G0EwQ!0`Pcp547yNVQ;Wmb{qbjg!^1~}$4?rYnp>W>wzYQ<Nu6Ef z?q`%9Dvi!y_V)F&*aIByAa962ED++Z1)e}5CniFt#WRvwscde3VR7ljU-IRZ)wT7P ze{XCmwzff~O0CiA^pL>_o6I{FtIh6ky4;>!uQ)N};>oFF2yAdNi!@%2JQI0K!s?u? zMun!fC9}Jx@xihAn-Vs8rv6eQE+l23dzOH{LBBOS@J!Yeb4S{i!lBH!`d1dCV}Nm_ z?}6XxFw|8p^#wVZ5P4h5rOA7;$f@nAgY*@~SDbu>bda&upF4?rD~-o|$-&6!w`IKE zjiDm7v^{O8Pa!PDpZE<s-h(B*bFv~hozGHE)|`pTp5wFCGYz3>9qGdZT3K^!!PeX` zN54o)#9z2B;2PxA8;tCE!63ZGx+CkjF65avD*diBgYnoJ6av{0oFU@d)Dl8e&Vp#z zp<g1W5i>>vE_j_&u)Q!M^jN@2{Kd>sk=Fsq899riBl{k!T1Lzq8$H~g_RFGz^7x|D zml0?XiwMGi50K$huq-eR0?ScJXl2FOn;2zf@Lj61Dx?JRDXTA4p;a|ujTluennG3K zqIr-CA0tMq>#nROlMttzVF|~MqjJ^t2>}tBhHF82nup2ZG|i**ID>|el@y_U{C+m+ zIS`7qp2vPsV$e3_Rz>KVziZ6XwO}YT-P1xI2FMKEo%z1Ccr{PoUaF(%JMOy;dLkC* z4R0KM?Htru6HbS^>f($LxgjYsudMv&a#<(gF5N(BD=`{+NL7(^;*)?SbsL#NH`19r zqmjW93-V|^(tNm=ucO0#BDaxI#r<{<W=#bZnAnnVMq$f%m%zkXN{TXbmv0vIV&}6N zX5MBAY#svLEkE!zjRiZy5QXtsU#+?i-Vs{GQ5MlMFU>Ntt7BM34?fBNX$&|XZGDb7 q$JC4kyvwvs1jd_UDv+N>+osNbS;!Wi%3<2XA-|e_?!O8EAO8cUx>tn& diff --git a/templates/ja_purity/images/rtl/bub22-bl.gif b/templates/ja_purity/images/rtl/bub22-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..9792d234eaf9c4c8a68b2740762742c6cf20f971 GIT binary patch literal 1747 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 P0D?iPE$x)W0h50KAE|L` diff --git a/templates/ja_purity/images/rtl/bub22-br.gif b/templates/ja_purity/images/rtl/bub22-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..475f647a70e30da3366aca8ce14c1b8916d85029 GIT binary patch literal 3249 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 diff --git a/templates/ja_purity/images/rtl/bub22-tl.gif b/templates/ja_purity/images/rtl/bub22-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f46db5a898b1a53014bf02219ba559bd1da0b11 GIT binary patch literal 273 zc$@(d0q*`sNk%w1VNn1X0J8u9_V)Jl^z`@l_x$|)`T6<h=ji+U`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui08s!L000EOu*pfQy*TU5Wl3Ntj$~<` zXnF<#!vKvd&vb3yc&_I_4={~|a7Zi~kI1BQsT2r)4TW?{ty-_xtah6vES`Y|VoWZZ z&*-#z%}x&tUO@OjuiNkVynfH`>k$JA3k(Sj4u^<|ii?bmj*pOy2MB_MhLM<=nwyA| zm4%$4qNARJprfd%kENEXuCIrzr?9l5vX`~Fnzy>Wn7qEhl9Z;n!pE`1t;o#4%*W2p X!O_ya)YZAy*tFW)uif6Nw-Eq4gejPe diff --git a/templates/ja_purity/images/rtl/bub22-tr.gif b/templates/ja_purity/images/rtl/bub22-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..55257ae9291a1d1ab22f1cb013aac43205485e31 GIT binary patch literal 831 zc$@)01Hk-8Nk%w1VcZ270J8u9_V)Jl^z`@l_x$|)`T6<h=ji+U`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui0Ne!`000F4u(V05y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~k01bp5eOun(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`e8K3;>8qON)$+j*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zLACi0s;%g#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt%?$y<3j_)R3LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq4LLVf`L85n?|r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YVQZIFP$0tGw|=-tb=uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APQ~z;x{@Kybi;?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+mp` z9s4fr_3-1%pHIKO{rmXy>)+46zyJRL1}Na{fCQq~-fXoMsNjMOHt67k5Jo8BgcMe2 z;e{AxINpKpY3SjHAciR7h$NP1;)y7xsA7a1Cb;5@Fvck3j5OA0<Bd4xsAF#}?&#x> zKn5w~kVF<~<dG`&h~$z?HtFP(P(~@`ltU^><&{`wspXbjcIoAp&RGfOm}Hh|=9y@w zsiuTtuIc8RaK<U;oOITSTbp*~spp=2_UY%JBjO3@poA7`=%I)vdYzz(HtOi3kVY!$ zn~Y9s>7|%vs_CXPR?6w8poS{ysHEQKX{o5Ds_Lq&wi?{2uEr|sthCm8D6F>Ts_U-2 J_NrwB06R?9?cV?Z diff --git a/templates/ja_purity/images/rtl/bub32-bl.gif b/templates/ja_purity/images/rtl/bub32-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..610b2fb3d6e784f7551c62b0add88dd656d1b4af GIT binary patch literal 2204 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 diff --git a/templates/ja_purity/images/rtl/bub32-br.gif b/templates/ja_purity/images/rtl/bub32-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2fef1980fb17a4c9ccab4d4003061381596ecae GIT binary patch literal 3729 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 diff --git a/templates/ja_purity/images/rtl/bub32-tl.gif b/templates/ja_purity/images/rtl/bub32-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe0dcfc0ceecd094f438f348b0f380890ed6090a GIT binary patch literal 482 zc${<hbhEHb3}ldGxXQrr<;$0^Uw{1k`Sbbn7q4Eu`uq3qw{PEm{P^+v_wSc4Up{&A z<kP3Gj~_qz^5y%hS8v|FefQwOgM0Vxy?F8R-MbH;KY#uF`SZt*AD=yY_W1GR=g(ih zef#$H>$i^{J$nEC{jXoYzJC4s@87>afBt;`{{8>|{|qz$ia%Mvv<`>>`H6w;ze8Vv zhmKVLi6upmDJg2b4JEf$My<cGrtI|Fs*ST+lpf9SvVXCq>TKTb`yX~lIj~2FG#?E) z^8WY#hQ_AmmezW<j1o>}ks!JL2@@wxo-%dX^cfSFX0vy6F$XCwTD)ZGvgIpQu3Ei> zgF}v8NxnpepHX4Q&Rx6r?A^Ejz`<Rttcr3>n;2vz7?sbRzi{!=<ttaOUB9Hjx`B;B zRDk=&qsLF4o>w?_Qe67k+jsA7-C^JqdjIYFbyg0hyDZE<7?`atxAQdEH*&lc)vhpD zc(~|=#J_3}!DtsjHubPO7H^Z>`V<yd=13Sl@#s~xoad8i)Z#KtA^gxCjbgQ<v&>{4 Mo$36LBEVn`0Dk@9wg3PC diff --git a/templates/ja_purity/images/rtl/bub32-tr.gif b/templates/ja_purity/images/rtl/bub32-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..021f6258cc130bd84818c4a3418d8064138a4e1d GIT binary patch literal 1064 zc$}?|`A?e#06;&M!s;YTcZ8wCZ3@G3#1L7)BT*J6at%mkrZF3!)1@3L8iKeirsJkX zVe7^*juy&FFQBERl(xXQN@=-fxh538-e3E*^lm9vb^Z;$AKv@<eV&r^!H3^$`o96J z0D#N2`!8;{+u?8=9v&){N}J8GzrXKvI=x;m2!dLz&R~E|rX9Q8u23jUCezl|mec9c zYPA}T)@(MzFl@KGtX8Yd=7b=~VzEJx5r)kci$$eUc|4wjgM+=jJ(tUMbadqN`GEhG zx4nq}8vRPIo`3*f0=5V#i3uWh|1w+n5pjuHoZ9<!|2nfoX1+HDvP#q6Yh8r6_vU{T zZd>{HGx|3yyQ1G0EwQ!0`Pcp547yNVQ;Wmb{qbjg!^1~}$4?rYnp>W>wzYQ<Nu6Ef z?q`%9Dvi!y_V)F&*aIByAa962ED++Z1)e}5CniFt#WRvwscde3VR7ljU-IRZ)wT7P ze{XCmwzff~O0CiA^pL>_o6I{FtIh6ky4;>!uQ)N};>oFF2yAdNi!@%2JQI0K!s?u? zMun!fC9}Jx@xihAn-Vs8rv6eQE+l23dzOH{LBBOS@J!Yeb4S{i!lBH!`d1dCV}Nm_ z?}6XxFw|8p^#wVZ5P4h5rOA7;$f@nAgY*@~SDbu>bda&upF4?rD~-o|$-&6!w`IKE zjiDm7v^{O8Pa!PDpZE<s-h(B*bFv~hozGHE)|`pTp5wFCGYz3>9qGdZT3K^!!PeX` zN54o)#9z2B;2PxA8;tCE!63ZGx+CkjF65avD*diBgYnoJ6av{0oFU@d)Dl8e&Vp#z zp<g1W5i>>vE_j_&u)Q!M^jN@2{Kd>sk=Fsq899riBl{k!T1Lzq8$H~g_RFGz^7x|D zml0?XiwMGi50K$huq-eR0?ScJXl2FOn;2zf@Lj61Dx?JRDXTA4p;a|ujTluennG3K zqIr-CA0tMq>#nROlMttzVF|~MqjJ^t2>}tBhHF82nup2ZG|i**ID>|el@y_U{C+m+ zIS`7qp2vPsV$e3_Rz>KVziZ6XwO}YT-P1xI2FMKEo%z1Ccr{PoUaF(%JMOy;dLkC* z4R0KM?Htru6HbS^>f($LxgjYsudMv&a#<(gF5N(BD=`{+NL7(^;*)?SbsL#NH`19r zqmjW93-V|^(tNm=ucO0#BDaxI#r<{<W=#bZnAnnVMq$f%m%zkXN{TXbmv0vIV&}6N zX5MBAY#svLEkE!zjRiZy5QXtsU#+?i-Vs{GQ5MlMFU>Ntt7BM34?fBNX$&|XZGDb7 q$JC4kyvwvs1jd_UDv+N>+osNbS;!Wi%3<2XA-|e_?!O8EAO8cUx>tn& diff --git a/templates/ja_purity/images/rtl/bub42-bl.gif b/templates/ja_purity/images/rtl/bub42-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..acda25ceed78335a6b66edeeaf34f3e9a3319a50 GIT binary patch literal 2138 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 Q5HP`VWz6Fq3o-}*I|GF}^8f$< diff --git a/templates/ja_purity/images/rtl/bub42-br.gif b/templates/ja_purity/images/rtl/bub42-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..e85b3d8bf7b4637bf2677bf6e1a99cead9ee5edc GIT binary patch literal 3463 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 diff --git a/templates/ja_purity/images/rtl/bub42-tl.gif b/templates/ja_purity/images/rtl/bub42-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f46db5a898b1a53014bf02219ba559bd1da0b11 GIT binary patch literal 273 zc$@(d0q*`sNk%w1VNn1X0J8u9_V)Jl^z`@l_x$|)`T6<h=ji+U`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui08s!L000EOu*pfQy*TU5Wl3Ntj$~<` zXnF<#!vKvd&vb3yc&_I_4={~|a7Zi~kI1BQsT2r)4TW?{ty-_xtah6vES`Y|VoWZZ z&*-#z%}x&tUO@OjuiNkVynfH`>k$JA3k(Sj4u^<|ii?bmj*pOy2MB_MhLM<=nwyA| zm4%$4qNARJprfd%kENEXuCIrzr?9l5vX`~Fnzy>Wn7qEhl9Z;n!pE`1t;o#4%*W2p X!O_ya)YZAy*tFW)uif6Nw-Eq4gejPe diff --git a/templates/ja_purity/images/rtl/bub42-tr.gif b/templates/ja_purity/images/rtl/bub42-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..55257ae9291a1d1ab22f1cb013aac43205485e31 GIT binary patch literal 831 zc$@)01Hk-8Nk%w1VcZ270J8u9_V)Jl^z`@l_x$|)`T6<h=ji+U`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui0Ne!`000F4u(V05y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~k01bp5eOun(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`e8K3;>8qON)$+j*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zLACi0s;%g#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt%?$y<3j_)R3LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq4LLVf`L85n?|r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YVQZIFP$0tGw|=-tb=uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APQ~z;x{@Kybi;?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+mp` z9s4fr_3-1%pHIKO{rmXy>)+46zyJRL1}Na{fCQq~-fXoMsNjMOHt67k5Jo8BgcMe2 z;e{AxINpKpY3SjHAciR7h$NP1;)y7xsA7a1Cb;5@Fvck3j5OA0<Bd4xsAF#}?&#x> zKn5w~kVF<~<dG`&h~$z?HtFP(P(~@`ltU^><&{`wspXbjcIoAp&RGfOm}Hh|=9y@w zsiuTtuIc8RaK<U;oOITSTbp*~spp=2_UY%JBjO3@poA7`=%I)vdYzz(HtOi3kVY!$ zn~Y9s>7|%vs_CXPR?6w8poS{ysHEQKX{o5Ds_Lq&wi?{2uEr|sthCm8D6F>Ts_U-2 J_NrwB06R?9?cV?Z diff --git a/templates/ja_purity/images/rtl/c-bg1.gif b/templates/ja_purity/images/rtl/c-bg1.gif new file mode 100644 index 0000000000000000000000000000000000000000..8400fb1c0c2cb075c9aab412309f782ff9ad6666 GIT binary patch literal 105 zc${<hbhEHbyui-L(7?d(=FOXL-@YmSWMKdS9S{MMVPJCT>0f#JE&t*<TW)o4zPIN$ zf7>IEY0o;By*jn+9ry81KG(nXKL2%2`2ar;SNoAgA3J=srk`2%nX}hx`IS{)yXJ~9 HFjxZsNKi3j diff --git a/templates/ja_purity/images/rtl/c-bg2.gif b/templates/ja_purity/images/rtl/c-bg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..fda9e372ca3a7f4c1d2db5c8c263df68992a7b83 GIT binary patch literal 3316 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 GBK`?y6o!@n diff --git a/templates/ja_purity/images/rtl/cw-bg1.gif b/templates/ja_purity/images/rtl/cw-bg1.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3918dbb3040659c2c3a32eaa9498de0bc3f4dcf GIT binary patch literal 109 zc${<hbhEHbyui-L(7?d(?c29EZ{8^WWMKdS9S{MMVPJA;>0f#JE&t*<TW)o4zPIN$ zf7>IEY0o;By*jn+9k=yCpX=XxpZ_}d{U1LMSNoAgA3J=srk`2%nX}hx`IS{)yUu29 Lzw>S#1A{dHCSNsY diff --git a/templates/ja_purity/images/rtl/cw-bg12.gif b/templates/ja_purity/images/rtl/cw-bg12.gif new file mode 100644 index 0000000000000000000000000000000000000000..2abcce92a1c1631d751d4092ad05ce31553dfc99 GIT binary patch literal 109 zc${<hbhEHbyui-L(7?d(=FOXL-@YmSWMKdS9S{MMVPJCU>0f#JE&t*<TW)o4zPIN$ zf7>IEY0o;By*jn+9k=xXpX=XxpZ_}d{U1LMSNoAgA3J=srk`2%nX}hx`IS{)yUu29 Lzw>S#1A{dHC=4}j diff --git a/templates/ja_purity/images/rtl/cw-bg122.gif b/templates/ja_purity/images/rtl/cw-bg122.gif new file mode 100644 index 0000000000000000000000000000000000000000..af4d33167526fa45774461602e2011c6d8505e81 GIT binary patch literal 109 zc${<hbhEHbyui-L(7?d(_3MvUuiq*DWMKdS9S{MMVPJA;>0f#JE&t*<TW)o4zPIN$ zf7>IEY0o;By*jn+9k=yCpX=XxpZ_}d{U1LMSNoAgA3J=srk`2%nX}hx`IS{)yUu29 Lzw>S#1A{dHCHysJ diff --git a/templates/ja_purity/images/rtl/cw-bg2.gif b/templates/ja_purity/images/rtl/cw-bg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b7481678c0d7a6ea5017de4b6f294ece7d9c84d GIT binary patch literal 3512 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 diff --git a/templates/ja_purity/images/rtl/cw-bg22.gif b/templates/ja_purity/images/rtl/cw-bg22.gif new file mode 100644 index 0000000000000000000000000000000000000000..66f2deb290cd6e0847712e7adc26383005b68132 GIT binary patch literal 4084 zc$}4#`%}`1!p1$Fj(R*+Zo896ZR^{1%*t(j+kF$UxAE;XUQp3#_btS>bvsR(wQbYs zO~j^ymjo5@n%uk~UO+@dMFcdpn<65ZnQ}438zA10>laXY&%Xb``^+=X=jUhUnI}3n z3KIUygjbBmM-LCH6)>!At{OI0v}<qPNLCG-N|nZ9vFr33>l@o*$@{Uf_bXb%^vs-k zc5z`*t6$yv_)-1o(~?X!H8LVwT-2?v8yA=KOUtWs^V-2zqubloiHT{cbn?^Ove|5# zn4H$?)=eghesx2qU(+n;q|y%`rc`U|Tk`iaMx$lxcbiq}`FHQ69{+#+n`8g~G3597 zy_1KhI}-CSCInn6ZhAC&A6h@bd<<(xb|~0S#x~G{8ZIjS996F8p~oNe%^L+z;T`HN zp#PbC%QgQ^PHtZQ^8zfcu&5YcLMSaOuc)kgQB5R~Db$+Ux_Vjzy|Jmeg~4oPwG{?( zI=G!(-Mk)tuRtj3>wh^gIP~iEo44<VN5rF&G3mHWKJk9?!_>#=83q4y_3Wp)dCkJ& z((;N{r(ZR!t#52@8MjSli`8Za98TBH?w;G@k3Pp@xEhGR_vdGBh`9}Kuzp{|YGOL+ z?}|a+Wz32@8%Ih5|5kJ?wySBhGWZA9jnS^=F=FW7CHYKR%QzMC55w$eH$(2OkIeJ= z62@b`Z;Yut^OJ<v`hk(u2&;wlus*gSx-&jWdfH|>{_{U@U&is-%I@?Jte?jC?dsl# zOOo2SUe2dJl-clUthZx+5c9{s9FG@p7vA7LKYLS(*vK6z`#P>JUf8uVM*8mFoK)DY zlhgiId^|zKTm8WNq3!0lsAp}4`}eWBgg*X;TJVpbgNFKgx8{fP{_+*PU$DI-t~~p* ztY2u>O*F>U!(WQ5Yl`lB^RkzH_ASku;;#}1`m+|loNW79KJe0IH!h9UCk_tmx&ZUq zynJxb?e_2t)?oG@N!R3f2Qf9dz8CbGJin;mh5YT>w1wxOJIsZGV^8$%1#DnJ@FMPH zb^2oFu_oqXQ3zkZSR6VWyoCRLI(?}GqGc`-F52`<rIDVem&>jkxw~8*6V$p~5r1KI zxiTs0^h(vgUrk+kfw<GUQhnpe>IyNn;Ix)>yZWw{oZix^rQGMQYN-#0PwQ$PPv6zm zqO`5Lx~H~PT|EXJ@QRjyBtzeT3u5W%_zMPoV_DRh)uyUz8LQ2tJFL}~nkR-;2Cd+X zf!S1@VQ6Kxuna6VU&Q<~clgX2n>U@Y)-KSp);Rq(!&=9X=h=1c+aveZJH<h5>s`_d zYwO(;QD--JQ`hco^eFDMeZ%p5ytdJ+DLA_+SgyXeDb%;Lxi>}Y{I$(K<M7$7e#`W| zt(SndZEIl1wzf6s;T2*W+V6kg_-dtvW_;}%wr+gm7ag+w_KWNHx8H%%*xSR$GS|09 z0<j?`@k!!+(`Yb*ZIXoauA9a}M?%cf@8d#VjYD*7v+SaM-7Jsv`o=PG#s62!`<PSh zmdW_A4a<k5=x?l3KVJXU`Vo=VZk@i7xnZ42#qOH_e4F^IO_|PUx2f*;ZrIchN4~Mo zKA!p2{t2aPx6eJbZ`kKCUgrQ!zW)PY0e6Z6EaJm9A?m+gIp<iey8ghiLQ3N}v^ANV z4jm19&Z%!AK5(uw862m9-Mi^r<Bptjt@CCcxLq3p9mlmv4%4`{hP=MrF~0TxZD(72 zs$<6_4cpo=PegyaYni(K+pblS*0F1w&D`3xYp~z$0n5bS_8j`7rLUapy<2-O<H)z} z9m~vb?p;9F;ojS^Z~be6zBCW7n4x`OBgQ+Pw$EQY<OwzA_~B{$PsP0QksbO4B&B(V ziC-N=8}kBv8@!`qULU3y^Mm&*Jg$jf9}yX!hvFN2(_-F$RmK8{wBcZ;_|0*r5gX}C z_ru1#Jptav#l+JO6UA?XpxcE>c={KNn0IGn6MsNR=|_6S@6MsOi&K3YK_fB4=PBFx z^!P^bjClBhXuISgzVVnYW(2BoZxc|`#^ZMJ$R+1?DaN-c@D&bo8Eh)U#W$Vs9~DPI zP32|yrjw^)M`1`)1xeZz6gD~vN1G~XzRkhWv68D4Qx!A5`ONiE$u*JbMTrFyk`_CL zRGF#;(&lrSqhmLnCgPB9ODHy0dJAkOiQ`+&6Gx?Ypl0#}zU6yH?05#!Oi@T%F7%Ej z{B&7E)%Y?XBeAka6myL}o&lX1l|2!eYmIouMO~~MtuogEQpP3wsQj7JT<>v!8R-R^ z$OT(y-U<5f?}jD{pq2)|66Tdtu=hns3mr7hj0%&yC!j5jfd^V+qG6L26iZWZLM!aL zWU^XhX?BN}w8p2wK2TIu^k8u-JX7+a&S_yp9$+P5VN-Oll^K)3x=NHxwLq<{NhPcw z8L*Emq?LsjXI<-+eB_|5ZK(&^5F_9zFOrp=p3sJzkxcVN*7k=bZ8vnV8Ij7$L5;WF zv`c0NoYoG^0d}faoZ>au#>FMDZ~2cYhM~63vj1uOQ&5~zg0yv!#@Tnm#*{L&t($hB zJv};3HA%7Ym<jC}*T+=TB3lo)r2T$coLZ%_@de}U4>HHpa}W6Yh7NEZV&i5P!FGW- zf%AwsHmil&g%c&5$Bej72Bcl280S3c9s9J2w)bfcbf8A!=1dfOzdpg;fi9<FY$E$h zV@bzTUEI7=Wgh^>JD%Cc=J%ZTL63u6j90v7-%()58_v!3mufsCfLDG5ZvLtG1)mh) zwe=;YAWXV&FdKLic(4-}9lv;(3cL-5cNSfjE*|Lv-h~o6@oDi(U^Ordk#!O>rAx<M zz)0l5t}<-=?a#V3;uv^W1yQ;j6yX?6B6L+T;#bb3I3x&JS9Py+<y^L7EcIYFX(V2I zp6ZaM!@DUnQtgF4$M{2nxiTP92UR;{C|P%%U8=j}a>y|Uc{HyC{pF+12^^e9_aE0s zML6G=5qM3f5>{a;&PkGt*Ah0q3eTp<&v^GR-O&k#t5oL{6W+tRK5n?y=lsYe^sv(s z){tuFv_RIw$sAw1>2l5t9prPd3G26xx)fqKzl&I#aTe-QP7wG!M#4r$ic6)C@%g>u z8xOM8g=f8c1tSTYkEpI$J-k;mGrswx&-KYj=<U}fY@yYzIY8DsU?1Ol=5oz@91;w9 z!Hu~`cQoFKg4h0ao4-ZuEclfQ-kySQ7p3ehg5-kXLO~88duJ)|kWd^AH&sw~mV*<8 zlIt>4b>GfPXsJ+|1~*gGJ6ecbD9e<Y>s&j!$U~wDEZjmrx~u=|p`1yg%+eCEyP8xg znqt7Mtdv~?LN1!_mAS2)?A^80Lw$-7xUGx2yPlrdr<#%3_<g$@4@>)Ib@0sAV$CK> z-Zy8L*#}&^TbM)r8m~m)_0c^eF0p^nUk(gM>}{8o_Aj4GbVyS6OeA@~Hcal2W$&43 zhj!;<Bb}4fJqt7OrQy2VIo-Es<(9r&PfK*E)O$98{N-k*+%@Ogvkx5_Fk%yT7LU3C zapHi9DBsaW)LXy84Oke7yM`3EQz0L)^~!fQv)wMup+R6IanD3`@8}Z;oip-1Tc3N^ zSUR|)OLRNc?ma+0xM#25{S5fm34<{EAej9Kj3)}?O~UvHFun@RK>*_i$~g?laeslx zIfBXok#fL-oMVcd<3LUzDE9;;_aq`W2$dV0j`8B=hA48+0lA@|yz`K}?-6+yP<aqi z9#oKbQIU5E$cqH!UxwsgLF7lF@?%K(FhPF2A|DRqCxM<{g*^We@%%f42ZHn*DR_QE z@%$$6JQY-M3sP_!QE&%UkWMPd5ER^36g&V59)hrsAlSzU>=P6gMZ%&5*ry8YGXRSL z;c~qTt|4#*C>)N2D-z)F3LF8zm4ON?Aca+kLO29RA{9~ug*A%8I-rmSDxyP*nh-@T zs3N8S`%i8WTT#RTinyTSE=VyCQOrjbr}%k@1jYS|V)p=0JOskOhTz{K@WUv)n1q)I z@KOa{2H+<^C6kbnDMZOMszgC5Q3*<B6(w^(i3UVigb<d4@d6Y<Pa+rugmndB6CfBt zrLZJ|1yO24l>($vr=WC4QMw0|dIXg13oqNREHR<Vyvb!g!ZKfF*+EAc8&P&Ry!?yg z@*`R0AaXfaSbj`demuOyFQDQ?c*V)&ilD5D;Mn4?gcTvmigS*N(16PG;g#PfS87QW z5OO6{Sb0%dd8x4CLO|8!@Tx1xRZ&@0G32Vx9hLFQD!8L6Dd5G`QBPR%i)&dg5abs~ z;fou>@*f;8QUj`Qg;(Eht^6sg+MQ0W&Jb4LS62U&T>UVB_$ZwCIGOlNQ;i}M(L&-= zCGlA-;Yk1~H=LB8Oe#?B|0kJLBqZULBm%h_8$hlICs!qtFF8mgGMOSI*C@&R?~-W& z6nZ$NsgO{YMPZUDEFp!RjBj>OxB=9zaO%AY3O|b~AX7!kYMzoh;Ghl#)I@WsZ<A|= zvuebn6|aRgQe}-Si!>TgI~iU(m0Y_7)F{ZcDq(Hn-P$=vttOyu(NR2`T&K;d(~p)d z3G3FCb(>1cYCydyyxtN}yp>fCkn5d7qE%VH=cxBkdAh=B`;j!yjH*9SXg(sEFYHfV zPMROM!F{->`~b4y2)e-++5i?c98)!{;2HwK^b_d1<4AfCnjS2{e=VYisOW=adMLQ@ zd=dQ|vhf1C@kMweRMdD8NrN~WBf(9Nl#N%AO;J8|mnls!QBy)z6WrO9#G=MSn}0+$ ze;v?_pfn>{<ZG(to6hDfLGvwW%WVoV72T3fX|W}@+*h?c$as+fW;}v2o)}x6pcyD= z<zo@!sfux@jDZ0&b72k7kjw%!^S?uxMIt6%Qi^jj%fPKs6U-`PYqg=Ig3?MsGKs3z zI%lg)&`O80GJIG;XFQk`7E8opt5_T-iwkb+g0}IHZG3c_fYK%swYmFMZ3E7>Au#(j zl>HXT9)_};C~OI`xdlldak3}C?UT^<DP;RJx?MqOSBctLBKDlKJyOL!E@@vza<piU zp29JRIP2(kjgw;((HB(>8^{hDx&xqeI7J;h2G+K-!$VCoOB!~OT+eK-H<jzt$KB`0 zJ?P@@hI5ZfxL>4n9?9+mQ9A`boyXLj+S8q2R_BR`u9GQUL1Ucb)UGq?n!t#LQ?9Pi zquu8tx<#U{3)$T~W!GU?_eFL0C0F-};_k~4JbG*QXFj|bDi7Aj+ko-lF5bjl-XRI^ z$CRFH**(KPJ;=VE$ESOKDDFu;%D)xCXG?lMyOYiTWwpl(#=o!TKPcw?mxo8h{{ln& BXDI*x diff --git a/templates/ja_purity/images/sc-q.gif b/templates/ja_purity/images/sc-q.gif new file mode 100644 index 0000000000000000000000000000000000000000..314d730e4dc6b8015ca6715b488294f4e7729229 GIT binary patch literal 142 zc${<hbhEHb<YnMy*v!Ll`SR8C=P&Nux%=$d^H;ClxN+mw?%jJ&pFVrwz@ZZ-PF=is zdHeRA|NsAIfC0syEQ|~cJPbM@4#*4!7VClqoeYyjmK>d)6urFVj(gSen+sQK37rZw q+VIA($M=EdcJVgWCUy}ck%PAlR|@e|NUQ4=Xnc?e(bi*Pum%92Av>S| diff --git a/templates/ja_purity/images/so-q.gif b/templates/ja_purity/images/so-q.gif new file mode 100644 index 0000000000000000000000000000000000000000..e41ff147620100a380de9da7017afe67b0b44662 GIT binary patch literal 139 zc${<hbhEHb<YnMy*v!Ll`SR8C=P&Nux%=$d^H;ClxN+mw?%jJ&pFVrwz@ZZ-PF=is zdHeRA|NsAIfC0syEQ|~cJPbM@4#*4!7K;fdi<;(y@@>3yS9Y;Z_d<{4N~P4ojcwi& mj+^Rl_0VqV`>Z)h{e~i+r_*BnP990d4vnM(4PNYm4AubSOggXt diff --git a/templates/ja_purity/images/spacer.png b/templates/ja_purity/images/spacer.png new file mode 100644 index 0000000000000000000000000000000000000000..b91e00daa0561278ab0d08e8c262ee80c91e698a GIT binary patch literal 218 zc%17D@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga%*9TgAsieWw;%dH0CL#^d_r9R z|NjqUh90_H2c(!vg8YIR7|JG}wE*%s3p^r=85p>QK$!8;-MT+OL9r6oh!W?b)Wnj^ z{5*w_%-mE40}Fi+GI{^n^&`kKkc!~^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S? u-v|XG0|S%xvNh*{8n`@N978JRBqxAez`*FSen}ya#o+1c=d#Wzp$P!lB|L8c diff --git a/templates/ja_purity/images/star-bg.gif b/templates/ja_purity/images/star-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e573c5f45ebf671485748992401ac8d32671a5d GIT binary patch literal 211 zc${<hbhEHb<YVAtIKsd%Z{GYZTeg1w{B7mRRhKSZnLBsxs#U8OE?l@`#mdEt7cXDF z;^@)iA3uIMaNywM$4@U_yu4$_&bMzrJbLux%$akyZ{OX!ci)~pd+*%2_vzEuFJHcY z`0#1w%$Z-m{$PLs#h)x-S_edc>||gKP*Cp^H=UQBCL!4+blYu*^5i3&%~t-#M>aY> ze)u4y;lvVEW=}OmUB?5G+#GHat-+0sigP%^4@Nq;CN&&o66l_z(%$K|WTuRYy03Wa J%wi`7YXEY9W;Or- diff --git a/templates/ja_purity/images/sticky-bg.gif b/templates/ja_purity/images/sticky-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..084a7188118e64813cbca2c0ca2b68ace4f32f68 GIT binary patch literal 1294 zc$^heX*d)J03De$ON$&i@|EzFa!)9w7=y5cbYFDs7rV7>aumDk`eHZ5Ce;pYtfSB| z6VX9J)-bh=D@mkb7>qF&W{jD)dOzN;_v5|yy|>-pcaz)Em4uaqSpq=`V0=CJp%A$P z??wm&sB+QfhS>|XmX^S02zCH1kVHZf*4@#8F&{u6m&t%mfCW4ODuCON_+sh^CcU|) zrUQ<Sg0*W~)YV06)&NaFHSiBW1L#02<f*_TpboeP)B<HtW&?%5M@XW8ZXge+!AvZK zM*ueFvw$urvmiVS^a7)pi31ve5eP#27Yt9w4wRa8`1puwc5sV-!icZ3hKzBltm)8H z+s2Wy%eX;mIcYoHS|bvPFyPMJxu`yDm*n0-%<S&JOolYSHu4w---_9-<+pChIDIwc zCFrq`mIpwd0lchCjpS|JCa5ijAaB6fc$$&U?dh3$lz^sHi~~D|ilQg(hSV___0<bi zyqB@6y7ZPd)z!(^P7ps-DQ>HVvm4@^g)bK3r&q;L(SH-Nl<Lyb2f@LR?yjWWRAE%n zc@F&^l?nR<&5z_wrDL9+(`i<ahN~2F595M*ySqO3_d}j0o12g+c?$3W-t^EHF`uuP znow}uOJk2?+zt3mIr<kT!-kt<KRh(V=W>BKQR52XEDvo4m<g*`wL+$7dysMg_#)|S zo}8SNcQ=&(nf326a;?81`^uWmc(N!sSXOtnwXyLni=}$)1l$7NV0y>jzg)bthw^;i zeoUXH=U$sEIsAgb5IpdIS;b(uY>=_m(auJJzo4)Dbk#;VD-jpi%@?kdzP6`lE_67I zZZcFfdd{V(#tq%6WF_Zj{T^S??I1gji2zoDqqHVh#&A)&xHKf%%x(3+Objv!bDyaa zZeLg16Z-G*^L^Lm=H?Wm&fsojWu1XMrSjb7Y9Gprn9Wb`mR9)riOQlX&Ia}T_YAm$ z**%Z%+`xo`R4itDdP2OgD={QLU_Kq!G=UR95x`v7{%Sdq@D;XS>FXy5BoOe8nIFBN zA(f=R{t%O1*pyCuC-aX8{=*@I)R)`KrsSnZGlT|SPf9wRe021G{2-(RCP$X=J}kSQ z#&mG4dv9wpWW};dqi#-2YF6{3hb&99PHHId$_(sYzK>S)#@OrdC+(lD2PxkchuIGV zntLXzkqiuNr7TP0(Y#HIlj6+{&!lS^yIAMvQjYmtUZ%0_nHT9H(=cZ5;Ns^8i-;t{ z#Jw5D4IHid(<BC8O=#W0SwS=_%CNQ2(B4iOE}`CwGTT-XNA=Kdk0Wd8Q)2fgr0ZU- zB59s~m3<{8R<n<n^65Kgo}L$#W;OOSv?*N2uu4gDbs9RNv1Cc$>WSCBmrQtiJ=A<Z z(X4BhkqI$kQ=?X)iH+uo<Kf|^OJ<GSNQ4FgQ<|)68pAWEU2F;czA?d>bV}PPkC~jk z#VGLX^3<GOVYs%(sU&}bTCJGi6?Q0s^()_P=*v<Ewy<eqRq^Toqx<JmvW-NJo*zlB z!uB9_wWtDba$vlEv!kB*^&q<lgXomScE$xdi{#!J-frxW%3zxV**Usv3rL+y4Sa0} zU#;4ec}`11ogGcEc=qP8uH~z<PVY8w(kM)ei}#~jT-tZF6YYcDiAlui5RSj44wIv? ZCCRojV7>9l^0CtV*zvMbH8sMP{{iU)_sReO diff --git a/templates/ja_purity/images/trans-bg.png b/templates/ja_purity/images/trans-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..af3f549a60ff8aa41a4c98bbc95fddeb8e42cd48 GIT binary patch literal 5850 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 diff --git a/templates/ja_purity/images/trans.gif b/templates/ja_purity/images/trans.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7bee69bd268892c08d79e0eb4eb50dafe6b5fbf GIT binary patch literal 49 tc${<hbhEHbWMp7un8*ME|G@yrQ2fclD#F0TpaT*G$ulr9g)lN$0{}WY3NZix diff --git a/templates/ja_purity/images/user-decrease.png b/templates/ja_purity/images/user-decrease.png new file mode 100644 index 0000000000000000000000000000000000000000..ae0c83b9bc119e6fa8624e122ac6482b482d0195 GIT binary patch literal 198 zc%17D@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XGCW-zLn>}1{rUgjo>{e_v(d>Qi-DP$yYtog1s{DS94>aS z9%ue2sd10vNSehJ!vtZTrYsX@qa1mG&xyti(GnR9A4?VNSf9RUOtMojQqvEj$` t{wWa^Tzm=~-{hZhc22zXhDRWQVXc2*@&jMn89+N3JYD@<);T3K0RS=~LCF9B diff --git a/templates/ja_purity/images/user-increase.png b/templates/ja_purity/images/user-increase.png new file mode 100644 index 0000000000000000000000000000000000000000..70dd09e4d60ff5c81ba556f5ae75b4abd11484c2 GIT binary patch literal 247 zc%17D@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XW_r3fhE&{2`tkq2J+tHwo}RNu9265+W;!uhG%Ge8t#owQ zBlyZkU>#GET})hpqp`kRNAblYO$`yk9myMaah?pBp!<7)1&3#j)RkiuIgDL09cd0{ z*pIw!tdI?PBP<Z^kXf9==V0a_<rVK9{F&41bCPibYxfM3YZuZID!fjxrZ9@hn9W?! r`Sx%s!%;m6Hns_~W*RU!G%zyE{k%$DMag{|(2)$Du6{1-oD!M<-lkQ{ diff --git a/templates/ja_purity/images/user-reset.png b/templates/ja_purity/images/user-reset.png new file mode 100644 index 0000000000000000000000000000000000000000..d1310d6cad9e5d2e8d9505c3d5696979ef1e66d5 GIT binary patch literal 210 zc%17D@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XN<3X0Ln>}1{rUgjo>{e_v(d@Gg7*RQBR&N?=A+$>H+ZHq z_CzoVE^!p@j;dFv^E$z*7jX9aLMfky3fU07c@p{_&M!}TY}?BCQC();p-hHd!TAn{ z*_byx;E<kB+<f84yi2CCIxTDpJoBZFdCr`8=?#xS0>c{v$(5h86h8p%XYh3Ob6Mw< G&;$U)^+=Ea diff --git a/templates/ja_purity/images/vdot.gif b/templates/ja_purity/images/vdot.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea364b0a3bb2edf3d3176aa30ac92a71680822a9 GIT binary patch literal 43 wc${<hbhEHbWMp7sXkcWRIdkU!|Nj+#vM@3*Ff!;cFn}l~1_mZ39xeuJ0P{--nE(I) diff --git a/templates/ja_purity/images/vdot2.gif b/templates/ja_purity/images/vdot2.gif new file mode 100644 index 0000000000000000000000000000000000000000..978c2e60b3571601bdce65c09ee5ac0b0894f8ab GIT binary patch literal 43 rc${<hbhEHbWMW`sXkcJ4HZ~3o4ORTf!T<s~AOa-Az{KRj#b6BpopJ@9 diff --git a/templates/ja_purity/index.html b/templates/ja_purity/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/index.php b/templates/ja_purity/index.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/index.php @@ -0,0 +1,278 @@ +<?php +/** + * @copyright Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined( '_JEXEC' ) or die( 'Restricted access' ); + +include_once (dirname(__FILE__).DS.'/ja_vars.php'); + +?> + +<!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="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>"> + +<head> +<jdoc:include type="head" /> +<?php JHTML::_('behavior.mootools'); ?> + +<link rel="stylesheet" href="<?php echo $tmpTools->baseurl(); ?>templates/system/css/system.css" type="text/css" /> +<link rel="stylesheet" href="<?php echo $tmpTools->baseurl(); ?>templates/system/css/general.css" type="text/css" /> +<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/template.css" type="text/css" /> + +<script language="javascript" type="text/javascript" src="<?php echo $tmpTools->templateurl(); ?>/js/ja.script.js"></script> + +<?php if ($tmpTools->getParam('rightCollapsible')): ?> +<script language="javascript" type="text/javascript"> +var rightCollapseDefault='<?php echo $tmpTools->getParam('rightCollapseDefault'); ?>'; +var excludeModules='<?php echo $tmpTools->getParam('excludeModules'); ?>'; +</script> +<script language="javascript" type="text/javascript" src="<?php echo $tmpTools->templateurl(); ?>/js/ja.rightcol.js"></script> +<?php endif; ?> + +<?php if($this->direction == 'rtl') : ?> +<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/template_rtl.css" type="text/css" /> +<?php else : ?> +<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/menu.css" type="text/css" /> +<?php endif; ?> + +<?php if ($this->countModules('hornav')): ?> +<?php if ($tmpTools->getParam('horNavType') == 'css'): ?> +<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/ja-sosdmenu.css" type="text/css" /> +<script language="javascript" type="text/javascript" src="<?php echo $tmpTools->templateurl(); ?>/js/ja.cssmenu.js"></script> +<?php else: ?> +<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/ja-sosdmenu.css" type="text/css" /> +<script language="javascript" type="text/javascript" src="<?php echo $tmpTools->templateurl(); ?>/js/ja.moomenu.js"></script> +<?php endif; ?> +<?php endif; ?> + +<?php if ($tmpTools->getParam('theme_header') && $tmpTools->getParam('theme_header')!='-1') : ?> +<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/styles/header/<?php echo $tmpTools->getParam('theme_header'); ?>/style.css" type="text/css" /> +<?php endif; ?> +<?php if ($tmpTools->getParam('theme_background') && $tmpTools->getParam('theme_background')!='-1') : ?> +<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/styles/background/<?php echo $tmpTools->getParam('theme_background'); ?>/style.css" type="text/css" /> +<?php endif; ?> +<?php if ($tmpTools->getParam('theme_elements') && $tmpTools->getParam('theme_elements')!='-1') : ?> +<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/styles/elements/<?php echo $tmpTools->getParam('theme_elements'); ?>/style.css" type="text/css" /> +<?php endif; ?> + +<!--[if gte IE 7.0]> +<style type="text/css"> +.clearfix {display: inline-block;} +</style> +<![endif]--> +<?php if ($tmpTools->isIE6()): ?> +<!--[if lte IE 6]> +<script type="text/javascript"> +var siteurl = '<?php echo $tmpTools->baseurl();?>'; + +window.addEvent ('load', makeTransBG); +function makeTransBG() { + fixIEPNG($E('.ja-headermask'), '', '', 1); + fixIEPNG($E('h1.logo a')); + fixIEPNG($$('img')); + fixIEPNG ($$('#ja-mainnav ul.menu li ul'), '', 'scale', 0, 2); +} +</script> +<style type="text/css"> +.ja-headermask, h1.logo a, #ja-cssmenu li ul { background-position: -1000px; } +#ja-cssmenu li ul li, #ja-cssmenu li a { background:transparent url(<?php echo $tmpTools->templateurl(); ?>/images/blank.png) no-repeat right;} +.clearfix {height: 1%;} +</style> +<![endif]--> +<?php endif; ?> + +<style type="text/css"> +#ja-header,#ja-mainnav,#ja-container,#ja-botsl,#ja-footer {width: <?php echo $tmpWidth; ?>;margin: 0 auto;} +#ja-wrapper {min-width: <?php echo $tmpWrapMin; ?>;} +</style> +</head> + +<body id="bd" class="fs<?php echo $tmpTools->getParam(JA_TOOL_FONT);?> <?php echo $tmpTools->browser();?>" > +<a name="Top" id="Top"></a> +<ul class="accessibility"> + <li><a href="#ja-content" title="<?php echo JText::_("Skip to content");?>"><?php echo JText::_("Skip to content");?></a></li> + <li><a href="#ja-mainnav" title="<?php echo JText::_("Skip to main navigation");?>"><?php echo JText::_("Skip to main navigation");?></a></li> + <li><a href="#ja-col1" title="<?php echo JText::_("Skip to 1st column");?>"><?php echo JText::_("Skip to 1st column");?></a></li> + <li><a href="#ja-col2" title="<?php echo JText::_("Skip to 2nd column");?>"><?php echo JText::_("Skip to 2nd column");?></a></li> +</ul> + +<div id="ja-wrapper"> + +<!-- BEGIN: HEADER --> +<div id="ja-headerwrap"> + <div id="ja-header" class="clearfix" style="background: url(<?php echo $tmpTools->templateurl(); ?>/images/header/<?php echo $tmpTools->getRandomImage(dirname(__FILE__).DS.'images/header'); ?>) no-repeat top <?php if($this->direction == 'rtl') echo 'left'; else echo 'right';?>;"> + + <div class="ja-headermask"> </div> + + <?php + $siteName = $tmpTools->sitename(); + if ($tmpTools->getParam('logoType')=='image'): ?> + <h1 class="logo"> + <a href="index.php" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></span></a> + </h1> + <?php else: + $logoText = (trim($tmpTools->getParam('logoText'))=='') ? $config->sitename : $tmpTools->getParam('logoText'); + $sloganText = (trim($tmpTools->getParam('sloganText'))=='') ? JText::_('SITE SLOGAN') : $tmpTools->getParam('sloganText'); ?> + <h1 class="logo-text"> + <a href="index.php" title="<?php echo $siteName; ?>"><span><?php echo $logoText; ?></span></a> + </h1> + <p class="site-slogan"><?php echo $sloganText;?></p> + <?php endif; ?> + + <?php $tmpTools->genToolMenu(JA_TOOL_FONT, 'png'); ?> + + <?php if($this->countModules('user4')) : ?> + <div id="ja-search"> + <jdoc:include type="modules" name="user4" /> + </div> + <?php endif; ?> + + </div> +</div> +<!-- END: HEADER --> + +<!-- BEGIN: MAIN NAVIGATION --> +<?php if ($this->countModules('hornav')): ?> +<div id="ja-mainnavwrap"> + <div id="ja-mainnav" class="clearfix"> + <jdoc:include type="modules" name="hornav" /> + </div> +</div> +<?php endif; ?> +<!-- END: MAIN NAVIGATION --> + +<div id="ja-containerwrap<?php echo $divid; ?>"> +<div id="ja-containerwrap2"> + <div id="ja-container"> + <div id="ja-container2" class="clearfix"> + + <div id="ja-mainbody<?php echo $divid; ?>" class="clearfix"> + + <!-- BEGIN: CONTENT --> + <div id="ja-contentwrap"> + <div id="ja-content"> + + <jdoc:include type="message" /> + + <?php if(!$tmpTools->isFrontPage()) : ?> + <div id="ja-pathway"> + <jdoc:include type="module" name="breadcrumbs" /> + </div> + <?php endif ; ?> + + <jdoc:include type="component" /> + + <?php if($this->countModules('banner')) : ?> + <div id="ja-banner"> + <jdoc:include type="modules" name="banner" /> + </div> + <?php endif; ?> + + </div> + </div> + <!-- END: CONTENT --> + + <?php if ($this->countModules('left')): ?> + <!-- BEGIN: LEFT COLUMN --> + <div id="ja-col1"> + <jdoc:include type="modules" name="left" style="xhtml" /> + </div><br /> + <!-- END: LEFT COLUMN --> + <?php endif; ?> + + </div> + + <?php if ($this->countModules('right')): ?> + <!-- BEGIN: RIGHT COLUMN --> + <div id="ja-col2"> + <jdoc:include type="modules" name="right" style="jarounded" /> + </div><br /> + <!-- END: RIGHT COLUMN --> + <?php endif; ?> + + </div> + </div> +</div> +</div> + +<?php +$spotlight = array ('user1','user2','top','user5'); +$botsl = $tmpTools->calSpotlight ($spotlight,99,22); +if( $botsl ) : +?> +<!-- BEGIN: BOTTOM SPOTLIGHT --> +<div id="ja-botslwrap"> + <div id="ja-botsl" class="clearfix"> + + <?php if( $this->countModules('user1') ): ?> + <div class="ja-box<?php echo $botsl['user1']['class']; ?>" style="width: <?php echo $botsl['user1']['width']; ?>;"> + <jdoc:include type="modules" name="user1" style="xhtml" /> + </div> + <?php endif; ?> + + <?php if( $this->countModules('user2') ): ?> + <div class="ja-box<?php echo $botsl['user2']['class']; ?>" style="width: <?php echo $botsl['user2']['width']; ?>;"> + <jdoc:include type="modules" name="user2" style="xhtml" /> + </div> + <?php endif; ?> + + <?php if( $this->countModules('top') ): ?> + <div class="ja-box<?php echo $botsl['top']['class']; ?>" style="width: <?php echo $botsl['top']['width']; ?>;"> + <jdoc:include type="modules" name="top" style="xhtml" /> + </div> + <?php endif; ?> + + <?php if( $this->countModules('user5') ): ?> + <div class="ja-box<?php echo $botsl['user5']['class']; ?>" style="width: <?php echo $botsl['user5']['width']; ?>;"> + <jdoc:include type="modules" name="user5" style="xhtml" /> + </div> + <?php endif; ?> + + </div> +</div> +<!-- END: BOTTOM SPOTLIGHT --> +<?php endif; ?> + +<!-- BEGIN: FOOTER --> +<div id="ja-footerwrap"> +<div id="ja-footer" class="clearfix"> + + <div id="ja-footnav"> + <jdoc:include type="modules" name="user3" /> + </div> + + <div class="copyright"> + <jdoc:include type="modules" name="footer" /> + </div> + + <div class="ja-cert"> + <jdoc:include type="modules" name="syndicate" /> + <a href="http://jigsaw.w3.org/css-validator/check/referer" target="_blank" title="<?php echo JText::_("CSS Validity");?>" style="text-decoration: none;"> + <img src="<?php echo $tmpTools->templateurl(); ?>/images/but-css.gif" border="none" alt="<?php echo JText::_("CSS Validity");?>" /> + </a> + <a href="http://validator.w3.org/check/referer" target="_blank" title="<?php echo JText::_("XHTML Validity");?>" style="text-decoration: none;"> + <img src="<?php echo $tmpTools->templateurl(); ?>/images/but-xhtml10.gif" border="none" alt="<?php echo JText::_("XHTML Validity");?>" /> + </a> + </div> + + <br /> +</div> +</div> +<!-- END: FOOTER --> + +</div> + +<jdoc:include type="modules" name="debug" /> + +</body> + +</html> diff --git a/templates/ja_purity/ja_templatetools.php b/templates/ja_purity/ja_templatetools.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/ja_templatetools.php @@ -0,0 +1,240 @@ +<?php +define ('JA_TOOL_COLOR', 'ja_color'); +define ('JA_TOOL_SCREEN', 'ja_screen'); +define ('JA_TOOL_FONT', 'ja_font'); +define ('JA_TOOL_MENU', 'ja_menu'); + +class JA_Tools { + var $_params_cookie = null; //Params will store in cookie for user select. Default: store all params + var $_tpl = null; + var $template = ''; + + function JA_Tools ($template, $_params_cookie=null) { + $this->_tpl = $template; + $this->template = $template->template; + + if(!$_params_cookie) { + $this->_params_cookie = $this->_tpl->params->toArray(); + } else { + foreach ($_params_cookie as $k) { + $this->_params_cookie[$k] = $this->_tpl->params->get($k); + } + } + + $this->getUserSetting(); + } + + function getUserSetting(){ + $exp = time() + 60*60*24*355; + if (isset($_COOKIE[$this->template.'_tpl']) && $_COOKIE[$this->template.'_tpl'] == $this->template){ + foreach($this->_params_cookie as $k=>$v) { + $kc = $this->template."_".$k; + if (isset($_GET[$k])){ + $v = $_GET[$k]; + setcookie ($kc, $v, $exp, '/'); + }else{ + if (isset($_COOKIE[$kc])){ + $v = $_COOKIE[$kc]; + } + } + $this->setParam($k, $v); + } + + }else{ + setcookie ($this->template.'_tpl', $this->template, $exp, '/'); + } + return $this; + } + + function getParam ($param, $default='') { + if (isset($this->_params_cookie[$param])) { + return $this->_params_cookie[$param]; + } + return $this->_tpl->params->get($param, $default); + } + + function setParam ($param, $value) { + $this->_params_cookie[$param] = $value; + } + + function getCurrentURL(){ + $cururl = JRequest::getURI(); + if(($pos = strpos($cururl, "index.php"))!== false){ + $cururl = substr($cururl,$pos); + } + $cururl = JRoute::_($cururl, true, 0); + return $cururl; + } + + function genToolMenu($_array_tools=null, $imgext = 'gif'){ + if(!is_array($_array_tools)) $_array_tools = array($_array_tools); + if(!$_array_tools) $_array_tools = array_keys($this->_params_cookie); + if (in_array(JA_TOOL_FONT, $_array_tools)){//show font tools + ?> + <ul class="ja-usertools-font"> + <li><img style="cursor: pointer;" title="<?php echo JText::_('Increase font size');?>" src="<?php echo $this->templateurl();?>/images/user-increase.<?php echo $imgext;?>" alt="<?php echo JText::_('Increase font size');?>" id="ja-tool-increase" onclick="switchFontSize('<?php echo $this->template."_".JA_TOOL_FONT;?>','inc'); return false;" /></li> + <li><img style="cursor: pointer;" title="<?php echo JText::_('Default font size');?>" src="<?php echo $this->templateurl();?>/images/user-reset.<?php echo $imgext;?>" alt="<?php echo JText::_('Default font size');?>" id="ja-tool-reset" onclick="switchFontSize('<?php echo $this->template."_".JA_TOOL_FONT;?>',<?php echo $this->_tpl->params->get(JA_TOOL_FONT);?>); return false;" /></li> + <li><img style="cursor: pointer;" title="<?php echo JText::_('Decrease font size');?>" src="<?php echo $this->templateurl();?>/images/user-decrease.<?php echo $imgext;?>" alt="<?php echo JText::_('Decrease font size');?>" id="ja-tool-decrease" onclick="switchFontSize('<?php echo $this->template."_".JA_TOOL_FONT;?>','dec'); return false;" /></li> + </ul> + <script type="text/javascript">var CurrentFontSize=parseInt('<?php echo $this->getParam(JA_TOOL_FONT);?>');</script> + <?php + } + } + + function getCurrentMenuIndex(){ + $Itemid = JRequest::getInt( 'Itemid'); + $database =& JFactory::getDBO(); + $id = $Itemid; + $menutype = 'mainmenu'; + $ordering = '0'; + while (1){ + $sql = "select parent, menutype, ordering from #__menu where id = $id limit 1"; + $database->setQuery($sql); + $row = null; + $row = $database->loadObject(); + if ($row) { + $menutype = $row->menutype; + $ordering = $row->ordering; + if ($row->parent > 0) + { + $id = $row->parent; + }else break; + }else break; + } + + $user =& JFactory::getUser(); + if (isset($user)) + { + $aid = $user->get('aid', 0); + $sql = "SELECT count(*) FROM #__menu AS m" + . "\nWHERE menutype='". $menutype ."' AND published='1' AND access <= '$aid' AND parent=0 and ordering < $ordering"; + } else { + $sql = "SELECT count(*) FROM #__menu AS m" + . "\nWHERE menutype='". $menutype ."' AND published='1' AND parent=0 and ordering < $ordering"; + } + $database->setQuery($sql); + + return $database->loadResult(); + } + + function calSpotlight ($spotlight, $totalwidth=100, $firstwidth=0) { + + /******************************************** + $spotlight = array ('position1', 'position2',...) + *********************************************/ + $modules = array(); + $modules_s = array(); + foreach ($spotlight as $position) { + if( $this->_tpl->countModules ($position) ){ + $modules_s[] = $position; + } + $modules[$position] = array('class'=>'-full', 'width'=>$totalwidth); + } + + if (!count($modules_s)) return null; + + if ($firstwidth) { + if (count($modules_s)>1) { + $width = round(($totalwidth-$firstwidth)/(count($modules_s)-1),1) . "%"; + $firstwidth = $firstwidth . "%"; + }else{ + $firstwidth = $totalwidth . "%"; + } + }else{ + $width = round($totalwidth/(count($modules_s)),1) . "%"; + $firstwidth = $width; + } + + if (count ($modules_s) > 1){ + $modules[$modules_s[0]]['class'] = "-left"; + $modules[$modules_s[0]]['width'] = $firstwidth; + $modules[$modules_s[count ($modules_s) - 1]]['class'] = "-right"; + $modules[$modules_s[count ($modules_s) - 1]]['width'] = $width; + for ($i=1; $i<count ($modules_s) - 1; $i++){ + $modules[$modules_s[$i]]['class'] = "-center"; + $modules[$modules_s[$i]]['width'] = $width; + } + } + return $modules; + } + + function isIE6 () { + return $this->browser() == 'IE6'; + } + + function baseurl(){ + return JURI::base(); + } + + function templateurl(){ + return JURI::base()."templates/".$this->template; + } + + function getRandomImage ($img_folder) { + $imglist=array(); + + mt_srand((double)microtime()*1000); + + //use the directory class + $imgs = dir($img_folder); + + //read all files from the directory, checks if are images and ads them to a list (see below how to display flash banners) + while ($file = $imgs->read()) { + if (eregi("gif", $file) || eregi("jpg", $file) || eregi("png", $file)) + $imglist[] = $file; + } + closedir($imgs->handle); + + if(!count($imglist)) return ''; + + //generate a random number between 0 and the number of images + $random = mt_rand(0, count($imglist)-1); + $image = $imglist[$random]; + + return $image; + } + + function isFrontPage(){ + return (JRequest::getCmd( 'view' ) == 'frontpage') ; + } + + function sitename() { + $config = new JConfig(); + return $config->sitename; + } + + function browser () { + $agent = $_SERVER['HTTP_USER_AGENT']; + if ( strpos($agent, 'Gecko') ) + { + if ( strpos($agent, 'Netscape') ) + { + $browser = 'NS'; + } + else if ( strpos($agent, 'Firefox') ) + { + $browser = 'FF'; + } + else + { + $browser = 'Moz'; + } + } + else if ( strpos($agent, 'MSIE') && !preg_match('/opera/i',$agent) ) + { + $msie='/msie\s(7\.[0-9]).*(win)/i'; + if (preg_match($msie,$agent)) $browser = 'IE7'; + else $browser = 'IE6'; + } + else if ( preg_match('/opera/i',$agent) ) + { + $browser = 'OPE'; + } + else + { + $browser = 'Others'; + } + return $browser; + } +} +?> diff --git a/templates/ja_purity/ja_vars.php b/templates/ja_purity/ja_vars.php new file mode 100644 --- /dev/null +++ b/templates/ja_purity/ja_vars.php @@ -0,0 +1,59 @@ +<?php +/** + * @copyright Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined( '_JEXEC' ) or die( 'Restricted access' ); + +include_once (dirname(__FILE__).DS.'/ja_templatetools.php'); + +$tmpTools = new JA_Tools($this); + +# Auto Collapse Divs Functions ########## +$ja_left = $this->countModules('left') || ($tmpTools->getParam(JA_TOOL_MENU) == 1); +$ja_right = $this->countModules('right'); + +if ( $ja_left && $ja_right ) { + $divid = ''; + } elseif ( $ja_left ) { + $divid = '-fr'; + } elseif ( $ja_right ) { + $divid = '-fl'; + } else { + $divid = '-f'; +} + +$curidx = $tmpTools->getCurrentMenuIndex(); +//if ($curidx) $curidx--; + +//Calculate the width of template +$tmpWidth = ''; +$tmpWrapMin = '100%'; +switch ($tmpTools->getParam(JA_TOOL_SCREEN)){ + case 'auto': + $tmpWidth = '97%'; + break; + case 'fluid': + $tmpWidth = intval($tmpTools->getParam('ja_screen_width')); + $tmpWidth = $tmpWidth ? $tmpWidth.'%' : '90%'; + break; + case 'fix': + $tmpWidth = intval($tmpTools->getParam('ja_screen_width')); + $tmpWrapMin = $tmpWidth ? ($tmpWidth+1).'px' : '751px'; + $tmpWidth = $tmpWidth ? $tmpWidth.'px' : '750px'; + break; + default: + $tmpWidth = intval($tmpTools->getParam(JA_TOOL_SCREEN)); + $tmpWrapMin = $tmpWidth ? ($tmpWidth+1).'px' : '751px'; + $tmpWidth = $tmpWidth ? $tmpWidth.'px' : '750px'; + break; +} + +?> diff --git a/templates/ja_purity/js/ja.cssmenu.js b/templates/ja_purity/js/ja.cssmenu.js new file mode 100644 --- /dev/null +++ b/templates/ja_purity/js/ja.cssmenu.js @@ -0,0 +1,21 @@ + +sfHover = function() { + var sfEls = document.getElementById("ja-mainnav").getElementsByTagName("li"); + for (var i=0; i<sfEls.length; ++i) { + sfEls[i].onmouseover=function() { + clearTimeout(this.timer); + if(this.className.indexOf(" sfhover") == -1) + this.className+=" sfhover"; + } + sfEls[i].onmouseout=function() { + this.timer = setTimeout(sfHoverOut.bind(this), 20); + } + } +} + +function sfHoverOut() { + clearTimeout(this.timer); + this.className=this.className.replace(new RegExp(" sfhover\\b"), ""); +} + +if (window.attachEvent) window.attachEvent("onload", sfHover); diff --git a/templates/ja_purity/js/ja.moomenu.js b/templates/ja_purity/js/ja.moomenu.js new file mode 100644 --- /dev/null +++ b/templates/ja_purity/js/ja.moomenu.js @@ -0,0 +1,207 @@ +if (typeof(MooTools) != 'undefined'){ + + var subnav = new Array(); + + Element.extend( + { + hide: function(timeout) + { + this.status = 'hide'; + clearTimeout (this.timeout); + if (timeout) + { + this.timeout = setTimeout (this.anim.bind(this), timeout); + }else{ + this.anim(); + } + }, + + show: function(timeout) + { + this.status = 'show'; + clearTimeout (this.timeout); + if (timeout) + { + this.timeout = setTimeout (this.anim.bind(this), timeout); + }else{ + this.anim(); + } + }, + + setActive: function () { + //this.addClass(classname); + this.className+='sfhover'; + /* + for(var i=0;i<this.childNodes.length; i++) { + if(this.childNodes[i].nodeName.toLowerCase() == 'a') { + //$(this.childNodes[i]).addClass(classname); + $(this.childNodes[i]).setActive(); + return; + } + } + */ + }, + + setDeactive: function () { + //this.removeClass(classname); + this.className=this.className.replace(new RegExp("sfhover\\b"), ""); + /* + for(var i=0;i<this.childNodes.length; i++) { + if(this.childNodes[i].nodeName.toLowerCase() == 'a') { + $(this.childNodes[i]).setDeactive(); + return; + } + } + */ + }, + + anim: function() { + if ((this.status == 'hide' && this.style.left != 'auto') || (this.status == 'show' && this.style.left == 'auto' && !this.hidding)) return; + this.setStyle('overflow', 'hidden'); + if (this.status == 'show') { + this.hidding = 0; + this.hideAll(); + //this.parentNode.setActive(); + } else { + //this.parentNode.setDeactive(); + } + + if (this.status == 'hide') + { + this.hidding = 1; + //this.myFx1.stop(); + this.myFx2.stop(); + //this.myFx1.start(1,0); + if (this.parent._id) this.myFx2.start(this.offsetWidth,0); + else this.myFx2.start(this.offsetHeight,0); + } else { + this.setStyle('left', 'auto'); + //this.myFx1.stop(); + this.myFx2.stop(); + //this.myFx1.start(0,1); + if (this.parent._id) this.myFx2.start(0,this.mw); + else this.myFx2.start(0,this.mh); + } + }, + + init: function() { + this.mw = this.clientWidth; + this.mh = this.clientHeight; + //this.myFx1 = new Fx.Style(this, 'opacity'); + //this.myFx1.set(0); + if (this.parent._id) + { + this.myFx2 = new Fx.Style(this, 'width', {duration: 300}); + this.myFx2.set(0); + }else{ + this.myFx2 = new Fx.Style(this, 'height', {duration: 300}); + this.myFx2.set(0); + } + this.setStyle('left', '-999em'); + animComp = function(){ + if (this.status == 'hide') + { + this.setStyle('left', '-999em'); + this.hidding = 0; + } + this.setStyle('overflow', ''); + } + this.myFx2.addEvent ('onComplete', animComp.bind(this)); + }, + + hideAll: function() { + for(var i=0;i<subnav.length; i++) { + if (!this.isChild(subnav[i])) + { + subnav[i].hide(0); + } + } + }, + + isChild: function(_obj) { + obj = this; + while (obj.parent) + { + if (obj._id == _obj._id) + { + //alert(_obj._id); + return true; + } + obj = obj.parent; + } + return false; + } + + + }); + + + var DropdownMenu = new Class({ + initialize: function(element) + { + //$(element).mh = 0; + $A($(element).childNodes).each(function(el) + { + if(el.nodeName.toLowerCase() == 'li') + { + //if($(element)._id) $(element).mh += 30; + $A($(el).childNodes).each(function(el2) + { + if(el2.nodeName.toLowerCase() == 'ul') + { + $(el2)._id = subnav.length+1; + $(el2).parent = $(element); + subnav.push ($(el2)); + el2.init(); + el.addEvent('mouseover', function() + { + el.setActive(); + el2.show(0); + return false; + }); + + el.addEvent('mouseout', function() + { + el.setDeactive(); + el2.hide(20); + }); + new DropdownMenu(el2); + el.hasSub = 1; + } + }); + if (!el.hasSub) + { + el.addEvent('mouseover', function() + { + el.setActive(); + return false; + }); + + el.addEvent('mouseout', function() + { + el.setDeactive(); + }); + } + } + }); + return this; + } + }); + + Window.onDomReady(function() {new DropdownMenu($E('#ja-mainnav ul.menu'))}); + + }else { + + sfHover = function() { + var sfEls = document.getElementById("ja-mainnav").getElementsByTagName("li"); + for (var i=0; i<sfEls.length; ++i) { + sfEls[i].onmouseover=function() { + this.className+="sfhover"; + } + sfEls[i].onmouseout=function() { + this.className=this.className.replace(new RegExp("sfhover\\b"), ""); + } + } + } + if (window.attachEvent) window.attachEvent("onload", sfHover); +} diff --git a/templates/ja_purity/js/ja.rightcol.js b/templates/ja_purity/js/ja.rightcol.js new file mode 100644 --- /dev/null +++ b/templates/ja_purity/js/ja.rightcol.js @@ -0,0 +1,60 @@ +//JS script for Joomla template + +var JA_Collapse_Mod = new Class({ + + initialize: function(myElements) { + options = Object.extend({ + transition: Fx.Transitions.quadOut + }, {}); + this.myElements = myElements; + var exModules = excludeModules.split(','); + exModules.each(function(el,i){exModules[i]='Mod'+el}); + myElements.each(function(el, i){ + el.elmain = $E('.jamod-content',el); + el.titleEl = $E('h3',el); + if(!el.titleEl) return; + + if (exModules.contains(el.id)) { + el.titleEl.className = ''; + return; + } + + el.titleEl.className = rightCollapseDefault; + el.status = rightCollapseDefault; + el.openH = el.elmain.getStyle('height').toInt(); + el.elmain.setStyle ('overflow','hidden'); + + el.titleEl.addEvent('click', function(e){ + e = new Event(e).stop(); + el.toggle(); + }); + + el.toggle = function(){ + if (el.status=='hide') el.show(); + else el.hide(); + } + + el.show = function() { + el.titleEl.className='show'; + var ch = el.elmain.getStyle('height').toInt(); + new Fx.Style(el.elmain,'height',{onComplete:el.toggleStatus}).start(ch,el.openH); + } + el.hide = function() { + el.titleEl.className='hide'; + var ch = (rightCollapseDefault=='hide')?0:el.elmain.getStyle('height').toInt(); + new Fx.Style(el.elmain,'height',{onComplete:el.toggleStatus}).start(ch,0); + } + el.toggleStatus = function () { + el.status=(el.status=='hide')?'show':'hide'; + Cookie.set(el.id,el.status,{duration:365}); + } + + if(!el.titleEl.className) el.titleEl.className=rightCollapseDefault; + if(el.titleEl.className=='hide') el.hide(); + }); + } +}); + +window.addEvent ('load', function(e){ + var jamod = new JA_Collapse_Mod ($ES('.jamod')); +}); diff --git a/templates/ja_purity/js/ja.script.js b/templates/ja_purity/js/ja.script.js new file mode 100644 --- /dev/null +++ b/templates/ja_purity/js/ja.script.js @@ -0,0 +1,106 @@ +//JS script for Joomla template +var siteurl = ''; + +function fixIEPNG(el, bgimgdf, sizingMethod, type, offset){ + var objs = el; + if(!objs) return; + if ($type(objs) != 'array') objs = [objs]; + if(!sizingMethod) sizingMethod = 'crop'; + if(!offset) offset = 0; + var blankimg = siteurl + 'images/blank.png'; + objs.each(function(obj) { + var bgimg = bgimgdf; + if (obj.tagName == 'IMG') { + //This is an image + if (!bgimg) bgimg = obj.src; + if (!(/\.png$/i).test(bgimg) || (/blank\.png$/i).test(bgimg)) return; + + obj.setStyle('height',obj.offsetHeight); + obj.setStyle('width',obj.offsetWidth); + obj.src = blankimg; + obj.setStyle ('visibility', 'visible'); + obj.setStyle('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+bgimg+", sizingMethod='"+sizingMethod+"')"); + }else{ + //Background + if (!bgimg) bgimg = obj.getStyle('backgroundImage'); + var pattern = new RegExp('url\s*[\(\"\']*([^\'\"\)]*)[\'\"\)]*'); + if ((m = pattern.exec(bgimg))) bgimg = m[1]; + if (!(/\.png$/i).test(bgimg) || (/blank\.png$/i).test(bgimg)) return; + if (!type) + { + obj.setStyle('background', 'none'); + //if(!obj.getStyle('position')) + if(obj.getStyle('position')!='absolute' && obj.getStyle('position')!='relative') { + obj.setStyle('position', 'relative'); + } + + //Get all child + var childnodes = obj.childNodes; + for(var j=0;j<childnodes.length;j++){ + if((child = $(childnodes[j]))) { + if(child.getStyle('position')!='absolute' && child.getStyle('position')!='relative') { + child.setStyle('position', 'relative'); + } + child.setStyle('z-index',2); + } + } + //Create background layer: + var bgdiv = new Element('IMG'); + bgdiv.src = blankimg; + bgdiv.width = obj.offsetWidth - offset; + bgdiv.height = obj.offsetHeight - offset; + bgdiv.setStyles({ + 'position': 'absolute', + 'top': 0, + 'left': 0 + }); + + bgdiv.className = 'TransBG'; + + bgdiv.setStyle('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+bgimg+", sizingMethod='"+sizingMethod+"')"); + bgdiv.inject(obj, 'top'); + //alert(obj.innerHTML + '\n' + bgdiv.innerHTML); + } else { + obj.setStyle('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+bgimg+", sizingMethod='"+sizingMethod+"')"); + } + } + }.bind(this)); + +} + +window.addEvent ('load', function(e){ + if (!$('ja-botsl')) return; + var divs = $ES('.moduletable',$('ja-botsl')); + var maxh = 0; + divs.each(function(el, i){ + maxh < el.getStyle('height').toInt()?maxh=el.getStyle('height').toInt():''; + }); + divs.each(function(el, i){ + el.setStyle('height', maxh); + }); +}); + +switchFontSize=function(ckname,val){ + var bd = $E('BODY'); + switch (val) { + case 'inc': + if (CurrentFontSize+1 < 7) { + bd.removeClass('fs'+CurrentFontSize); + CurrentFontSize++; + bd.addClass('fs'+CurrentFontSize); + } + break; + case 'dec': + if (CurrentFontSize-1 > 0) { + bd.removeClass('fs'+CurrentFontSize); + CurrentFontSize--; + bd.addClass('fs'+CurrentFontSize); + } + break; + default: + bd.removeClass('fs'+CurrentFontSize); + CurrentFontSize = val; + bd.addClass('fs'+CurrentFontSize); + } + Cookie.set(ckname, CurrentFontSize,{duration:365}); +} diff --git a/templates/ja_purity/params.ini b/templates/ja_purity/params.ini new file mode 100644 --- /dev/null +++ b/templates/ja_purity/params.ini @@ -0,0 +1,15 @@ +logoType=image +logoText=Joomla! +sloganText=...because open source matters +ja_font=3 +ja_screen=fluid +ja_screen_width=97 +theme_header= +theme_background=lighter +theme_elements=black +horNav=1 +horNavType=css +rightCollapsible=1 +rightCollapseDefault=show +excludeModules=38 +showComponent=1 diff --git a/templates/ja_purity/styles/background/index.html b/templates/ja_purity/styles/background/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/background/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/background/lighter/images/arrow.png b/templates/ja_purity/styles/background/lighter/images/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f0b3c34adf662eb0bd9ac42db37ac705eea346 GIT binary patch literal 149 zc%17D@N?(olHy`uVBq!ia0vp^%s|Y_0V21rUp4_qNtU=qlmzFem6RtIr7}3C<R_&n zc;+Uirv{}arc@T5Otk?jVhivIaZO80`~Uxcv3KMOpa@e*kYDhBhNs&NynsA$PZ!6K rid#tu2`MQF2@HvB9A{5(2qZ8t_%N{Nh3BXMl`wd^`njxgN@xNAg5xR{ diff --git a/templates/ja_purity/styles/background/lighter/images/b-bl.gif b/templates/ja_purity/styles/background/lighter/images/b-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a7ad5b8d1e16949429a5bb276642d6fed5ec57 GIT binary patch literal 406 zc$@*20crk6Nk%w1VF>`b0<!=B?(XjT`ug|x_v-5E{{H^`{r&6f>+taK_4W1q{QT+Z z>Hq)#000000000000000A^8LV00000EC2ui00{uP0ssX6P_0R)tn}igaj##tStD15 z<cON;>9+8;&aYg1H<*ht-s?Y}Etnb_eMewYh-@mI%%?O;EkdnRY?Zatdbw9{R=lMV z$zO99%~prqV|aO&rnl|#`Z<5!<NtnvYkY)&gNAR2af)+-iH?hqjfawYl$Vc~k(!g4 zo|~VYprfLtmZ7Jlsiu9LtFNu7v8uDIg_X6ix30OpyRyHu!M2RL#lFYG#<<GJ%*oKt z(!9;p(bU(#*}~hz)7szM;ojKe%jM|c>Ei3;>hJ9E?(y{V_UH2W_4@bD?fd}!<rBD% zU_Wc-3<gB_PoYDG10fcac(B_-iw`kUyqIuf#*P|8LxLRH(4$F_B~eCHIgw>Wk}F}h zl=(6xO^!Bm#?(2JXU&~Jdj|a}v?!|q1V#W5Fd~401S1eEEwCZL0RsxMDu@68J7|#J AtN;K2 diff --git a/templates/ja_purity/styles/background/lighter/images/b-br.gif b/templates/ja_purity/styles/background/lighter/images/b-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a337fb622a430f9dfcadb6b4dfd44e8f1bfe01b GIT binary patch literal 2164 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 diff --git a/templates/ja_purity/styles/background/lighter/images/b-tl.gif b/templates/ja_purity/styles/background/lighter/images/b-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c627a81cbaaea1d0662ce71d1df5cd4703f3aa9 GIT binary patch literal 131 zc${<hbhEHb<YbU%*v!E2?%lgzzkYrH{{7XfSO5O~`}_Cr>({S8eE9J7>(@Vj{=9to z^8f$;3`junCkvR?0TCcG7+4Gn))w^a%2HJ5n$kF_M&7-SxzOw8t}WU%r&RvlT=V<Y Yk9Xf3=6x{l5lufH^=aFgok|SW0J#Q1HUIzs diff --git a/templates/ja_purity/styles/background/lighter/images/b-tr.gif b/templates/ja_purity/styles/background/lighter/images/b-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..8745ae441508e6b477212eee8f2c8f9865cadfd7 GIT binary patch literal 336 zc$@)H0k8f?Nk%w1VHg4*0J8u9?(XjT`ug|x_v-5E{{H^`{r&6f>+taK_4W1q{QT+Z z>Hq)#000000000000000A^8LV00000EC2ui02l%v000F2P{~QFy*TU5yZ>M)j$~<` zXsWJk>%Q=09KmAWc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4u%@qUyM0LyUdcWYXcuX#v zp9w|n%x=5i@VI<VhhppaynfH``||_?e}jaDhKGoR3W<!3j*pO$MT?S^mY0~BaFm*z zo}ZwhLY$(drl+Wkq^Yc}uCHgSu(Pzawn(zKy1Tr!xxK)_!k)jw#>dEq#mUUg&T-4n z($myj(bd@5+D6yg-rwL0-Qncr&g16k>cHsh?(eYe@bmPd^7Z)nmiPMo{)qhk2^_d5 iAi;wO-xy5Duwj^m4kJpG0&$|ni?}dq+_*(S1OPiZ@546$ diff --git a/templates/ja_purity/styles/background/lighter/images/bb-bl.gif b/templates/ja_purity/styles/background/lighter/images/bb-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..2cb1416b63ebd548b2e991f7e6f49d8d3a79ecef GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7|Ns97Za!nqm?crNm_L8MP1i=hsXN-YpJzy$$$$+g{$v5u zIv@gM1_MjBz)8>5do5m{-Tgm7qc0_MUdF0*Ij{E>=$tRfy<f5Jea-v-2No1~=t%XS zSW<K{$7=qC6(wG4qt@S8Q+E1o)&2(?Dtz>2pMSBX>TKTb`yY1H_^rSF{>PrW^Y4HE YS7ni4m0)BNXJGGOU}R$!5oE9i0EW6vivR!s diff --git a/templates/ja_purity/styles/background/lighter/images/bb-br.gif b/templates/ja_purity/styles/background/lighter/images/bb-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..6901701494e76952dc236ce19080ae07206dbc7b GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B|NsBP+vf~zo&#u_7<8kDx6i=Y=1!HkKa8>fW|;s0 z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3j&;ofQbVHU}6CPj7Y!%1^@s+1OPixf_zs1 diff --git a/templates/ja_purity/styles/background/lighter/images/bb-tl.gif b/templates/ja_purity/styles/background/lighter/images/bb-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a4aa02a244f49527e9f970ac3dd6a6b320ea2d6 GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!Ci;N~;tj9L8o^V_$dx9Qp_UADw;>W=^a|1+e`WWWX#f3kpS s9S{LBgMmfngG>U~t`|IK93Mz9CLPL{m$7PH&g*>zI_FEyx-wV;03}o*TmS$7 diff --git a/templates/ja_purity/styles/background/lighter/images/bb-tr.gif b/templates/ja_purity/styles/background/lighter/images/bb-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc43072245f26d5701d9b933f9cba9ed2f46c294 GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2|NsBPx1aOp&u7k<<u`Rl`}Xq(Za$MPTVmg{i6Lz!0|rq1 z$pWTzKm^DP29}KmCp}m1wRnAY_x}WqzLd;)8LQUiyx#YrM1YOqNX5GMHShl)SWvJ- z>rTgsB}FH5tmX$?QxI4iwf@GMvTE0Y{SP)&_^@%Gda<SIY~JqsA9mFEt-t;L$DX?L z?|=VqXl!b3X>Duo=<Mq5>Fw*EFmcl4DO0CSpD}aR>^XDi&0nx^(c&dbmn~nha@FcJ zYuBycuyNDoEnBy3-?4Mo?mc_=?LTnv(BUITj~zd8^3>@wXV0C#aPiXRD~kmgtN~dG Bg!cdd diff --git a/templates/ja_purity/styles/background/lighter/images/bg-bl.gif b/templates/ja_purity/styles/background/lighter/images/bg-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..da55a4d456523e01b2a717cedf7f23d4d8139751 GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7|NsB@Uf!%-meIT_fAPVo?Q2VB?dm#sb$j*FGzM%y@h1zI z)&UV9GZ<L11x|Xd-fQvt?C$>w8ht65^D<Vg%Xz)8K<9i(?){2&?`z)wKd_*{Lr1Fr z#FC<uIac#8tSIqX8@2w%nzGYxtM)(GP~oFD`}~V7RcG^d-~X_q#&7-Y_doX3oqzxP Yzbdl?n*<}1I0JhJ10xHoh#-SC0F6;lwg3PC diff --git a/templates/ja_purity/styles/background/lighter/images/bg-br.gif b/templates/ja_purity/styles/background/lighter/images/bg-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed15bcc1ed53469e5fcdb100e1dfc8c92f02f660 GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B|NsAot#o~+XyEGG-s#!F)whAEZJfJ|qrsJXrDgyC z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3kIBcfQbSOU}6CPj2Hj{1ONa)1OPj>8Gft) diff --git a/templates/ja_purity/styles/background/lighter/images/bg-tl.gif b/templates/ja_purity/styles/background/lighter/images/bg-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4b5bc446af92d9b92040c6579014f7cad3e0b5d GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!Ci@8!+rRr#}abuB(PwRTxX=lZgPSGWKF|G#=^8Ur?<_>%=p s>wpN584N5kA7l);cD;}|!}xFpL(;*Fc^RwL<-FckpmV<DtSf^x05(Y^q5uE@ diff --git a/templates/ja_purity/styles/background/lighter/images/bg-tr.gif b/templates/ja_purity/styles/background/lighter/images/bg-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..d49b88abd9e975afd3405777fe50a6e35d58e44a GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2|NsBa^<}loG9J9TeedPXgIBjVugagZyJzvisntu<7%+h1 zPZlt(10q0XFtBViIO(~1uf^-LyZ<L>^rd9Z%UHE8=k>l1A_^=FM=I96uX+Ffz=DDu zT6a25EGasfV>LfuT7tmZsP#A2lvUdn?0>MK!iP=z)Qc@uXY+R7|FEORZ~g7}Klap} zfB*Y`Lt|5OOKV$uM`u@ePj6rUgo%?TPnkMx`iz;gX3v>BZ~lUXixw|gx@`H1m8({- zS-WoihK-vxZ`rzS`;MKvcJJA{Z~uXVhYlY(dhGa#lc!FfIeYH>g^QOiUs){3U=08u Cv4{5n diff --git a/templates/ja_purity/styles/background/lighter/images/bl-bl.gif b/templates/ja_purity/styles/background/lighter/images/bl-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..7368973552fd57d4a0f688fa023a97c4d70e682c GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7|NsAI&z_w>e|~auvYVS*VPT=Esj0oay|J+|12&-elLbuc zfC!Ko3@q6KCp}m1wRnAY_x}WqzLd;)8LQUiyxv!!bG{_^e#N@?HShl)SWw`hBh`Om zNzut1tN9mJlz6R;T7P3r+3B}c`yXtm@X?!n{>7H6vw6Gkf7nsuxBm9~AA9P~zyJMT Xm0f~af{{&}fvJOmk(EV6kii-N8*ob` diff --git a/templates/ja_purity/styles/background/lighter/images/bl-br.gif b/templates/ja_purity/styles/background/lighter/images/bl-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..17283fe5f42c92a3d566297b8111c1337bc3e565 GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B|Ns9zJw4CQ&&|!vadB}*Mn*L?HJ_iKWo2bEGcy1H z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3jv&nfQbeOVB!G)j935x0{{R(1OPiV6M3ru diff --git a/templates/ja_purity/styles/background/lighter/images/bl-tl.gif b/templates/ja_purity/styles/background/lighter/images/bl-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..864ef17224fdc76d5d6c6c59b4082f21215cad4f GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!Ci_Uu_xQ&W3;`{d;0`Sa%&78ZJXdj9|a-`Log0UJ>K$pWTz rKm^DP1{RqQG66ihUI?6Vd~kyy=}^YJj8*G$UhgZ=IbU+tmBAVSYPKJ( diff --git a/templates/ja_purity/styles/background/lighter/images/bl-tr.gif b/templates/ja_purity/styles/background/lighter/images/bl-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a04f60a576ae50cfc2e5ca83b0ad96d9a257f32 GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2|Nnn`d;9a}&!0Vewy?0!)6>(`)O7y*`KhU?#>U1B7(nqS z3z*gc5g;=dST-7*^jy8y;`Q0x{}VL&QZnadtXh}zdf$f-0cM6H73<#Dy#Ie-LBS5I zI~^yM6rIemnjbLDQDAM<`WtJ?s$C2AKiE*=!^VE<#g?kGdAsj_*iqxR{`UJHd+N@= z|NXzAv8lPGwXMCQv#YzOx37P~#7UE<Or17;#>`o>=ggfqf5E~<i<c~2wtU6PRjb#m zUAKP2#!Z{IY~8kf$Ie~5_w3!b|G>dRhmRaRcKpQ2Q>V|IJ$L@X#Y>m3EEZ(21^@@V Bf<*uT diff --git a/templates/ja_purity/styles/background/lighter/images/br-bl.gif b/templates/ja_purity/styles/background/lighter/images/br-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..ef5a74fa95b7130e8f2f6f4128ca7e79a17809a5 GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7|NsB*4;*;d-hNa<;<BILVSfGt%*^L(Z1yu?2Z}#gz_bpC z0GYwSk}Yu3bM;<}*JpSCPtfQ~$()z5YF*CjeFZw_OLFg5tb1Sc{{Mjm1s*z5{U??b zoy@VCe_=(5*V?G{H`bJ$ep|Kw!G;PSz1inqY^ge%xBLEw9W{RIZ@>Ssr|$gw-~Uxv VCD<hx*~A%`Iv5yPm_-B`tO2d%ObY-2 diff --git a/templates/ja_purity/styles/background/lighter/images/br-br.gif b/templates/ja_purity/styles/background/lighter/images/br-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebcff7d1db5ecd48b38dcc3dcc11f912a9943840 GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B|NsBO3=HtY!^IdF&p$uF0|ViQhws3^(@svm00000 z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3jv%+fQbbNV4?v4j5q)S2LJ#-1OPkl;CcT5 diff --git a/templates/ja_purity/styles/background/lighter/images/br-tl.gif b/templates/ja_purity/styles/background/lighter/images/br-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..310f46969b386b7dfa94721e0667ed850267a0e6 GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!E2{=k6)%*==R`5(5oU-t7mCM|u=#^(S3|N9xR1I3>#U|I)6 pfXrZEk@+Cwz_sfI&l$%DGZ>Q&Wz5T1wJzuNz5<=|C1+h3tO2!~AUyy8 diff --git a/templates/ja_purity/styles/background/lighter/images/br-tr.gif b/templates/ja_purity/styles/background/lighter/images/br-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c95a76ad12d6980086123a3d4ac628a95deb6e9 GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2|Ns9FhYw%&^E)Ojecs;wFhBpp_VxqJ%<m5z*w26kDE?#t z(>fpmWCjDvMuU@{tM^*GKD+yWf<|9T=Ddtm>vCT2`(VPs!EmHv-TRvN{|_uE*kN?1 z<HVAplQ~xN1Fk6wtc_ZKV@+ALYQg>o8!CL*#8180Qgt?O_x%q$YW&vUe*a@n-TC*w z|2H%?HMg|3wRd!Ob@%l4^-q{MY4Vh*)27duIcxTux%1{PSh#5MlBLU*uUNTi^_sQo z)^FIjY4et?+qUo6xoh{Hz5DhbIC$vrk)y|spE!By^qI5g&R@8A>GGAuf(+IG%V~od diff --git a/templates/ja_purity/styles/background/lighter/images/bt-bl.gif b/templates/ja_purity/styles/background/lighter/images/bt-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..c25104734be2a500a40c908e513a6bb81a46cb1e GIT binary patch literal 407 zc$@*30cie5Nk%w1VF>`b0<!=B_V)JT;^O}P{@vZ(`}_Ol<>meT{q61T^YioD+uPaM z+5i9l000000000000000A^8LV00000EC2ui00{uP0ssX6P_0R)tn}igaj##tStD15 z<cON;>9+8;&aYg1H<*ht-s?Y}Etnb_eMewYh-@mI%%?O;EkdnRY?Zatdbw9{R=lMV z$zO99%~prqV|aO&rnl|#`Z<5!<NtnvYkY)&gNAR2af)+-iH?hqjfawYl$Vc~k(!g4 zo|~VYprfLtmZ7Jlsiu9LtFNu7v8uDIg_X6ix30OpyRyHu!M2RL#lFYG#<<GJ%*oKt z(!9;p(bU(#*}~hz)7szM;ojKe%jM|c>Ei3;>hJ9E?(y{V_UH2W_4@bD?fd}!<rBD% zU_Wc-3<gB_PoYDG10fcac(B_-iw`kUyqIuf#*P|9LxLRH(4$F_B~eCHIgw>Wk}F}h zl=(6xO^!Bm#?(2JXU&~Jdj|a}v?!|t21Wz`FakgT0V56sKtNyvfC2*)XjKpa06VsP B+p+)v diff --git a/templates/ja_purity/styles/background/lighter/images/bt-br.gif b/templates/ja_purity/styles/background/lighter/images/bt-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..58a4f020af1f12ff2b9f0d7e176d3ffc98a1df04 GIT binary patch literal 2166 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 diff --git a/templates/ja_purity/styles/background/lighter/images/bt-tl.gif b/templates/ja_purity/styles/background/lighter/images/bt-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..91a13df5a33f956dc7f75153de65040e99856d00 GIT binary patch literal 145 zc${<hbhEHb<Ydrb*v!N5?c29Uj~@N|_wVlAyT5<`e){z3-@kv~zJ2@o^XJ>QZ{NIm z^FJ6cz<}aU7DfgJ9tIr{2V@2Vi(SD<&((V^UZ2(0XjalXEvUf4%F-mt5S|pH(tA}b o?xl$RPoW1+9(yD+dzKijjL@6ymlk5x>bCasnzGYx)sz{m0XzRfdH?_b diff --git a/templates/ja_purity/styles/background/lighter/images/bt-tr.gif b/templates/ja_purity/styles/background/lighter/images/bt-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..75725ff85c180156492b97349b83a6d04bd9de50 GIT binary patch literal 433 zc$@*T0Z#r$Nk%w1VHg4^0J97L_V)JT;^O}P{@vZ(`}_Ol<>meT{q61T^YioD+uPaM z+5i9l|Ns900000000000A^8LW000aCEC2ui02l%&000F4aLGxly*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@c30huiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l63<G0CJd_nwv2M z2muG2qNAjx83F;9rmL*2ZvX+Vva_^c1_`yfy1P*dyuZM~LB7Jp#>X(k$ji*lAIi?r z($Ub<*4M$+*xTH)+TGycoZsT*=56HX>g!|a?C<bd?(y{XPxJQq`bGHr{{K7r0USs$ zhQNXd6P`Gzu%W{a3K&S7NU@^Dix@L%+{m$`$B!UhLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! b!-^eCwyfE+Xw#})%eJlCw{YWLjQ{{UpcD4f diff --git a/templates/ja_purity/styles/background/lighter/images/bub1-bl.gif b/templates/ja_purity/styles/background/lighter/images/bub1-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..acf2001d48ebf79a07d3424d2ad626eefb20ce6f GIT binary patch literal 1756 zc$~G5`#;kQ1INGLZSD>p%Doek%fZM!ax8VyP-l@#^i(dnL~iAhPMKTDT;t)`ie;9} zbq!++bKDN=aq2ilxokVa7{lf=7JHs^{)hAV;r)KSfBd*3&pDn9z63DA4*;;axw*T$ zdvI{Dv$ON{>sKC+x4gW(zrQaQi?_G8H#RmF78bU)wnQS)-rnBQ($ehgET7L`Sy>SZ zg{!Np0)b#=W@c?|ZE<mNeSMwF<#ITjFJHc}+3flGc@~Q$kw}1la{9Zlzis{({`v$+ zOBk7;m8=R3Uz<1*<5d0b)uySTcFA~SGSk-&Gu)i&b#QHj+xCa9ADyLVuYU0;lPBW4 z{8r5uqc5gsWFxb3G9KqX$iv(#C`>9Yi7zdSEw6~G#NIq}<IeND&uY@DBZ!2$+x2m^ zO;=i4qZ?jOs{9(Mop?H~y(jW@pI86DHOBDEu8z@%BV&O>qvOLL1}6GG^-R%cs4NPn zb*^c?ev!CT!+XApU8~qA6P9ch?qGIv#X0-g64ld~?R>4%QBY+!IoVu&Lbklr>HL5g zgCD}AExpOF-s>MNDssFAd-Ax}u;kDM(&#JllTi<oV?B2d`*6Ix?38COQ-m5!Nx5g5 zJQImBvAm4PQY{GoW6V3^!r<9|e>AKAz1puX@jWfa%&igGJ(T8A&}c`Qe0R%-S<vJ_ zWwY~2Jqw#p(z)xTab{tQbMHF9RP!oob?FzW@O<7DkzI!YeFd1p<(NK_-#5tE&RzZa z^75z${K?(WrDB466})RNY`Lt-KV(eT$zwH#9Nbf0iCc)pbtfEr)Or??P)(tHd(`O- zS3sbZIYjJDFWr6hff!zwSGK*~#G*fvU{9@x$P>($uJrG3i`&<xhSHr~WB0pucniIB z*EmVHWa}{dI#k+^eM3gQoE@xS^pPE+Y_HA<RXgX$37hv#p1nDPtdQtO>f~+fM`<Mb z)kGX4CD%lm)s!2=SiDvzL|Y2%2{A{oDTG)%2$c}$qPjzfKkejDo8WFxL3o6;_BTwr z;5MOH`eTR&G0B%yar}M|ZQ}S(*GDys9)y1OH+mScTw#<Ry*FWmj+56k&bXr;V4Ruq z-Ot8Z_njt<v(r5^O>(jV156%yW~LI8F^L+_3m;=OP4k{Sbu`6P&;si7Dn}<x3vj=P zObd&=wMYd7K`N=J9@0fBZc^PPm5>dtG(07Km)1~9aqDU*s|?;WEAI|GX-*h+aw0Yl z-uh%-@mrdf#n0n;S1c+gu$30rDbgnk9E+v}e>OLI1^#^TbEO1c#asRauU^~JvcwDJ z11(?dXk#sFx&mn}wG!{omUUogVCzdLCatwjAq#6o`lgiD*sDy@CX){Lr;!`9#%bin zBjP=B)3G_H6MgzRLDns%&QsQHmYzB`?KVL{HXRPpI2)?-{VAJHSB#Er*BM-pEzP|F zXG`~_Puaftk*Q<X?K2f**W=H_+4UNmy|H6lSD3aN2-dl3|4V4lPxk%M&d)lAZhPuB zh8JY|Q&Uq)sn)G`SRI#UxyPfa>{PYplxfZ0)f0c}n!&B-^qiZmzZm+&3Z@gXBXJ9z z;Mj|Kb5H(ju2m_VvSdq$r7SyAnkl?f{d~#_VjM1MTRl4$+r~dHY;Ifgg08i#qtq<h zH!dHGYZnCAw6qJahVrRrt1z7oWW4am$|gMFfXd0ZUeqWW^;mP+Vy7#)O!6?dA8z6L zS@-rnMie~|htCyli+|9IXNcuw(Gp-14USnrv;hFB%?89t8K5rehU7rQ97NzDz<B^F z7Y~43Wu-%@Xo#H&Lg`y}w(%xjhK_dw@#{HO`7abBOwOq20T6l3U?_wQ$mp>jyBeb9 z{2ir~t5CTJuNu{gUk8k=PsnLa0@7LxG)xf>IxC{p?{Uv4slJyxX9z&jItQ(>8~Kr5 zq1yjJWGICJKzwZoWFd0UjKAB8IRcvl2e@d!_6C5iCFsc@e|6J-TI`8JOR1}5$aw*U z#rdI!G4B|s;C(r;c*apR#NhcfK`CC5Xu_GymXBvcb=DaWzmZX2Z+xEfCQJ8fF5sHz z4QYBygr|%!uXPCIWFr}{Lx{H_s%lV!Fb2#w6&<LA1_8v&6LrY{-U<|AhjgK!eDT|Z z1XMnlY6RG#(8|dmI9;ZvJgj*!@_Rf0>y&k(clEovjRR5$gr_b_>Lx@L>n4lv7DWLk zy)Qx3BN5>c6dHmm0sn<&01N5>^t>LZfd-&fGMUnvY)}ON+)Lxp3aI#6lcaP1FX#UO DQF}X5 diff --git a/templates/ja_purity/styles/background/lighter/images/bub1-br.gif b/templates/ja_purity/styles/background/lighter/images/bub1-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..37651c153c9bab68c2c242f9b554dd6281794145 GIT binary patch literal 3141 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 diff --git a/templates/ja_purity/styles/background/lighter/images/bub1-tl.gif b/templates/ja_purity/styles/background/lighter/images/bub1-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..6262df923849f21ec26b206dc1532a536ad13cca GIT binary patch literal 368 zc$@)n0gwJiNk%w1VNn1X0K@<Q^z`)k`T6VX>+0(2{r&y>`}_9x_UY;A`1ttd=H~PB z^X%;G@$vEA-rn%=@Z#d)<>lq=?d{;;;P3D6<mBY~`ug?t_5S|;{QUg)_xJz*{{R30 z000000000000000A^8LV00000EC2ui08s!L000H;peBx&wIo!ku59bRa4fT<=rq(3 zO?>bFz@TtQEdE9X0fhl*0xZy|bV{vSuh^_qgb^H?P(x-+E}PHjw0g}pi@ab1B0#U$ z@A$la&+q&HcNz*0U>OJ%1qB$3jE#<ukdcy;l#Ln?6Hgfd6&M5r7onn~q@|{(sHv)> z1riDXauuL8w6(UkxVgH!3<;W@7rVm4#Kj{EU$L{s%+1UK1F!)F1kTpiy3hcd)Y#tN zZ_%5c;N{lZ<H6?Z#pnST>g@8_;_vbE__glv`Tex}_x$ApC{Q55g8dF6#HVnfyoL_f OL5x^#BE@eZ002A4ZOkzM diff --git a/templates/ja_purity/styles/background/lighter/images/bub1-tr.gif b/templates/ja_purity/styles/background/lighter/images/bub1-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b55acbf964a24c18ce37c27216cda2bc35c72f6 GIT binary patch literal 947 zc$@*V15Er!Nk%w1VcZ270K@<Q`1ttt_V)St`SbJh{r&yn;o<xH`}Fkm?d|R9>FMC$ z;Ns%q?Ck8_-QC{a-th47=jZ3^>+9v^<?in8^78WN=;-nB@#N&>@9*#T_xJq#{Pp$q z`uh6*{{H{}{{R30A^8LV00000EC2ui0Ne!`000I5;3bY^X`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE<o<q;kn@I-k&}bV{vSO9>3e!|i%7;IMd1E}PHjw0g~MyWjA*d`_?1 z@A$la&+q&HfPsR8goTEOh>41ejE#<ukdcy;lw%PU1qm5m9vhyYprN9pq@|{(sHv)} ztgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv(9zPL2i4UK3KL!#+}+;a z;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{Qds_00RmfNU)&6g9sBUT*$DY!-o*P z1qiUA8ifT2x^URYv7^V2AVZ2ANwTELlPFXFs$9vkrOTHvW6GRKv!>0PICJXU$+M@= zpFo2O9ZIyQ(W6L{DqYI7sne$%1qc9;f#QJy1uSsUz_qK_uVBN99ZR;X*|TWVs$I*r zt=qS7<I0^&x31m0c=PJr%eSxJzkmY^9!$8f;lqd%D_+dFvE#>(y&B*!)#`%=Tsmmp z%(=7Y&!9t#9!<Km>C>oFt6t5zwd>cgW6PdRySDAyxO3~?&AYen-@t<lA5Ofu@#Dyo zD__pMxpU402x#B{z^a4+oU&`*&b_<$@8H9WA5Xr#`Sa-0t6$H)z5Dm@<IA5<zrOwZ z`19-E&%eL_{{RLk;D7`cXyAbeCOBUI2hvej5dsh>DB*+@R%qdc7-p#9h8%Y2;fElG zDB_4DmT2OE1Q;Md09QHC!HF=&DC3MY)@b96IOeG1jy(40<BtM%FkJ>444{AkKqjf= zl1w(~<daZFDdm(@R(Ye44q_#Mm0Wh|<(FWFDdw1DmTBgh-7%PD0b8Q!=9_TFDd(JY z)@kRRQ>s~=mU#B*=bwNED(Iku7CI+`2JFeEp^P@_=%bKED(R$@x`(KuZC0x3rkr-_ z>8GHEisPjL@G0u4sHUpws;su^YIdZW`s%E-)@tjmxaJCFtc&XE>#x8DE9|hu>c?xQ z#U`ulvdlK??5f8;EA6z@R%`7rwP!|)?Y7)@>+QGTf~ak{<d$phx#*^Q-ni<v>+ZYo V#>*_b^44qbz4+#<>9HXI06P-hKVSd= diff --git a/templates/ja_purity/styles/background/lighter/images/bub2-bl.gif b/templates/ja_purity/styles/background/lighter/images/bub2-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..211c3464d80392d2ee838131bf265d99cb152ba9 GIT binary patch literal 1589 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 diff --git a/templates/ja_purity/styles/background/lighter/images/bub2-br.gif b/templates/ja_purity/styles/background/lighter/images/bub2-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d540ca2436d3adcd3873d38ba13bf96c76e791c GIT binary patch literal 2996 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 diff --git a/templates/ja_purity/styles/background/lighter/images/bub2-tl.gif b/templates/ja_purity/styles/background/lighter/images/bub2-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..bfb43b261d801b7eef8d19f0d2632118b5b690f4 GIT binary patch literal 271 zc$@(b0r37uNk%w1VNn1X0J8u9_V)Jl^z`@l_x$|)`T6<l>+Adb`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui08s!L000EMu(V05y*TU5I|U3A1W9S0 zXsWJk>#_|4%wTBWc&_h!@AEN$K(HtpkI1BQ$!t2Cjeu}LP*|_ntai)odcWN$fNB^Z z&gisy&2GEj@OC4?SSZYgynfH``~QG}f`4;$3J3=dii?bmj*pO$l9P~yc8HXjnwy-A zmWPR*qNAgqn53wwlBS`muCJ`GvZ}GOwxYGSx|zAVzLj*Bt-r*c!Jx&-i@nOf%+0&c V(6`dlv(?tH$EVr4*xjiS06Y4Fo>2e* diff --git a/templates/ja_purity/styles/background/lighter/images/bub2-tr.gif b/templates/ja_purity/styles/background/lighter/images/bub2-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..335419379c7179c418712973120bf012576d1aa8 GIT binary patch literal 835 zc$@)41HAl4Nk%w1VcZ270J8u9_V)Jl^z`@l_x$|)`T6<l>+Adb`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui0Ne!`000F4u*pfQy*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~J%xmF$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``=bE?3=9AbgNKNTii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sx{d(701OQa!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_R0bRzYPlg{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ@z zB(OkVfCdP1>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eL*$0S0ISxOt$i-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8jDnFhIcq1_>HCm`%I3?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PKxep+4 z4O=$)_weJ(pHIKO{rmXy>)+46zyJRL1}Nb0faIyiUTg#=sNjMOHt67k5Jo8BgcMe2 z;e{B6XW(lHX6WIEAciR7h$NP1;)y7xs3L?LwzuMoFvck3j5OA0<Bd4xs3UJJcDUn@ zKn5w~kVF<~<dI0C*rR(%HtFP(P(~@`lvGwZ<dRlqspXbjcIoApV20TomSUD^=9y@w zspgt&PDo~(aK<U;oOIS{=bg8`iRYet_UY%JfCgHko`M!?=%I)vs_3HD5z6SJkVY!$ zq?FF-Xr-8Ds_CYjc3R`5o`x#wsHB!^Dt@4zs_Lq&w(9Duz@-Z7thCl@>#d8*itDbt N_Uh}eUM?8{06W`I>S_Q0 diff --git a/templates/ja_purity/styles/background/lighter/images/bub3-bl.gif b/templates/ja_purity/styles/background/lighter/images/bub3-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..4908ff051a5723eb772795dbda164b40d420aec6 GIT binary patch literal 2105 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 diff --git a/templates/ja_purity/styles/background/lighter/images/bub3-br.gif b/templates/ja_purity/styles/background/lighter/images/bub3-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..444247793820f4d3cac90b4e323401545ff0c4cd GIT binary patch literal 3196 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 diff --git a/templates/ja_purity/styles/background/lighter/images/bub3-tl.gif b/templates/ja_purity/styles/background/lighter/images/bub3-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..6262df923849f21ec26b206dc1532a536ad13cca GIT binary patch literal 368 zc$@)n0gwJiNk%w1VNn1X0K@<Q^z`)k`T6VX>+0(2{r&y>`}_9x_UY;A`1ttd=H~PB z^X%;G@$vEA-rn%=@Z#d)<>lq=?d{;;;P3D6<mBY~`ug?t_5S|;{QUg)_xJz*{{R30 z000000000000000A^8LV00000EC2ui08s!L000H;peBx&wIo!ku59bRa4fT<=rq(3 zO?>bFz@TtQEdE9X0fhl*0xZy|bV{vSuh^_qgb^H?P(x-+E}PHjw0g}pi@ab1B0#U$ z@A$la&+q&HcNz*0U>OJ%1qB$3jE#<ukdcy;l#Ln?6Hgfd6&M5r7onn~q@|{(sHv)> z1riDXauuL8w6(UkxVgH!3<;W@7rVm4#Kj{EU$L{s%+1UK1F!)F1kTpiy3hcd)Y#tN zZ_%5c;N{lZ<H6?Z#pnST>g@8_;_vbE__glv`Tex}_x$ApC{Q55g8dF6#HVnfyoL_f OL5x^#BE@eZ002A4ZOkzM diff --git a/templates/ja_purity/styles/background/lighter/images/bub3-tr.gif b/templates/ja_purity/styles/background/lighter/images/bub3-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b55acbf964a24c18ce37c27216cda2bc35c72f6 GIT binary patch literal 947 zc$@*V15Er!Nk%w1VcZ270K@<Q`1ttt_V)St`SbJh{r&yn;o<xH`}Fkm?d|R9>FMC$ z;Ns%q?Ck8_-QC{a-th47=jZ3^>+9v^<?in8^78WN=;-nB@#N&>@9*#T_xJq#{Pp$q z`uh6*{{H{}{{R30A^8LV00000EC2ui0Ne!`000I5;3bY^X`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE<o<q;kn@I-k&}bV{vSO9>3e!|i%7;IMd1E}PHjw0g~MyWjA*d`_?1 z@A$la&+q&HfPsR8goTEOh>41ejE#<ukdcy;lw%PU1qm5m9vhyYprN9pq@|{(sHv)} ztgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv(9zPL2i4UK3KL!#+}+;a z;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{Qds_00RmfNU)&6g9sBUT*$DY!-o*P z1qiUA8ifT2x^URYv7^V2AVZ2ANwTELlPFXFs$9vkrOTHvW6GRKv!>0PICJXU$+M@= zpFo2O9ZIyQ(W6L{DqYI7sne$%1qc9;f#QJy1uSsUz_qK_uVBN99ZR;X*|TWVs$I*r zt=qS7<I0^&x31m0c=PJr%eSxJzkmY^9!$8f;lqd%D_+dFvE#>(y&B*!)#`%=Tsmmp z%(=7Y&!9t#9!<Km>C>oFt6t5zwd>cgW6PdRySDAyxO3~?&AYen-@t<lA5Ofu@#Dyo zD__pMxpU402x#B{z^a4+oU&`*&b_<$@8H9WA5Xr#`Sa-0t6$H)z5Dm@<IA5<zrOwZ z`19-E&%eL_{{RLk;D7`cXyAbeCOBUI2hvej5dsh>DB*+@R%qdc7-p#9h8%Y2;fElG zDB_4DmT2OE1Q;Md09QHC!HF=&DC3MY)@b96IOeG1jy(40<BtM%FkJ>444{AkKqjf= zl1w(~<daZFDdm(@R(Ye44q_#Mm0Wh|<(FWFDdw1DmTBgh-7%PD0b8Q!=9_TFDd(JY z)@kRRQ>s~=mU#B*=bwNED(Iku7CI+`2JFeEp^P@_=%bKED(R$@x`(KuZC0x3rkr-_ z>8GHEisPjL@G0u4sHUpws;su^YIdZW`s%E-)@tjmxaJCFtc&XE>#x8DE9|hu>c?xQ z#U`ulvdlK??5f8;EA6z@R%`7rwP!|)?Y7)@>+QGTf~ak{<d$phx#*^Q-ni<v>+ZYo V#>*_b^44qbz4+#<>9HXI06P-hKVSd= diff --git a/templates/ja_purity/styles/background/lighter/images/bub4-bl.gif b/templates/ja_purity/styles/background/lighter/images/bub4-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a97b3444971b9441f66a5703da0d95ed343845c GIT binary patch literal 2052 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 diff --git a/templates/ja_purity/styles/background/lighter/images/bub4-br.gif b/templates/ja_purity/styles/background/lighter/images/bub4-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..c447edf623d897a70b1f00a369c2fd04f0fc07bf GIT binary patch literal 3052 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 diff --git a/templates/ja_purity/styles/background/lighter/images/bub4-tl.gif b/templates/ja_purity/styles/background/lighter/images/bub4-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..bfb43b261d801b7eef8d19f0d2632118b5b690f4 GIT binary patch literal 271 zc$@(b0r37uNk%w1VNn1X0J8u9_V)Jl^z`@l_x$|)`T6<l>+Adb`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui08s!L000EMu(V05y*TU5I|U3A1W9S0 zXsWJk>#_|4%wTBWc&_h!@AEN$K(HtpkI1BQ$!t2Cjeu}LP*|_ntai)odcWN$fNB^Z z&gisy&2GEj@OC4?SSZYgynfH``~QG}f`4;$3J3=dii?bmj*pO$l9P~yc8HXjnwy-A zmWPR*qNAgqn53wwlBS`muCJ`GvZ}GOwxYGSx|zAVzLj*Bt-r*c!Jx&-i@nOf%+0&c V(6`dlv(?tH$EVr4*xjiS06Y4Fo>2e* diff --git a/templates/ja_purity/styles/background/lighter/images/bub4-tr.gif b/templates/ja_purity/styles/background/lighter/images/bub4-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..335419379c7179c418712973120bf012576d1aa8 GIT binary patch literal 835 zc$@)41HAl4Nk%w1VcZ270J8u9_V)Jl^z`@l_x$|)`T6<l>+Adb`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui0Ne!`000F4u*pfQy*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~J%xmF$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``=bE?3=9AbgNKNTii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sx{d(701OQa!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_R0bRzYPlg{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ@z zB(OkVfCdP1>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eL*$0S0ISxOt$i-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8jDnFhIcq1_>HCm`%I3?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PKxep+4 z4O=$)_weJ(pHIKO{rmXy>)+46zyJRL1}Nb0faIyiUTg#=sNjMOHt67k5Jo8BgcMe2 z;e{B6XW(lHX6WIEAciR7h$NP1;)y7xs3L?LwzuMoFvck3j5OA0<Bd4xs3UJJcDUn@ zKn5w~kVF<~<dI0C*rR(%HtFP(P(~@`lvGwZ<dRlqspXbjcIoApV20TomSUD^=9y@w zspgt&PDo~(aK<U;oOIS{=bg8`iRYet_UY%JfCgHko`M!?=%I)vs_3HD5z6SJkVY!$ zq?FF-Xr-8Ds_CYjc3R`5o`x#wsHB!^Dt@4zs_Lq&w(9Duz@-Z7thCl@>#d8*itDbt N_Uh}eUM?8{06W`I>S_Q0 diff --git a/templates/ja_purity/styles/background/lighter/images/c-bg1.gif b/templates/ja_purity/styles/background/lighter/images/c-bg1.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e27853f35c9c866d763fba78a7cbd00174e7b0b GIT binary patch literal 105 zc${<hbhEHbyui-L(7?d(?c2Bi|NkrgWMKdS9S{MMVPJA->0f#JE&t*<TW)o4zPIQ1 zde%oC)1GxMdv$8tJMQD3e6D}%eg5m*_ka96T<u2|eeCejnto>4XU<-)<yTgH?NSwG HV6X-NeNZw? diff --git a/templates/ja_purity/styles/background/lighter/images/c-bg2.gif b/templates/ja_purity/styles/background/lighter/images/c-bg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d62dff625ea2e14f9073f851253a9ffceae1fe9 GIT binary patch literal 3895 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 BlPCZH diff --git a/templates/ja_purity/styles/background/lighter/images/checklist-bg.gif b/templates/ja_purity/styles/background/lighter/images/checklist-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..9e1e6ecab7ee8d5cb23a5e9406f6bc914082ff81 GIT binary patch literal 66 zc${<hbhEHb<YVAwXkcWRIdkU!|Nj+#vM@3*Ff!;c00Bsbfl0EbpK<oiJ7=16nJW8_ T78HBe2D7-$UzzI5$Y2csaT^oh diff --git a/templates/ja_purity/styles/background/lighter/images/cw-bg1.gif b/templates/ja_purity/styles/background/lighter/images/cw-bg1.gif new file mode 100644 index 0000000000000000000000000000000000000000..4dbadf22c350692ce0b531246c0fb454377e415b GIT binary patch literal 109 zc${<hbhEHbyui-L(7?d(|NsAQ-@YmSWMKdS9S{MMVPJCU>0f#JE&t*<TW)o4zPIN$ zf7>IEY0o;By*jn+9k=xXpX=XxpZ_}d{U1LMSNoAgA3J=srk`2%nX}hx`IS{)yUu29 Lzw>S#1A{dHJu@|@ diff --git a/templates/ja_purity/styles/background/lighter/images/cw-bg2.gif b/templates/ja_purity/styles/background/lighter/images/cw-bg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..34515d19550ec42d6772ed043bc1b08eff3f776d GIT binary patch literal 3868 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 UQlycJkh!8+P}JkI*D3UW0SsrUH~;_u diff --git a/templates/ja_purity/styles/background/lighter/images/cwf-bg.gif b/templates/ja_purity/styles/background/lighter/images/cwf-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..a75b5987f1d3d488c2195496fdf4e9ae4d5a5742 GIT binary patch literal 176 zc${<hbhEHbWMc4OIKsg2?Af!gU%&qN@#FjV?>~S3{PX9}`}gm^eEIV6<HwgTU%q<v z>i6&8FJ8QO^XAR3U%&qT{rm6VzyJULGY}0Ff3kpS9S{MslYv!t!DAEN!wd~GHI^hQ poG4^DXu!eb*zxF*e(RxR4;iPv6DcVtbFAiHSW)7&*3X&28UTx9OauS` diff --git a/templates/ja_purity/styles/background/lighter/images/download-bg.gif b/templates/ja_purity/styles/background/lighter/images/download-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..617e6635768b5587edbeef11236a4402b9c08916 GIT binary patch literal 1301 zc$@(h1?u`oNk%w1VIBY;0QUd@EQ<e$!~O|v{*S)@I+6b<hW{c@wK9$W3Q@ft9-09X zr(C4}03Ng%R<UWX|95?se~_zQss9vK$NBmBPM!bu_V$s!|9QFpm7AggIlCf*|3jDm z05H5sV!LCj|GmG#0X?!$lkE#~|4CM~Nt^#{vHv`i|GvY@8GZi<N~H;D{CctfBT=?A zQPkt}{|8(76M6sC>Hk}&|E|;j237YzgXw*{|8=_mcenp>wErD{{||TnR-^w_qW@8$ z|3#Sp2x0psh5ra+`@h=%%i#am>HjfK(&h61v(x{l%>SIl|MvL&g}DD&rT;dM|1gXH zjK%+Tw*OF{{|IFIfxiE4s_r6W(NLA{LTRORwD?Gl<OOK`Ltu-Dt^CL0{{T44Xnmwe zPq9a5y>7Grb$F9DIGhY~{{u()06Fi4!vB=A`^w78owoY~R>v1@`yqVqIeh0IOp$A; z|2=NvH-X+lY~d(I&PiOjyTHc+Q__&i|4L@PmBIf7QudtC|0#g&o5lYjan}S(^lPW= z0XXJ^zyASB^Z+Bb0&M=|<>sWz{{>R{JbCz`#{PP={|`;`f4cZwZ-{@s|2%~0U5NLH zx&H-G>bu+jgSP*_-T!QHzFedKaj^DWr26yp`bkc&i@yJ&%>U;0|M2ke)YRA4*xTIP z+yX@M08X|H6_9;{#!hXrZhewImj82qnKD<S$m0K?y8P(q>F)0DVyypmlG0?X|4W_! z9!s#a)BjqV=v<!uIbGVY(*K;HsH)EYm!h*`aEmv2=Q(Aj2|$^Ok)C&Zm1n5`7%{># zci$u>oV&cn6?^|gWROE(pK7rG9bwK2ZuLo7wgy=D@B9B2egAiWmwADfeu0^r(f^jr z{{m9H_xSq)NZ01`{{U3?D0$!j7qJy;)hbYk7kKwsrvGZ7{GZeRB6ZyYK;#2S=lA&h z_xb#l#s55j=m%f<jIH}}w*CV>qzX8y15w$X#{UCX&H+E-I&$PVcIFX4r!Il$7e%K4 zP4y;IxBvhDA^8LV00000EC2ui03HAy000R80RIUbNU)&6g9sBUT*$CtK~I{LC74LD z;>0q`8mdxYr-hM^AVao5mWmX^PrO8VJHoQ1OKNNsU}G4jj*B8VbLuSOB33vu3`fj~ zL8PeBqeNn;31=)QJ}*O}N}W0c7CZ(`7fQ=_35nOQU~^^a!r%eJJHlopS<80quU<16 zQ95LHVFx&&l<3t9sGcGV<`_Lf!=bLi4({3wSiG3efL(6B^)qyegEfYGYJg(Gxe_Kh zK@e@3@`8q-4A&B}Te40}4M!_tA0wav1q?F+guLjJ!4<b9OA6NVXTZR`N#z!7qF~~{ zlOQ@^h)@A!S_XYASQuDE5SN52S3-31icpS+lv^8`7l=Onoh5bY2z>!T@C3hPH*Sn6 z;lNe|9u)jQzyU#^u!8`kEpo;^AOurTDX&<;Ng5a6kb?srG$Dn60BFFB8Pw6xjXcFn zV2~`%Km&;$h1d{92^mtbffMT;I0Ze#V31G+U`Q}XHUUs^0gOG6V8Rm`R1-}eaeTlK z1PD}d4ir>G@r(>U%m@HE_KdTJL%<-Qiyu(fkb?(2kkHB-ZE#_VLjvK^fEL=MfrA5B z{;^FYqrf@P2@TK@fFvc*vJWb(nCRy~iC_^(7V&_Sf{u$8G|MpJpp$|xl^#?91kE_v L>8PYK6c7MAXNaCQ diff --git a/templates/ja_purity/styles/background/lighter/images/icon_list.gif b/templates/ja_purity/styles/background/lighter/images/icon_list.gif new file mode 100644 index 0000000000000000000000000000000000000000..05e019e32f3e2f1ccfd26b044fcf54812ffb0dc1 GIT binary patch literal 350 zc$}5b&nv@m9LMqZXW#F4?ML6$Y6o*zzLr+YceR~}L}|X;OwyF(BL9E`MNZ=&Gi=(v zTYenAk;9A#2M2fY!O7JXGaN+uQ7_GZ;Bk8%pFNRqOY5jiGTjCURgRA;mLzNmNQ+n# zQDk`L$S|x5NHL@Y7z~RNDjd3meTFo{3&*B_CyqUa$`wis3xw}?JaW8p<RqLB)(NFB zjtB-JP0$HDgk8b`Axrpr!~F$r3g8(WkKhmepYka(q5w75qV`1Qna+YeKYZ9x9<()0 zNQo7;Ex6kgNu$)yrqA-Tsq@p~^+Wt}U?X=o9*Kp5A#Li%m~03xE2L6#PMO!t9+&D? zU7oBtV)c3*szcYUQIo~zt2YdbDdrcQjpeda9P9JTc3YjzE)T`K!&<aA&_!*(oJxsK diff --git a/templates/ja_purity/styles/background/lighter/images/index.html b/templates/ja_purity/styles/background/lighter/images/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/background/lighter/images/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/background/lighter/images/ol-bg.gif b/templates/ja_purity/styles/background/lighter/images/ol-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b60139052041946ada6cb5a2e19638da03a0809 GIT binary patch literal 433 zc${<hbhEHbRAx|SxXQrr;K740U%ubFcmMO}Z?9gxe)Q<k!-o$aJb3uw!{>YV?tT3D z`SIf?FJHcX_3F)|M~^>z`1I-1*Jsb3zkK=X{ritkpFVr>;?<Wg-#&l-`sB&e`}ZHb ze*O0T{rhj;ynFrn&C{pPKYsl3{{5$i4<CK~`s421y9_h{ia%Mvv<`>>`H6w;oWsNd z50NH`iA{+jS}qd(i%P6yJQx<QDYIr0&<V*}F!8~x?M;3=DhlV^zkM`8w<_V`k9A5t z8qYs7RR;-_*H^L^yD;XpwQ;*j^-hv;W|W@P%fRR)G-DF4ljOW!b|vA(lQ=|I^s-2- zX%lJPP{7KxrE>F*bf)dQ^BH#Sk78YaI89{r@feonr=vNP7M)jKsx<e?0;Or^XE{$i zJ!NXo{(je%{T;!zI~o(qHZU|L=B_9zabjetYh$|gBUFOpanb{B2Q7JtiU6ZS4Z=(U JA6OX~tO2hqyE*^> diff --git a/templates/ja_purity/styles/background/lighter/images/sc-q.gif b/templates/ja_purity/styles/background/lighter/images/sc-q.gif new file mode 100644 index 0000000000000000000000000000000000000000..314d730e4dc6b8015ca6715b488294f4e7729229 GIT binary patch literal 142 zc${<hbhEHb<YnMy*v!Ll`SR8C=P&Nux%=$d^H;ClxN+mw?%jJ&pFVrwz@ZZ-PF=is zdHeRA|NsAIfC0syEQ|~cJPbM@4#*4!7VClqoeYyjmK>d)6urFVj(gSen+sQK37rZw q+VIA($M=EdcJVgWCUy}ck%PAlR|@e|NUQ4=Xnc?e(bi*Pum%92Av>S| diff --git a/templates/ja_purity/styles/background/lighter/images/so-q.gif b/templates/ja_purity/styles/background/lighter/images/so-q.gif new file mode 100644 index 0000000000000000000000000000000000000000..e41ff147620100a380de9da7017afe67b0b44662 GIT binary patch literal 139 zc${<hbhEHb<YnMy*v!Ll`SR8C=P&Nux%=$d^H;ClxN+mw?%jJ&pFVrwz@ZZ-PF=is zdHeRA|NsAIfC0syEQ|~cJPbM@4#*4!7K;fdi<;(y@@>3yS9Y;Z_d<{4N~P4ojcwi& mj+^Rl_0VqV`>Z)h{e~i+r_*BnP990d4vnM(4PNYm4AubSOggXt diff --git a/templates/ja_purity/styles/background/lighter/images/star-bg.gif b/templates/ja_purity/styles/background/lighter/images/star-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..6fb27ec53217fccefbf1d6e556295e2c2b3e36cb GIT binary patch literal 206 zc${<hbhEHb<YVAvIKsei^ytw;hYsDnd-v3-Q@?-z{`m3ZvuDpvoH+65(W8S04_>)) z<?!Ld&!0cPb?erjKYu=b`t<hg+h4zaUA%bl`t|GAu3h{0@88LjC;$HayKmpV|Ns9p zU;xFREMQs(M1bsMVD(N=>k}}Umu|`<+GQkhY{z2eBMr@VZplXty$^pl;nQ$JW$7Xh vHPN-*M<gf5xJ_^VTwwcml34hmnGUW=jExEc-E+9OSsYy)bhs7?FjxZsC>>?B diff --git a/templates/ja_purity/styles/background/lighter/images/sticky-bg.gif b/templates/ja_purity/styles/background/lighter/images/sticky-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..084a7188118e64813cbca2c0ca2b68ace4f32f68 GIT binary patch literal 1294 zc$^heX*d)J03De$ON$&i@|EzFa!)9w7=y5cbYFDs7rV7>aumDk`eHZ5Ce;pYtfSB| z6VX9J)-bh=D@mkb7>qF&W{jD)dOzN;_v5|yy|>-pcaz)Em4uaqSpq=`V0=CJp%A$P z??wm&sB+QfhS>|XmX^S02zCH1kVHZf*4@#8F&{u6m&t%mfCW4ODuCON_+sh^CcU|) zrUQ<Sg0*W~)YV06)&NaFHSiBW1L#02<f*_TpboeP)B<HtW&?%5M@XW8ZXge+!AvZK zM*ueFvw$urvmiVS^a7)pi31ve5eP#27Yt9w4wRa8`1puwc5sV-!icZ3hKzBltm)8H z+s2Wy%eX;mIcYoHS|bvPFyPMJxu`yDm*n0-%<S&JOolYSHu4w---_9-<+pChIDIwc zCFrq`mIpwd0lchCjpS|JCa5ijAaB6fc$$&U?dh3$lz^sHi~~D|ilQg(hSV___0<bi zyqB@6y7ZPd)z!(^P7ps-DQ>HVvm4@^g)bK3r&q;L(SH-Nl<Lyb2f@LR?yjWWRAE%n zc@F&^l?nR<&5z_wrDL9+(`i<ahN~2F595M*ySqO3_d}j0o12g+c?$3W-t^EHF`uuP znow}uOJk2?+zt3mIr<kT!-kt<KRh(V=W>BKQR52XEDvo4m<g*`wL+$7dysMg_#)|S zo}8SNcQ=&(nf326a;?81`^uWmc(N!sSXOtnwXyLni=}$)1l$7NV0y>jzg)bthw^;i zeoUXH=U$sEIsAgb5IpdIS;b(uY>=_m(auJJzo4)Dbk#;VD-jpi%@?kdzP6`lE_67I zZZcFfdd{V(#tq%6WF_Zj{T^S??I1gji2zoDqqHVh#&A)&xHKf%%x(3+Objv!bDyaa zZeLg16Z-G*^L^Lm=H?Wm&fsojWu1XMrSjb7Y9Gprn9Wb`mR9)riOQlX&Ia}T_YAm$ z**%Z%+`xo`R4itDdP2OgD={QLU_Kq!G=UR95x`v7{%Sdq@D;XS>FXy5BoOe8nIFBN zA(f=R{t%O1*pyCuC-aX8{=*@I)R)`KrsSnZGlT|SPf9wRe021G{2-(RCP$X=J}kSQ z#&mG4dv9wpWW};dqi#-2YF6{3hb&99PHHId$_(sYzK>S)#@OrdC+(lD2PxkchuIGV zntLXzkqiuNr7TP0(Y#HIlj6+{&!lS^yIAMvQjYmtUZ%0_nHT9H(=cZ5;Ns^8i-;t{ z#Jw5D4IHid(<BC8O=#W0SwS=_%CNQ2(B4iOE}`CwGTT-XNA=Kdk0Wd8Q)2fgr0ZU- zB59s~m3<{8R<n<n^65Kgo}L$#W;OOSv?*N2uu4gDbs9RNv1Cc$>WSCBmrQtiJ=A<Z z(X4BhkqI$kQ=?X)iH+uo<Kf|^OJ<GSNQ4FgQ<|)68pAWEU2F;czA?d>bV}PPkC~jk z#VGLX^3<GOVYs%(sU&}bTCJGi6?Q0s^()_P=*v<Ewy<eqRq^Toqx<JmvW-NJo*zlB z!uB9_wWtDba$vlEv!kB*^&q<lgXomScE$xdi{#!J-frxW%3zxV**Usv3rL+y4Sa0} zU#;4ec}`11ogGcEc=qP8uH~z<PVY8w(kM)ei}#~jT-tZF6YYcDiAlui5RSj44wIv? ZCCRojV7>9l^0CtV*zvMbH8sMP{{iU)_sReO diff --git a/templates/ja_purity/styles/background/lighter/index.html b/templates/ja_purity/styles/background/lighter/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/background/lighter/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/background/lighter/style.css b/templates/ja_purity/styles/background/lighter/style.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/background/lighter/style.css @@ -0,0 +1,361 @@ +/* BONUS TYPOGRAPHY STYLES +--------------------------------------------------------- */ +pre, .code { + border-left: 5px solid #999999; + background: #F6F6F6; +} + +blockquote span.open { + background: url(images/so-q.gif) no-repeat left top; +} + +blockquote span.close { + background: url(images/sc-q.gif) no-repeat bottom right; +} + +/* Quote hilight */ +.quote-hilite { + border: 1px solid #CACACC; + background: #FFFFFF; +} + +/* Small quote */ +.small-quote span.open-quote { + background: url(images/so-q.gif) no-repeat center left; +} + +.small-quote span.close-quote { + background: url(images/sc-q.gif) no-repeat center right; +} + +.small-quote span.author { + border-top: 1px solid #DCDDE0; +} + +/* Rropcap */ +.dropcap { + color: #999999; +} + +/* Tips, Error, Message, Hightlight*/ +.error { + color: #666666; +} + +.message { + color: #999999; +} + +.tips { + color: #666666; +} + +.highlight { + background: #FFFFCC; +} + +/* Note Style */ +p.stickynote { + border: 1px solid #CACACC; + background: url(images/sticky-bg.gif) no-repeat 5px center #FFFFFF; +} + +p.download { + border: 1px solid #CACACC; + background: url(images/download-bg.gif) no-repeat 5px center #FFFFFF; +} + +/* Check list */ +ul.checklist li { + background: url(images/checklist-bg.gif) no-repeat 0 3px; +} + +/* Small checklist */ +ul.small-checklist li { + background: url(images/icon_list.gif) no-repeat 0 3px; +} + +/* Check list */ +ul.stars li { + background: url(images/star-bg.gif) no-repeat 0 3px; +} + +/* Bignumber */ +.bignumber { + background: url(images/ol-bg.gif) no-repeat top left; + color: #7BA566; +} + +/* Talking box. Thinking box. */ +div.bubble1 span.author, +div.bubble2 span.author, +div.bubble3 span.author, +div.bubble4 span.author { +} + +div.bubble1 div { + background: url(images/bub1-br.gif) no-repeat bottom right; +} + +div.bubble1 div div { + background: url(images/bub1-bl.gif) no-repeat bottom left; +} + +div.bubble1 div div div { + background: url(images/bub1-tr.gif) no-repeat top right; +} + +div.bubble1 div div div div { + background: url(images/bub1-tl.gif) no-repeat top left; +} + +div.bubble2 div { + background: url(images/bub2-br.gif) no-repeat bottom right; +} + +div.bubble2 div div { + background: url(images/bub2-bl.gif) no-repeat bottom left; +} + +div.bubble2 div div div { + background: url(images/bub2-tr.gif) no-repeat top right; +} + +div.bubble2 div div div div { + background: url(images/bub2-tl.gif) no-repeat top left; +} + +div.bubble3 div { + background: url(images/bub3-br.gif) no-repeat bottom right; +} + +div.bubble3 div div { + background: url(images/bub3-bl.gif) no-repeat bottom left; +} + +div.bubble3 div div div { + background: url(images/bub3-tr.gif) no-repeat top right; +} + +div.bubble3 div div div div { + background: url(images/bub3-tl.gif) no-repeat top left; +} + +div.bubble4 div { + background: url(images/bub4-br.gif) no-repeat bottom right; +} + +div.bubble4 div div { + background: url(images/bub4-bl.gif) no-repeat bottom left; +} + +div.bubble4 div div div { + background: url(images/bub4-tr.gif) no-repeat top right; +} + +div.bubble4 div div div div { + background: url(images/bub4-tl.gif) no-repeat top left; +} + +/* Legend */ +.legend-title { + background: #FFFFFF; +} + +.legend { + border: 1px solid #CACACC; + background: #FFFFFF; +} + +/* MAIN LAYOUT DIVS +--------------------------------------------------------- */ +#ja-wrapper { + background: #F2F2F2; +} + +#ja-containerwrap { + background: url(images/cw-bg1.gif) repeat-y 50% 0; +} + +#ja-containerwrap2 { + background: url(images/cw-bg2.gif) no-repeat 50% 0; +} + +#ja-container { + background: url(images/c-bg1.gif) repeat-y 18% 0; +} + +#ja-container2 { + padding: 20px 0; + background: url(images/c-bg2.gif) no-repeat 18% 0; +} + +/* Full */ +#ja-containerwrap-f { + background: url(images/cwf-bg.gif) repeat-x top left #FFFFFF; +} + +/* Full left */ +#ja-containerwrap-fl { + background: url(images/cwf-bg.gif) repeat-x top left #FFFFFF; +} + +/* Full right */ +#ja-containerwrap-fr { + background: url(images/cw-bg1.gif) repeat-y 50% 0; +} + +#ja-containerwrap-fr #ja-containerwrap2 { + background: url(images/cw-bg2.gif) no-repeat 50% 0; +} + +/* Module rounded */ +div.module h3 { + border-bottom: 1px solid #E9E9E9; + color: #7BA566; +} + +div.module_black, +div.module_green, +div.module_blue, +div.module_red, +div.module { + background: url(images/b-br.gif) no-repeat bottom right #FFFFFF; +} + +div.module div { + background: url(images/b-bl.gif) no-repeat bottom left; +} + +div.module div div { + background: url(images/b-tr.gif) no-repeat top right; +} + +div.module div div div { + background: url(images/b-tl.gif) no-repeat top left; +} + +div.module_text span { + background: #FFFFFF; +} + +div.module_text { + background: url(images/bt-br.gif) no-repeat bottom right #F6F6F6; +} + +div.module_text div { + background: url(images/bt-bl.gif) no-repeat bottom left; +} + +div.module_text div div { + background: url(images/bt-tr.gif) no-repeat top right; +} + +div.module_text div div div { + background: url(images/bt-tl.gif) no-repeat top left; +} + +/* red */ +div.module_black h3, +div.module_green h3, +div.module_blue h3, +div.module_red h3 { + border-bottom: 1px solid #F6F6F6; + color: #FFFFFF; +} + +div.module_red { + background: url(images/br-br.gif) no-repeat bottom right #BF0000; + color: #FFFFFF; +} + +div.module_red div { + background: url(images/br-bl.gif) no-repeat bottom left; +} + +div.module_red div div { + background: url(images/br-tr.gif) no-repeat top right; +} + +div.module_red div div div { + padding: 0 15px 10px; + background: url(images/br-tl.gif) no-repeat top left; +} + +/* blue */ +div.module_blue { + background: url(images/bb-br.gif) no-repeat bottom right #025291; + color: #FFFFFF; +} + +div.module_blue div { + background: url(images/bb-bl.gif) no-repeat bottom left; +} + +div.module_blue div div { + background: url(images/bb-tr.gif) no-repeat top right; +} + +div.module_blue div div div { + background: url(images/bb-tl.gif) no-repeat top left; +} + +/* green */ +div.module_green { + background: url(images/bg-br.gif) no-repeat bottom right #7BA566; + color: #FFFFFF; +} + +div.module_green div { + background: url(images/bg-bl.gif) no-repeat bottom left; +} + +div.module_green div div { + background: url(images/bg-tr.gif) no-repeat top right; +} + +div.module_green div div div { + padding: 0 15px 10px; + background: url(images/bg-tl.gif) no-repeat top left; +} + +/* black */ +div.module_black { + background: url(images/bl-br.gif) no-repeat bottom right #333333; + color: #FFFFFF; +} + +div.module_black div { + background: url(images/bl-bl.gif) no-repeat bottom left; +} + +div.module_black div div { + background: url(images/bl-tr.gif) no-repeat top right; +} + +div.module_black div div div { + background: url(images/bl-tl.gif) no-repeat top left; +} + +/* JOOMLA STYLE +--------------------------------------------------------- */ +a.readon { + border: 1px solid #ECECEC; + background: url(images/arrow.png) no-repeat 5px 48%; + color: #006699; +} + +a.readon:hover, a.readon:active, a.readon:focus { + border: 1px solid #DDDDDD; + background: url(images/arrow.png) no-repeat 5px 48% #F6F6F6; +} + +ul.menu li.active a { + background-color: #ECECEC; +} + +ul.menu li a:hover, +ul.menu li a:active, +ul.menu li a:focus { + background-color: #F6F6F6; +} diff --git a/templates/ja_purity/styles/background/purewhite/images/arrow.png b/templates/ja_purity/styles/background/purewhite/images/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f0b3c34adf662eb0bd9ac42db37ac705eea346 GIT binary patch literal 149 zc%17D@N?(olHy`uVBq!ia0vp^%s|Y_0V21rUp4_qNtU=qlmzFem6RtIr7}3C<R_&n zc;+Uirv{}arc@T5Otk?jVhivIaZO80`~Uxcv3KMOpa@e*kYDhBhNs&NynsA$PZ!6K rid#tu2`MQF2@HvB9A{5(2qZ8t_%N{Nh3BXMl`wd^`njxgN@xNAg5xR{ diff --git a/templates/ja_purity/styles/background/purewhite/images/b-bl.gif b/templates/ja_purity/styles/background/purewhite/images/b-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a7ad5b8d1e16949429a5bb276642d6fed5ec57 GIT binary patch literal 406 zc$@*20crk6Nk%w1VF>`b0<!=B?(XjT`ug|x_v-5E{{H^`{r&6f>+taK_4W1q{QT+Z z>Hq)#000000000000000A^8LV00000EC2ui00{uP0ssX6P_0R)tn}igaj##tStD15 z<cON;>9+8;&aYg1H<*ht-s?Y}Etnb_eMewYh-@mI%%?O;EkdnRY?Zatdbw9{R=lMV z$zO99%~prqV|aO&rnl|#`Z<5!<NtnvYkY)&gNAR2af)+-iH?hqjfawYl$Vc~k(!g4 zo|~VYprfLtmZ7Jlsiu9LtFNu7v8uDIg_X6ix30OpyRyHu!M2RL#lFYG#<<GJ%*oKt z(!9;p(bU(#*}~hz)7szM;ojKe%jM|c>Ei3;>hJ9E?(y{V_UH2W_4@bD?fd}!<rBD% zU_Wc-3<gB_PoYDG10fcac(B_-iw`kUyqIuf#*P|8LxLRH(4$F_B~eCHIgw>Wk}F}h zl=(6xO^!Bm#?(2JXU&~Jdj|a}v?!|q1V#W5Fd~401S1eEEwCZL0RsxMDu@68J7|#J AtN;K2 diff --git a/templates/ja_purity/styles/background/purewhite/images/b-br.gif b/templates/ja_purity/styles/background/purewhite/images/b-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a337fb622a430f9dfcadb6b4dfd44e8f1bfe01b GIT binary patch literal 2164 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 diff --git a/templates/ja_purity/styles/background/purewhite/images/b-tl.gif b/templates/ja_purity/styles/background/purewhite/images/b-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c627a81cbaaea1d0662ce71d1df5cd4703f3aa9 GIT binary patch literal 131 zc${<hbhEHb<YbU%*v!E2?%lgzzkYrH{{7XfSO5O~`}_Cr>({S8eE9J7>(@Vj{=9to z^8f$;3`junCkvR?0TCcG7+4Gn))w^a%2HJ5n$kF_M&7-SxzOw8t}WU%r&RvlT=V<Y Yk9Xf3=6x{l5lufH^=aFgok|SW0J#Q1HUIzs diff --git a/templates/ja_purity/styles/background/purewhite/images/b-tr.gif b/templates/ja_purity/styles/background/purewhite/images/b-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..8745ae441508e6b477212eee8f2c8f9865cadfd7 GIT binary patch literal 336 zc$@)H0k8f?Nk%w1VHg4*0J8u9?(XjT`ug|x_v-5E{{H^`{r&6f>+taK_4W1q{QT+Z z>Hq)#000000000000000A^8LV00000EC2ui02l%v000F2P{~QFy*TU5yZ>M)j$~<` zXsWJk>%Q=09KmAWc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4u%@qUyM0LyUdcWYXcuX#v zp9w|n%x=5i@VI<VhhppaynfH``||_?e}jaDhKGoR3W<!3j*pO$MT?S^mY0~BaFm*z zo}ZwhLY$(drl+Wkq^Yc}uCHgSu(Pzawn(zKy1Tr!xxK)_!k)jw#>dEq#mUUg&T-4n z($myj(bd@5+D6yg-rwL0-Qncr&g16k>cHsh?(eYe@bmPd^7Z)nmiPMo{)qhk2^_d5 iAi;wO-xy5Duwj^m4kJpG0&$|ni?}dq+_*(S1OPiZ@546$ diff --git a/templates/ja_purity/styles/background/purewhite/images/bb-bl.gif b/templates/ja_purity/styles/background/purewhite/images/bb-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..2cb1416b63ebd548b2e991f7e6f49d8d3a79ecef GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7|Ns97Za!nqm?crNm_L8MP1i=hsXN-YpJzy$$$$+g{$v5u zIv@gM1_MjBz)8>5do5m{-Tgm7qc0_MUdF0*Ij{E>=$tRfy<f5Jea-v-2No1~=t%XS zSW<K{$7=qC6(wG4qt@S8Q+E1o)&2(?Dtz>2pMSBX>TKTb`yY1H_^rSF{>PrW^Y4HE YS7ni4m0)BNXJGGOU}R$!5oE9i0EW6vivR!s diff --git a/templates/ja_purity/styles/background/purewhite/images/bb-br.gif b/templates/ja_purity/styles/background/purewhite/images/bb-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..6901701494e76952dc236ce19080ae07206dbc7b GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B|NsBP+vf~zo&#u_7<8kDx6i=Y=1!HkKa8>fW|;s0 z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3j&;ofQbVHU}6CPj7Y!%1^@s+1OPixf_zs1 diff --git a/templates/ja_purity/styles/background/purewhite/images/bb-tl.gif b/templates/ja_purity/styles/background/purewhite/images/bb-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a4aa02a244f49527e9f970ac3dd6a6b320ea2d6 GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!Ci;N~;tj9L8o^V_$dx9Qp_UADw;>W=^a|1+e`WWWX#f3kpS s9S{LBgMmfngG>U~t`|IK93Mz9CLPL{m$7PH&g*>zI_FEyx-wV;03}o*TmS$7 diff --git a/templates/ja_purity/styles/background/purewhite/images/bb-tr.gif b/templates/ja_purity/styles/background/purewhite/images/bb-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc43072245f26d5701d9b933f9cba9ed2f46c294 GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2|NsBPx1aOp&u7k<<u`Rl`}Xq(Za$MPTVmg{i6Lz!0|rq1 z$pWTzKm^DP29}KmCp}m1wRnAY_x}WqzLd;)8LQUiyx#YrM1YOqNX5GMHShl)SWvJ- z>rTgsB}FH5tmX$?QxI4iwf@GMvTE0Y{SP)&_^@%Gda<SIY~JqsA9mFEt-t;L$DX?L z?|=VqXl!b3X>Duo=<Mq5>Fw*EFmcl4DO0CSpD}aR>^XDi&0nx^(c&dbmn~nha@FcJ zYuBycuyNDoEnBy3-?4Mo?mc_=?LTnv(BUITj~zd8^3>@wXV0C#aPiXRD~kmgtN~dG Bg!cdd diff --git a/templates/ja_purity/styles/background/purewhite/images/bg-bl.gif b/templates/ja_purity/styles/background/purewhite/images/bg-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..da55a4d456523e01b2a717cedf7f23d4d8139751 GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7|NsB@Uf!%-meIT_fAPVo?Q2VB?dm#sb$j*FGzM%y@h1zI z)&UV9GZ<L11x|Xd-fQvt?C$>w8ht65^D<Vg%Xz)8K<9i(?){2&?`z)wKd_*{Lr1Fr z#FC<uIac#8tSIqX8@2w%nzGYxtM)(GP~oFD`}~V7RcG^d-~X_q#&7-Y_doX3oqzxP Yzbdl?n*<}1I0JhJ10xHoh#-SC0F6;lwg3PC diff --git a/templates/ja_purity/styles/background/purewhite/images/bg-br.gif b/templates/ja_purity/styles/background/purewhite/images/bg-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed15bcc1ed53469e5fcdb100e1dfc8c92f02f660 GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B|NsAot#o~+XyEGG-s#!F)whAEZJfJ|qrsJXrDgyC z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3kIBcfQbSOU}6CPj2Hj{1ONa)1OPj>8Gft) diff --git a/templates/ja_purity/styles/background/purewhite/images/bg-tl.gif b/templates/ja_purity/styles/background/purewhite/images/bg-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4b5bc446af92d9b92040c6579014f7cad3e0b5d GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!Ci@8!+rRr#}abuB(PwRTxX=lZgPSGWKF|G#=^8Ur?<_>%=p s>wpN584N5kA7l);cD;}|!}xFpL(;*Fc^RwL<-FckpmV<DtSf^x05(Y^q5uE@ diff --git a/templates/ja_purity/styles/background/purewhite/images/bg-tr.gif b/templates/ja_purity/styles/background/purewhite/images/bg-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..d49b88abd9e975afd3405777fe50a6e35d58e44a GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2|NsBa^<}loG9J9TeedPXgIBjVugagZyJzvisntu<7%+h1 zPZlt(10q0XFtBViIO(~1uf^-LyZ<L>^rd9Z%UHE8=k>l1A_^=FM=I96uX+Ffz=DDu zT6a25EGasfV>LfuT7tmZsP#A2lvUdn?0>MK!iP=z)Qc@uXY+R7|FEORZ~g7}Klap} zfB*Y`Lt|5OOKV$uM`u@ePj6rUgo%?TPnkMx`iz;gX3v>BZ~lUXixw|gx@`H1m8({- zS-WoihK-vxZ`rzS`;MKvcJJA{Z~uXVhYlY(dhGa#lc!FfIeYH>g^QOiUs){3U=08u Cv4{5n diff --git a/templates/ja_purity/styles/background/purewhite/images/bl-bl.gif b/templates/ja_purity/styles/background/purewhite/images/bl-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..7368973552fd57d4a0f688fa023a97c4d70e682c GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7|NsAI&z_w>e|~auvYVS*VPT=Esj0oay|J+|12&-elLbuc zfC!Ko3@q6KCp}m1wRnAY_x}WqzLd;)8LQUiyxv!!bG{_^e#N@?HShl)SWw`hBh`Om zNzut1tN9mJlz6R;T7P3r+3B}c`yXtm@X?!n{>7H6vw6Gkf7nsuxBm9~AA9P~zyJMT Xm0f~af{{&}fvJOmk(EV6kii-N8*ob` diff --git a/templates/ja_purity/styles/background/purewhite/images/bl-br.gif b/templates/ja_purity/styles/background/purewhite/images/bl-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..17283fe5f42c92a3d566297b8111c1337bc3e565 GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B|Ns9zJw4CQ&&|!vadB}*Mn*L?HJ_iKWo2bEGcy1H z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3jv&nfQbeOVB!G)j935x0{{R(1OPiV6M3ru diff --git a/templates/ja_purity/styles/background/purewhite/images/bl-tl.gif b/templates/ja_purity/styles/background/purewhite/images/bl-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..864ef17224fdc76d5d6c6c59b4082f21215cad4f GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!Ci_Uu_xQ&W3;`{d;0`Sa%&78ZJXdj9|a-`Log0UJ>K$pWTz rKm^DP1{RqQG66ihUI?6Vd~kyy=}^YJj8*G$UhgZ=IbU+tmBAVSYPKJ( diff --git a/templates/ja_purity/styles/background/purewhite/images/bl-tr.gif b/templates/ja_purity/styles/background/purewhite/images/bl-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a04f60a576ae50cfc2e5ca83b0ad96d9a257f32 GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2|Nnn`d;9a}&!0Vewy?0!)6>(`)O7y*`KhU?#>U1B7(nqS z3z*gc5g;=dST-7*^jy8y;`Q0x{}VL&QZnadtXh}zdf$f-0cM6H73<#Dy#Ie-LBS5I zI~^yM6rIemnjbLDQDAM<`WtJ?s$C2AKiE*=!^VE<#g?kGdAsj_*iqxR{`UJHd+N@= z|NXzAv8lPGwXMCQv#YzOx37P~#7UE<Or17;#>`o>=ggfqf5E~<i<c~2wtU6PRjb#m zUAKP2#!Z{IY~8kf$Ie~5_w3!b|G>dRhmRaRcKpQ2Q>V|IJ$L@X#Y>m3EEZ(21^@@V Bf<*uT diff --git a/templates/ja_purity/styles/background/purewhite/images/br-bl.gif b/templates/ja_purity/styles/background/purewhite/images/br-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..ef5a74fa95b7130e8f2f6f4128ca7e79a17809a5 GIT binary patch literal 190 zc${<hbhEHb<Yd^zw3&h7|NsB*4;*;d-hNa<;<BILVSfGt%*^L(Z1yu?2Z}#gz_bpC z0GYwSk}Yu3bM;<}*JpSCPtfQ~$()z5YF*CjeFZw_OLFg5tb1Sc{{Mjm1s*z5{U??b zoy@VCe_=(5*V?G{H`bJ$ep|Kw!G;PSz1inqY^ge%xBLEw9W{RIZ@>Ssr|$gw-~Uxv VCD<hx*~A%`Iv5yPm_-B`tO2d%ObY-2 diff --git a/templates/ja_purity/styles/background/purewhite/images/br-br.gif b/templates/ja_purity/styles/background/purewhite/images/br-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebcff7d1db5ecd48b38dcc3dcc11f912a9943840 GIT binary patch literal 1072 zc$@(+1kd|NNk%w1VHg6s0<!=B|NsBO3=HtY!^IdF&p$uF0|ViQhws3^(@svm00000 z00000000000000000000A^8LV00000EC2ui02l(g0ssX6Fv&@)y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI-{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eJlCw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8g$6&APSg*RW&Do=v;9?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT z&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1}NbFfCLt3;DHDxsNjMOHt67k5Jo8BgcMe2 z;e{AxsNsejcIe@UAciR7h$NP1;)y7xsN#w&w&>!EFvck3j5OA0<Bd4xsN;@2_UPk} zKn5w~kVF<~<dH}wspOJOHtFP(P(~@`lvGw}<&{`wspXbjcIoApV1_B?m}Hh|=9y@w zspgt&w&~`ZaK<U;oOIS{=bd=wspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ zq?A@_>7|%vs_CYjcIxS;poS{ysHB!^>Zz!vs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 z_Uh}ezy>Squ*4Q??6JrutL(DOHtX!&v(QE>?X=WZYwfkzW~=SC+;;2jx8Q~=?zrTZ zYwo$|rmOC{?6&LfyYR*<@4WQZYwx}I=Bw|%{PyebzW@g;@W2EYZ1BMdC#>+o3^(lX z!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^UO5YZ1c@H z=dAP2JooJL&p-z)^w2~XZS>JdC$03-OgHWH(@;k(_0&{XZS~byXRY<tTzBpD*I<V& q_Sj^XZT8t{r>*wdY`5*U3jv%+fQbbNV4?v4j5q)S2LJ#-1OPkl;CcT5 diff --git a/templates/ja_purity/styles/background/purewhite/images/br-tl.gif b/templates/ja_purity/styles/background/purewhite/images/br-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..310f46969b386b7dfa94721e0667ed850267a0e6 GIT binary patch literal 111 zc${<hbhEHb<YbU%*v!E2{=k6)%*==R`5(5oU-t7mCM|u=#^(S3|N9xR1I3>#U|I)6 pfXrZEk@+Cwz_sfI&l$%DGZ>Q&Wz5T1wJzuNz5<=|C1+h3tO2!~AUyy8 diff --git a/templates/ja_purity/styles/background/purewhite/images/br-tr.gif b/templates/ja_purity/styles/background/purewhite/images/br-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c95a76ad12d6980086123a3d4ac628a95deb6e9 GIT binary patch literal 260 zc${<hbhEHblwgu)*v!E2|Ns9FhYw%&^E)Ojecs;wFhBpp_VxqJ%<m5z*w26kDE?#t z(>fpmWCjDvMuU@{tM^*GKD+yWf<|9T=Ddtm>vCT2`(VPs!EmHv-TRvN{|_uE*kN?1 z<HVAplQ~xN1Fk6wtc_ZKV@+ALYQg>o8!CL*#8180Qgt?O_x%q$YW&vUe*a@n-TC*w z|2H%?HMg|3wRd!Ob@%l4^-q{MY4Vh*)27duIcxTux%1{PSh#5MlBLU*uUNTi^_sQo z)^FIjY4et?+qUo6xoh{Hz5DhbIC$vrk)y|spE!By^qI5g&R@8A>GGAuf(+IG%V~od diff --git a/templates/ja_purity/styles/background/purewhite/images/bt-bl.gif b/templates/ja_purity/styles/background/purewhite/images/bt-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..c25104734be2a500a40c908e513a6bb81a46cb1e GIT binary patch literal 407 zc$@*30cie5Nk%w1VF>`b0<!=B_V)JT;^O}P{@vZ(`}_Ol<>meT{q61T^YioD+uPaM z+5i9l000000000000000A^8LV00000EC2ui00{uP0ssX6P_0R)tn}igaj##tStD15 z<cON;>9+8;&aYg1H<*ht-s?Y}Etnb_eMewYh-@mI%%?O;EkdnRY?Zatdbw9{R=lMV z$zO99%~prqV|aO&rnl|#`Z<5!<NtnvYkY)&gNAR2af)+-iH?hqjfawYl$Vc~k(!g4 zo|~VYprfLtmZ7Jlsiu9LtFNu7v8uDIg_X6ix30OpyRyHu!M2RL#lFYG#<<GJ%*oKt z(!9;p(bU(#*}~hz)7szM;ojKe%jM|c>Ei3;>hJ9E?(y{V_UH2W_4@bD?fd}!<rBD% zU_Wc-3<gB_PoYDG10fcac(B_-iw`kUyqIuf#*P|9LxLRH(4$F_B~eCHIgw>Wk}F}h zl=(6xO^!Bm#?(2JXU&~Jdj|a}v?!|t21Wz`FakgT0V56sKtNyvfC2*)XjKpa06VsP B+p+)v diff --git a/templates/ja_purity/styles/background/purewhite/images/bt-br.gif b/templates/ja_purity/styles/background/purewhite/images/bt-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..58a4f020af1f12ff2b9f0d7e176d3ffc98a1df04 GIT binary patch literal 2166 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 diff --git a/templates/ja_purity/styles/background/purewhite/images/bt-tl.gif b/templates/ja_purity/styles/background/purewhite/images/bt-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..91a13df5a33f956dc7f75153de65040e99856d00 GIT binary patch literal 145 zc${<hbhEHb<Ydrb*v!N5?c29Uj~@N|_wVlAyT5<`e){z3-@kv~zJ2@o^XJ>QZ{NIm z^FJ6cz<}aU7DfgJ9tIr{2V@2Vi(SD<&((V^UZ2(0XjalXEvUf4%F-mt5S|pH(tA}b o?xl$RPoW1+9(yD+dzKijjL@6ymlk5x>bCasnzGYx)sz{m0XzRfdH?_b diff --git a/templates/ja_purity/styles/background/purewhite/images/bt-tr.gif b/templates/ja_purity/styles/background/purewhite/images/bt-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..75725ff85c180156492b97349b83a6d04bd9de50 GIT binary patch literal 433 zc$@*T0Z#r$Nk%w1VHg4^0J97L_V)JT;^O}P{@vZ(`}_Ol<>meT{q61T^YioD+uPaM z+5i9l|Ns900000000000A^8LW000aCEC2ui02l%&000F4aLGxly*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@c30huiNkVynfH``~QG}f`f#GhKGoWii?bmj*pO$l63<G0CJd_nwv2M z2muG2qNAjx83F;9rmL*2ZvX+Vva_^c1_`yfy1P*dyuZM~LB7Jp#>X(k$ji*lAIi?r z($Ub<*4M$+*xTH)+TGycoZsT*=56HX>g!|a?C<bd?(y{XPxJQq`bGHr{{K7r0USs$ zhQNXd6P`Gzu%W{a3K&S7NU@^Dix@L%+{m$`$B!UhLy8<pvZTqAC{wCj$+D%(moQ_> zoJq5$&6_xL>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! b!-^eCwyfE+Xw#})%eJlCw{YWLjQ{{UpcD4f diff --git a/templates/ja_purity/styles/background/purewhite/images/bub1-bl.gif b/templates/ja_purity/styles/background/purewhite/images/bub1-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..acf2001d48ebf79a07d3424d2ad626eefb20ce6f GIT binary patch literal 1756 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 DQF}X5 diff --git a/templates/ja_purity/styles/background/purewhite/images/bub1-br.gif b/templates/ja_purity/styles/background/purewhite/images/bub1-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..37651c153c9bab68c2c242f9b554dd6281794145 GIT binary patch literal 3141 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 diff --git a/templates/ja_purity/styles/background/purewhite/images/bub1-tl.gif b/templates/ja_purity/styles/background/purewhite/images/bub1-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..6262df923849f21ec26b206dc1532a536ad13cca GIT binary patch literal 368 zc$@)n0gwJiNk%w1VNn1X0K@<Q^z`)k`T6VX>+0(2{r&y>`}_9x_UY;A`1ttd=H~PB z^X%;G@$vEA-rn%=@Z#d)<>lq=?d{;;;P3D6<mBY~`ug?t_5S|;{QUg)_xJz*{{R30 z000000000000000A^8LV00000EC2ui08s!L000H;peBx&wIo!ku59bRa4fT<=rq(3 zO?>bFz@TtQEdE9X0fhl*0xZy|bV{vSuh^_qgb^H?P(x-+E}PHjw0g}pi@ab1B0#U$ z@A$la&+q&HcNz*0U>OJ%1qB$3jE#<ukdcy;l#Ln?6Hgfd6&M5r7onn~q@|{(sHv)> z1riDXauuL8w6(UkxVgH!3<;W@7rVm4#Kj{EU$L{s%+1UK1F!)F1kTpiy3hcd)Y#tN zZ_%5c;N{lZ<H6?Z#pnST>g@8_;_vbE__glv`Tex}_x$ApC{Q55g8dF6#HVnfyoL_f OL5x^#BE@eZ002A4ZOkzM diff --git a/templates/ja_purity/styles/background/purewhite/images/bub1-tr.gif b/templates/ja_purity/styles/background/purewhite/images/bub1-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b55acbf964a24c18ce37c27216cda2bc35c72f6 GIT binary patch literal 947 zc$@*V15Er!Nk%w1VcZ270K@<Q`1ttt_V)St`SbJh{r&yn;o<xH`}Fkm?d|R9>FMC$ z;Ns%q?Ck8_-QC{a-th47=jZ3^>+9v^<?in8^78WN=;-nB@#N&>@9*#T_xJq#{Pp$q z`uh6*{{H{}{{R30A^8LV00000EC2ui0Ne!`000I5;3bY^X`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE<o<q;kn@I-k&}bV{vSO9>3e!|i%7;IMd1E}PHjw0g~MyWjA*d`_?1 z@A$la&+q&HfPsR8goTEOh>41ejE#<ukdcy;lw%PU1qm5m9vhyYprN9pq@|{(sHv)} ztgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv(9zPL2i4UK3KL!#+}+;a z;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{Qds_00RmfNU)&6g9sBUT*$DY!-o*P z1qiUA8ifT2x^URYv7^V2AVZ2ANwTELlPFXFs$9vkrOTHvW6GRKv!>0PICJXU$+M@= zpFo2O9ZIyQ(W6L{DqYI7sne$%1qc9;f#QJy1uSsUz_qK_uVBN99ZR;X*|TWVs$I*r zt=qS7<I0^&x31m0c=PJr%eSxJzkmY^9!$8f;lqd%D_+dFvE#>(y&B*!)#`%=Tsmmp z%(=7Y&!9t#9!<Km>C>oFt6t5zwd>cgW6PdRySDAyxO3~?&AYen-@t<lA5Ofu@#Dyo zD__pMxpU402x#B{z^a4+oU&`*&b_<$@8H9WA5Xr#`Sa-0t6$H)z5Dm@<IA5<zrOwZ z`19-E&%eL_{{RLk;D7`cXyAbeCOBUI2hvej5dsh>DB*+@R%qdc7-p#9h8%Y2;fElG zDB_4DmT2OE1Q;Md09QHC!HF=&DC3MY)@b96IOeG1jy(40<BtM%FkJ>444{AkKqjf= zl1w(~<daZFDdm(@R(Ye44q_#Mm0Wh|<(FWFDdw1DmTBgh-7%PD0b8Q!=9_TFDd(JY z)@kRRQ>s~=mU#B*=bwNED(Iku7CI+`2JFeEp^P@_=%bKED(R$@x`(KuZC0x3rkr-_ z>8GHEisPjL@G0u4sHUpws;su^YIdZW`s%E-)@tjmxaJCFtc&XE>#x8DE9|hu>c?xQ z#U`ulvdlK??5f8;EA6z@R%`7rwP!|)?Y7)@>+QGTf~ak{<d$phx#*^Q-ni<v>+ZYo V#>*_b^44qbz4+#<>9HXI06P-hKVSd= diff --git a/templates/ja_purity/styles/background/purewhite/images/bub2-bl.gif b/templates/ja_purity/styles/background/purewhite/images/bub2-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..211c3464d80392d2ee838131bf265d99cb152ba9 GIT binary patch literal 1589 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 diff --git a/templates/ja_purity/styles/background/purewhite/images/bub2-br.gif b/templates/ja_purity/styles/background/purewhite/images/bub2-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d540ca2436d3adcd3873d38ba13bf96c76e791c GIT binary patch literal 2996 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 diff --git a/templates/ja_purity/styles/background/purewhite/images/bub2-tl.gif b/templates/ja_purity/styles/background/purewhite/images/bub2-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..bfb43b261d801b7eef8d19f0d2632118b5b690f4 GIT binary patch literal 271 zc$@(b0r37uNk%w1VNn1X0J8u9_V)Jl^z`@l_x$|)`T6<l>+Adb`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui08s!L000EMu(V05y*TU5I|U3A1W9S0 zXsWJk>#_|4%wTBWc&_h!@AEN$K(HtpkI1BQ$!t2Cjeu}LP*|_ntai)odcWN$fNB^Z z&gisy&2GEj@OC4?SSZYgynfH``~QG}f`4;$3J3=dii?bmj*pO$l9P~yc8HXjnwy-A zmWPR*qNAgqn53wwlBS`muCJ`GvZ}GOwxYGSx|zAVzLj*Bt-r*c!Jx&-i@nOf%+0&c V(6`dlv(?tH$EVr4*xjiS06Y4Fo>2e* diff --git a/templates/ja_purity/styles/background/purewhite/images/bub2-tr.gif b/templates/ja_purity/styles/background/purewhite/images/bub2-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..335419379c7179c418712973120bf012576d1aa8 GIT binary patch literal 835 zc$@)41HAl4Nk%w1VcZ270J8u9_V)Jl^z`@l_x$|)`T6<l>+Adb`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui0Ne!`000F4u*pfQy*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~J%xmF$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``=bE?3=9AbgNKNTii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sx{d(701OQa!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_R0bRzYPlg{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ@z zB(OkVfCdP1>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eL*$0S0ISxOt$i-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8jDnFhIcq1_>HCm`%I3?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PKxep+4 z4O=$)_weJ(pHIKO{rmXy>)+46zyJRL1}Nb0faIyiUTg#=sNjMOHt67k5Jo8BgcMe2 z;e{B6XW(lHX6WIEAciR7h$NP1;)y7xs3L?LwzuMoFvck3j5OA0<Bd4xs3UJJcDUn@ zKn5w~kVF<~<dI0C*rR(%HtFP(P(~@`lvGwZ<dRlqspXbjcIoApV20TomSUD^=9y@w zspgt&PDo~(aK<U;oOIS{=bg8`iRYet_UY%JfCgHko`M!?=%I)vs_3HD5z6SJkVY!$ zq?FF-Xr-8Ds_CYjc3R`5o`x#wsHB!^Dt@4zs_Lq&w(9Duz@-Z7thCl@>#d8*itDbt N_Uh}eUM?8{06W`I>S_Q0 diff --git a/templates/ja_purity/styles/background/purewhite/images/bub3-bl.gif b/templates/ja_purity/styles/background/purewhite/images/bub3-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..4908ff051a5723eb772795dbda164b40d420aec6 GIT binary patch literal 2105 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 diff --git a/templates/ja_purity/styles/background/purewhite/images/bub3-br.gif b/templates/ja_purity/styles/background/purewhite/images/bub3-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..444247793820f4d3cac90b4e323401545ff0c4cd GIT binary patch literal 3196 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 diff --git a/templates/ja_purity/styles/background/purewhite/images/bub3-tl.gif b/templates/ja_purity/styles/background/purewhite/images/bub3-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..6262df923849f21ec26b206dc1532a536ad13cca GIT binary patch literal 368 zc$@)n0gwJiNk%w1VNn1X0K@<Q^z`)k`T6VX>+0(2{r&y>`}_9x_UY;A`1ttd=H~PB z^X%;G@$vEA-rn%=@Z#d)<>lq=?d{;;;P3D6<mBY~`ug?t_5S|;{QUg)_xJz*{{R30 z000000000000000A^8LV00000EC2ui08s!L000H;peBx&wIo!ku59bRa4fT<=rq(3 zO?>bFz@TtQEdE9X0fhl*0xZy|bV{vSuh^_qgb^H?P(x-+E}PHjw0g}pi@ab1B0#U$ z@A$la&+q&HcNz*0U>OJ%1qB$3jE#<ukdcy;l#Ln?6Hgfd6&M5r7onn~q@|{(sHv)> z1riDXauuL8w6(UkxVgH!3<;W@7rVm4#Kj{EU$L{s%+1UK1F!)F1kTpiy3hcd)Y#tN zZ_%5c;N{lZ<H6?Z#pnST>g@8_;_vbE__glv`Tex}_x$ApC{Q55g8dF6#HVnfyoL_f OL5x^#BE@eZ002A4ZOkzM diff --git a/templates/ja_purity/styles/background/purewhite/images/bub3-tr.gif b/templates/ja_purity/styles/background/purewhite/images/bub3-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b55acbf964a24c18ce37c27216cda2bc35c72f6 GIT binary patch literal 947 zc$@*V15Er!Nk%w1VcZ270K@<Q`1ttt_V)St`SbJh{r&yn;o<xH`}Fkm?d|R9>FMC$ z;Ns%q?Ck8_-QC{a-th47=jZ3^>+9v^<?in8^78WN=;-nB@#N&>@9*#T_xJq#{Pp$q z`uh6*{{H{}{{R30A^8LV00000EC2ui0Ne!`000I5;3bY^X`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE<o<q;kn@I-k&}bV{vSO9>3e!|i%7;IMd1E}PHjw0g~MyWjA*d`_?1 z@A$la&+q&HfPsR8goTEOh>41ejE#<ukdcy;lw%PU1qm5m9vhyYprN9pq@|{(sHv)} ztgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv(9zPL2i4UK3KL!#+}+;a z;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{Qds_00RmfNU)&6g9sBUT*$DY!-o*P z1qiUA8ifT2x^URYv7^V2AVZ2ANwTELlPFXFs$9vkrOTHvW6GRKv!>0PICJXU$+M@= zpFo2O9ZIyQ(W6L{DqYI7sne$%1qc9;f#QJy1uSsUz_qK_uVBN99ZR;X*|TWVs$I*r zt=qS7<I0^&x31m0c=PJr%eSxJzkmY^9!$8f;lqd%D_+dFvE#>(y&B*!)#`%=Tsmmp z%(=7Y&!9t#9!<Km>C>oFt6t5zwd>cgW6PdRySDAyxO3~?&AYen-@t<lA5Ofu@#Dyo zD__pMxpU402x#B{z^a4+oU&`*&b_<$@8H9WA5Xr#`Sa-0t6$H)z5Dm@<IA5<zrOwZ z`19-E&%eL_{{RLk;D7`cXyAbeCOBUI2hvej5dsh>DB*+@R%qdc7-p#9h8%Y2;fElG zDB_4DmT2OE1Q;Md09QHC!HF=&DC3MY)@b96IOeG1jy(40<BtM%FkJ>444{AkKqjf= zl1w(~<daZFDdm(@R(Ye44q_#Mm0Wh|<(FWFDdw1DmTBgh-7%PD0b8Q!=9_TFDd(JY z)@kRRQ>s~=mU#B*=bwNED(Iku7CI+`2JFeEp^P@_=%bKED(R$@x`(KuZC0x3rkr-_ z>8GHEisPjL@G0u4sHUpws;su^YIdZW`s%E-)@tjmxaJCFtc&XE>#x8DE9|hu>c?xQ z#U`ulvdlK??5f8;EA6z@R%`7rwP!|)?Y7)@>+QGTf~ak{<d$phx#*^Q-ni<v>+ZYo V#>*_b^44qbz4+#<>9HXI06P-hKVSd= diff --git a/templates/ja_purity/styles/background/purewhite/images/bub4-bl.gif b/templates/ja_purity/styles/background/purewhite/images/bub4-bl.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a97b3444971b9441f66a5703da0d95ed343845c GIT binary patch literal 2052 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 diff --git a/templates/ja_purity/styles/background/purewhite/images/bub4-br.gif b/templates/ja_purity/styles/background/purewhite/images/bub4-br.gif new file mode 100644 index 0000000000000000000000000000000000000000..c447edf623d897a70b1f00a369c2fd04f0fc07bf GIT binary patch literal 3052 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 diff --git a/templates/ja_purity/styles/background/purewhite/images/bub4-tl.gif b/templates/ja_purity/styles/background/purewhite/images/bub4-tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..bfb43b261d801b7eef8d19f0d2632118b5b690f4 GIT binary patch literal 271 zc$@(b0r37uNk%w1VNn1X0J8u9_V)Jl^z`@l_x$|)`T6<l>+Adb`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui08s!L000EMu(V05y*TU5I|U3A1W9S0 zXsWJk>#_|4%wTBWc&_h!@AEN$K(HtpkI1BQ$!t2Cjeu}LP*|_ntai)odcWN$fNB^Z z&gisy&2GEj@OC4?SSZYgynfH``~QG}f`4;$3J3=dii?bmj*pO$l9P~yc8HXjnwy-A zmWPR*qNAgqn53wwlBS`muCJ`GvZ}GOwxYGSx|zAVzLj*Bt-r*c!Jx&-i@nOf%+0&c V(6`dlv(?tH$EVr4*xjiS06Y4Fo>2e* diff --git a/templates/ja_purity/styles/background/purewhite/images/bub4-tr.gif b/templates/ja_purity/styles/background/purewhite/images/bub4-tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..335419379c7179c418712973120bf012576d1aa8 GIT binary patch literal 835 zc$@)41HAl4Nk%w1VcZ270J8u9_V)Jl^z`@l_x$|)`T6<l>+Adb`~Lp^{r&y(^Yi-p z`uO<x_4W1L-QEBH{{R30A^8LV00000EC2ui0Ne!`000F4u*pfQy*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~J%xmF$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&2GEj@VI<VuiNkVynfH``=bE?3=9AbgNKNTii?bmj*pO$l9QB`mY0~Bnwy-R zo}ZwhqNAjxrl+W>s;jK6uCK7Mva__cwzs&sx{d(701OQa!o$SH#>dFX%FE2n&d<=% z($mz{*4NnC+S}aS-rwNi;^XAy=I7|?>g(+7?(gvN^7Hid_R0bRzYPlg{{H|23LHqV zpuvL(6DnNDu%W|;5F<*QNU@^Dix@L%+{m$`$B!WYLy8<pvZTqAC{wCj$+D%(moQ@z zB(OkVfCdP1>fFh*r_Y~2g9;r=w5ZXeNRujE%CxD|r%<Cxol3Q;)vH*uYTe4UtJkk! z!-^eCwyfE+Xw#})%eL*$0S0ISxOt$i-Me`6>fOt?uiw9b0}CEZxUk{Fh!ZPb%($`R z$B-jSo=my2<;$2eYu?Pcv**vCLyI0wy0q!js8jDnFhIcq1_>HCm`%I3?c2C>>)y?~ zx9{J;g9{%{ytwh>$dfBy&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzP$PKxep+4 z4O=$)_weJ(pHIKO{rmXy>)+46zyJRL1}Nb0faIyiUTg#=sNjMOHt67k5Jo8BgcMe2 z;e{B6XW(lHX6WIEAciR7h$NP1;)y7xs3L?LwzuMoFvck3j5OA0<Bd4xs3UJJcDUn@ zKn5w~kVF<~<dI0C*rR(%HtFP(P(~@`lvGwZ<dRlqspXbjcIoApV20TomSUD^=9y@w zspgt&PDo~(aK<U;oOIS{=bg8`iRYet_UY%JfCgHko`M!?=%I)vs_3HD5z6SJkVY!$ zq?FF-Xr-8Ds_CYjc3R`5o`x#wsHB!^Dt@4zs_Lq&w(9Duz@-Z7thCl@>#d8*itDbt N_Uh}eUM?8{06W`I>S_Q0 diff --git a/templates/ja_purity/styles/background/purewhite/images/c-bg1.gif b/templates/ja_purity/styles/background/purewhite/images/c-bg1.gif new file mode 100644 index 0000000000000000000000000000000000000000..f61353d233532164b09c25e4abb8ae9a4126cf4b GIT binary patch literal 87 zc${<hbhEHbyui-L(7?!W;J|_Z|NkrgWMO1rU}Vr?00NK<1Cw4)|H{*E`4`XGa;tmu ry*<C@Gd}Q`_N;T+t5e(FaUcKWbNyTI^Izw_|KsQ3YCqz~$Y2cs^#do7 diff --git a/templates/ja_purity/styles/background/purewhite/images/c-bg2.gif b/templates/ja_purity/styles/background/purewhite/images/c-bg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d62dff625ea2e14f9073f851253a9ffceae1fe9 GIT binary patch literal 3895 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 BlPCZH diff --git a/templates/ja_purity/styles/background/purewhite/images/checklist-bg.gif b/templates/ja_purity/styles/background/purewhite/images/checklist-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..9e1e6ecab7ee8d5cb23a5e9406f6bc914082ff81 GIT binary patch literal 66 zc${<hbhEHb<YVAwXkcWRIdkU!|Nj+#vM@3*Ff!;c00Bsbfl0EbpK<oiJ7=16nJW8_ T78HBe2D7-$UzzI5$Y2csaT^oh diff --git a/templates/ja_purity/styles/background/purewhite/images/cw-bg1.gif b/templates/ja_purity/styles/background/purewhite/images/cw-bg1.gif new file mode 100644 index 0000000000000000000000000000000000000000..4dbadf22c350692ce0b531246c0fb454377e415b GIT binary patch literal 109 zc${<hbhEHbyui-L(7?d(|NsAQ-@YmSWMKdS9S{MMVPJCU>0f#JE&t*<TW)o4zPIN$ zf7>IEY0o;By*jn+9k=xXpX=XxpZ_}d{U1LMSNoAgA3J=srk`2%nX}hx`IS{)yUu29 Lzw>S#1A{dHJu@|@ diff --git a/templates/ja_purity/styles/background/purewhite/images/cw-bg2.gif b/templates/ja_purity/styles/background/purewhite/images/cw-bg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..34515d19550ec42d6772ed043bc1b08eff3f776d GIT binary patch literal 3868 zc$~GA`&-fpqQ>2}Q8P8C=_G1T>vY=Grm?nZ3UQvErk&%35Zg}2kUEVs+c7hzoTf>n zw!u3pf_E+|A|iLZ<puCsnIa;Xnj$(zYKV75fiGVW&hGgi&iljr`T2dG&+~>yhCxGq z7;%YkdgtV%*XylT>-P5c>gwwH`npc1+u7NfnVDH$UN#sEZ{NP1pPx6I&1-9GYPEW0 zWyNB#D3wY80JK`|*w~m#rBWyqHk)l@V`FJ)X>oCJYirABG=d<wySr<*+Z_&v$z*c+ zf6M2Vz5mBk|Ehm&a&mU`7A8lW@+HYwj|P)q)g#=;a1pveEqpSxhV9WdVi3U<Dt!xf zIOfUhruZ4MVR{4Te6HHCI&f*}8JStxIr!YXd_n<{R9IA8Qd(9{rchH{Dy!(#j2dPw ztB%d#^7sOwsJ@}Gsrf}qYg@ZmBJJqx>h9@%`RaAwn|{_G2jxSGVWn#1?daI}yNOBl zlxBM7_u2Q_4|DSiA9aiRrR9~?we^k7EyMO(H<KB#fL7bC-Qn~{w<8gajF%a%pPjrV zYpi*l<Mr?G%7`ZBn|#Pui8HdM+5wXP?jM{OKP<?KPed0ZsMj*Clmx~y2|*<%u9RK) zWwhnqXNz)2_1Rzet5eN-1@&^qiLTgUZZsvJs(;ne95h}Rns)IY`@Ry4mLW3^4#QjZ z*Q)N`r+EyOimnUq{Y?DYdi{%AH8F2JyX2)0-%F2ojT-m=TaZ@#pDqDWN#v%v*2J}g z^dlEGf2a!oG~<&*;Aiy9?~O4>qhQ;2`(ivo`)TAIT|?4;cYG38)3!D({$*u$xTAgJ zeQ(D8KOsBCTl2D#FTPiHO12kAYOhoyyQIby^^5!Om0ca?jjsLpKSg(UTDJ9Lg6~z` zT~_nv{7`jtPxr1B*j{<B>gjPfoSXx-xV?uHv}vv<xY~4gzW2)vudu)mnTKK$K4d}S zxgWBRJkdKo<oIU?&f$-jC(Pvrvbl44r`q&$`DgkA=LzQ~66On_I!w*|Z%q1m(k17h zg~IO+-&-h(IKf*eMx0+-D7hLI^s)4M%)O6gsQ94kpWJ$~^pPBw9i*e&DZi(qCa`%r zT2kARt|GZVXtDC~#J$BTjE=WRe`Z=*tj0N?)H5;<Ck9e|{0m<)^NukRm?YS;o|${i zZHZM7247;8!9jgpWqe)`yYMV5kw=H;o#d6ZN$=GP9?26p{5&jQQ1=ABB4E<cUkDj| z-&JAHI{ZGrsatx#sZkDJ6%HMpPUO<leUn6EM81g4`%xg^k;AO_*m5_&`lba<qGPE| zxu-(JmOPqXVecTVqP7vaZ_o?C4qtDqneAw3HM0HIyIuDWE%$1P9l;I5I>EYx6*Db* z{h7;5QlDxLeyYds`_=pPUMcRY;y^!ZeT%Gl=4@-dayq&7FZYFlPL(I&%Wf}oVzR`o zA*rGJFzM8zPTz+~ExbeL)^^6OhJR@szkcH<<2%${k#XWy%9?R9F6T>=`VRRg(^LXS zWYQ$HubHNk2fj4VJf8f?{QG~6)tYCYnb*wkaW27tHq-k7@BtrC4-NG^w+_q~h6h^~ zN^d-{e5Bm1x9BQU)-8*SoM2GTB0m6^xSV=$S=hb~t~3q=TUT2qA2_UQWq)T_*E`MY z){S15)3(h%?}xT6SwMr$pt!JM+a3u&y}L7h<KeDReYauPG?TKiYu4tRwgU_Me^XfW zoCZ6%+P-18ZVsGw*mfo#I(B=K8o%8Gnm7KbpgY6KC8Bqa?<UR_!Pw&>>-hw>ndY9! z*c%Y>(hc2+^I*j}e=dHxKXD|(|5==i2j%6bCROI=eQ{2IqrCdePRjZ`^N0O+BmU|o zPyX%e$2Cq5DX)(@C-1rB&h*NO=sV`Sg^xfm50YhlCtzE-R|(8RoQO9k(OY>a1@myb z>`gFsD?iS?7BUdgf0njINI=y37A4@$OScM=3AINSBL-j^#}*Nzs6A?y4O|4bNH}+v zze}X-vag{Kk6<119+ZW_3`K<m*71PIK{(n_{Oc{;i3@{+NUWiR;a(RQ9x1;@Gn8@> zbti8O%44L4vPMGPsk@OwXpNy<tf&i4863I|8pyrw>@zu$h`&A3Qe+7BS@NJF9=1&# zA+XPJB8L;v+cdR;eZGBg_yKmiLhH_f4n!&+(Y7n~2o7v=Q29i<UA0MA{L1e;6;`uN z2Nax(=0VkSaJ$;cgL}yZKC<U8T83*B_p-NqBpbF<<5j@@E&%>E552>L40FRS$lnsN zJGK5Eyohl4XfbVv6&S^X-;j@%OLyuVX9|}7+WOrXO|!#>4)c&H@-aHN!@1<azna7U z^FD}?8xh67MwXAWVMgB70{(Rl{2d={<fDf9G41kq^;n}I&O?A2fKN2jjKYK{0eVtC z(Iz#Dl7C%(qk~UMHO6|(u;8{?KG_W#8*m=NIF~ExSH7l3e3bA<?;&+R%+yp^AiNWB zWlD}VHRomF;x7zMDY2#(3=dI4_!Z44&D6q;5+&Xk(o9HAt&Ihuq`Oz9H5yZ!cv$ox zWoUX9G`077)F<a$x%Kv<RxFFEe?%Ud(ZS4;k%IcioGZUCqs>zFaQ&0^q2JfB<_@h# z17_gLtbu0k)JHiQu#-cxCaJk=vtZ+wufKf{YRuihaKm%+(0e;*?s4*L#JM2iBF|}i zU6GCH-U_XADDcvY*q9lB_~3REcm+{5W?xWz@O%oq_V;YUha=_=Rsem0$fmp-in+rb zz?(C~t&IJMdEaTEAF6C3rYPo*T7iK}VSE3OjaWG5XOTr9n~TYcg%hEc!K=jPQV!zd z$(t5AO4(fAuJ{=I)G`$3`GPWl(4DQYC=!q_Xp;)v`O_gz$;20xi-<+ov_*+gzMz{G zix;gH70$DT;S#04><5nEku6N`VSQLA__mPP!U~95g5Ly3Dasc1)~XKq6dYrCwsIZe zQOnmVz;Q0Jm49P+Ii@0YtdZC%yc@NGo(3nx%GUan;g#D~aI%-)av&#a^+!LeT83<E zCJ(R1hgzpbh;1#LsI|nKR-Cu2t*w1{?ZH#)wAQm-JP@`1sKPp<N485Rhu5EUSbyIn zws$T@ZD6OZvw*U_+dRDS+-iOAbU@tea&&z!#HMwP7QgaVZf1wtK6sJDeF4a=yqmT; zh)UdlLAgbIYMb{zAd!V54aF6<g}`Wu{D#s{-eLQACPnNLkKCqB+jLNsM46)8rdw@` zmkvlra*#Vrzg>Mqv~-lL++m0AE?p%_$2mwN|K{#8N+q3WS2~RK8#Ybcfe!Tm($rkB zyP6Q)p_x>g+HQ`lB$GO37LjJ@^zJ%F)iG;Un!ByL8@P6<lXEoi%Fn)ukM5lFRssE? z_N_uv=R!cVMSjz6pr|@^7gQGIQ~NgKK$ku|8XT>#?{K5LmT#!QiPIN18%bTOccZPE zX}d|R>RL}xJ!N;;&AkV@H*=zGbAAp$7Ts+it8BVZhlRb-wZn<tUB2l6)v9h&yK1-U z?*^;(Ko2kwZ8uanZ2IUPa8hMAbvSklZ8+Ovv;&-W*a20K-K=uht^Yh>2yPD)w-<$T z#^78jI5#oQU5)bua9)tKgU~d`AynF7Od5oe<||G+!u`##ljaXeKL$-dj!Hj)Ne`r? zpA@H`Ql|$4>C5A3XQ3JAP#Nbj8Bj_FOq}tJI^!acaS4)n8I^Vhl^KS~jG$z~#hD0o zCKAZJ3dz!*%e;=tios-|C|PK6)-83`Z6GU7jQi<K_8nAqJSIDVlAS2dPEuz-0J4)I zIgg+@|KpYY1e1fI<Y2`)&(t~3fgBw7x5rR?CJLX8!Q(0TJTac2#uEYjO)q>gG`AF$ zTaL-4P;zOgtU`4z9mr)s@|e&(7AlX8$%8xX;fwQx>b!a&uMv{p49#yr<+ow-#gu%h zIKNY!@8|~ddm)5ZP(mMy(2pU=C<M8fpimQ(0AU1DFbXXg56tIc3e=PWjksV&T`&t2 zWTFb@pu`0fQHLSwDa2(laaB!R2Z);xl0i+-qDUqT380WbG07&wZv!MJpTa#Mg?nQQ zol^^4sfBKm!q;k&r=`%#r|4iv(V;1ldukDcTI4G!Ix<ys)KcW{Q#^qxIv!hmBDFY> zT6|LCd~B*X*iwAPr{ru%$+_4PCrL4sS^|@ld^1(zb+6=-PwC~5((htR!%|CKmrCH0 zQp8j#(o*^hzVup1+4b16nA9><Zs}D?*{!Lv+m^DpslBlw<#%Gs<5SBW3Doj&NO{s! z`2$ONa%53r2>Ed=`AI4n6Iu4Ng#2uZ{M<sOQ^@Hdl+0L4b}Gf-O39N@2vZc|U@_i@ zS{y<xjir`H=98#YnuJ<8MGa4;GJI&v5E?7DjGjv4QfYjj^13Nny@l53Qvs3CT4F2O zQY!+2Dx{K%&Z&y-kOHw!<*Sg&zQKZ?)Jhq(QZA`%KvgO&l_Ne?xw6Xf*s6)tDsoVj zMp891RrM3DO6x<P3!%p^Rq0acdMf?;CHm?VeceJo%cC1Ys&}aL&D3guS`Ee)8mFr5 zmg?7%>OC;VUNqyKE5nt>aFbG<H4IOX;U&*^?1$AHLf0hw)Iex8zHT*#H8n@U8ib_g z7>s#*neLBe2GW>+j%A+GFoS88Cw*(r!fMR`^E|c|3a6cu)_$X@t)tXl@?~9yQ!b)e zVOZ8!2n#M{Az<YZAnU4c-F-FdI=U|AWa%|p9a>r!pImnvtcwGSZo$}h(Cip5b^?u^ zD6fv!upfZz|7c`Cf^i=6iOE<F2FCtX%6X>YC@CDAFE?VDlZobLFXyMzxOuSJ91WKU za_hz1Vi@nJ8?PM8%Y^f2Ql4ubj}G$g%Xv%~e|aCDjpfI{`Ftr~lgqCM`QOU<%`m~M zeS$Wu;1paSl?p<5xq@y`@Tpwz3MM4&6ZT_;d*DL3RQQivp%N6X4GKqLBH=#K1XlDe UQlycJkh!8+P}JkI*D3UW0SsrUH~;_u diff --git a/templates/ja_purity/styles/background/purewhite/images/cw-bg3.gif b/templates/ja_purity/styles/background/purewhite/images/cw-bg3.gif new file mode 100644 index 0000000000000000000000000000000000000000..a75b5987f1d3d488c2195496fdf4e9ae4d5a5742 GIT binary patch literal 176 zc${<hbhEHbWMc4OIKsg2?Af!gU%&qN@#FjV?>~S3{PX9}`}gm^eEIV6<HwgTU%q<v z>i6&8FJ8QO^XAR3U%&qT{rm6VzyJULGY}0Ff3kpS9S{MslYv!t!DAEN!wd~GHI^hQ poG4^DXu!eb*zxF*e(RxR4;iPv6DcVtbFAiHSW)7&*3X&28UTx9OauS` diff --git a/templates/ja_purity/styles/background/purewhite/images/cwf-bg.gif b/templates/ja_purity/styles/background/purewhite/images/cwf-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..a75b5987f1d3d488c2195496fdf4e9ae4d5a5742 GIT binary patch literal 176 zc${<hbhEHbWMc4OIKsg2?Af!gU%&qN@#FjV?>~S3{PX9}`}gm^eEIV6<HwgTU%q<v z>i6&8FJ8QO^XAR3U%&qT{rm6VzyJULGY}0Ff3kpS9S{MslYv!t!DAEN!wd~GHI^hQ poG4^DXu!eb*zxF*e(RxR4;iPv6DcVtbFAiHSW)7&*3X&28UTx9OauS` diff --git a/templates/ja_purity/styles/background/purewhite/images/download-bg.gif b/templates/ja_purity/styles/background/purewhite/images/download-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..617e6635768b5587edbeef11236a4402b9c08916 GIT binary patch literal 1301 zc$@(h1?u`oNk%w1VIBY;0QUd@EQ<e$!~O|v{*S)@I+6b<hW{c@wK9$W3Q@ft9-09X zr(C4}03Ng%R<UWX|95?se~_zQss9vK$NBmBPM!bu_V$s!|9QFpm7AggIlCf*|3jDm z05H5sV!LCj|GmG#0X?!$lkE#~|4CM~Nt^#{vHv`i|GvY@8GZi<N~H;D{CctfBT=?A zQPkt}{|8(76M6sC>Hk}&|E|;j237YzgXw*{|8=_mcenp>wErD{{||TnR-^w_qW@8$ z|3#Sp2x0psh5ra+`@h=%%i#am>HjfK(&h61v(x{l%>SIl|MvL&g}DD&rT;dM|1gXH zjK%+Tw*OF{{|IFIfxiE4s_r6W(NLA{LTRORwD?Gl<OOK`Ltu-Dt^CL0{{T44Xnmwe zPq9a5y>7Grb$F9DIGhY~{{u()06Fi4!vB=A`^w78owoY~R>v1@`yqVqIeh0IOp$A; z|2=NvH-X+lY~d(I&PiOjyTHc+Q__&i|4L@PmBIf7QudtC|0#g&o5lYjan}S(^lPW= z0XXJ^zyASB^Z+Bb0&M=|<>sWz{{>R{JbCz`#{PP={|`;`f4cZwZ-{@s|2%~0U5NLH zx&H-G>bu+jgSP*_-T!QHzFedKaj^DWr26yp`bkc&i@yJ&%>U;0|M2ke)YRA4*xTIP z+yX@M08X|H6_9;{#!hXrZhewImj82qnKD<S$m0K?y8P(q>F)0DVyypmlG0?X|4W_! z9!s#a)BjqV=v<!uIbGVY(*K;HsH)EYm!h*`aEmv2=Q(Aj2|$^Ok)C&Zm1n5`7%{># zci$u>oV&cn6?^|gWROE(pK7rG9bwK2ZuLo7wgy=D@B9B2egAiWmwADfeu0^r(f^jr z{{m9H_xSq)NZ01`{{U3?D0$!j7qJy;)hbYk7kKwsrvGZ7{GZeRB6ZyYK;#2S=lA&h z_xb#l#s55j=m%f<jIH}}w*CV>qzX8y15w$X#{UCX&H+E-I&$PVcIFX4r!Il$7e%K4 zP4y;IxBvhDA^8LV00000EC2ui03HAy000R80RIUbNU)&6g9sBUT*$CtK~I{LC74LD z;>0q`8mdxYr-hM^AVao5mWmX^PrO8VJHoQ1OKNNsU}G4jj*B8VbLuSOB33vu3`fj~ zL8PeBqeNn;31=)QJ}*O}N}W0c7CZ(`7fQ=_35nOQU~^^a!r%eJJHlopS<80quU<16 zQ95LHVFx&&l<3t9sGcGV<`_Lf!=bLi4({3wSiG3efL(6B^)qyegEfYGYJg(Gxe_Kh zK@e@3@`8q-4A&B}Te40}4M!_tA0wav1q?F+guLjJ!4<b9OA6NVXTZR`N#z!7qF~~{ zlOQ@^h)@A!S_XYASQuDE5SN52S3-31icpS+lv^8`7l=Onoh5bY2z>!T@C3hPH*Sn6 z;lNe|9u)jQzyU#^u!8`kEpo;^AOurTDX&<;Ng5a6kb?srG$Dn60BFFB8Pw6xjXcFn zV2~`%Km&;$h1d{92^mtbffMT;I0Ze#V31G+U`Q}XHUUs^0gOG6V8Rm`R1-}eaeTlK z1PD}d4ir>G@r(>U%m@HE_KdTJL%<-Qiyu(fkb?(2kkHB-ZE#_VLjvK^fEL=MfrA5B z{;^FYqrf@P2@TK@fFvc*vJWb(nCRy~iC_^(7V&_Sf{u$8G|MpJpp$|xl^#?91kE_v L>8PYK6c7MAXNaCQ diff --git a/templates/ja_purity/styles/background/purewhite/images/icon_list.gif b/templates/ja_purity/styles/background/purewhite/images/icon_list.gif new file mode 100644 index 0000000000000000000000000000000000000000..05e019e32f3e2f1ccfd26b044fcf54812ffb0dc1 GIT binary patch literal 350 zc$}5b&nv@m9LMqZXW#F4?ML6$Y6o*zzLr+YceR~}L}|X;OwyF(BL9E`MNZ=&Gi=(v zTYenAk;9A#2M2fY!O7JXGaN+uQ7_GZ;Bk8%pFNRqOY5jiGTjCURgRA;mLzNmNQ+n# zQDk`L$S|x5NHL@Y7z~RNDjd3meTFo{3&*B_CyqUa$`wis3xw}?JaW8p<RqLB)(NFB zjtB-JP0$HDgk8b`Axrpr!~F$r3g8(WkKhmepYka(q5w75qV`1Qna+YeKYZ9x9<()0 zNQo7;Ex6kgNu$)yrqA-Tsq@p~^+Wt}U?X=o9*Kp5A#Li%m~03xE2L6#PMO!t9+&D? zU7oBtV)c3*szcYUQIo~zt2YdbDdrcQjpeda9P9JTc3YjzE)T`K!&<aA&_!*(oJxsK diff --git a/templates/ja_purity/styles/background/purewhite/images/index.html b/templates/ja_purity/styles/background/purewhite/images/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/background/purewhite/images/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/background/purewhite/images/ol-bg.gif b/templates/ja_purity/styles/background/purewhite/images/ol-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b60139052041946ada6cb5a2e19638da03a0809 GIT binary patch literal 433 zc${<hbhEHbRAx|SxXQrr;K740U%ubFcmMO}Z?9gxe)Q<k!-o$aJb3uw!{>YV?tT3D z`SIf?FJHcX_3F)|M~^>z`1I-1*Jsb3zkK=X{ritkpFVr>;?<Wg-#&l-`sB&e`}ZHb ze*O0T{rhj;ynFrn&C{pPKYsl3{{5$i4<CK~`s421y9_h{ia%Mvv<`>>`H6w;oWsNd z50NH`iA{+jS}qd(i%P6yJQx<QDYIr0&<V*}F!8~x?M;3=DhlV^zkM`8w<_V`k9A5t z8qYs7RR;-_*H^L^yD;XpwQ;*j^-hv;W|W@P%fRR)G-DF4ljOW!b|vA(lQ=|I^s-2- zX%lJPP{7KxrE>F*bf)dQ^BH#Sk78YaI89{r@feonr=vNP7M)jKsx<e?0;Or^XE{$i zJ!NXo{(je%{T;!zI~o(qHZU|L=B_9zabjetYh$|gBUFOpanb{B2Q7JtiU6ZS4Z=(U JA6OX~tO2hqyE*^> diff --git a/templates/ja_purity/styles/background/purewhite/images/sc-q.gif b/templates/ja_purity/styles/background/purewhite/images/sc-q.gif new file mode 100644 index 0000000000000000000000000000000000000000..314d730e4dc6b8015ca6715b488294f4e7729229 GIT binary patch literal 142 zc${<hbhEHb<YnMy*v!Ll`SR8C=P&Nux%=$d^H;ClxN+mw?%jJ&pFVrwz@ZZ-PF=is zdHeRA|NsAIfC0syEQ|~cJPbM@4#*4!7VClqoeYyjmK>d)6urFVj(gSen+sQK37rZw q+VIA($M=EdcJVgWCUy}ck%PAlR|@e|NUQ4=Xnc?e(bi*Pum%92Av>S| diff --git a/templates/ja_purity/styles/background/purewhite/images/so-q.gif b/templates/ja_purity/styles/background/purewhite/images/so-q.gif new file mode 100644 index 0000000000000000000000000000000000000000..e41ff147620100a380de9da7017afe67b0b44662 GIT binary patch literal 139 zc${<hbhEHb<YnMy*v!Ll`SR8C=P&Nux%=$d^H;ClxN+mw?%jJ&pFVrwz@ZZ-PF=is zdHeRA|NsAIfC0syEQ|~cJPbM@4#*4!7K;fdi<;(y@@>3yS9Y;Z_d<{4N~P4ojcwi& mj+^Rl_0VqV`>Z)h{e~i+r_*BnP990d4vnM(4PNYm4AubSOggXt diff --git a/templates/ja_purity/styles/background/purewhite/images/star-bg.gif b/templates/ja_purity/styles/background/purewhite/images/star-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..6fb27ec53217fccefbf1d6e556295e2c2b3e36cb GIT binary patch literal 206 zc${<hbhEHb<YVAvIKsei^ytw;hYsDnd-v3-Q@?-z{`m3ZvuDpvoH+65(W8S04_>)) z<?!Ld&!0cPb?erjKYu=b`t<hg+h4zaUA%bl`t|GAu3h{0@88LjC;$HayKmpV|Ns9p zU;xFREMQs(M1bsMVD(N=>k}}Umu|`<+GQkhY{z2eBMr@VZplXty$^pl;nQ$JW$7Xh vHPN-*M<gf5xJ_^VTwwcml34hmnGUW=jExEc-E+9OSsYy)bhs7?FjxZsC>>?B diff --git a/templates/ja_purity/styles/background/purewhite/images/sticky-bg.gif b/templates/ja_purity/styles/background/purewhite/images/sticky-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..084a7188118e64813cbca2c0ca2b68ace4f32f68 GIT binary patch literal 1294 zc$^heX*d)J03De$ON$&i@|EzFa!)9w7=y5cbYFDs7rV7>aumDk`eHZ5Ce;pYtfSB| z6VX9J)-bh=D@mkb7>qF&W{jD)dOzN;_v5|yy|>-pcaz)Em4uaqSpq=`V0=CJp%A$P z??wm&sB+QfhS>|XmX^S02zCH1kVHZf*4@#8F&{u6m&t%mfCW4ODuCON_+sh^CcU|) zrUQ<Sg0*W~)YV06)&NaFHSiBW1L#02<f*_TpboeP)B<HtW&?%5M@XW8ZXge+!AvZK zM*ueFvw$urvmiVS^a7)pi31ve5eP#27Yt9w4wRa8`1puwc5sV-!icZ3hKzBltm)8H z+s2Wy%eX;mIcYoHS|bvPFyPMJxu`yDm*n0-%<S&JOolYSHu4w---_9-<+pChIDIwc zCFrq`mIpwd0lchCjpS|JCa5ijAaB6fc$$&U?dh3$lz^sHi~~D|ilQg(hSV___0<bi zyqB@6y7ZPd)z!(^P7ps-DQ>HVvm4@^g)bK3r&q;L(SH-Nl<Lyb2f@LR?yjWWRAE%n zc@F&^l?nR<&5z_wrDL9+(`i<ahN~2F595M*ySqO3_d}j0o12g+c?$3W-t^EHF`uuP znow}uOJk2?+zt3mIr<kT!-kt<KRh(V=W>BKQR52XEDvo4m<g*`wL+$7dysMg_#)|S zo}8SNcQ=&(nf326a;?81`^uWmc(N!sSXOtnwXyLni=}$)1l$7NV0y>jzg)bthw^;i zeoUXH=U$sEIsAgb5IpdIS;b(uY>=_m(auJJzo4)Dbk#;VD-jpi%@?kdzP6`lE_67I zZZcFfdd{V(#tq%6WF_Zj{T^S??I1gji2zoDqqHVh#&A)&xHKf%%x(3+Objv!bDyaa zZeLg16Z-G*^L^Lm=H?Wm&fsojWu1XMrSjb7Y9Gprn9Wb`mR9)riOQlX&Ia}T_YAm$ z**%Z%+`xo`R4itDdP2OgD={QLU_Kq!G=UR95x`v7{%Sdq@D;XS>FXy5BoOe8nIFBN zA(f=R{t%O1*pyCuC-aX8{=*@I)R)`KrsSnZGlT|SPf9wRe021G{2-(RCP$X=J}kSQ z#&mG4dv9wpWW};dqi#-2YF6{3hb&99PHHId$_(sYzK>S)#@OrdC+(lD2PxkchuIGV zntLXzkqiuNr7TP0(Y#HIlj6+{&!lS^yIAMvQjYmtUZ%0_nHT9H(=cZ5;Ns^8i-;t{ z#Jw5D4IHid(<BC8O=#W0SwS=_%CNQ2(B4iOE}`CwGTT-XNA=Kdk0Wd8Q)2fgr0ZU- zB59s~m3<{8R<n<n^65Kgo}L$#W;OOSv?*N2uu4gDbs9RNv1Cc$>WSCBmrQtiJ=A<Z z(X4BhkqI$kQ=?X)iH+uo<Kf|^OJ<GSNQ4FgQ<|)68pAWEU2F;czA?d>bV}PPkC~jk z#VGLX^3<GOVYs%(sU&}bTCJGi6?Q0s^()_P=*v<Ewy<eqRq^Toqx<JmvW-NJo*zlB z!uB9_wWtDba$vlEv!kB*^&q<lgXomScE$xdi{#!J-frxW%3zxV**Usv3rL+y4Sa0} zU#;4ec}`11ogGcEc=qP8uH~z<PVY8w(kM)ei}#~jT-tZF6YYcDiAlui5RSj44wIv? ZCCRojV7>9l^0CtV*zvMbH8sMP{{iU)_sReO diff --git a/templates/ja_purity/styles/background/purewhite/index.html b/templates/ja_purity/styles/background/purewhite/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/background/purewhite/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/background/purewhite/style.css b/templates/ja_purity/styles/background/purewhite/style.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/background/purewhite/style.css @@ -0,0 +1,366 @@ +/* BONUS TYPOGRAPHY STYLES +--------------------------------------------------------- */ +pre, .code { + border-left: 5px solid #999999; + background: #F6F6F6; +} + +blockquote span.open { + background: url(images/so-q.gif) no-repeat left top; +} + +blockquote span.close { + background: url(images/sc-q.gif) no-repeat bottom right; +} + +/* Quote hilight */ +.quote-hilite { + border: 1px solid #CACACC; + background: #FFFFFF; +} + +/* Small quote */ +.small-quote span.open-quote { + background: url(images/so-q.gif) no-repeat center left; +} + +.small-quote span.close-quote { + background: url(images/sc-q.gif) no-repeat center right; +} + +.small-quote span.author { + border-top: 1px solid #DCDDE0; + background: url(../.../.../images/author.gif) no-repeat 5px 4px #EAEBEE; +} + +/* Rropcap */ +.dropcap { + color: #999999; +} + +/* Tips, Error, Message, Hightlight*/ +.error { + color: #666666; + background: url(../.../.../images/icon-error.gif) no-repeat top left; +} + +.message { + color: #999999; + background: url(../.../.../images/icon-info.gif) no-repeat top left; +} + +.tips { + color: #666666; + background: url(../.../.../images/icon-tips.gif) no-repeat top left; +} + +.highlight { + background: #FFFFCC; +} + +/* Note Style */ +p.stickynote { + border: 1px solid #CACACC; + background: url(images/sticky-bg.gif) no-repeat 5px center #FFFFFF; +} + +p.download { + border: 1px solid #CACACC; + background: url(images/download-bg.gif) no-repeat 5px center #FFFFFF; +} + +/* Check list */ +ul.checklist li { + background: url(images/checklist-bg.gif) no-repeat 0 3px; +} + +/* Small checklist */ +ul.small-checklist li { + background: url(images/icon_list.gif) no-repeat 0 3px; +} + +/* Check list */ +ul.stars li { + background: url(images/star-bg.gif) no-repeat 0 3px; +} + +/* Bignumber */ +.bignumber { + background: url(images/ol-bg.gif) no-repeat top left; + color: #7BA566; +} + +/* Talking box. Thinking box. */ +div.bubble1 span.author, +div.bubble2 span.author, +div.bubble3 span.author, +div.bubble4 span.author { +} + +div.bubble1 div { + background: url(images/bub1-br.gif) no-repeat bottom right; +} + +div.bubble1 div div { + background: url(images/bub1-bl.gif) no-repeat bottom left; +} + +div.bubble1 div div div { + background: url(images/bub1-tr.gif) no-repeat top right; +} + +div.bubble1 div div div div { + background: url(images/bub1-tl.gif) no-repeat top left; +} + +div.bubble2 div { + background: url(images/bub2-br.gif) no-repeat bottom right; +} + +div.bubble2 div div { + background: url(images/bub2-bl.gif) no-repeat bottom left; +} + +div.bubble2 div div div { + background: url(images/bub2-tr.gif) no-repeat top right; +} + +div.bubble2 div div div div { + background: url(images/bub2-tl.gif) no-repeat top left; +} + +div.bubble3 div { + background: url(images/bub3-br.gif) no-repeat bottom right; +} + +div.bubble3 div div { + background: url(images/bub3-bl.gif) no-repeat bottom left; +} + +div.bubble3 div div div { + background: url(images/bub3-tr.gif) no-repeat top right; +} + +div.bubble3 div div div div { + background: url(images/bub3-tl.gif) no-repeat top left; +} + +div.bubble4 div { + background: url(images/bub4-br.gif) no-repeat bottom right; +} + +div.bubble4 div div { + background: url(images/bub4-bl.gif) no-repeat bottom left; +} + +div.bubble4 div div div { + background: url(images/bub4-tr.gif) no-repeat top right; +} + +div.bubble4 div div div div { + background: url(images/bub4-tl.gif) no-repeat top left; +} + +/* Legend */ +.legend-title { + background: #FFFFFF; +} + +.legend { + border: 1px solid #CACACC; + background: #FFFFFF; +} + +/* MAIN LAYOUT DIVS +--------------------------------------------------------- */ +#ja-wrapper { + background: #FFFFFF; +} + +#ja-containerwrap { + background: none; +} + +#ja-containerwrap2 { + background: url(images/cwf-bg.gif) repeat-x top left; +} + +#ja-container { + padding: 20px 0; + background: url(images/cwf-bg.gif) repeat-x top left; +} + +#ja-container2 { + padding: 0; + background: url(images/c-bg1.gif) repeat-y 18% 0; +} + +/* Full */ +#ja-containerwrap-f { + background: url(images/cwf-bg.gif) repeat-x top left #FFFFFF; +} + +/* Full left */ +#ja-containerwrap-fl { + background: url(images/cwf-bg.gif) repeat-x top left #FFFFFF; +} + +/* Full right */ +#ja-containerwrap-fr { + background: none; +} + +#ja-containerwrap-fr #ja-containerwrap2 { + background: url(images/cwf-bg.gif) repeat-x top left; +} + +/* Module rounded */ +div.module h3 { + border-bottom: 1px solid #E9E9E9; + color: #7BA566; +} + +div.module_black, +div.module_green, +div.module_blue, +div.module_red, +div.module { + background: url(images/b-br.gif) no-repeat bottom right #FFFFFF; +} + +div.module div { + background: url(images/b-bl.gif) no-repeat bottom left; +} + +div.module div div { + background: url(images/b-tr.gif) no-repeat top right; +} + +div.module div div div { + background: url(images/b-tl.gif) no-repeat top left; +} + +div.module_text span { + background: #FFFFFF; +} + +div.module_text { + background: url(images/bt-br.gif) no-repeat bottom right #F6F6F6; +} + +div.module_text div { + background: url(images/bt-bl.gif) no-repeat bottom left; +} + +div.module_text div div { + background: url(images/bt-tr.gif) no-repeat top right; +} + +div.module_text div div div { + background: url(images/bt-tl.gif) no-repeat top left; +} + +/* red */ +div.module_black h3, +div.module_green h3, +div.module_blue h3, +div.module_red h3 { + border-bottom: 1px solid #F6F6F6; + color: #FFFFFF; +} + +div.module_red { + background: url(images/br-br.gif) no-repeat bottom right #BF0000; + color: #FFFFFF; +} + +div.module_red div { + background: url(images/br-bl.gif) no-repeat bottom left; +} + +div.module_red div div { + background: url(images/br-tr.gif) no-repeat top right; +} + +div.module_red div div div { + padding: 0 15px 10px; + background: url(images/br-tl.gif) no-repeat top left; +} + +/* blue */ +div.module_blue { + background: url(images/bb-br.gif) no-repeat bottom right #025291; + color: #FFFFFF; +} + +div.module_blue div { + background: url(images/bb-bl.gif) no-repeat bottom left; +} + +div.module_blue div div { + background: url(images/bb-tr.gif) no-repeat top right; +} + +div.module_blue div div div { + background: url(images/bb-tl.gif) no-repeat top left; +} + +/* green */ +div.module_green { + background: url(images/bg-br.gif) no-repeat bottom right #7BA566; + color: #FFFFFF; +} + +div.module_green div { + background: url(images/bg-bl.gif) no-repeat bottom left; +} + +div.module_green div div { + background: url(images/bg-tr.gif) no-repeat top right; +} + +div.module_green div div div { + padding: 0 15px 10px; + background: url(images/bg-tl.gif) no-repeat top left; +} + +/* black */ +div.module_black { + background: url(images/bl-br.gif) no-repeat bottom right #333333; + color: #FFFFFF; +} + +div.module_black div { + background: url(images/bl-bl.gif) no-repeat bottom left; +} + +div.module_black div div { + background: url(images/bl-tr.gif) no-repeat top right; +} + +div.module_black div div div { + background: url(images/bl-tl.gif) no-repeat top left; +} + +/* JOOMLA STYLE +--------------------------------------------------------- */ +a.readon { + border: 1px solid #ECECEC; + background: url(images/arrow.png) no-repeat 5px 48%; + color: #006699; +} + +a.readon:hover, a.readon:active, a.readon:focus { + border: 1px solid #DDDDDD; + background: url(images/arrow.png) no-repeat 5px 48% #F6F6F6; +} + +ul.menu li.active a { + background-color: #ECECEC; +} + +ul.menu li a:hover, +ul.menu li a:active, +ul.menu li a:focus { + background-color: #F6F6F6; +} diff --git a/templates/ja_purity/styles/elements/black/images/index.html b/templates/ja_purity/styles/elements/black/images/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/elements/black/images/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/elements/black/index.html b/templates/ja_purity/styles/elements/black/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/elements/black/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/elements/black/style.css b/templates/ja_purity/styles/elements/black/style.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/elements/black/style.css @@ -0,0 +1,36 @@ +a { + color: #333333; + text-decoration: underline; +} + +a.readon { + color: #333333; +} + +#ja-container2 ul.menu li li a:hover, +#ja-container2 ul.menu li li a:active, +#ja-container2 ul.menu li li a:focus { + color: #333333; +} + +#ja-container2 ul.menu li.active a span { + background: url(../../../images/bullet.gif) no-repeat 5px; +} + +.bignumber { + color: #333333; +} + +#ja-container2 ul.menu li.active a { + color: #333333; +} + +div.moduletable h3, +div.moduletable_menu h3, +div.moduletable_text h3 { + color: #333333; +} + +div.module h3 { + color: #333333; +} diff --git a/templates/ja_purity/styles/elements/blue/images/bullet3.gif b/templates/ja_purity/styles/elements/blue/images/bullet3.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a77844c8b855e65cc695503560bacd90d24ec1a GIT binary patch literal 72 zc${<hbhEHbWMyDwSj50!*0!E4Yqm|-M$3*3w_ko_NSnz328usfz_bpC0I6kQ=Jg16 R4hmq2U|Qg0IEjJ58UU>K5QzW) diff --git a/templates/ja_purity/styles/elements/blue/style.css b/templates/ja_purity/styles/elements/blue/style.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/elements/blue/style.css @@ -0,0 +1,36 @@ +a { + color: #006699; + text-decoration: underline; +} + +a.readon { + color: #006699; +} + +#ja-container2 ul.menu li li a:hover, +#ja-container2 ul.menu li li a:active, +#ja-container2 ul.menu li li a:focus { + color: #006699; +} + +.bignumber { + color: #006699; +} + +#ja-container2 ul.menu li.active a { + color: #006699; +} + +div.moduletable h3, +div.moduletable_menu h3, +div.moduletable_text h3 { + color: #006699; +} + +div.module h3 { + color: #006699; +} + +#ja-container2 ul.menu li.active a span { + background: url(images/bullet3.gif) no-repeat 5px; +} diff --git a/templates/ja_purity/styles/elements/green/images/bullet3.gif b/templates/ja_purity/styles/elements/green/images/bullet3.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a77844c8b855e65cc695503560bacd90d24ec1a GIT binary patch literal 72 zc${<hbhEHbWMyDwSj50!*0!E4Yqm|-M$3*3w_ko_NSnz328usfz_bpC0I6kQ=Jg16 R4hmq2U|Qg0IEjJ58UU>K5QzW) diff --git a/templates/ja_purity/styles/elements/green/style.css b/templates/ja_purity/styles/elements/green/style.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/elements/green/style.css @@ -0,0 +1,32 @@ +a { + color: #7BA566; + text-decoration: underline; +} + +a.readon { + color: #7BA566; +} + +#ja-container2 ul.menu li li a:hover, +#ja-container2 ul.menu li li a:active, +#ja-container2 ul.menu li li a:focus { + color: #7BA566; +} + +.bignumber { + color: #7BA566; +} + +#ja-container2 ul.menu li.active a { + color: #7BA566; +} + +div.moduletable h3, +div.moduletable_menu h3, +div.moduletable_text h3 { + color: #7BA566; +} + +div.module h3 { + color: #7BA566; +} diff --git a/templates/ja_purity/styles/elements/index.html b/templates/ja_purity/styles/elements/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/elements/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/elements/red/images/bullet3.gif b/templates/ja_purity/styles/elements/red/images/bullet3.gif new file mode 100644 index 0000000000000000000000000000000000000000..c27e4c72376ffdf06963d229cb45314d20bbe52c GIT binary patch literal 72 zc${<hbhEHbWMyDwSj50^*39f68{0V>n{T&opS85y&j1CAKUu)E4u}A$WnkvD2r&r? PV2NN_;Iwff1A{dHe})gv diff --git a/templates/ja_purity/styles/elements/red/images/index.html b/templates/ja_purity/styles/elements/red/images/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/elements/red/images/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/elements/red/index.html b/templates/ja_purity/styles/elements/red/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/elements/red/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/elements/red/style.css b/templates/ja_purity/styles/elements/red/style.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/elements/red/style.css @@ -0,0 +1,36 @@ +a { + color: #CC0000; + text-decoration: underline; +} + +a.readon { + color: #CC0000; +} + +#ja-container2 ul.menu li li a:hover, +#ja-container2 ul.menu li li a:active, +#ja-container2 ul.menu li li a:focus { + color: #CC0000; +} + +.bignumber { + color: #CC0000; +} + +#ja-container2 ul.menu li.active a { + color: #CC0000; +} + +div.moduletable h3, +div.moduletable_menu h3, +div.moduletable_text h3 { + color: #CC0000; +} + +div.module h3 { + color: #CC0000; +} + +#ja-container2 ul.menu li.active a span { + background: url(images/bullet3.gif) no-repeat 5px; +} diff --git a/templates/ja_purity/styles/header/blue/images/header-mask.png b/templates/ja_purity/styles/header/blue/images/header-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..f86e90b713b1b0ade417d35248da74188dd8078c GIT binary patch literal 12113 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 Hu0mjfrEulG diff --git a/templates/ja_purity/styles/header/blue/images/icon-search.gif b/templates/ja_purity/styles/header/blue/images/icon-search.gif new file mode 100644 index 0000000000000000000000000000000000000000..313ad2375e2d502f34dec755bb2d288c654c0128 GIT binary patch literal 65 zc${<hbhEHb<YwSzXkcVGeE;qL|Nj+#vM@3*Ff!;c00Bsbfl0!rA)$KB?>J+xb7@PL SuG>7hVSaN@KxPvwgEat)`4x-+ diff --git a/templates/ja_purity/styles/header/blue/images/index.html b/templates/ja_purity/styles/header/blue/images/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/header/blue/images/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/header/blue/images/opaque.png b/templates/ja_purity/styles/header/blue/images/opaque.png new file mode 100644 index 0000000000000000000000000000000000000000..dd16dc977bc62c341bb4e35fdf5da95a79000091 GIT binary patch literal 109 zc%17D@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}bl$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G{GKk3Ar-fh5<F)A<WV@l!0gZXOyW6XIZ%qh)78&qol`;+ E06tzEwEzGB diff --git a/templates/ja_purity/styles/header/blue/images/vdot2.gif b/templates/ja_purity/styles/header/blue/images/vdot2.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a2a1f8681264ff4b8ae42cb78472c97bd6c1b6e GIT binary patch literal 43 rc${<hbhEHbWMW`sXkcK_YT3vTQm6Qng#iR~Km<sJfr*KSi@_QIt!V}S diff --git a/templates/ja_purity/styles/header/blue/index.html b/templates/ja_purity/styles/header/blue/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/header/blue/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/header/blue/style.css b/templates/ja_purity/styles/header/blue/style.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/header/blue/style.css @@ -0,0 +1,117 @@ +#ja-headerwrap { + background: #006699; + color: #C3DFED; +} + +.ja-headermask { + background: url(images/header-mask.png) no-repeat top right; +} + +#ja-header a { + color: #C3DFED; +} + +h1.logo-text a { + color: #C3DFED !important; +} + +p.site-slogan { + background: #1E7CAB; +} + +#ja-search { + background: url(images/icon-search.gif) no-repeat center left; +} + +#ja-search .inputbox { + border: 1px solid #005A87; + color: #C3DFED; + background: #1E7CAB; +} + +.sectiontableheader { + background: #1374A5; +} + +#ja-botslwrap { + background: #006699; + color: #C3DFED; +} + +.ja-box-right div.moduletable { + background: url(images/vdot2.gif) repeat-y left; +} + +.ja-box-center div.moduletable { + background: url(images/vdot2.gif) repeat-y left; +} + +#ja-botsl a { + color: #C3DFED; +} + +/*--------------------------- VISUAL ----------------------------*/ +/* -------- All levels -------- */ +#ja-mainnavwrap { + border-top: 1px solid #4394BD; + background: #1374A5; +} +#ja-mainnav ul, #ja-mainnav li { + background-image: none; + list-style: none; +} + +#ja-mainnav span.separator { + display:none; +} + +/* -------- Top level -------- */ +#ja-mainnav > ul { + background-color: #1374A5; + padding-left: 20px; +} + +#ja-mainnav > ul > li { + background-color: #1374A5; + border-left: 1px solid #4394BD; + border-right: 1px solid #005A87; + margin-right: 1px; +} + +#ja-mainnav > ul > li.active { + background: url(../../../images/arrow2.png) no-repeat bottom center #1374A5; + color: #C3DFED; +} + +#ja-mainnav > ul > li:hover, +#ja-mainnav > ul > li:active, +#ja-mainnav > ul > li:focus { + background: url(../../../images/arrow2.png) no-repeat bottom center #2A84B1; + color: #C3DFED; +} + +/* -------- sub-levels -------- */ +#ja-mainnav ul ul li { + border-left: 1px solid #4394BD; + border-right: 1px solid #005A87; + border-top: 1px solid #4394BD; + border-bottom: 1px solid #005A87; + margin-bottom: 1px; +} + +#ja-mainnav li ul { /* second-level lists */ + background-color: #2A84B1; +} + +#ja-mainnav li a { + color: #C3DFED; + font-weight: bold; + text-decoration: none; +} + +#ja-mainnav ul ul li:hover, +#ja-mainnav ul ul li:active, +#ja-mainnav ul ul li:focus { + background: #006699; + color: #C3DFED; +} diff --git a/templates/ja_purity/styles/header/green/images/header-mask.png b/templates/ja_purity/styles/header/green/images/header-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..a754f809ed4b991dd1b69656f41b08f854e8acc2 GIT binary patch literal 12116 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%0AJ<ZZlf&z{P$-d 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 KMNUMnLSTY=lLONL diff --git a/templates/ja_purity/styles/header/green/images/icon-search.gif b/templates/ja_purity/styles/header/green/images/icon-search.gif new file mode 100644 index 0000000000000000000000000000000000000000..4a75dfe2c0dd298563b677219df9617e55514fdf GIT binary patch literal 65 zc${<hbhEHb<YwSzXkcVGegEM9|Nj+#vM@3*Ff!;c00Bsbfl0!rA)$KB?>J+xb7@PL SuG>7hVSaN@KxPvwgEat!0TpNf diff --git a/templates/ja_purity/styles/header/green/images/index.html b/templates/ja_purity/styles/header/green/images/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/header/green/images/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/header/green/images/opaque.png b/templates/ja_purity/styles/header/green/images/opaque.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a15304d2ac29782aa9dde38b23037b7c280917 GIT binary patch literal 109 zc%17D@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}bl$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G{GKk3Ar-fhR>aNv#-nh6fprp7?n$n%T0kiVPgg&ebxsLQ E08HT>R{#J2 diff --git a/templates/ja_purity/styles/header/green/images/vdot2.gif b/templates/ja_purity/styles/header/green/images/vdot2.gif new file mode 100644 index 0000000000000000000000000000000000000000..a73c9323c3c6a310c10f64bb2468b90e9803639a GIT binary patch literal 43 rc${<hbhEHbWMW`sXkcJia&$^+M~LE276uT|0TCb>1|}vRE(U7=%ew~* diff --git a/templates/ja_purity/styles/header/green/index.html b/templates/ja_purity/styles/header/green/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/header/green/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/header/green/style.css b/templates/ja_purity/styles/header/green/style.css new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/header/green/style.css @@ -0,0 +1,117 @@ +#ja-headerwrap { + background: #7BA566; + color: #E4EFDF; +} + +.ja-headermask { + background: url(images/header-mask.png) no-repeat top right; +} + +#ja-header a { + color: #E4EFDF; +} + +h1.logo-text a { + color: #E4EFDF !important; +} + +p.site-slogan { + background: #9DBF8C; +} + +#ja-search { + background: url(images/icon-search.gif) no-repeat center left; +} + +#ja-search .inputbox { + border: 1px solid #658854; + color: #E4EFDF; + background: #9DBF8C; +} + +.sectiontableheader { + background: #88B074; +} + +#ja-botslwrap { + background: #7BA566; + color: #E4EFDF; +} + +.ja-box-right div.moduletable { + background: url(images/vdot2.gif) repeat-y left; +} + +.ja-box-center div.moduletable { + background: url(images/vdot2.gif) repeat-y left; +} + +#ja-botsl a { + color: #E4EFDF; +} + +/*--------------------------- VISUAL ----------------------------*/ +/* -------- All levels -------- */ +#ja-mainnavwrap { + border-top: 1px solid #A4C594; + background: #88B074; +} +#ja-mainnav ul, #ja-mainnav li { + background-image: none; + list-style: none; +} + +#ja-mainnav span.separator { + display:none; +} + +/* -------- Top level -------- */ +#ja-mainnav > ul { + background-color: #88B074; + padding-left: 20px; +} + +#ja-mainnav > ul > li { + background-color: #88B074; + border-left: 1px solid #A4C594; + border-right: 1px solid #658854; + margin-right: 1px; +} + +#ja-mainnav > ul > li.active { + background: url(../../../images/arrow2.png) no-repeat bottom center #88B074; + color: #E4EFDF; +} + +#ja-mainnav > ul > li:hover, +#ja-mainnav > ul > li:active, +#ja-mainnav > ul > li:focus { + background: url(../../../images/arrow2.png) no-repeat bottom center #9DBF8C; + color: #E4EFDF; +} + +/* -------- sub-levels -------- */ +#ja-mainnav ul ul li { + border-left: 1px solid #A4C594; + border-right: 1px solid #658854; + border-top: 1px solid #A4C594; + border-bottom: 1px solid #658854; + margin-bottom: 1px; +} + +#ja-mainnav li ul { /* second-level lists */ + background-color: #9DBF8C; +} + +#ja-mainnav li a { + color: #E4EFDF; + font-weight: bold; + text-decoration: none; +} + +#ja-mainnav ul ul li:hover, +#ja-mainnav ul ul li:active, +#ja-mainnav ul ul li:focus { + background: #88B074; + color: #E4EFDF; +} diff --git a/templates/ja_purity/styles/header/index.html b/templates/ja_purity/styles/header/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/header/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/styles/index.html b/templates/ja_purity/styles/index.html new file mode 100644 --- /dev/null +++ b/templates/ja_purity/styles/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/ja_purity/templateDetails.xml b/templates/ja_purity/templateDetails.xml new file mode 100644 --- /dev/null +++ b/templates/ja_purity/templateDetails.xml @@ -0,0 +1,404 @@ +<?xml version="1.0" encoding="utf-8"?> +<install version="1.5" type="template"> + <name>JA_Purity</name> + <version>1.2.0</version> + <creationDate>12/26/07</creationDate> + <author>JoomlArt.com</author> + <authorEmail>webmaster@joomlart.com</authorEmail> + <authorUrl>http://www.joomlart.com</authorUrl> + <copyright></copyright> + <license>GNU/GPL version 2</license> + <description>JA PURITY DESCRIPTION</description> +<files> + <filename>component.php</filename> + <filename>css/index.html</filename> + <filename>favicon.ico</filename> + <filename>html/com_content/article/default.php</filename> + <filename>html/com_content/article/index.html</filename> + <filename>html/com_content/category/blog_item.php</filename> + <filename>html/com_content/category/index.html</filename> + <filename>html/com_content/frontpage/default_item.php</filename> + <filename>html/com_content/frontpage/index.html</filename> + <filename>html/com_content/index.html</filename> + <filename>html/com_content/section/blog_item.php</filename> + <filename>html/com_content/section/index.html</filename> + <filename>html/index.html</filename> + <filename>html/modules.php</filename> + <filename>html/mod_banners/default.php</filename> + <filename>html/mod_banners/index.html</filename> + <filename>html/mod_login/default.php</filename> + <filename>html/mod_login/index.html</filename> + <filename>html/pagination.php</filename> + <filename>images/icons_license.txt</filename> + <filename>images/index.html</filename> + <filename>index.html</filename> + <filename>index.php</filename> + <filename>ja_templatetools.php</filename> + <filename>ja_vars.php</filename> + <filename>js/ja.cssmenu.js</filename> + <filename>js/ja.moomenu.js</filename> + <filename>js/ja.rightcol.js</filename> + <filename>js/ja.script.js</filename> + <filename>params.ini</filename> + <filename>styles/background/index.html</filename> + <filename>styles/background/lighter/images/index.html</filename> + <filename>styles/background/lighter/index.html</filename> + <filename>styles/background/purewhite/images/index.html</filename> + <filename>styles/background/purewhite/index.html</filename> + <filename>styles/elements/black/images/index.html</filename> + <filename>styles/elements/black/index.html</filename> + <filename>styles/elements/index.html</filename> + <filename>styles/elements/red/images/index.html</filename> + <filename>styles/elements/red/index.html</filename> + <filename>styles/header/blue/images/index.html</filename> + <filename>styles/header/blue/index.html</filename> + <filename>styles/header/green/images/index.html</filename> + <filename>styles/header/green/index.html</filename> + <filename>styles/header/index.html</filename> + <filename>styles/index.html</filename> + <filename>templateDetails.xml</filename> + </files> + <images> + <filename>images/arrow.png</filename> + <filename>images/arrow2.png</filename> + <filename>images/arrow3.png</filename> + <filename>images/author.gif</filename> + <filename>images/b-bl.gif</filename> + <filename>images/b-br.gif</filename> + <filename>images/b-tl.gif</filename> + <filename>images/b-tr.gif</filename> + <filename>images/bb-bl.gif</filename> + <filename>images/bb-br.gif</filename> + <filename>images/bb-tl.gif</filename> + <filename>images/bb-tr.gif</filename> + <filename>images/bg-bl.gif</filename> + <filename>images/bg-br.gif</filename> + <filename>images/bg-tl.gif</filename> + <filename>images/bg-tr.gif</filename> + <filename>images/bl-bl.gif</filename> + <filename>images/bl-br.gif</filename> + <filename>images/bl-tl.gif</filename> + <filename>images/bl-tr.gif</filename> + <filename>images/blank.png</filename> + <filename>images/br-bl.gif</filename> + <filename>images/br-br.gif</filename> + <filename>images/br-tl.gif</filename> + <filename>images/br-tr.gif</filename> + <filename>images/bt-bl.gif</filename> + <filename>images/bt-br.gif</filename> + <filename>images/bt-tl.gif</filename> + <filename>images/bt-tr.gif</filename> + <filename>images/bub1-bl.gif</filename> + <filename>images/bub1-br.gif</filename> + <filename>images/bub1-tl.gif</filename> + <filename>images/bub1-tr.gif</filename> + <filename>images/bub2-bl.gif</filename> + <filename>images/bub2-br.gif</filename> + <filename>images/bub2-tl.gif</filename> + <filename>images/bub2-tr.gif</filename> + <filename>images/bub3-bl.gif</filename> + <filename>images/bub3-br.gif</filename> + <filename>images/bub3-tl.gif</filename> + <filename>images/bub3-tr.gif</filename> + <filename>images/bub4-bl.gif</filename> + <filename>images/bub4-br.gif</filename> + <filename>images/bub4-tl.gif</filename> + <filename>images/bub4-tr.gif</filename> + <filename>images/bullet.gif</filename> + <filename>images/bullet2.gif</filename> + <filename>images/bullet3.gif</filename> + <filename>images/bullet-list.gif</filename> + <filename>images/but-css.gif</filename> + <filename>images/but-rss.gif</filename> + <filename>images/but-xhtml10.gif</filename> + <filename>images/but-xhtml101.gif</filename> + <filename>images/c-bg1.gif</filename> + <filename>images/c-bg2.gif</filename> + <filename>images/checklist-bg.gif</filename> + <filename>images/cw-bg1.gif</filename> + <filename>images/cw-bg12.gif</filename> + <filename>images/cw-bg2.gif</filename> + <filename>images/cw-bg22.gif</filename> + <filename>images/cwf-bg.gif</filename> + <filename>images/download-bg.gif</filename> + <filename>images/emailbutton.png</filename> + <filename>images/grad1.gif</filename> + <filename>images/grad2.gif</filename> + <filename>images/grad3.gif</filename> + <filename>images/hdot.gif</filename> + <filename>images/hdot2.gif</filename> + <filename>images/header/header1.jpg</filename> + <filename>images/header/header2.jpg</filename> + <filename>images/header/header3.jpg</filename> + <filename>images/header-mask.png</filename> + <filename>images/icon-date.gif</filename> + <filename>images/icon-error.gif</filename> + <filename>images/icon-info.gif</filename> + <filename>images/icon-search.gif</filename> + <filename>images/icon-tips.gif</filename> + <filename>images/icon-user.gif</filename> + <filename>images/icon_list.gif</filename> + <filename>images/indent1.png</filename> + <filename>images/indent2.png</filename> + <filename>images/indent3.png</filename> + <filename>images/indent4.png</filename> + <filename>images/login-bg.gif</filename> + <filename>images/logo.gif</filename> + <filename>images/logo.png</filename> + <filename>images/ol-bg.gif</filename> + <filename>images/opaque.png</filename> + <filename>images/pages.gif</filename> + <filename>images/pdf_button.png</filename> + <filename>images/printbutton.png</filename> + <filename>images/rtl/arrow.png</filename> + <filename>images/rtl/bub12-bl.gif</filename> + <filename>images/rtl/bub12-br.gif</filename> + <filename>images/rtl/bub12-tl.gif</filename> + <filename>images/rtl/bub12-tr.gif</filename> + <filename>images/rtl/bub22-bl.gif</filename> + <filename>images/rtl/bub22-br.gif</filename> + <filename>images/rtl/bub22-tl.gif</filename> + <filename>images/rtl/bub22-tr.gif</filename> + <filename>images/rtl/bub32-bl.gif</filename> + <filename>images/rtl/bub32-br.gif</filename> + <filename>images/rtl/bub32-tl.gif</filename> + <filename>images/rtl/bub32-tr.gif</filename> + <filename>images/rtl/bub42-bl.gif</filename> + <filename>images/rtl/bub42-br.gif</filename> + <filename>images/rtl/bub42-tl.gif</filename> + <filename>images/rtl/bub42-tr.gif</filename> + <filename>images/rtl/c-bg1.gif</filename> + <filename>images/rtl/c-bg2.gif</filename> + <filename>images/rtl/cw-bg1.gif</filename> + <filename>images/rtl/cw-bg12.gif</filename> + <filename>images/rtl/cw-bg122.gif</filename> + <filename>images/rtl/cw-bg2.gif</filename> + <filename>images/rtl/cw-bg22.gif</filename> + <filename>images/sc-q.gif</filename> + <filename>images/so-q.gif</filename> + <filename>images/spacer.png</filename> + <filename>images/star-bg.gif</filename> + <filename>images/sticky-bg.gif</filename> + <filename>images/trans-bg.png</filename> + <filename>images/trans.gif</filename> + <filename>images/user-decrease.png</filename> + <filename>images/user-increase.png</filename> + <filename>images/user-reset.png</filename> + <filename>images/vdot.gif</filename> + <filename>images/vdot2.gif</filename> + <filename>styles/background/lighter/images/arrow.png</filename> + <filename>styles/background/lighter/images/b-bl.gif</filename> + <filename>styles/background/lighter/images/b-br.gif</filename> + <filename>styles/background/lighter/images/b-tl.gif</filename> + <filename>styles/background/lighter/images/b-tr.gif</filename> + <filename>styles/background/lighter/images/bb-bl.gif</filename> + <filename>styles/background/lighter/images/bb-br.gif</filename> + <filename>styles/background/lighter/images/bb-tl.gif</filename> + <filename>styles/background/lighter/images/bb-tr.gif</filename> + <filename>styles/background/lighter/images/bg-bl.gif</filename> + <filename>styles/background/lighter/images/bg-br.gif</filename> + <filename>styles/background/lighter/images/bg-tl.gif</filename> + <filename>styles/background/lighter/images/bg-tr.gif</filename> + <filename>styles/background/lighter/images/bl-bl.gif</filename> + <filename>styles/background/lighter/images/bl-br.gif</filename> + <filename>styles/background/lighter/images/bl-tl.gif</filename> + <filename>styles/background/lighter/images/bl-tr.gif</filename> + <filename>styles/background/lighter/images/br-bl.gif</filename> + <filename>styles/background/lighter/images/br-br.gif</filename> + <filename>styles/background/lighter/images/br-tl.gif</filename> + <filename>styles/background/lighter/images/br-tr.gif</filename> + <filename>styles/background/lighter/images/bt-bl.gif</filename> + <filename>styles/background/lighter/images/bt-br.gif</filename> + <filename>styles/background/lighter/images/bt-tl.gif</filename> + <filename>styles/background/lighter/images/bt-tr.gif</filename> + <filename>styles/background/lighter/images/bub1-bl.gif</filename> + <filename>styles/background/lighter/images/bub1-br.gif</filename> + <filename>styles/background/lighter/images/bub1-tl.gif</filename> + <filename>styles/background/lighter/images/bub1-tr.gif</filename> + <filename>styles/background/lighter/images/bub2-bl.gif</filename> + <filename>styles/background/lighter/images/bub2-br.gif</filename> + <filename>styles/background/lighter/images/bub2-tl.gif</filename> + <filename>styles/background/lighter/images/bub2-tr.gif</filename> + <filename>styles/background/lighter/images/bub3-bl.gif</filename> + <filename>styles/background/lighter/images/bub3-br.gif</filename> + <filename>styles/background/lighter/images/bub3-tl.gif</filename> + <filename>styles/background/lighter/images/bub3-tr.gif</filename> + <filename>styles/background/lighter/images/bub4-bl.gif</filename> + <filename>styles/background/lighter/images/bub4-br.gif</filename> + <filename>styles/background/lighter/images/bub4-tl.gif</filename> + <filename>styles/background/lighter/images/bub4-tr.gif</filename> + <filename>styles/background/lighter/images/c-bg1.gif</filename> + <filename>styles/background/lighter/images/c-bg2.gif</filename> + <filename>styles/background/lighter/images/checklist-bg.gif</filename> + <filename>styles/background/lighter/images/cw-bg1.gif</filename> + <filename>styles/background/lighter/images/cw-bg2.gif</filename> + <filename>styles/background/lighter/images/cwf-bg.gif</filename> + <filename>styles/background/lighter/images/download-bg.gif</filename> + <filename>styles/background/lighter/images/icon_list.gif</filename> + <filename>styles/background/lighter/images/ol-bg.gif</filename> + <filename>styles/background/lighter/images/sc-q.gif</filename> + <filename>styles/background/lighter/images/so-q.gif</filename> + <filename>styles/background/lighter/images/star-bg.gif</filename> + <filename>styles/background/lighter/images/sticky-bg.gif</filename> + <filename>styles/background/purewhite/images/arrow.png</filename> + <filename>styles/background/purewhite/images/b-bl.gif</filename> + <filename>styles/background/purewhite/images/b-br.gif</filename> + <filename>styles/background/purewhite/images/b-tl.gif</filename> + <filename>styles/background/purewhite/images/b-tr.gif</filename> + <filename>styles/background/purewhite/images/bb-bl.gif</filename> + <filename>styles/background/purewhite/images/bb-br.gif</filename> + <filename>styles/background/purewhite/images/bb-tl.gif</filename> + <filename>styles/background/purewhite/images/bb-tr.gif</filename> + <filename>styles/background/purewhite/images/bg-bl.gif</filename> + <filename>styles/background/purewhite/images/bg-br.gif</filename> + <filename>styles/background/purewhite/images/bg-tl.gif</filename> + <filename>styles/background/purewhite/images/bg-tr.gif</filename> + <filename>styles/background/purewhite/images/bl-bl.gif</filename> + <filename>styles/background/purewhite/images/bl-br.gif</filename> + <filename>styles/background/purewhite/images/bl-tl.gif</filename> + <filename>styles/background/purewhite/images/bl-tr.gif</filename> + <filename>styles/background/purewhite/images/br-bl.gif</filename> + <filename>styles/background/purewhite/images/br-br.gif</filename> + <filename>styles/background/purewhite/images/br-tl.gif</filename> + <filename>styles/background/purewhite/images/br-tr.gif</filename> + <filename>styles/background/purewhite/images/bt-bl.gif</filename> + <filename>styles/background/purewhite/images/bt-br.gif</filename> + <filename>styles/background/purewhite/images/bt-tl.gif</filename> + <filename>styles/background/purewhite/images/bt-tr.gif</filename> + <filename>styles/background/purewhite/images/bub1-bl.gif</filename> + <filename>styles/background/purewhite/images/bub1-br.gif</filename> + <filename>styles/background/purewhite/images/bub1-tl.gif</filename> + <filename>styles/background/purewhite/images/bub1-tr.gif</filename> + <filename>styles/background/purewhite/images/bub2-bl.gif</filename> + <filename>styles/background/purewhite/images/bub2-br.gif</filename> + <filename>styles/background/purewhite/images/bub2-tl.gif</filename> + <filename>styles/background/purewhite/images/bub2-tr.gif</filename> + <filename>styles/background/purewhite/images/bub3-bl.gif</filename> + <filename>styles/background/purewhite/images/bub3-br.gif</filename> + <filename>styles/background/purewhite/images/bub3-tl.gif</filename> + <filename>styles/background/purewhite/images/bub3-tr.gif</filename> + <filename>styles/background/purewhite/images/bub4-bl.gif</filename> + <filename>styles/background/purewhite/images/bub4-br.gif</filename> + <filename>styles/background/purewhite/images/bub4-tl.gif</filename> + <filename>styles/background/purewhite/images/bub4-tr.gif</filename> + <filename>styles/background/purewhite/images/c-bg1.gif</filename> + <filename>styles/background/purewhite/images/c-bg2.gif</filename> + <filename>styles/background/purewhite/images/checklist-bg.gif</filename> + <filename>styles/background/purewhite/images/cw-bg1.gif</filename> + <filename>styles/background/purewhite/images/cw-bg2.gif</filename> + <filename>styles/background/purewhite/images/cw-bg3.gif</filename> + <filename>styles/background/purewhite/images/cwf-bg.gif</filename> + <filename>styles/background/purewhite/images/download-bg.gif</filename> + <filename>styles/background/purewhite/images/icon_list.gif</filename> + <filename>styles/background/purewhite/images/ol-bg.gif</filename> + <filename>styles/background/purewhite/images/sc-q.gif</filename> + <filename>styles/background/purewhite/images/so-q.gif</filename> + <filename>styles/background/purewhite/images/star-bg.gif</filename> + <filename>styles/background/purewhite/images/sticky-bg.gif</filename> + <filename>styles/elements/blue/images/bullet3.gif</filename> + <filename>styles/elements/green/images/bullet3.gif</filename> + <filename>styles/elements/red/images/bullet3.gif</filename> + <filename>styles/header/blue/images/header-mask.png</filename> + <filename>styles/header/blue/images/icon-search.gif</filename> + <filename>styles/header/blue/images/opaque.png</filename> + <filename>styles/header/blue/images/vdot2.gif</filename> + <filename>styles/header/green/images/header-mask.png</filename> + <filename>styles/header/green/images/icon-search.gif</filename> + <filename>styles/header/green/images/opaque.png</filename> + <filename>styles/header/green/images/vdot2.gif</filename> + <filename>template_thumbnail.png</filename> + </images> + <css> + <filename>css/ja-sosdmenu.css</filename> + <filename>css/menu.css</filename> + <filename>css/template.css</filename> + <filename>css/template_rtl.css</filename> + <filename>styles/background/lighter/style.css</filename> + <filename>styles/background/purewhite/style.css</filename> + <filename>styles/elements/black/style.css</filename> + <filename>styles/elements/blue/style.css</filename> + <filename>styles/elements/green/style.css</filename> + <filename>styles/elements/red/style.css</filename> + <filename>styles/header/blue/style.css</filename> + <filename>styles/header/green/style.css</filename> + </css> + <languages> + <language tag="en-GB">en-GB.tpl_ja_purity.ini</language> + </languages> + <administration> + <languages> + <language tag="en-GB">admin/en-GB.tpl_ja_purity.ini</language> + </languages> + </administration> + + <positions> + <position>hornav</position> + <position>breadcrumbs</position> + <position>banner</position> + <position>left</position> + <position>right</position> + <position>top</position> + <position>user1</position> + <position>user2</position> + <position>user3</position> + <position>user4</position> + <position>user5</position> + <position>footer</position> + <position>syndicate</position> + <position>debug</position> + </positions> + + <params> + <param type="spacer" default="Template Logo" /> + <param name="logoType" type="list" default="image" label="Logo type" description="LOGO TYPE DESCRIPTION"> + <option value="image">Image</option> + <option value="text">Text</option> + </param> + <param name="logoText" type="text" default="" size="50" label="Logo text" description="LOGO TEXT DESCRIPTION" /> + <param name="sloganText" type="text" default="" size="50" label="Slogan" description="SLOGAN DESCRIPTION" /> + + <param type="spacer" default="Horizontal Navigation" /> + <param name="horNavType" type="list" default="moo" label="Horizontal Navigation Type" description="Suckerfish menu or JAMoo menu"> + <option value="moo">JAMoo Menu</option> + <option value="css">Suckerfish Menu</option> + </param> + + + <param type="spacer" default="Template Font Size" /> + <param name="ja_font" type="list" default="3" label="Font size" description="FONT SIZE DESCRIPTION"> + <option value="1">1</option> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + </param> + + <param type="spacer" default="Template_Width" /> + <param name="ja_screen" type="list" default="950" label="Template Width" description="TEMPLATE WIDTH DESCRIPTION"> + <option value="auto">AUTO</option> + <option value="750">Narrow Screen</option> + <option value="950">Wide Screen</option> + <option value="fluid">SPECIFIED PERCENTAGE</option> + <option value="fix">SPECIFIED PIXEL</option> + </param> + <param name="ja_screen_width" type="text" default="" label="Specified width" description="SPECIFIED WIDTH DESCRIPTION" /> + + <param type="spacer" default="Template Styles" /> + <param name="theme_header" type="folderlist" directory="templates/ja_purity/styles/header" default="" label="Header Themes" description="HEADER THEMES DESCRIPTION" /> + <param name="theme_background" type="folderlist" directory="templates/ja_purity/styles/background" default="" label="Background Themes" description="BACKGROUND THEMES DESCRIPTION" /> + <param name="theme_elements" type="folderlist" directory="templates/ja_purity/styles/elements" default="" label="Primary Elements" description="PRIMARY ELEMENTS DESCRIPTION" /> + + <param type="spacer" default="Right modules" /> + <param name="rightCollapsible" type="radio" default="1" label="Right modules collapsible function" description="RIGHT MODULES COLLAPSIBLE FUNCTION DESCRIPTION"> + <option value="1">Enable</option> + <option value="0">Disable</option> + </param> + <param name="rightCollapseDefault" type="radio" default="show" label="Default status" description="DEFAULT STATUS DESCRIPTION"> + <option value="show">Expand All</option> + <option value="hide">Collapse All</option> + </param> + <param name="excludeModules" type="text" default="38" size="50" label="Exclude Modules" description="EXCLUDE MODULES DESCRIPTION" /> + + </params> +</install> diff --git a/templates/ja_purity/template_thumbnail.png b/templates/ja_purity/template_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..49d4efaed0577ba936bbbfdadef1d8bf53d95087 GIT binary patch literal 13560 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 diff --git a/templates/rhuk_milkyway/component.php b/templates/rhuk_milkyway/component.php new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/component.php @@ -0,0 +1,29 @@ +<?php +/** + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined( '_JEXEC' ) or die( 'Restricted access' ); +?> +<!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="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>"> +<head> + <jdoc:include type="head" /> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/rhuk_milkyway/css/template.css" type="text/css" /> + +<?php if($this->direction == 'rtl') : ?> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/rhuk_milkyway/css/template_rtl.css" type="text/css" /> +<?php endif; ?> +</head> +<body class="contentpane"> + <jdoc:include type="message" /> + <jdoc:include type="component" /> +</body> +</html> diff --git a/templates/rhuk_milkyway/css/black.css b/templates/rhuk_milkyway/css/black.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/black.css @@ -0,0 +1,41 @@ +/* black */ +a:link, a:visited { + color: #135cae; +} + +a:hover { + color: #0b3768; +} + +#pillmenu a:hover { + color: #135cae; +} + +#pillmenu a#active_menu-nav { + background: url(../images/black/mw_menu_active_bg.png) 0 0 repeat-x; + color: #fff; +} + +#pillmenu a#active_menu-nav:hover { + color: #fff; +} + +h3, .componentheading, table.moduletable th { + color: #135cae; +} + +div.module_menu { + background: url(../images/black/mw_box_br.png) 100% 100% no-repeat; +} + +div.module_menu div { + background: url(../images/black/mw_box_bl.png) 0 100% no-repeat; +} + +div.module_menu div div { + background: url(../images/black/mw_box_tr.png) 100% 0 no-repeat; +} + +div.module_menu div div div { + background: url(../images/black/mw_box_tl.png) 0 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/black_bg.css b/templates/rhuk_milkyway/css/black_bg.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/black_bg.css @@ -0,0 +1,36 @@ +/* black */ +#page_bg { + background: #333; +} + +div#wrapper { + background: #f7f7f7 url(../images/black/mw_shadow_l.png) 0 0 repeat-y; +} + +div#wrapper_r { + background: url(../images/black/mw_shadow_r.png) 100% 0 repeat-y; +} + +div#header { + background: url(../images/black/mw_header_t.png) 0 0 repeat-x; +} + +div#header_l { + background: url(../images/black/mw_header_t_l.png) 0 0 no-repeat; +} + +div#header_r { + background: url(../images/black/mw_header_t_r.png) 100% 0 no-repeat; +} + +div#footer { + background: #f7f7f7 url(../images/black/mw_footer_b.png) 0 100% repeat-x; +} + +div#footer_l { + background: url(../images/black/mw_footer_b_l.png) 0 0 no-repeat; +} + +div#footer_r { + background: url(../images/black/mw_footer_b_r.png) 100% 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/blue.css b/templates/rhuk_milkyway/css/blue.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/blue.css @@ -0,0 +1,41 @@ +/* blue */ +a:link, a:visited { + color: #135cae; +} + +a:hover { + color: #0b3768; +} + +#pillmenu a:hover { + color: #135cae; +} + +#pillmenu a#active_menu-nav { + background: url(../images/blue/mw_menu_active_bg.png) repeat-x; + color: #fff; +} + +#pillmenu a#active_menu-nav:hover { + color: #fff; +} + +h3, .componentheading, table.moduletable th { + color: #135cae; +} + +div.module_menu { + background: url(../images/blue/mw_box_br.png) 100% 100% no-repeat; +} + +div.module_menu div { + background: url(../images/blue/mw_box_bl.png) 0 100% no-repeat; +} + +div.module_menu div div { + background: url(../images/blue/mw_box_tr.png) 100% 0 no-repeat; +} + +div.module_menu div div div { + background: url(../images/blue/mw_box_tl.png) 0 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/blue_bg.css b/templates/rhuk_milkyway/css/blue_bg.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/blue_bg.css @@ -0,0 +1,36 @@ +/* blue */ +#page_bg { + background: #0C3A6D; +} + +div#wrapper { + background: #f7f7f7 url(../images/blue/mw_shadow_l.png) 0 0 repeat-y; +} + +div#wrapper_r { + background: url(../images/blue/mw_shadow_r.png) 100% 0 repeat-y; +} + +div#header { + background: url(../images/blue/mw_header_t.png) 0 0 repeat-x; +} + +div#header_l { + background: url(../images/blue/mw_header_t_l.png) 0 0 no-repeat; +} + +div#header_r { + background: url(../images/blue/mw_header_t_r.png) 100% 0 no-repeat; +} + +div#footer { + background: #f7f7f7 url(../images/blue/mw_footer_b.png) 0 100% repeat-x; +} + +div#footer_l { + background: url(../images/blue/mw_footer_b_l.png) 0 0 no-repeat; +} + +div#footer_r { + background: url(../images/blue/mw_footer_b_r.png) 100% 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/green.css b/templates/rhuk_milkyway/css/green.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/green.css @@ -0,0 +1,41 @@ +/* green */ +a:link, a:visited { + color: #4ba123; +} + +a:hover { + color: #316b16; +} + +#pillmenu a:hover { + color: #4ba123; +} + +#pillmenu a#active_menu-nav { + background: url(../images/green/mw_menu_active_bg.png) 0 0 repeat-x; + color: #fff; +} + +#pillmenu a#active_menu-nav:hover { + color: #fff; +} + +h3, .componentheading, table.moduletable th { + color: #4ba123; +} + +div.module_menu { + background: url(../images/green/mw_box_br.png) 100% 100% no-repeat; +} + +div.module_menu div { + background: url(../images/green/mw_box_bl.png) 0 100% no-repeat; +} + +div.module_menu div div { + background: url(../images/green/mw_box_tr.png) 100% 0 no-repeat; +} + +div.module_menu div div div { + background: url(../images/green/mw_box_tl.png) 0 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/green_bg.css b/templates/rhuk_milkyway/css/green_bg.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/green_bg.css @@ -0,0 +1,36 @@ +/* green */ +#page_bg { + background: #316b16; +} + +div#wrapper { + background: #f7f7f7 url(../images/green/mw_shadow_l.png) 0 0 repeat-y; +} + +div#wrapper_r { + background: url(../images/green/mw_shadow_r.png) 100% 0 repeat-y; +} + +div#header { + background: url(../images/green/mw_header_t.png) 0 0 repeat-x; +} + +div#header_l { + background: url(../images/green/mw_header_t_l.png) 0 0 no-repeat; +} + +div#header_r { + background: url(../images/green/mw_header_t_r.png) 100% 0 no-repeat; +} + +div#footer { + background: #f7f7f7 url(../images/green/mw_footer_b.png) 0 100% repeat-x; +} + +div#footer_l { + background: url(../images/green/mw_footer_b_l.png) 0 0 no-repeat; +} + +div#footer_r { + background: url(../images/green/mw_footer_b_r.png) 100% 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/ieonly.css b/templates/rhuk_milkyway/css/ieonly.css new file mode 100755 --- /dev/null +++ b/templates/rhuk_milkyway/css/ieonly.css @@ -0,0 +1,20 @@ +/* IE ONLY CSS */ + +body.width_fmax div#wrapper { + width: expression(((document.body.clientWidth)) < 751? "750px": ((document.body.clientWidth)) > 1050? "1050px": "auto" ); +} + +div.module_menu div div div { + width: 100%; +} + +div#footer { + width: 100%; +} + +div#whitebox_b { + width: 100%; +} +#pathway { + float: left; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/index.html b/templates/rhuk_milkyway/css/index.html new file mode 100755 --- /dev/null +++ b/templates/rhuk_milkyway/css/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/orange.css b/templates/rhuk_milkyway/css/orange.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/orange.css @@ -0,0 +1,41 @@ +/* orange */ +a:link, a:visited { + color: #cd6620; +} + +a:hover { + color: #ac5419; +} + +#pillmenu a:hover { + color: #cd6620; +} + +#pillmenu a#active_menu-nav { + background: url(../images/orange/mw_menu_active_bg.png) 0 0 repeat-x; + color: #fff; +} + +#pillmenu a#active_menu-nav:hover { + color: #fff; +} + +h3, .componentheading, table.moduletable th { + color: #cd6620; +} + +div.module_menu { + background: url(../images/orange/mw_box_br.png) 100% 100% no-repeat; +} + +div.module_menu div { + background: url(../images/orange/mw_box_bl.png) 0 100% no-repeat; +} + +div.module_menu div div { + background: url(../images/orange/mw_box_tr.png) 100% 0 no-repeat; +} + +div.module_menu div div div { + background: url(../images/orange/mw_box_tl.png) 0 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/orange_bg.css b/templates/rhuk_milkyway/css/orange_bg.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/orange_bg.css @@ -0,0 +1,36 @@ +/* orange */ +#page_bg { + background: #ac5419; +} + +div#wrapper { + background: #f7f7f7 url(../images/orange/mw_shadow_l.png) 0 0 repeat-y; +} + +div#wrapper_r { + background: url(../images/orange/mw_shadow_r.png) 100% 0 repeat-y; +} + +div#header { + background: url(../images/orange/mw_header_t.png) 0 0 repeat-x; +} + +div#header_l { + background: url(../images/orange/mw_header_t_l.png) 0 0 no-repeat; +} + +div#header_r { + background: url(../images/orange/mw_header_t_r.png) 100% 0 no-repeat; +} + +div#footer { + background: #f7f7f7 url(../images/orange/mw_footer_b.png) 0 100% repeat-x; +} + +div#footer_l { + background: url(../images/orange/mw_footer_b_l.png) 0 0 no-repeat; +} + +div#footer_r { + background: url(../images/orange/mw_footer_b_r.png) 100% 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/red.css b/templates/rhuk_milkyway/css/red.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/red.css @@ -0,0 +1,41 @@ +/* red */ +a:link, a:visited { + color: #a10f15; +} + +a:hover { + color: #7b0b12; +} + +#pillmenu a:hover { + color: #a10f15; +} + +#pillmenu a#active_menu-nav { + background: url(../images/red/mw_menu_active_bg.png) 0 0 repeat-x; + color: #fff; +} + +#pillmenu a#active_menu-nav:hover { + color: #fff; +} + +h3, .componentheading, table.moduletable th { + color: #a10f15; +} + +div.module_menu { + background: url(../images/red/mw_box_br.png) 100% 100% no-repeat; +} + +div.module_menu div { + background: url(../images/red/mw_box_bl.png) 0 100% no-repeat; +} + +div.module_menu div div { + background: url(../images/red/mw_box_tr.png) 100% 0 no-repeat; +} + +div.module_menu div div div { + background: url(../images/red/mw_box_tl.png) 0 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/red_bg.css b/templates/rhuk_milkyway/css/red_bg.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/red_bg.css @@ -0,0 +1,36 @@ +/* red */ +#page_bg { + background: #333333; +} + +div#wrapper { + background: #f7f7f7 url(../images/red/mw_shadow_l.png) 0 0 repeat-y; +} + +div#wrapper_r { + background: url(../images/red/mw_shadow_r.png) 100% 0 repeat-y; +} + +div#header { + background: url(../images/red/mw_header_t.png) 0 0 repeat-x; +} + +div#header_l { + background: url(../images/red/mw_header_t_l.png) 0 0 no-repeat; +} + +div#header_r { + background: url(../images/red/mw_header_t_r.png) 100% 0 no-repeat; +} + +div#footer { + background: #f7f7f7 url(../images/red/mw_footer_b.png) 0 100% repeat-x; +} + +div#footer_l { + background: url(../images/red/mw_footer_b_l.png) 0 0 no-repeat; +} + +div#footer_r { + background: url(../images/red/mw_footer_b_r.png) 100% 0 no-repeat; +} diff --git a/templates/rhuk_milkyway/css/template.css b/templates/rhuk_milkyway/css/template.css new file mode 100755 --- /dev/null +++ b/templates/rhuk_milkyway/css/template.css @@ -0,0 +1,802 @@ +/*****************************/ +/*** Core html setup stuff ***/ +/*****************************/ + +html { + height: 100%; + margin-bottom: 1px; +} + +form { + margin: 0; + padding: 0; +} + +body { + font-family: Helvetica,Arial,sans-serif; + line-height: 1.3em; + margin: 0px 0px 0px 0px; + font-size: 12px; + color: #333; +} + +a:link, a:visited { + text-decoration: none; + font-weight: normal; +} + +a:hover { + text-decoration: underline; + font-weight: normal; +} + +input.button { cursor: pointer; } + +p { margin-top: 0; margin-bottom: 5px; } + +img { border: 0 none; } + +/*****************************************/ +/*** Template specific layout elements ***/ +/*****************************************/ +#page_bg { + padding: 10px 0; + margin-bottom: 1px; +} + +div.center { + text-align: center; +} + +div#wrapper { + margin-left: auto; + margin-right: auto; +} + +body.width_medium div#wrapper { + width: 950px; +} + +body.width_small div#wrapper { + width: 773px; +} + +body.width_fmax div#wrapper { + min-width: 750px; + max-width: 1050px; +} + +div#header_l { + position: relative; +} + +div#header_r { + height: 90px; + padding-left: 370px; + padding-right: 30px; + padding-top: 25px; + overflow: hidden; + text-align: left; +} + +div#logo { + position: absolute; + left: 0; + top: 0; + float: left; + width: 298px; + height: 75px; + background: url(../images/mw_joomla_logo.png) 0 0 no-repeat; + margin-left: 30px; + margin-top: 25px; +} + +div#newsflash { + width: auto; + margin-left: 350px; + margin-right: 30px; + border: 1px solid #00f; +} + +div#tabarea { + background: #f7f7f7 url(../images/mw_header_b.png) 0 0 repeat-x; + margin: 0 11px; + +} + +div#tabarea_l { + background: url(../images/mw_header_l_b.png) 0 0 no-repeat; + padding-left: 32px; +} + +div#tabarea_r { + height: 42px; + background: url(../images/mw_header_r_b.png) 100% 0 no-repeat; + padding-right: 1px; +} + +div#footer_r { + padding-top: 10px; + height: 47px; + overflow: hidden; +} + +div#footer_r div { + text-align: center; + font-size: .90em; + color: #aaa; +} + +div#footer_r a:link, div#footer_r a:visited { + color: #999; +} + +div#footerspacer { + height: 10px; +} + +#pathway { + padding: 0px 10px 8px; + width: auto; + margin-top: -2px; + margin-right: 250px; + text-align: left; +} + +#search { + float: right; + width:320px; + margin-top: -20px; + margin-right: 30px; + height: 40px; + overflow: hidden; + text-align:right; +} + +form#searchForm input { + vertical-align: middle; +} + +form#searchForm table { + border-collapse: collapse; +} + +form#searchForm td { + padding:0; +} + +#mod_search_searchword { + padding-left: 3px; +} + +#area { + padding: 0; +} + +#whitebox { + margin: 0 21px 0px 21px; + background: #fff; + width: auto; +} + +#whitebox div { + text-align: left; +} + +#whitebox_t { + background: #fff url(../images/mw_content_t.png) 0 0 repeat-x; +} + +#whitebox_tl { + background: url(../images/mw_content_t_l.png) 0 0 no-repeat; +} + +#whitebox_tr { + height: 10px; + overflow: hidden; + background: url(../images/mw_content_t_r.png) 100% 0 no-repeat; +} + +#whitebox_m { + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + width: auto; + padding: 1px 8px; +} + +#whitebox_b { + margin-top: -5px; + background: url(../images/mw_content_b.png) 0 100% repeat-x; +} + +#whitebox_bl { + background: url(../images/mw_content_b_l.png) 0 100% no-repeat; +} + +#whitebox_br { + height: 13px; + background: url(../images/mw_content_b_r.png) 100% 100% no-repeat; +} + +/* horizontal pill menu */ +table.pill { + margin-left: auto; + margin-right: auto; + padding: 0; +} + +td.pill_l { + background: url(../images/mw_menu_cap_l.png) no-repeat; + width: 32px; + height: 39px; + +} + +td.pill_m { + background: url(../images/mw_menu_normal_bg.png) repeat-x; + padding: 0; + margin: 0; + width: auto; +} + +td.pill_r { + background: url(../images/mw_menu_cap_r.png) no-repeat; + width: 32px; + height: 39px; +} + +#pillmenu { + white-space: nowrap; + height: 32px; + float: left; +} + +#pillmenu ul { + margin: 0; + padding: 0; + list-style:none; +} + +#pillmenu li { + float: left; + background: url(../images/mw_menu_separator.png) top right no-repeat; + margin: 0; + padding: 0; +} + +#pillmenu a { + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + font-weight: bold; + float:left; + display:block; + height: 24px; + line-height: 24px; + padding: 0 20px; + color: #000; + text-decoration: none; +} + +#pillmenu a#active_menu-nav { + margin-top:2px; + height: 21px; + line-height: 21px; + background-position: 0 0; +} + +#leftcolumn { + padding: 0; + margin: 0; + width: 20%; + float:left; +} + +#maincolumn, +#maincolumn_full { + margin-left: 20%; + padding-left: 15px; + width: 75%; +} + +#maincolumn_full { + margin-left: 0; + padding: 0; + width: 100%; +} + +table.nopad { + width: 100%; + border-collapse: collapse; + padding: 0; + margin: 0; + margin-bottom: 15px; +} + +table.nopad td.middle_pad { + width: 20px; +} + +/*****************************************/ +/*** Joomla! specific content elements ***/ +/*****************************************/ + +div.offline { + background: #fffebb; + width: 100%; + position: absolute; + top: 0; + left: 0; + font-size: 1.2em; + padding: 5px; +} + +span.pathway { + display: block; + margin: 0 20px; + height: 16px; + line-height: 16px; + overflow: hidden; +} + +/* headers */ +div.componentheading { + padding-left: 0px; +} + +h1 { + padding: 0; + font-family:Helvetica ,Arial,sans-serif; + font-size: 1.3em; + font-weight: bold; + vertical-align: bottom; + color: #666; + text-align: left; + width: 100%; +} + +h2, .contentheading { + padding: 0; + font-family: Arial, Helvetica,sans-serif; + font-size: 1.4em; + font-weight: normal; + vertical-align: bottom; + color: #333; + text-align: left; + width: 100%; +} + +table.contentpaneopen h3 { + margin-top: 25px; +} + +h4 { + font-family: Arial, Helvetica, sans-serif; + color: #333; +} + +h3, .componentheading, table.moduletable th, legend { + margin: 0; + font-weight: bold; + font-family: Helvetica,Arial,sans-serif; + font-size: 1.5em; + padding-left: 0px; + margin-bottom: 10px; + text-align: left; +} + +/* small text */ +.small { + font-size: .90em; + color: #999; + font-weight: normal; + text-align: left; +} + +.modifydate { + height: 20px; + vertical-align: bottom; + font-size: .90em; + color: #999; + font-weight: normal; + text-align: left; +} + +.createdate { + height: 20px; + vertical-align: top; + font-size: .90em; + color: #999; + font-weight: normal; + vertical-align: top; + padding-bottom: 5px; + padding-top: 0px; + +} + +a.readon { + margin-top: 10px; + display: block; + float: left; + background: url(../images/mw_readon.png) top right no-repeat; + padding-right: 20px; + line-height: 14px; + height: 16px; +} + +/* form validation */ +.invalid { border-color: #ff0000; } +label.invalid { color: #ff0000; } + + +/** overlib **/ + +.ol-foreground { + background-color: #f6f6f6; +} + +.ol-background { + background-color: #666; +} + +.ol-textfont { + font-family: Arial, Helvetica, sans-serif; + font-size: 10px; +} + +.ol-captionfont { + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + color: #f6f6f6; + font-weight: bold; +} +.ol-captionfont a { + color: #0B55C4; + text-decoration: none; + font-size: 12px; +} + +.ol-closefont {} + +/* menu links */ +a.mainlevel:link, a.mainlevel:visited { + padding-left: 5px; +} + +a.mainlevel:hover { + +} + +/* spacers */ +span.article_separator { + display: block; + height: 20px; +} + +.article_column { + padding-right: 5px; +} + +.column_separator { + border-left: 1px dashed #e0e0e0; + padding-left: 10px; +} + +td.buttonheading { + +} + +td.buttonheading img { + border:none; +} + +.clr { + clear: both; +} + +td.greyline { + width: 20px; + background: url(../images/mw_line_grey.png) 50% 0 repeat-y; +} + +div#maindivider { + border-top: 1px solid #ddd; + margin-bottom: 10px; + overflow: hidden; + height: 1px; +} + +table.blog span.article_separator { + display: block; + height: 20px; +} + +/* edit button */ +.contentpaneopen_edit{ + float: left; +} + +/* table of contents */ +table.contenttoc { + margin: 5px; + border: 1px solid #ccc; + padding: 5px; + float: right; +} + +table.contenttoc td { + padding: 0 5px; +} + + +/* content tables */ +td.sectiontableheader { + background: #efefef; + color: #333; + font-weight: bold; + padding: 4px; + border-right: 1px solid #fff; +} + +tr.sectiontableentry0 td, +tr.sectiontableentry1 td, +tr.sectiontableentry2 td { + padding: 4px; +} + +td.sectiontableentry0, +td.sectiontableentry1, +td.sectiontableentry2 { + padding: 3px; +} + + +/* content styles */ +table.contentpaneopen, table.contentpane { + margin: 0; + padding: 0; + width: auto; +} + +table.contentpaneopen li { + margin-bottom: 5px; +} + +table.contentpaneopen fieldset { + border: 0; + border-top: 1px solid #ddd; +} + +table.contentpaneopen h3 { + margin-top: 25px; +} + +table.contentpaneopen h4 { + font-family: Arial, Helvetica, sans-serif; + color: #333; +} + +.highlight { + background-color: #fffebb; +} + +/* module control elements */ +table.user1user2 div.moduletable { + margin-bottom: 0px; +} + +div.moduletable, div.module { + margin-bottom: 25px; +} + +div.module_menu h3 { + font-family: Helvetica, Arial, sans-serif; + font-size: 12px; + font-weight: bold; + color: #eee; + margin: -23px -4px 5px -5px; + padding-left: 10px; + padding-bottom: 2px; +} + +div.module_menu { + margin: 0; + padding: 0; + margin-bottom: 15px; +} + +div.module_menu div div div { + padding: 10px; + padding-top: 30px; + padding-bottom: 15px; + width: auto; +} + +div.module_menu div div div div { + background: none; + padding: 0; +} + +div.module_menu ul { + margin: 10px 0; + padding-left: 20px; +} + +div.module_menu ul li a:link, div.module_menu ul li a:visited { + font-weight: bold; +} + +#leftcolumn div.module { + padding: 0 10px; +} + +#leftcolumn div.module table { + width: auto; +} + +/* forms */ +table.adminform textarea { + width: 540px; + height: 400px; + font-size: 1em; + color: #000099; +} + +div.search input { + width: 145px; + border: 1px solid #ccc; + margin: 15px 0 10px 0; +} + +form#form-login fieldset { border: 0 none; margin: 0em; padding: 0.2em;} +form#form-login ul { padding-left: 20px; } + +form#com-form-login fieldset { border: 0 none; margin: 0em; padding: 0.2em;} +form#com-form-login ul { padding-left: 20px; } + +/* thumbnails */ +div.mosimage { margin: 5px; } +div.mosimage_caption { font-size: .90em; color: #666; } + +div.caption { padding: 0 10px 0 10px; } +div.caption img { border: 1px solid #CCC; } +div.caption p { font-size: .90em; color: #666; text-align: center; } + +/* Parameter Table */ +table.paramlist { + margin-top: 5px; +} + +table.paramlist td.paramlist_key { + width: 128px; + text-align: left; + height: 30px; +} + +table.paramlist td.paramlist_value { +} + +div.message { + font-family : "Trebuchet MS", Arial, Helvetica, sans-serif; + font-weight: bold; + font-size : 14px; + color : #c30; + text-align: center; + width: auto; + background-color: #f9f9f9; + border: solid 1px #d5d5d5; + margin: 3px 0px 10px; + padding: 3px 20px; +} + +/* Banners module */ + +/* Default skyscraper style */ +.bannergroup { +} + +.banneritem img { + display: block; + margin-left: auto; + margin-right: auto; +} + +/* Text advert style */ + +.banneritem_text { + padding: 4px; + font-size: 11px; +} + +.bannerfooter_text { + padding: 4px; + font-size: 11px; + background-color: #F7F7F7; + text-align: right; +} + +/* System Messages */ +/* see system general.css */ + +.pagination span { padding: 2px; } +.pagination a { padding: 2px; } + +/* Polls */ +.pollstableborder td { + text-align: left; +} + +/* WebLinks */ +span.description { + display:block; + padding-left: 30px; +} + +/* Frontend Editing*/ +fieldset { + border: 1px solid #ccc; + margin-top: 15px; + padding: 15px; +} + +legend { + margin: 0; + padding: 0 10px; +} + +td.key { + border-bottom:1px solid #eee; + color: #666; +} + +/* Tooltips */ + +.tool-tip { + float: left; + background: #ffc; + border: 1px solid #D4D5AA; + padding: 5px; + max-width: 200px; +} + +.tool-title { + padding: 0; + margin: 0; + font-size: 100%; + font-weight: bold; + margin-top: -15px; + padding-top: 15px; + padding-bottom: 5px; + background: url(../../system/images/selector-arrow.png) no-repeat; +} + +.tool-text { + font-size: 100%; + margin: 0; +} + +/* System Standard Messages */ +#system-message { margin-bottom: 20px; } + +#system-message dd.message ul { background: #C3D2E5 url(../../system/images/notice-info.png) 4px center no-repeat;border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B; margin:0px; padding-left: 40px; text-indent:0px;} + +/* System Error Messages */ +#system-message dd.error ul { color: #c00; background: #E6C0C0 url(../../system/images/notice-alert.png) 4px center no-repeat; border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B; margin:0px; padding-left: 40px; text-indent:0px;} + +/* System Notice Messages */ +#system-message dd.notice ul { color: #c00; background: #EFE7B8 url(../../system/images/notice-note.png) 4px center no-repeat; border-top: 3px solid #F0DC7E; border-bottom: 3px solid #F0DC7E; margin:0px; padding-left: 40px; text-indent:0px;} + +#syndicate{ + float:left; + padding-left: 25px; +} + +#power_by{ + float:right; + padding-right: 25px; +} + +/* Component Specific Fixes */ + +#component-contact table td { + padding: 2px 0; +} diff --git a/templates/rhuk_milkyway/css/template_rtl.css b/templates/rhuk_milkyway/css/template_rtl.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/template_rtl.css @@ -0,0 +1,192 @@ +/** + * @version $Id: template_rtl.css 9141 2007-10-04 08:23:14Z mtk $ + * @package Joomla + * @subpackage Template-rhuk_milkway + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant to the + * GNU General Public License, and as distributed it includes or is derivative + * of works licensed under the GNU General Public License or other free or open + * source software licenses. See COPYRIGHT.php for copyright notices and + * details. + */ + + /** + * Joomla! 1.5 rhuk_milkway template RTL css file + * + * @author Mati Kochen + * @package Joomla + * @since 1.5 + * @version 1.0 + */ + +body{ + direction: rtl; +} + +div#logo { + float:right; + right:0pt; + left:auto; + margin-left:0px; + margin-right:30px; +} + +div#header_r { + text-align:right; + padding-right:370px; + padding-left:30px; +} + +td.pill_m { + background: url(../images/mw_menu_normal_bg.png) repeat-x; +} + +td.pill_r { + background:transparent url(../images/mw_menu_cap_l.png) no-repeat scroll 0%; +} + +td.pill_l { + background:transparent url(../images/mw_menu_cap_r.png) no-repeat scroll 0%; +} + +#pillmenu { + float:none; +} + +#pillmenu ul { + width: 420px; +} + +#pillmenu li{ + float: right; +} + +#pillmenu a { + float:none; + padding: 0px 10px; +} + +#search{ + float: left; + margin-right: 0px; + margin-left: 30px; + text-align: left; +} + +#mod_search_searchword { + padding-right:3px; +} + +#pathway{ + margin-left: 250px; + margin-right: 0px; + text-align: right; +} + +#whitebox div { + text-align:right; +} + +#leftcolumn { + float:right; +} + +#maincolumn, #maincolumn_full { + margin-right: 20%; + margin-left: 0%; + padding-right: 15px; + padding-left: 0px; +} + +h3, .componentheading, table.moduletable th, legend{ + text-align: right; +} + +div.module_menu h3{ + padding-right: 10px; + padding-left: 0px; +} + +div.module_menu ul{ + padding-right: 20px; + padding-left: 0px; +} + +h1 { + text-align: right; +} + +h2, .contentheading{ + text-align: right; +} + +td.buttonheading { + text-align:left; +} + +.small, .modifydate{ + text-align: right; +} + +.pollstableborder td { + text-align:right; +} + +.article_column { + padding-right:0px; + padding-left:5px; +} + +.column_separator { + border-right: 1px dashed #E0E0E0; + border-left: none; + padding-right: 10px; + padding-left: 0px; +} + +form#form-login ul { + padding-right: 20px; + padding-left: 0px; +} + +form#com-form-login ul { + padding-right: 20px; + padding-left: 0px; +} + +a.readon { + background:transparent url(../images/mw_readon_rtl.png) no-repeat scroll left top; + float:right; + padding-right:0px; + padding-left:20px; +} + +#syndicate{ + float:right; + padding-left: 0px; + padding-right: 25px; +} + +#power_by{ + float:left; + padding-right: 0px; + padding-left: 25px; +} + +.contentpaneopen_edit { + float:right; +} + +table.contenttoc{ + float: left; +} + +span.pagination a{ + float: right; +} + +span.pagination span{ + float: right; + display: block; +} diff --git a/templates/rhuk_milkyway/css/white.css b/templates/rhuk_milkyway/css/white.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/white.css @@ -0,0 +1,45 @@ +/* white */ +a:link, a:visited { + color: #135cae; +} + +a:hover { + color: #0b3768; +} + +#pillmenu a:hover { + color: #135cae; +} + +#pillmenu a#active_menu-nav { + background: url(../images/white/mw_menu_active_bg.png) 0 0 repeat-x; + color: #fff; +} + +#pillmenu a#active_menu-nav:hover { + color: #fff; +} + +h3, div.module_menu h3, .componentheading, table.moduletable th { + color: #135cae; +} + +h3, .componentheading, table.moduletable th { + color: #135cae; +} + +div.module_menu { + background: url(../images/white/mw_box_br.png) 100% 100% no-repeat; +} + +div.module_menu div { + background: url(../images/white/mw_box_bl.png) 0 100% no-repeat; +} + +div.module_menu div div { + background: url(../images/white/mw_box_tr.png) 100% 0 no-repeat; +} + +div.module_menu div div div { + background: url(../images/white/mw_box_tl.png) 0 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/css/white_bg.css b/templates/rhuk_milkyway/css/white_bg.css new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/css/white_bg.css @@ -0,0 +1,36 @@ +/* white */ +#page_bg { + background: #fff; +} + +div#wrapper { + background: #f7f7f7 url(../images/white/mw_shadow_l.png) 0 0 repeat-y; +} + +div#wrapper_r { + background: url(../images/white/mw_shadow_r.png) 100% 0 repeat-y; +} + +div#header { + background: url(../images/white/mw_header_t.png) 0 0 repeat-x; +} + +div#header_l { + background: url(../images/white/mw_header_t_l.png) 0 0 no-repeat; +} + +div#header_r { + background: url(../images/white/mw_header_t_r.png) 100% 0 no-repeat; +} + +div#footer { + background: #f7f7f7 url(../images/white/mw_footer_b.png) 0 100% repeat-x; +} + +div#footer_l { + background: url(../images/white/mw_footer_b_l.png) 0 0 no-repeat; +} + +div#footer_r { + background: url(../images/white/mw_footer_b_r.png) 100% 0 no-repeat; +} \ No newline at end of file diff --git a/templates/rhuk_milkyway/favicon.ico b/templates/rhuk_milkyway/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3925be4f9ceb5e872ed489f7260c9714d979ee36 GIT binary patch literal 1150 zc$}5fUr19?90%|tcO{!{&HcIQ-LBhQU0q?jaMKcV3KpW3mRR9Nx+xQfwb@*fWF_H4 zMiBk?DWR|)46aEOBK}Q$l?)_`AnL6ieCjFX+qn}jE_%>&`P_5P?{~g%UJfB?^fMX> z{X0p!h7gtzQb5rXt*qBKhACs+=AqGOyp&8~i<GloC7Yg}?xj{JY?G4l>U27pLI(B3 z&)_ko?ElAVoug(q*JQn355-`B!EB6RzKh^u<xW)X*TP`XBQw(ulc@z}^8i?OjjmVe zJcW&%(P&H>Jg>pekw$#H#bMzx!Iygi<aP!;Hw%*$uv!4A1PERNa&o5BoY`zv_0+Ri zxI$3vF`&Lq!jC}-uOnL6vX3Im6i1#55XIh<49l{rx`Vs0)Jah6vw?Zlh~u}*@VS@4 zyXX#j*KP!wfuf@FlnlplDz`lc-5~>V$NeatXvS{Qi5kg**0Oephk#IcJmtKC=XsSa z-vzVWgy5%#D7d=}M`;Z#mJm34?~2A>u*KehceqkAPN!4FHi)QP>_O?t)9~I|hIix- zvJZbnp7kvpRbdFjfUD$0O2+MWtN26(xXC8in?%_CJ~T}HM)??!UD<}cZ4V$k1NH>^ zQ!;`eB-tO;!ZdysSrk7VME?6A9M{j_=HwFm(}3qWkoy#HP{NHlHRtholJf4K!qxA? zh<_VGLG&1;+H$p5eJ%iR%K*9-*U<A}75lDDs=dO(LYY!#bc_w4b+jKF`+s%3oJZ`% z)aIHju8$Q8+oWVf<qb-bBvPXkwn#af%+4@AU0<43OGq?9NH|W&5&EtZVM5|QLX>(3 aUAM*v33bx`0YV~C+K=?5g%dN(g~(qs{jVGV diff --git a/templates/rhuk_milkyway/html/index.html b/templates/rhuk_milkyway/html/index.html new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/html/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/html/modules.php b/templates/rhuk_milkyway/html/modules.php new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/html/modules.php @@ -0,0 +1,43 @@ +<?php +/** + * @version $Id: modules.php 10381 2008-06-01 03:35:53Z pasamio $ + * @package Joomla + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined('_JEXEC') or die('Restricted access'); + +/** + * This is a file to add template specific chrome to module rendering. To use it you would + * set the style attribute for the given module(s) include in your template to use the style + * for each given modChrome function. + * + * eg. To render a module mod_test in the sliders style, you would use the following include: + * <jdoc:include type="module" name="test" style="slider" /> + * + * This gives template designers ultimate control over how modules are rendered. + * + * NOTICE: All chrome wrapping methods should be named: modChrome_{STYLE} and take the same + * two arguments. + */ + +/* + * Module chrome for rendering the module in a slider + */ +function modChrome_slider($module, &$params, &$attribs) +{ + jimport('joomla.html.pane'); + // Initialize variables + $sliders = & JPane::getInstance('sliders'); + $sliders->startPanel( JText::_( $module->title ), 'module' . $module->id ); + echo $module->content; + $sliders->endPanel(); +} +?> \ No newline at end of file diff --git a/templates/rhuk_milkyway/html/pagination.php b/templates/rhuk_milkyway/html/pagination.php new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/html/pagination.php @@ -0,0 +1,116 @@ +<?php +/** + * @version $Id: pagination.php 10381 2008-06-01 03:35:53Z pasamio $ + * @package Joomla + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined('_JEXEC') or die('Restricted access'); + +/** + * This is a file to add template specific chrome to pagination rendering. + * + * pagination_list_footer + * Input variable $list is an array with offsets: + * $list[limit] : int + * $list[limitstart] : int + * $list[total] : int + * $list[limitfield] : string + * $list[pagescounter] : string + * $list[pageslinks] : string + * + * pagination_list_render + * Input variable $list is an array with offsets: + * $list[all] + * [data] : string + * [active] : boolean + * $list[start] + * [data] : string + * [active] : boolean + * $list[previous] + * [data] : string + * [active] : boolean + * $list[next] + * [data] : string + * [active] : boolean + * $list[end] + * [data] : string + * [active] : boolean + * $list[pages] + * [{PAGE}][data] : string + * [{PAGE}][active] : boolean + * + * pagination_item_active + * Input variable $item is an object with fields: + * $item->base : integer + * $item->link : string + * $item->text : string + * + * pagination_item_inactive + * Input variable $item is an object with fields: + * $item->base : integer + * $item->link : string + * $item->text : string + * + * This gives template designers ultimate control over how pagination is rendered. + * + * NOTE: If you override pagination_item_active OR pagination_item_inactive you MUST override them both + */ + +function pagination_list_footer($list) +{ + $html = "<div class=\"list-footer\">\n"; + + $html .= "\n<div class=\"limit\">".JText::_('Display Num').$list['limitfield']."</div>"; + $html .= $list['pageslinks']; + $html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>"; + + $html .= "\n<input type=\"hidden\" name=\"limitstart\" value=\"".$list['limitstart']."\" />"; + $html .= "\n</div>"; + + return $html; +} + +function pagination_list_render($list) +{ + // Initialize variables + $html = "<span class=\"pagination\">"; + $html .= '<span>«</span>'.$list['start']['data']; + $html .= $list['previous']['data']; + + foreach( $list['pages'] as $page ) + { + if($page['data']['active']) { + $html .= '<strong>'; + } + + $html .= $page['data']; + + if($page['data']['active']) { + $html .= '</strong>'; + } + } + + $html .= $list['next']['data']; + $html .= $list['end']['data']; + $html .= '<span>»</span>'; + + $html .= "</span>"; + return $html; +} + +function pagination_item_active(&$item) { + return "<a href=\"".$item->link."\" title=\"".$item->text."\">".$item->text."</a>"; +} + +function pagination_item_inactive(&$item) { + return "<span>".$item->text."</span>"; +} +?> \ No newline at end of file diff --git a/templates/rhuk_milkyway/images/arrow.png b/templates/rhuk_milkyway/images/arrow.png new file mode 100755 index 0000000000000000000000000000000000000000..92f9361679dea5474ea8f9b7db3e26784a72828c GIT binary patch literal 294 zc%17D@N?(olHy`uVBq!ia0vp^{6Ngf!VDzk7iOmbDdu7)&kzm{j@u9Y9{{;p0X`wF zX=!QSzkfe-=FGZv>t@cJ`Sj`2uCA^F2M#ngHoklJuA-vi&Ye5kw{O3E`SO|AU;~he z1s;*b3=G^tAk28_ZrvZCplXS0L`iUdT1k0gQ7VIPVscS_ZfZ(qqJmpyQEGX9QFgI{ zZ-j!8fq_YT*_!h}4Pqb-&PAz-C7Jno3L%-fsSE}t`bK8@2Bt@YtsQ_W96VhdLn`JZ z3$!pWvb}V2Jh)h)ZHeo`2d3c)&H{&+j96N4u&VBD;JG=)VZj21<_xa|4?3L|NL_Sr fJlL%eYf#J})W^$~Wl+8dXcmK~tDnm{r-UW|JH%&& diff --git a/templates/rhuk_milkyway/images/black/index.html b/templates/rhuk_milkyway/images/black/index.html new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/images/black/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/images/black/mw_box_bl.png b/templates/rhuk_milkyway/images/black/mw_box_bl.png new file mode 100644 index 0000000000000000000000000000000000000000..e553a09d2bfa4db45ad0384aa5cfc255fc0b3aba GIT binary patch literal 352 zc%17D@N?(olHy`uVBq!ia0vp^5)2HiOIVnJEZxjINkEFZ*vT`5gM;JtL;nXL(Ey(i z*Z=?jfBN+4>C>k-Z{9q6_U!)s`!{di+}qpR(9lp{U!Rti78x1o>+9>_;9zWQymQi3 zWuQjR0*}aI1_o{+5N5n|x9$&6P`<=9q9iy!t)x7$D3!rCF}Wx|H#H?QQNb;<D78Gl zD7#p}Vr#~w3ZPOkkW%NO)Wnj^{5*w_%-mE4LqmNdLwy6&V`4f7fGTP|T^vIy=Da<* zk@HZ1h{HwpCf8*rWHi_0ZthS{Q90-;<9KNa$D!E=S^oY|(4KQ!HZSFwj4lIV(7-&c zYpc@lF89N=hj*{djDP*(sOo>$@WLw5BWoYU2s*pQ%(t&$*rj_zkL$s8Mvx9qS3j3^ HP6<r_8#Q;( diff --git a/templates/rhuk_milkyway/images/black/mw_box_br.png b/templates/rhuk_milkyway/images/black/mw_box_br.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1307bd23451eedeb1e0144df7d7ee641b90519 GIT binary patch literal 1676 zc%17D@N?(olHy`uVBq!ia0y~yU`%IVU|qt(3>102^zL>b#a!&<8N$KAar>eF10Yv7 zz$e7@|NsA=K7D%n^y$r;H_x6uyMO=w&6_v(_VzY3G}PDEr=_JuMn?Mj`Z_o`7#kb! zoOD$gsFAb4BeIx*fm;ZK886+f`vVk|FL8}13C>R|DNig)W$;Z*F3QhMP037DaLX)8 zEzd8?E>^JEnsKQDs8kH3)VU}%u_QA;Paz~TH<iKAP~XT<-@x>kn9c#9vsZe$IEGZr zd3(;#mpMS9;o$W~MqQO9LK_Z-aeAzpbncBrLeh&5CKtS36rG)4v;4s|skHZhf4@0= z*h_oq)JtBOOSc3?X|A0THp(64j&eu2qg*1mCr%&v^7_b^-v_=tG&1;GX8r#2W^sPY zntSJeXTPoNW4?Ud)ZnkNVXf4Rf6<>WU4Oji%lG4N|L}jgDVyH9I5GfOtTTAJ`njxg HN@xNA9Jl`# diff --git a/templates/rhuk_milkyway/images/black/mw_box_tl.png b/templates/rhuk_milkyway/images/black/mw_box_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..3fd8a3931f5c4a302d8bdda4ffd46c3c04d35662 GIT binary patch literal 333 zc%17D@N?(olHy`uVBq!ia0vp^5<slZ!3-poS}QgIDdu7)&kzm{j@u9Y9{{;#0X`wF z|NsC0^y$;nr%!L*ym{cjf&KgUFI%>3>C&Y=Jv|K#4fXZ)MMXtvX=$mcsgaS9zP`Q= z4i3h~#-`?3`9Kpm3p^r=85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJ zL<P6ZqSW&IqU>S?i>(=#Du7DGKuVp9QWHxu^Yau!GILWI3=Q>-4D}66kBR9V0IEpz zba4#PnE3W=G+%=PkIO~PABV(C{?8UQS>*IPJLyr)y~|4u*u7e=`k~fcZb#IsYu9ZX zd7b(llKLMUIcHFmULtiy>co0wjlb>J516)OTdrs8f9f}3;g0hL)Bd)EHLt4YF`JmE VoArN*0w~}ZJYD@<);T3K0RZ*NfI<KO diff --git a/templates/rhuk_milkyway/images/black/mw_box_tr.png b/templates/rhuk_milkyway/images/black/mw_box_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..492891b2dc4118846cd0d00bb5e9089429274141 GIT binary patch literal 380 zc%17D@N?(olHy`uVBq!ia0y~yU`z+H)j61f<P*<I5Qn+g$uoq5gX8u?{|7*>S%6Q7 z>;M1%KYjZ2^y$-^H*X#|aA5!b{mYguTe@^<Pft%nLqmOieNj<ST3T9aYHDO;q_3~9 zgM)*yv9YOnRzA=K&H|6fVg?3oArNM~bhqvgP*A?aHKHUqKdq!Zu_%?nH!-;=KQ}cc zGf}}UvnaJZzbLy{!D4I1r3#=@F_2Q{qSVBa%=|oskj&gv217%ABSU=y(_>;f2Y@Oj zc)B=-WHi3LaFVydK;XcEoI|4LF4S+fS-{%UVj~*iw><9hw$z@I-@BfEU-rTHkw%@{ zmPhF>-1f?==1bl@-*NDK$JO&4&(hoGOV*|RnE4PFLuIeZu2<=9_x|>D+&$m%CjHo( hbeH!Sia*xuWB9-rxqhy`nE}vk44$rjF6*2Ung9+?p0oe} diff --git a/templates/rhuk_milkyway/images/black/mw_footer_b.png b/templates/rhuk_milkyway/images/black/mw_footer_b.png new file mode 100644 index 0000000000000000000000000000000000000000..386c2f30c5300c2582d95d45ce3ac264c7d7b64b GIT binary patch literal 338 zc%17D@N?(olHy`uVBq!ia0vp^Q9x|T!2}{#tzHPEn2Vh}LpV4%Za?&Y0OWEOctjR6 zFmMZjFyp1Wb$@_@@+GbjCBgY=CFO}lsSLh}$wm3OsVSL>3T~N2spa`a*~JPLTQe?I z0F{b?lsXrsCYEI8=P86_=B6?jnCKgs=^L0H4Yqaws#xLa;uw<A`1aC4-ev;^mV**^ z*#CZaa{O~byK5WMZ^Ph&nWc~Sz2~=oTzmhjw3*TT=aG98m5;w-te&X+gu~LQZvw?s zM`7&sSG>|Qk3UqXFKUr7JpVZcXvIB25c{~qYV({U)`zSgaZk_YOl6yp#R_yYgQu&X J%Q~loCIDgxcjEv6 diff --git a/templates/rhuk_milkyway/images/black/mw_footer_b_l.png b/templates/rhuk_milkyway/images/black/mw_footer_b_l.png new file mode 100644 index 0000000000000000000000000000000000000000..2d347969d7c07cdaf50be7e4c02060b750cc9410 GIT binary patch literal 505 zc%17D@N?(olHy`uVBq!ia0vp^8bEBx!2~2vi~VB(Qq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcIsd%8G=M6|xWVVKuyz{7AM zfBPd2o{r!HvKCCsA4tilYfG~~kkOHpkc{xKiYN^hUs2~7wQ>`?w$h(HH{?}BR;)Tz z{eI43pN;RW`+E)hSw8-HD_a`-pLb7gG?zrM&Z-TExU|<G6aSgm8seKGg;I9O)~uQ# zanAGgzXoSDnf0${iHWJ~Id0;6^5KS)GPU=YH{BG_x|_IG_P8PE8O0nI7Z-*XyYeEZ zo%rzZxALyuj@;YlKFbKFz1LZhk)3<lM6mi_kjT-aTPilUCmI}^k~;Hw<+RlDgayVy z?`>20?9M;+VcyqUcfL8@S#Hs%_`Z&FmgjmZ-!m%6+;7U%J$LAt*@dqK!uG-PiAU4R zZq(1>y=t-6Zp+b}DMhM(O4*xuwD)Do+sCw*w*T$m=YIU?*If5sB598c{|O$dNr}*@ jJ?q|f^wM?f3bT6*<-a*kq(55@3Va4nS3j3^P6<r_J}b=2 diff --git a/templates/rhuk_milkyway/images/black/mw_footer_b_r.png b/templates/rhuk_milkyway/images/black/mw_footer_b_r.png new file mode 100644 index 0000000000000000000000000000000000000000..343115c2b3631bd2902c976e153d18925cf9f8e5 GIT binary patch literal 483 zc%17D@N?(olHy`uVBq!ia0vp^8bEBx!2~2vi~VB(Qq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcG$db&7<M6|xWVz{nFL4YlR zZAW|ihHV=^Fsa=;kzB|il%Lq#soFVheZp5?hSI}_Za+FJk`hyDUzZ@hEHjC9)%)tY zDFTn)FdpdLwC=UghvbvB_xCe>UcZ7x*vH@?GV$kp0>h8s8=ude-mE!8f<dPF_~xzy z*P_n2|5n;?O{$OU<aPDi+fv(aZ;PGQ%FeptlX{q!WO7WuYR$<_>T%b%X3ok8n=|9- z-N%*l+7mxaGpSlqthY62)oZKd9&tUL?|c4S*nBN(?eRjBV-HlnzWLy~VwG0!5&Nmv zx5?i4%X3G=(my`;eLtu4Mdns*{x_<}wuyf!@1LCb{`EV5VV3l0F2za0?FAN{D^6|F zF-<-byjSg4p4pGWGo0;Z9kFWrc73#~G;NliT08GYq1^O>qDSRFX8&Roeq-X3`(l9^ QFqj!UUHx3vIVCg!0QH*5Qvd(} diff --git a/templates/rhuk_milkyway/images/black/mw_header_t.png b/templates/rhuk_milkyway/images/black/mw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..b00fce447b2ae90a5555291060b026065eedf6a3 GIT binary patch literal 350 zc%17D@N?(olHy`uVBq!ia0vp^DnQ)G!2~4LH}_8hQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*i099=9ba4#HXncF?G%t%H56i_= zSC=RAnUuH}JusI1(Gs;Sbnb!6k7nJTcI}q`)~fec6Q9e-PWwLn>CtcZtaRQRYi(Tg z=iEOdP1CUB5=Lv*Y)y%{H#?L0;bOMp=0N2cmQ0MFn*)<=dS=^7o|oW%oR&~$ki}x` zt^lJy8svRTu>mP){CRMN;2D|51~AR<)|>E*g9Su`m6V>-Jp5ySoz0qW_flt=OyEDV XqwwOI!tjki_cM69`njxgN@xNA)8vKn diff --git a/templates/rhuk_milkyway/images/black/mw_header_t_l.png b/templates/rhuk_milkyway/images/black/mw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..c25dfa9702fdf99ef70c5b4831c7fd13bceff9d3 GIT binary patch literal 669 zc$@*90%HA%P)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&% z^GQTORA_<i)<LSmFc1ddX{icg(7m88-00Rj)V<<fPoM|z1m03y1$3cE-I(+(`Ur8- z_BCmFM3{deQCdG|GOZ03iv?6mnx++xEJ<X`)Ktqn{j1fwCST|w!1UY-&G&Sp=+%wH zo>^AWq8ZP`RP;~WFzlhGl?065T6?*elu~D;l<?VG$NEYzoy^wG#X;`8n3y6_eGX(~ zmQ_wN#@6d~9LKZStl#g~tq;Kp%ND!cZol6<FxV>@#Y|$19goM&X5%dVdT0Z3dn=_p zoleW;vL*&a*Pmjt;<npuE+&MyUaybG<Mn#I-|rv@DtQV(m1RdT#tw&rc_!zaa~?&} zU@#aChn-HRZhcu+s}&j$A;jf!c|M=x@wnIPRblcy(5@%t#c_;|IiJr`%IS34YPGB| z00>P9t>^Q(egfw_Ns`fM<bc7S_iF&qn<<3goKGf`Fbq?t|A$bQz_>r5x3}A^-EMcg zT?gsILn-?0_xruh&85&QN|GduvH$a=lohYDW;_6>auX@Z-_N@!ZeyupU0=<R*KBBB z$n)8w`TTCrZvXV>V7E{|QK+9@d9;7z`Rvhrl4lc|7xH}eXg<la3C+uQd$fPehWh#4 z9_=4_K6^Bu<k^Jgg*=}<nosh4_GmuIvkA=$c|LnTrY4Ask<`*)00000NkvXXu0mjf D%R4$r diff --git a/templates/rhuk_milkyway/images/black/mw_header_t_r.png b/templates/rhuk_milkyway/images/black/mw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..b8ebf498ad2fb33289442be0216652f1297dbae6 GIT binary patch literal 752 zc$@+70uTL(P)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& zMoC0LRA_<i*iWj0Ko|h<nNdNanoXdqTC@mSc7T>0pi^{>pbK<@XdNA(4$-!4t%4}f zl2Ax}3*VdOsrhn79v0uX2${z3*L?HG5chgLBpn#z7kjE<7|Kg5$)B(q1c3mM4QHsi z$CsUvsn0s(9$%D{si~=-wTpY~BAJ@Cq*g-2V_EP|L;(Lgo{rD=eKCpmGD;eQ#p}r! zLI@8NLNZ7xFF8;`NDu@Wq{#kb3n6yRuo(I4c7gN7w(ae9yI!xC%jNZYWf=b%EApcZ zGUu6X+tcZEHk<JV`3c4s=0&ksEGCnQ<2XE)^d4JB(nAQXR;$ryL=urQ#LZ^&N=8CR zrBbQa>y1W3QIuqd@pwF+&m%xllvENSgzxwJpI8`%p66MXWm%T*`-Wi{h7s#y+jhU- zcN`~ml#dPb%HS}@x~`k1+39qe&F1-h-tBg=gNaf)91g?Zfw)KGcb#7Gc(_)pwcBmi zb@%&y?AyU$z)MLiw-<$~s;ySb^StBn$hUX9U3Se&{51)MLen(UG!KUZUsXzJl%21n zR6Y5qR;!AloK7dcF_t}9SaA<yOewuwE~(!>+t%V9LWoj&yWMi#BIRkCmiKWj<q3q; z|6PH5|9gDk6&tW#z$>!{>+`)mn7?8J>iOOt%pZ7V_GI6e=Z#OV=cjvco`F|p57sAm zc>>nUdwVc{#Rk;#y*-#e@XGAL`UEdez<L3%%pSZy1Fy^;oS*OQsq!gY*UjO<dMPvt im_J?DU+?_s_51?#FS12lh4R<{0000<MNUMnLSTZ(HC+h+ diff --git a/templates/rhuk_milkyway/images/black/mw_menu_active_bg.png b/templates/rhuk_milkyway/images/black/mw_menu_active_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..67d484f3f57daddbb067d49ef6ebad17c8a08327 GIT binary patch literal 321 zc%17D@N?(olHy`uVBq!ia0vp^!9Xm|!VDx^L-Ra=6mzkYX9x!e$L)vy4}e_t0G|-o z#Kgq-`1q)(sL;^RfPesRZ*Mm@H%CWD8yg#Qb8{mjBNi4Gpjt1p&FmnfOM?7@|04r| zS7*6_5}XAdk;M!Q+(IDCc<FB4AE2OoiEBhjaDG}zd16s2gKuJTQGRY}N@k*hTV_#e zd45rLv4X|cj7t?jrD7nZ&PAz-C7Jno3L%-fsSJij`i92(24>B1SN8x_cze1yhG<Mo zPEe5J5aMQ$n9{+@#dGWk6EmB5QX{jo#zut(#omYs2Lk+bG!kAYh?y9iQ4#Y=h;Y@3 rIIv-M#D>O)JR2VzSaE6L5)p<cYU)#6^A?r@jb-q3^>bP0l+XkK*T!Y8 diff --git a/templates/rhuk_milkyway/images/black/mw_shadow_l.png b/templates/rhuk_milkyway/images/black/mw_shadow_l.png new file mode 100644 index 0000000000000000000000000000000000000000..1d6f4c86fd8515bcd9f930836146990a0a862282 GIT binary patch literal 222 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaDoi|G978-h-=5mY%V5C6<Tz>K zp8r{F;?pjrHU4J`yt8tZ%C_?D@9O@)5@%|3P!Ql?VN&#DUeO}=v)(rg<U$5dS3j3^ HP6<r__7g-Q diff --git a/templates/rhuk_milkyway/images/black/mw_shadow_r.png b/templates/rhuk_milkyway/images/black/mw_shadow_r.png new file mode 100644 index 0000000000000000000000000000000000000000..d0df5857c764a8c7e91ea9ef291706a3d57912d0 GIT binary patch literal 219 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaDhxec978-h-=5ki$Y8*8$bqAI z!~bb{leWY;XjycX-~R0NY5&{Zx11CNI9Qk(9TZeD864ahjXnx}Z3Sv(@O1TaS?83{ F1OO;=LS_H} diff --git a/templates/rhuk_milkyway/images/blue/index.html b/templates/rhuk_milkyway/images/blue/index.html new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/images/blue/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/images/blue/mw_box_bl.png b/templates/rhuk_milkyway/images/blue/mw_box_bl.png new file mode 100644 index 0000000000000000000000000000000000000000..03e594100bcefe838ac12512b5c0c2ba754b6506 GIT binary patch literal 344 zc%17D@N?(olHy`uVBq!ia0vp^5)2HiOIVnJEZxjINkEFZ*vT`5gM;JtL;nXru6lq^ zi0l9V|37^F_3-uAN3Xvgz5aUZnP=5YE@jU=6Wf2>ul0~!)n28v&B8J3ZmpZK2&jd# zz$3Dlfq`2Hgc&d0t@{HMlrM3OC<)F_D=AMbN@eg(OfJgLO-;#6RB+2IN-fVX$}U#0 z*qU*v0;p6Bq|~`6HL)Z!KTjbfGdGpN&`{sVP~X7xn3&E1po(fw7srr_Id4yH<UAB0 z;&72Y%Azfph1-2YVSmpQwdy4v!c3pqyj1FHCWxMU%V%y>+$Y9B7#!gAJ{mRgd)LOq z8y_=Q|6ljD_QA~mkHQLPay<$yoXhnnQ1I@D!)*U$@1E%hI;aTJ;pyt<vd$@?2>@Up Bd13$n diff --git a/templates/rhuk_milkyway/images/blue/mw_box_br.png b/templates/rhuk_milkyway/images/blue/mw_box_br.png new file mode 100644 index 0000000000000000000000000000000000000000..cd9d500ee455f78b07ba5d46d3da1d5d8c31be3a GIT binary patch literal 1666 zc%17D@N?(olHy`uVBq!ia0y~yU`%IVU|qt(3>102^zL>b#a!&<8N$KAar>eF10YvD zz$e7@|Ns9VzW#dn`s<_DUyojYz4gqq>Lr)5XP$}eKknCh$gXOyQrc$Wn02?-%~%A~ z!dc)ES<Jw|Ed;`hm+sd60Sd~OxJHx&=ckpFCl;kL_$DS7<>#iRWF{)OWfrBD=NDxc zD_CsJxKsgDDh5*OT$Gwvl9`{U5R#dj%3x@yZ)B)%V0uhU=K#>bOFdm2Ln`LHJ-5-9 zDL|s(pu6LpqX7m@(KoCnO%1+rkYS2QzD6p`to}bI@3L&aW>Ee9_G*6r$?H7AmuO!S zec4swx=Sf`;wX2NJIWp9j&ccem5+D6+}`=}@_{c8%M*V6{l8~_{N9RF4?h>)i_bn^ yEH`7{`o@>1k9;|P;7jRQ@B8OJU$XE2EPpzz?MmVCy*9uiox#)9&t;ucLK6T->HS^+ diff --git a/templates/rhuk_milkyway/images/blue/mw_box_tl.png b/templates/rhuk_milkyway/images/blue/mw_box_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..0e8c6ee5f4b54fb5b9f1cdc02cc5e0307051bb6b GIT binary patch literal 310 zc%17D@N?(olHy`uVBq!ia0vp^5<slZ!VDyzmrmUbq?n7HJVQ7*IBq}me*okf1o(uw z{{R2~!`ELAUw=Jv?e(@Z&$ga<R=wm>)#8geGtXqtJQLf0+^_YJZ_6S3>b**7n}uW6 z-H2fh0P5u|@Q5sCVBi)4Va7{$>;3=*<x5;6N`mv#O3D+9QW<;`lZ*0mQ&Tb%72Gn5 zQp@v;vWpcgwq{(a04fy&DRnMNO)SaG&r=A=%uQu5G}JdT)Hg6aCZ=-$s3O4A#W6%; zYH~tCLV*2$d8US(wg3M=lzH~uL+1B?4!+CPDty=LRr>6V)a7SxmY?~#-lC|^!l;3< y<8OE)<H4OL8jb`yJo=O3@TkW1S<M1wb_V`$5o!e=%0+=@GkCiCxvX<aXaWGkpLS;e diff --git a/templates/rhuk_milkyway/images/blue/mw_box_tr.png b/templates/rhuk_milkyway/images/blue/mw_box_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..87d382489723953f56d48749548a956db29a2ed4 GIT binary patch literal 349 zc%17D@N?(olHy`uVBq!ia0y~yU`z+H)mfN<q~gvgX+Vm(*vT`5gM;JtL;nXru0eoL zi0l9V|37^F_3-uABiCMUJM(PonP=5YE>$hQm^1TC_RKS}{m1=U5BatnvajB&l(tzo zX5Eb#<^Z5x&H|6fVg?3oArNM~bhqvgP*A?aHKHUqKdq!Zu_%?nH!-;=KQ}ccGf}}U zvnaJZzbLy{!D4I1r3#=@F_2Q{qSVBa%=|oskj&gv217%ABSU=y(_>;f2Y@QdJzX3_ zB3j>`GvsY>5OBG;w~0wSy`h08ML|&fgaRXTc>Lys#<Uau&onD0>bUn_zu&#Signp% zwPnSM%k-0W315!veAzqWUgyhaTRJXl`K`8C`)ErSh~aQqC6#rVvRcxvIR{G49Qoqm h!+)d%DtqG#vqQ*wbB~D|mI9r?;OXk;vd$@?2>{o%ictUn diff --git a/templates/rhuk_milkyway/images/blue/mw_footer_b.png b/templates/rhuk_milkyway/images/blue/mw_footer_b.png new file mode 100644 index 0000000000000000000000000000000000000000..dd88b848c25d7a3b6a042483fc65cdd283044b76 GIT binary patch literal 351 zc%17D@N?(olHy`uVBq!ia0vp^Q9x|T!2}{#tzHPEn2Vh}LpV4%Za?&Y0OWEOctjR6 zFmMZjFyp1Wb$@_@VkNE-CC){ui6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaD&#>bg7ec# z$`gxH8GI9yi}G_*Q!*13+%k(&%kzt}ixn)kW?ZTOD&6Yo;uw<A`1Z<1-opkwtbvyj zr{-?zcfaQFYKm4t9@C~B<_C{EhOFD_WM6si<vjzBw|jS+^Awfx&p0ZRz-PcdgZT{O zGlt>@%L5d0Pkev=4rsjVF9$i%nRlhxR(>h{v+_jv_clixu@Bm;|M^yM^gj(O{5jQb ckH`<Ex{sU<z7AhCfF5A*boFyt=akR{0EZTP=>Px# diff --git a/templates/rhuk_milkyway/images/blue/mw_footer_b_l.png b/templates/rhuk_milkyway/images/blue/mw_footer_b_l.png new file mode 100644 index 0000000000000000000000000000000000000000..7a4b32f64913ae109a2b86d22e658094a1bbc068 GIT binary patch literal 614 zc$@)d0-61ZP)<h;3K|Lk000e1NJLTq001Ze0021%0ssI2%NG6w00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000MbVXQnLvm$dbZKvHAXI5>WdJZVFETbS zFg3+fJ3s&c03UQkSaefwW^{L9a%BKbVPkS{ZDnL>VIW3na%FdKa%*!SIJIcfcmMza zyh%hsR9J=W*)dBTK^VsI|Fg<fDJ+ygAowA!5bXU3DeY{9wB`fYrb?CGlxc!iHixM~ z3QIc+5tI-i61c{FQtZs`>S)B<8*OHqnH`4x%{wzJ!@GL5z70^{fbAOB*!aewQBOX< zCqr3$bi{Z(ei?W=o#ue694{?!feT#V0vEWz1uk%b3tZp=&lgtPqgW{&odJIKQs7wf zZg2{xo}3w0P$i_UM_m7X&K!soXQHE@C)r{3V+}YvAHU>S?H;UKRa|qOU0xkbj`P7v zwppNN4K{Z^UH<-)366fZ+F=G#1=`r!Jw5-G0q(fwFn2*Wk7pNG<98qSC&%;J?}gFZ zwb+iEtXmaf#RYsl{IU1#`|6vO*UL+z(c+M=j6(Jnz}NtG%;Y+Bx^5b7$6yT19{-&r zs=x>=sWLTgVy?hY%R&t=<RM?yJ}hM194mJ=BFvydV2c=ZsAh>fi8!@w)I@A-q|grG zdbTS=ny*f6?DoL7<j~W7Z=yW41$GxM3H;=FJd~mD+d#*I;tcxUlUMsczXsyDb^GQp z6?JjX=TzTkL&EpUfQ^3qXGr8zcF+as#V&jQ09l5l%-wR8wEzGB07*qoM6N<$f~l<z AO8@`> diff --git a/templates/rhuk_milkyway/images/blue/mw_footer_b_r.png b/templates/rhuk_milkyway/images/blue/mw_footer_b_r.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8380e3153400499169fe8992a51f92620632b1 GIT binary patch literal 569 zc$@(_0>=G`P)<h;3K|Lk000e1NJLTq001Ze0021%0ssI2%NG6w00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000MbVXQnLvm$dbZKvHAXI5>WdJZVFETbS zFg3+fJ3s&c03UQkSaefwW^{L9a%BKbVPkS{ZDnL>VIW3na%FdKa%*!SIJIcfcmMza zk4Z#9R9J=W*gsFgKp4mI@9*g3J8?AZZjQbK-Si!}@CICQ@ip)g*a;&HjBF0Xff!9B zgl=`X9=%pdP5%U=cQnvmOFs8J_go>>Y&N5Vc6tAV43cC}4+$B`fG|BE>i7Fyz?ChE z<M<@7If)wJ00%h00S<70103K02ROh1{spj5wwwR_qY?j8SO<GMfs?~tuBQ`tvyG9J z1Rx<fTOGpF`7&Kf!jZ++KAgZ{IKq={lv2m39#0ml^#{nyFfQlWW!mj_EvoDH&-3dC zun+X?CS+WX(gC#_@yqMm)!k!eWCc~sGZ3{xCNQ2XZU@gUAh*do%!bhzPGGZ*r}O1t zII{EV<<n1caV-HlySQmU%dJ<NP32USKD~AG>Y@jTP{V0f`bytSmhDV+S9&cfTj14N zZr3ZNG{bnRa=Edv>PNi)ZTD`CE?h}RR3JjVy6}DgUaa=GN~Lb9^Is{h*ZobZRHboo zxw7$WPbyVuHpfN&8(FFX(UEgM7M1I&A{}fR7gw!zvOjxY%hxeZbp)ou00000NkvXX Hu0mjfR{!)! diff --git a/templates/rhuk_milkyway/images/blue/mw_header_t.png b/templates/rhuk_milkyway/images/blue/mw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..72d182ba3ac92740741fdc788ae14e7592f96784 GIT binary patch literal 363 zc%17D@N?(olHy`uVBq!ia0vp^DnQ)G!2~4LH}_8hQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*i0973Hba4#HXncF?An#!V9_K*I z4;zI`m-l2<aQi=WyX&CdJfZ14tDKUN<<i=H+gBEyR55=2?N7^$oqWahB{MP&A4;BW zWfm+~vt9h|<Sg#_KEHNW>0f(3$7s#ly{R{<tuOPnOqbH(JtlSVkb%Gk8;R^S?H6xO zEI3vrF}LyQ!3gCD2{xu_?8&_ei4q>RJ?HvbjISMj!K1^E(7<xKd869~10EKT;OoSa rGL_o3s)v8X@0YuFT*Ao5YJ&Zmx#^s)it-DAo?-BG^>bP0l+XkKJ}`x2 diff --git a/templates/rhuk_milkyway/images/blue/mw_header_t_l.png b/templates/rhuk_milkyway/images/blue/mw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..eb72e04b8559b4fde6f6467f8edd2634698cbc3b GIT binary patch literal 739 zc$@*_0v!E`P)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& zIY~r8RA_<i);n+FKo9`n0r3!=iQOX^3NGEHNK!>fL6bBPC0(NAx>HU%U8+=3nzZ=` z`Fn_JB`841H0(|aKUl99;xz~vX{IpNV)L;xv-TFOvuD_06nBXMKq<vF7#>hJxJ^%y zPy)=U?>y8=2mpw<yk<*Yge|3z@h6Sy^&5B!=1UQy_0mStTY)W)Af13|N)<1O2><{T zpiEI}S2Q7IPlv@OCxY>~x7qvvG#Cp11Y;@9LPlPg6~tI8$`}d&u&vtf{zb2Q{OhOd z9Q@d1ekd(33~Gh~5D|j8{=dI^eY(lOB)sL)igJkIKR`fqtlG!R!{hZuW-0E4p)Tqm zjrjTgr{6u@5QA9#!hFh;^Z9>wms*T-J{pat)9HLZUn~}dLLt2;EvMi!P;IOB_V+e< zCu58;Rw|Vo$7wd3)oRsfem)T;6N7aI@X$L~8iaE`91dr*S*z8uEGrG8_hdQh)_(Uy z`EoEA2q8M1PPtq*!a#bzE5!>(5RMLA`3A<A=XtK{X23xIe2I_9$>f|f#@g+6u~?Me zf(Ef_|Dyk`@pxRRRO<D525G&gkI7_W+jeHm*z-KE(P-?>6GEh1XWw~=jn}HTXqtz} znn<(%j77G#jAGaOYx1@m)Gy@a*`xm4Z_liLh)DHY8?+ww+oSrCmuHXqlRT54ejzW< z9`z@ACPDqO-yYR(yFvNfZ;$FnUY<SbPx4HH`h~nad(@xg<=LbDB+n$MU&za|_XUs? VeQogU>h%Bs002ovPDHLkV1nAtPvigq diff --git a/templates/rhuk_milkyway/images/blue/mw_header_t_r.png b/templates/rhuk_milkyway/images/blue/mw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..c074176e927e90f56106606aad474f41dbc4330c GIT binary patch literal 856 zc$@)P1E>6nP)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& zu1Q2eRA_<in7xY=Q540`d6_`i&Bqpjq{<cx1}tps#Kzw31^)&s75@Yau@SMbbwx{Y zZNy@WZ6%GRO=1%WS(pv`k-$!_#e8ITHi>!37?N-gfqA@{_kP@S@7y<p`Fl^WM44s6 z05}+W){A)U5{$=8j^#nDd5IN_CJD-Psv|PA=7j{3{uPiL)bU6M7QAQ+0RU3O-&aUp zr%psVklFnl>mws@K=m!1fOH_X^}^VIfCK|V1SF;-?efO}fDws=L`Wkdq?v-W@)I($ zlmT7{0yGc+Lx6(e6r@$X#N!kQ1p<;np9B~`>=+WE;o(ZLiO-kYJOB0j&$pw-hr{F3 zvr7P^0Ru}xf+i>*-|(Ota86zv{PO*mx1YZI`w}5+gfyY?Oo8X?;Op^=*B{-pOU6h( zmBBa)Gz}hr!=s;%p1lbJGB-ku@fwZBEIS%wwzjs4#bUW!&SWw-A9()i;N9mR0BKAt zL_>0vT7XwqSO0{G$Y3yVUDtJ8&+{skN~KasJmdDxZ|^@n4O|^XIkJ=nGoF7WbGcl# zTCLaXwOZ}u<fPebdfv6hv{T%E{O~@4cQpDTkuSURmSmw&*xTFd_xr6@D{*)K!QB{c zd|AwMzB`VyySqCW3_6`oeE!a@njcco^F%_bM7`d~T*_v%)oQifZpU5SDQ=HDy%+E^ zu6#b9$z;0S?u7g4`RR*fsZ{FqdRD6z`aUa_N*5Ow%j0FU*~DA%e|eJ>J0>M@br$KL zbF5wV_qFoUmDY>$R+*>ux!yd@U%FC1*PEyLQ{F1`7OKxVwCR3sI#2tV@>ZFr^{G4? zX}zpBPxF_q)X(+iY5tVA$~>)4<=IH<MR}{t)Bn$ux5_;2pX<$Y7T==Z?_2P+UQ$&G i`OD>Uvp>A)e*Oh@p@f^tdtA`~0000<MNUMnLSTXh2bD$u diff --git a/templates/rhuk_milkyway/images/blue/mw_menu_active_bg.png b/templates/rhuk_milkyway/images/blue/mw_menu_active_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..0cf7cb053a3368de1b6dab96549a4c2367c841c7 GIT binary patch literal 321 zc%17D@N?(olHy`uVBq!ia0vp^!9Xm|!VDx^L-Ra=6mzkYX9x!e$L)vy4}e_t0G|+7 z?fQG_wf7V&?<kaAmoK^?mv>S&`;bifZt3JLQVHuNV^#=QW%8S+gvB@|fs8H*@(cct z3<O@C<pxS{7I;J!Gca%qfiUBxyLEqng7PJ<5hcO-X(i=}MX3zFiOEIzxv43ci3)C+ zMXBZaMcKs)7F#neRREQWfs{HIr6!hS=I1GdWag$a7#ist8tWUFHOF1u161Md>Ealo zF)=woL5@R+n?+(u2P+rPu_H{(Y~o3c%+4Ac6&e(KBPJXO@YB&qc%dL>VsJ)9%qJnj tRVU)WhS?Dt8Xxj(d~jgJrG-mG7@nx9Pj$^(SPC?j!PC{xWt~$(69DiNY#aap diff --git a/templates/rhuk_milkyway/images/blue/mw_shadow_l.png b/templates/rhuk_milkyway/images/blue/mw_shadow_l.png new file mode 100644 index 0000000000000000000000000000000000000000..cf53573dbc3c86890ce91d48e76f698326892528 GIT binary patch literal 224 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaD$G1x978-h-=12?$e_S;<Um83 zQdv^{RXeuxOr2djHhyD#(WK%#t0m;#mnYMm76xdDaJ4!y7BDX65HX(T#AyOFfx*+& K&t;ucLK6UhO+()R diff --git a/templates/rhuk_milkyway/images/blue/mw_shadow_r.png b/templates/rhuk_milkyway/images/blue/mw_shadow_r.png new file mode 100644 index 0000000000000000000000000000000000000000..90a9aa957b6aec4921eebd3b0296ba30d245f5ae GIT binary patch literal 221 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaDvUi{978-h-<~pLY%pLra^T7C zhivvgt_N~ToH+aZbDc#<JNwa>4rL7=mtV{<k?M6@e34;C?sZ20ipxzmfZ7>6UHx3v IIVCg!07vpjApigX diff --git a/templates/rhuk_milkyway/images/green/index.html b/templates/rhuk_milkyway/images/green/index.html new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/images/green/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/images/green/mw_box_bl.png b/templates/rhuk_milkyway/images/green/mw_box_bl.png new file mode 100644 index 0000000000000000000000000000000000000000..cc58c4350b8acc583c660f84aa92f3223691599a GIT binary patch literal 352 zc%17D@N?(olHy`uVBq!ia0vp^5)2HiOIVnJEZxjINkEFZ*vT`5gM;JtL;nXL(Ey(i z*Z=?jfBE_G#plQO-d(%=;^gs1yY}2!JL^<S|B<r3Bc&BPqjEO+B(1d%TW;vRP}xex z)EB6cv%n*=n1O*?2!t6g-L3lr6qGM<jVKAuPb(=;EJ|hYO-wGz&rMCqOjK~oEJ`iU zFUl@fu-KY$sRF1}45ZY#C^fMpGe1uuBr`Xa!O&3O$WY(F^q82=0icRnPZ!6KiaBpj zZsa@^AmVV5y~%ai2^q~bxtlwbQ&bMR$~azH!f|N!L6*Ni6tw5umd#6fCZo$h7&I_X z>)NXHyUYD>?cv>PGvi<XII8;JHN3D&^vK#rF@nynG4t(f7<TF2(Bpb=oe`wN)78&q Iol`;+08dGI*#H0l diff --git a/templates/rhuk_milkyway/images/green/mw_box_br.png b/templates/rhuk_milkyway/images/green/mw_box_br.png new file mode 100644 index 0000000000000000000000000000000000000000..27b9cdba24c5a6abf4acf1e9d195fc4ed8864b06 GIT binary patch literal 1676 zc%17D@N?(olHy`uVBq!ia0y~yU`%IVU|qt(3>102^zL>b#a!&<8N$KAar>eF10Yv7 zz$e7@|NsAAetvxM`SHDX*Dk*}dHm6?J$Kg5I@QvDq^$2qX~oW{oJ~GSYwg398+tEP zwvsXR1#09h@Q5sCVBi)4Va7{$>;3=*<x5;6N`mv#O3D+9QW<;`lZ*0mQ&Tb%72Gn5 zQp@v;vWpcgwq{(a04fy&DRnMNO)SaG&r=A=%uQu5G}JdT)Hg6aCZ=-$=<JoAE{-7; zbKaga^koi^XgGMikx^G=iO`0FVVoYTCY^gDk&yJ_gUJQ27e#01*DQZ<O)BmE-`{Tz zANJB-I`xuQ=F%-eQJQO~gpG1Xxue`s?kJZC?upY!zPvv2<@bRv4~-1|mRZ05yjh&z zvgY3T-`Q^~`<O3ZH#PWcY*;Hb<6rdWOV=Oo`SShv+duqYZpx;&E{+TU7V8Y2u6{1- HoD!M<*X;o= diff --git a/templates/rhuk_milkyway/images/green/mw_box_tl.png b/templates/rhuk_milkyway/images/green/mw_box_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8b942e919d28abef5a327175db85e6f37001f8 GIT binary patch literal 333 zc%17D@N?(olHy`uVBq!ia0vp^5<slZ!3-poS}QgIDdu7)&kzm{j@u9Y9{{;#0X`wF z|NsC0^7G@1&yVlEy>|T3uH%n(Z@e~t!?k%cPc`=+DeF5@+Pp8lVrNwOj>z22K1pls z!<HL*FI1Lvnz$cm0%w6oWHAE+w-5+3Ub<WN2Pi0C;u=vBoS#-wo>-L1;G39Sl%JcL zl9{OBmRXcqo?nz*tYEP<<5C4ssTfG9b5UwyNoIbYLP%zADubb+zLBB6f$1?ZodZA> ziJmTwAsQ3ko{i>fP~dU7sQKfNc*+0Sq9%)+erG2=s=0T0$pO1p%T+(ry36f|dUfr( zZ6mK!ze7_0gCpk*iqcD@&PbhDudMO6{rZ8eE!mdq+4`UQO<1_&yuq};EpE-L>Uqp2 X-qg+NEsRqHTE^h%>gTe~DWM4fi?xNM diff --git a/templates/rhuk_milkyway/images/green/mw_box_tr.png b/templates/rhuk_milkyway/images/green/mw_box_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..71214f2998fd90de767e8ee81d68a17c3b7c794c GIT binary patch literal 380 zc%17D@N?(olHy`uVBq!ia0y~yU`z+H)j61f<P*<I5Qn+g$uoq5gX8u?{|7*>S%6Q7 z>;M1%zx@38;`8IXZ?7GHwCnhz-5amX-*9c-%u~(%N6Pw+ls4~6uh<z?z9TYsvrp1m z`>^GP-V2o_ohI%Fn!s7$5n0T@z%2yAjF;}#{Q(Nfm$*ih1m~xflqVLYGWaGY7v<-s zrer26xMdclmgg5`7b{q7&A3znR4N8i>RgnXSdy8arx22vo62BlsBdJbZ(w>%Oy>Yl z#RN|m$B>N1w--+GHW&yTIFNHl^xTE|%{B{Ids=KnBm9=fUEY@3Q}TP))9=eZ7(dde zbKCML-G$p;dDVQ$o98<Yp6|GNzT;VX+kDBov>!7c;$o=mRr&QQ-R<7ro{qccJKm%p jdz0?+97FNPntcr4`6AcPu5J?sx{blp)z4*}Q$iB}ghQl9 diff --git a/templates/rhuk_milkyway/images/green/mw_footer_b.png b/templates/rhuk_milkyway/images/green/mw_footer_b.png new file mode 100644 index 0000000000000000000000000000000000000000..398187107e134666575eb72daf27927303e9f146 GIT binary patch literal 347 zc%17D@N?(olHy`uVBq!ia0vp^Q9x|T!2}{#tzHPEn2Vh}LpV4%Za?&Y0OWEOctjR6 zFmMZjFyp1Wb$@_@@+GbjCBgY=CFO}lsSLh}$wm3OsVSL>3T~N2spa`a*~JPLTQe?I z0F{b?lsXrsCYEI8=P86_=B6?jnCKgs=^L0H4Yqaws@Ul1;uw<A`1XpUV1oe<Yaml$ z1DDRiolRBR>TF?-MK_i|IPZ5$A~~n(Xw>Q|XJyOhYwle*5ofzVytu*gfJ_3P0s9Q* zGmOs|DC8=v`wcYMqwV|0WWEy}D}c;nfwl`Lf3f&ibo=eckJ_yA+$l2Oe*6e|z*u~W Wvz{Y<{|=zz89ZJ6T-G@yGywpnLwacd diff --git a/templates/rhuk_milkyway/images/green/mw_footer_b_l.png b/templates/rhuk_milkyway/images/green/mw_footer_b_l.png new file mode 100644 index 0000000000000000000000000000000000000000..343f044ea3007897c21aeff96cd033da4d189582 GIT binary patch literal 625 zc$@)o0*?KOP)<h;3K|Lk000e1NJLTq001Ze0021%0ssI2%NG6w00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&% z$4Nv%R9J=W*}YC1K@^7J_gfO06f`7Jgp_-TET!NYQ0^dA%5+IXm5zp*J4k^<2OU&2 zq=-_`(jvJ)`I90f+^`?T%-Fk&Ez4OCG&AzgYCPI!&zZAhYpgdPUjV+fjccfF<6CUI z#x-9*9h0FwnLA=I7(5O<8jW(mRgRMuxWEN2aDfY4-~t!8zy&UFfiu8Tc!C-|4*)-8 zD{!l2o8TF6*K<x-ir)A&bzI+E=Y$(gV^<)4Tztz53sAb1H3@xp|4WW+&nT`CvLv|r zGdw*%$p))6&2a@wkI#D_e*gQK2Tpn?+X_)vyx-Xx{<>T~Jh_89L09oouKo_+ZEv2Q zA1`aZS6;n+)*z+!VK|6$AWps?9iAO*Jb%5u_Hy;<YM&)WVfPlmI0R$cU|eH6_J?B# zA9cd^;#p{KqAHy+L|8#BV}UDV*;X26Cj5VVdp2MZ5tIZ}fkkZuHAo>`%W|*9yc_Wp z8(c}omBl#Eno?woB>dif^$Z(<17?R}>sQ^=Hp<&J3X>dpTTyN1dGYF+u|wamfflcO zYDmIz;AE$%obV8@pf$EvRZp{_%cr-#>(~50Lul4lr?*FYv>$tS>e{8tKHMP~00000 LNkvXXu0mjf61M?> diff --git a/templates/rhuk_milkyway/images/green/mw_footer_b_r.png b/templates/rhuk_milkyway/images/green/mw_footer_b_r.png new file mode 100644 index 0000000000000000000000000000000000000000..b6db606441f4ed15f74732a181e92d93b2d87ca1 GIT binary patch literal 574 zc%17D@N?(olHy`uVBq!ia0vp^8bEBx!2~2vi~VB(Qq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcGq@pN$viD-R$!_e=rfe71! z|K&Bzeg`{t6*5E!usgg`oiStA#*zn8w#+_rtx{jy64i8O72$OC+HQ2CZ>~n>6t%Ev z&lR&Khu!}jA3sUU=dy_4wLfp?afK+HWKmh*!7Aj#;cz}}vqZu3OUEA<3Pt!X;?mi0 zfQcJH*l7ApTmPndzq;0)oh)+2AMYIW_^@(wlSV<@lWED8SMy%CS#!;KXV#{2V%oIh z4gROEDs{Z@OA6DHkdMo^|JHt{AmcRm28}MktMm7--~C*AhI+-jKsgalhnqoX*4v~# zdh@&Z->-zLMtQ;W-CO)$zy1CA^xJ>tn;)lCge<qp*dzDisq4IVW~Z+v)t{&dd%7%= zwJ_52?Ca&L_eH(6OFl0%%Q;Tf^C{oOOH0>UF1dL%?bl7tkolXU-WlAu<#N+Mb=$VX ziIZzP#nzdxYtC${-DL1ZQnVrMl73>crW}V}M0yCruJDBR(EW!K;ww&VTg_k+lD~7| zwW588{I{%@NZjGH-fi3J9UHEeTI|s)nat<cc6$1nlmFiQW#*b?Jk72C94Lh_c)I$z JtaD0e0sxzK^QQm+ diff --git a/templates/rhuk_milkyway/images/green/mw_header_t.png b/templates/rhuk_milkyway/images/green/mw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..c3124445199ba5454e4867440c24f5cd1d4e6de9 GIT binary patch literal 361 zc%17D@N?(olHy`uVBq!ia0vp^DnQ)G!2~4LH}_8hQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*i09EYwba4#HXncF?Any?c9+$w) zMZ7PSOLNzD=&fjKDLKH|oAYIP<MIl%o2RG!uAix8KQkrGZocM`l4(C{T4(G%KJQ~- z(joWDd@h}$PbHVmUtMgNzxLz?qhk{ipO>lqTl#D%TX)k&w+*Qh91$`-rq2$)$nmyF zw(B`};8DUF!5m38CNcKp-h|Tz6KW*p=5nT=X}>55QrM(>*a56Whwqrw!D)#K355pN vX7DfGto!laZl1^gfBiIAzx9;CO9wmV;0%t=Y^9e#uP}JJ`njxgN@xNAFjI<| diff --git a/templates/rhuk_milkyway/images/green/mw_header_t_l.png b/templates/rhuk_milkyway/images/green/mw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..6819f4eb7e37c93f5e3530896f056aa6d7e81c51 GIT binary patch literal 739 zc$@*_0v!E`P)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& zIY~r8RA_<i*1u08K@<n@2jNFR7N~4UfPzGmvoTzIG!%ESIqs@6YN;k#d+`s@zreqc zP)z~_ge(m+&tiYg&Mr7J5V9oi6+||(e3<vXE|a@_K7|8T{*V{|6uw@9!3)Y4F@5n) zo+1T?YVXHGRg&H&)@t(`ybzNmls;Mkw81n_!c-}|m?SN|Gz|UMV4k>Pgc{!<?rp*Z zA^?b}vFI-~F3C&91R!E;ix^*Q@5%QkF%f(Xj3yf0XPnQlJ&3_pRLr~XRO+L_^{{_+ z*8WyMY3{H;sgvH!d{sp1-LJ=|KQ9)H>P7vK#^V_t=2RN5H*cfCwY3!UBFm2k2H`|c zeZT)0e!tog19^TB&t8-ZgxjAFsTk*cI-M>Si`8niUaxbxoVKS_xH$l)Qh)yYKe>c4 z#uzIU3e9G-)oPW?Wt07-HPgHL`^P^eAe{5bWU^c?JDpCgR?}fpJQ)t3A%HOKtDPK= z$3lo+uU9M<jWCFQ-=*P&ruXN0=R&@LG3L5%yWO_HVAJn|Tyirx=Zvv#x0}!BQU9SL z)z<S%;sa;1S*cX2R;w10hL@=MeBNj@tTAKHbzR4C4(ACWH2=@EJPZyj;pCE;(0Pb# zDUI`IyzF8b)}hbW<n6a8FXUy}qkJB>XEs0d&-eC4{ZxwjnJJIvM_!ga$|rdyMR_4F z%O2&EJd>il9JfdF+iy`nkK3d9k(XtU@=2aaQC`T)vPbzOFUua~lRT56ypWe=?-R_c Ves7n|Z6p8y002ovPDHLkV1n~aOs4<< diff --git a/templates/rhuk_milkyway/images/green/mw_header_t_r.png b/templates/rhuk_milkyway/images/green/mw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..f22fcc177bbfc9983e160d908a35354fed07df97 GIT binary patch literal 853 zc$@)M1FHOqP)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& zt4TybRA_<i*uRU@a1;RW_r6IW^xEczVmh@$hdQ{Zvy<T9;_Bo-APBDFuHfP%=z7YH z-gJm?%gx%&!R_i&C@sX4>m|_iIee2gNq;42ENOX<4x#-fpYMC$mv2Jx?(<u)!w|c~ z06-;=GM<VUItC05HhEb&01AU7RobAcG);PWj9rBS5CQ#Jhtw6M3e%(sQVc`@0>l6g ztE<U0^$ZV{n4E-MyokDzRLM&qEzT4rCLMs83P5W~m69a5I0OSz!h(>11a2f#^h+c; z0z#P?03u8Q5MWAxh+-X?sXqy1ANt7=AtDL6rUX-;4C))n4-?fh8uqpI`_He7pXX<n zr=uGi5D)<oK>*502=osyw6vJj3&S72zB~E$F(x4bNK#12=ePA_oL!#2{qlNr^LL)5 z0F(<EPBAYJ04{!<zj*&lW{Cn(L{kiVolYmo6@?I`QmI<4)@n6HQ5FZhIeGQ@`zPrw zO;I)xP9~F$7!kRyYgv|MS)S*arfHgHY>a(vJ$iX><k<5R#S$;k^A8bqU9Z>c?RLA- zXbgwLtE(%|i|kC*qvIzJp87ij$qx|)H_xn2NxU#zsZ?66mg6|xZa4Pp!~2iH2PCv4 zvOM2aRc$t#uIu*u{qXm<n|DAmGi{!(uM5f)nx@t3^<J+Ru4?t@I5Mwg31)wPDVNKN zq6`Lu_z!FEuk0Qo8irxpcB-?sdOtG^V>}-3&eJq4c31pgZ!zYZqu-hF?K0W(edX0t zpS$b#YxeRD?icoo>~VkYx5w+3Z*V>L+vD|PugKn3{h1*Sy`G2e@qWf$kv;BD_R<9R z%YJ*je)$I1bH6=aKlY03aeuOxCb(bNE3(J`pRreDkN400_SEe!;W$nTkNYLp$YK3- fT~9vv(ChgRP*jPL^bWOI00000NkvXXu0mjf*R_MG diff --git a/templates/rhuk_milkyway/images/green/mw_menu_active_bg.png b/templates/rhuk_milkyway/images/green/mw_menu_active_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..fadcbd10d144f83eadad630b15aecf738ecabb3d GIT binary patch literal 321 zc%17D@N?(olHy`uVBq!ia0vp^!9Xm|!VDx^L-Ra=6mzkYX9x!e$L)vy4}e_t0G|-o zgbS9j=glI|8ibwD4>_b8xLe0>tCsgVO^+4oZj04i=Bj8ViEG4)wdZdU1sPou<QM!O z83?>O%MFy^EbxddW?<kJ0%68WckBKD1?5XzBT9nv(@M${i&7bU6O)Vbb5m0?6BXPt zi&D$;i?WLqEVgD`ssJh#11WVbN=+=u%+FH@$;?e<Ff`IPG}bpTYmU3R2dKi^)5S4F zV`6fGf*gksH;crS4puInV@H^n*~F6?nVmH@Dl{neMoc&m;HRUJ@Ipb%#NdpIm`_54 tt4_p$4YMOQG(P0n_~5{bOAD8XFg#IHpX!>ouoP%4gQu&X%Q~loCIA9WYbF2y diff --git a/templates/rhuk_milkyway/images/green/mw_shadow_l.png b/templates/rhuk_milkyway/images/green/mw_shadow_l.png new file mode 100644 index 0000000000000000000000000000000000000000..31dab354bbb7804df62209ed98ddc898a6750e72 GIT binary patch literal 223 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaDoj0H978-h-<~pLJfI+O;DCtW zj}>}<`fIcnvK4){eSfnd{Agp~$3<2aI{!?hdfgUZ%rKE+kpHtr)M%aD-(^4p7(8A5 KT-G@yGywpN??$lz diff --git a/templates/rhuk_milkyway/images/green/mw_shadow_r.png b/templates/rhuk_milkyway/images/green/mw_shadow_r.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e8db0a4c133bf50c4f50a4b8c14904302f619b GIT binary patch literal 222 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaDoi|G978-h-=1=0Y%pLrvf-N= zqiDpT{S!P7IDGDV|J_1n6?^N;02`*q{);bWm`L@yEoLlWO#aE}7k^&A5U8KQ)78&q Iol`;+032dO;{X5v diff --git a/templates/rhuk_milkyway/images/indent1.png b/templates/rhuk_milkyway/images/indent1.png new file mode 100755 index 0000000000000000000000000000000000000000..cb9fd6b4f0371ef2b0831f4f48170f7a746b4e78 GIT binary patch literal 255 zc%17D@N?(olHy`uVBq!ia0vp^d>}RpGmy;w<m3aSn2Vh}LpV4%Za?&Y0OSe<_=LEA z|Ni~v&6_uF-0=1FwX?GW3dhSE+W;xHk|4iehW{W?Rr%l_P=vF<BeIx*f$IYZGdis? znE@13Epd$~3C>R|DNig)W$;Z*F3QhMP037DaLX)8Ezd8?E>`f3P%ttuFljGaa~`Nc z45Y!iC^fMpGe1uuBr`Xa!N6SK$V}hBq<N2^H&BJVr;B4q#hl~>1xbUMQjM9@E(jQ$ km6GZ@lx|{r<O&Nz>K>+B7o#5E1uA9mboFyt=akR{03l*gZ2$lO diff --git a/templates/rhuk_milkyway/images/indent2.png b/templates/rhuk_milkyway/images/indent2.png new file mode 100755 index 0000000000000000000000000000000000000000..00c96328e1b619b86721e564f651d9d538a417df GIT binary patch literal 256 zc%17D@N?(olHy`uVBq!ia0vp^VjwmPGmwn$ZVmua%*9TgAsieWw;%dH0CI%_d_r8m zfB$~-=FJ;7Zut88+S%EG6w4di04cVTAirRS{~%CR`QRT=gtNdSvY3H^>jMZgI;}C8 z0Tfg%ag8Vm&QB{TPb^Ah@J&oE%Fj(r$xKvm%PdMQ&o9a@R`88bFfuSOX)jxI9^@*J z2Ir#G#FEVXJcW?V+*AewbA2N-eFKx`J%Zjq6$+j%jv*Cuk`oqaB^a4DZH{zuevotR jLcp3wJ<Hm5@G>(@p1^c#_7QOnpjrk`S3j3^P6<r_i}6y7 diff --git a/templates/rhuk_milkyway/images/indent3.png b/templates/rhuk_milkyway/images/indent3.png new file mode 100755 index 0000000000000000000000000000000000000000..9332e783b7ef31f2e1f1e6b06f433688243fe46a GIT binary patch literal 256 zc%17D@N?(olHy`uVBq!ia0vp^av(MfGm!L&IlKf&F&8^|hH!9j+<xf)0LT>z@CkAK z{{8#Sn>TOVxZ&&TYiDN%6poiSwgFOXB|(0{4F5r(s`9}<pa^GyM`SSr1J?%-W^`I( zG6N{6TH+c}5}cn_Ql40p%HW%rT$G=inv$8Q;FejGTAp8&U98|6p<rZSVA5W;<~&e? z7)XP2QEFmIW`3SRNM>#-gMqoek(s`MN%I~-Z=ebVPZ!6KiaE&%3#1c_Or0KXZfRTa lA=26T<0<1=QbOBU7!IZ|-P(NZLq1R~gQu&X%Q~loCIH<jQ+)sc diff --git a/templates/rhuk_milkyway/images/indent4.png b/templates/rhuk_milkyway/images/indent4.png new file mode 100755 index 0000000000000000000000000000000000000000..97838e996d09025e176c2dd51203f4c0f3fb9a94 GIT binary patch literal 257 zc%17D@N?(olHy`uVBq!ia0vp^Y9KZXGmtc|V9Wqg%*9TgAsieWw;%dH0CI%_d_r8m zfB$~-=FJ;7Zut88+S%Cwh2!OoZGaS8NswPK!+#K{s(kPdD8gCb5n0T@!1V!y8J*Uc z%m50imbgZg1m~xflqVLYGWaGY7v<-srer26xMdclmgg5`7c2NiC>R+Sn6#IzIS<qz z2GZbMl$uzQnV+W+l9`*zU|_CqWTtOm(!58|8>m9j)5S5QVoq{`gh<25D;&-}swOPX lJ*Fm8G)jAxwH=A(V|Z`DbW7AltQV-5!PC{xWt~$(69D^XPcZ-h diff --git a/templates/rhuk_milkyway/images/index.html b/templates/rhuk_milkyway/images/index.html new file mode 100755 --- /dev/null +++ b/templates/rhuk_milkyway/images/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/images/login-bg.gif b/templates/rhuk_milkyway/images/login-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..cde836c893f64bcfec04b9c817e3371ff122fe19 GIT binary patch literal 237 zc$@+4022R4Nk%w1VGsZi0K@<Q?d|R1;o{25%KZHN{%H*VYY@`X(*O4G|Ml+G)z#6& zyzubw&CSjE`T5=5-Tq?(-qOnX@94+N&Bw>b{bmUKcqz}))c5uC(7v?)v4a2P)ZNa- z@$&T2)z|&~{r~^}A^8LV00000EC2ui01yBW000GQ;3tk`X`bk)Wk@<6#nZYULKH{p zEx|?+kif!I0vIL|#ZMubBmjWH2OtmxIFVa~6JQ7!1CK!f5W#StOTv&C3=E8h2vI1s n+#cd5;2fT3B_0kF0v!+!GARoV78n&7dMN`JIW(4+BOw4gP{MS* diff --git a/templates/rhuk_milkyway/images/mw_content_b.png b/templates/rhuk_milkyway/images/mw_content_b.png new file mode 100755 index 0000000000000000000000000000000000000000..c4fb01fc3e92ce9ef6f9e09646db73c0b75019f0 GIT binary patch literal 216 zc%17D@N?(olHy`uVBq!ia0vp^CP2)^!2~2rvR)+uDdu7)&kzm{j@u9Y9{{<W1s;*b z3=G^tAk28_ZrvZCpnQpIL`iUdT1k0gQ7VIPVscS_ZfZ(qqJmpyQEGX9QFgI{#ny~V z6+oq8Af?Vlsfi_-`FRQ<nYpP91}6GOX8H!EM}w^$fGYGnT^vI!dXxYB|8IXdfz^lk zEkjMhmBJ@YfyXCuyUDuiNnGhmwygg4#$h+3Is*gyP1dSg-?Od&buxIm`njxgN@xNA DjGsc& diff --git a/templates/rhuk_milkyway/images/mw_content_b_l.png b/templates/rhuk_milkyway/images/mw_content_b_l.png new file mode 100755 index 0000000000000000000000000000000000000000..4252805b972deb9542e7b74722c743063fd871a4 GIT binary patch literal 320 zc%17D@N?(olHy`uVBq!ia0vp@Ak4u8B>#36YXd3fVkgfK4i1jn5B(nixts+ak;M!Q z+(IDCc<FB4AE2OoiEBhjaDG}zd16s2gKuJTQGRY}N@k*hTV_#ed45rLv4X|cj7t?j zrD7nZ&PAz-C7Jno3L%-fsSE}t`bK8@2Bt@YtsQ_Wrg^$JhG<Njde)ljh=K&mgL>D1 zCjJeZIClO|v}p}fideBAp(C0lNN2a9^;Lr!gM=PQ{-y_!{|fhh-}!jX@+r^yf~1n? zST7CHOs(oQI5wyF`5lSJ=NKEVSv{}$-^aj^yeD^dv0h7o%<=H=tG3Qtdo62iYR}r& zUK~GPG9=tDe_!jB87Zc@RG=xSOW;?@^ghFF*NV<v|G{Qol`Hx%>v9;-g$$mqelF{r G5}E)p8+RB0 diff --git a/templates/rhuk_milkyway/images/mw_content_b_r.png b/templates/rhuk_milkyway/images/mw_content_b_r.png new file mode 100755 index 0000000000000000000000000000000000000000..969b71cc61470397f4ff8185f52f6bbad569d05b GIT binary patch literal 326 zc%17D@N?(olHy`uVBq!ia0vp@Ak4u8B>#36YXd3fVkgfK4i1jn5B(nixts+ak;M!Q z+(IDCc<FB4AE2OoiEBhjaDG}zd16s2gKuJTQGRY}N@k*hTV_#ed45rLv4X|cj7t?j zrD7nZ&PAz-C7Jno3L%-fsSE}t`bK8@2Bt@YtsQ_W=6Jd|hG<Oey=cgFL_vTxU~`0q z3yZY%`+A9!x=KxFS14vF7`7%xMqK!l*LJ);aaokMRBGh3^8#CY?v}=`k2&{qD!1a9 z&o*TY4jhs@rUadf<hWS8H7uD22=5eMyOn!;$&?kv?ZxM!R!=!3q1>|UfBlr8Yo)!0 zT1z#S=KkFA*{1*ThkMKi_Pw7|teKi!HRswdYlCAPicTHz7mJubp7ZS6cI|Hs(47pP Lu6{1-oD!M<7aDoP diff --git a/templates/rhuk_milkyway/images/mw_content_t.png b/templates/rhuk_milkyway/images/mw_content_t.png new file mode 100755 index 0000000000000000000000000000000000000000..4f3192e9cd2260e8e5b6982113b03fb314c9b301 GIT binary patch literal 203 zc%17D@N?(olHy`uVBq!ia0vp^8bHj!!2~2(477NF6mzkYX9x!e$L)vy4}e_G0*}aI z1_o{+5N5n|x9$&6P`<=9q9iy!t)x7$D3!rCF}Wx|H#H?QQNb;<D78GlD7#p}Vr#~w z3ZPOkkW%NO)Wnj^{5*w_%-mE40~38CGkpWoqruh=KoyFfE{-7@6O(PKzv&!yU^w>w o|9}3Dqdv?@uU8yhEOr@aG4D*);$@w(jX=c=p00i_>zopr0PUeV#sB~S diff --git a/templates/rhuk_milkyway/images/mw_content_t_l.png b/templates/rhuk_milkyway/images/mw_content_t_l.png new file mode 100755 index 0000000000000000000000000000000000000000..5f95d37b5e7e36a1d36040999fb10ec5d1d70d3d GIT binary patch literal 329 zc%17D@N?(olHy`uVBq!ia0vp@Ak4u8B>#36YXd3fVkgfK4i1jn5B(nixts+ak;M!Q z+(IDCc<FB4AE2OoiEBhjaDG}zd16s2gKuJTQGRY}N@k*hTV_#ed45rLv4X|cj7t?j zrD7nZ&PAz-C7Jno3L%-fsSE}t`bK8@2Bt@YtsQ_W=6kw0hG<Oey||IDML~e&f+MGi zQv;j#-~aua7A#sADWtJ&$Dt?h_Efyu@_W+E6xVFt;|9f=OTYWMFti9T9NC`yY)<jo zs}hg*Zok&|c*lIZbz7$e6`eaOvGtn0>ZjgqxzW>9TN*Z>*sHg6%evLy|A{b4Fg%$v zw^*Fxz=1O^Cg(r1G8s$>T9z5)b$7?T-}~RPySp5lQO)k)_4CBr`8&(~KQXm*J83L_ S_4^*ssSKX3elF{r5}E+c{DANP diff --git a/templates/rhuk_milkyway/images/mw_content_t_r.png b/templates/rhuk_milkyway/images/mw_content_t_r.png new file mode 100755 index 0000000000000000000000000000000000000000..ffe644777599767bb8726fed6618d53ea052b91b GIT binary patch literal 342 zc%17D@N?(olHy`uVBq!ia0vp@Ak4u8B>#36YXd3fVkgfK4i1jn5B(nixts+ak;M!Q z+(IDCc<FB4AE2OoiEBhjaDG}zd16s2gKuJTQGRY}N@k*hTV_#ed45rLv4X|cj7t?j zrD7nZ&PAz-C7Jno3L%-fsSE}t`bK8@2Bt@YtsQ_W)_A%&hG<M|y<pANVj$x7&|XMI zY5NDpq=gUuZJ*@Z(HgNLAxML5eXDUZ^W!I1;!9huNxkpz(44w#<rJa&oM~(a&ivjd zo&2nF+clxUK#}slMc=pOzW!YoIc?RdMH*El;g2o0<=!?q>)Je@!(m!#X>57y^Etnt zGd!vEb2)5KA=9u)r`PbDWq+{O(Lx*F$;TNzCZ)uN?^jmJUVFbakwc;4*LP12Mg@z$ d=9zncvCI<ivxs}hbQ9=q22WQ%mvv4FO#puXe_j9p diff --git a/templates/rhuk_milkyway/images/mw_footer_separator.png b/templates/rhuk_milkyway/images/mw_footer_separator.png new file mode 100755 index 0000000000000000000000000000000000000000..a47026fbf3cbbfa861efccedbb48072b061ed772 GIT binary patch literal 209 zc%17D@N?(olHy`uVBq!ia0vp^MnKHO$P6SEx@F^m6mzkYX9x!e$L)vy4}e^@0G|-o zGiT2H|NsATuV@)igtNdSvY3H^TL^?1FWs&C0~Ay(ag8Vm&QB{TPb^Ah@J&oE%Fj(r z$xKvm%PdMQ&o9a@R`88bFfuSOX)jxI9;iVKq`|o;HL)Z!KTjbfGdGpNz(n83Oy9ut uXt1>dPzArIi(^Q|oaBUtrvC{A3=Gm+*>>~Z<x&SqF?hQAxvX<aXaWG&lspRn diff --git a/templates/rhuk_milkyway/images/mw_header.jpg b/templates/rhuk_milkyway/images/mw_header.jpg new file mode 100755 index 0000000000000000000000000000000000000000..cf61a57dc0fff37ce9b9fa3c39ac7c915284da28 GIT binary patch literal 10595 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 diff --git a/templates/rhuk_milkyway/images/mw_header_b.png b/templates/rhuk_milkyway/images/mw_header_b.png new file mode 100755 index 0000000000000000000000000000000000000000..32f25d9e8931d6c6468c4ca65245b9981d06d20c GIT binary patch literal 239 zc%17D@N?(olHy`uVBq!ia0vp^)<De1!2~4bK79TKq?n7HJVQ7*IBq}me*oli7I;J! zGca%qfiUBxyLEqng7PJ<5hcO-X(i=}MX3zFiOEIzxv43ci3)C+MXBZaMcKs)7F#ne zRREQWfs{HIr6!hS=I1GdWag$a7?|iAnduvt9u2m30IG2Hba4#v=zM!Qkdq;R!};R# z!~f2%QQUTc=l2A|4=OuOY*|$mWM|D#cJ%k2-8Xq9_Da7Ntxnq{ZBS+%SAO)jjnWOE b*m>!b*92bdd$30sXdr{9tDnm{r-UW|o~BW@ diff --git a/templates/rhuk_milkyway/images/mw_header_l_b.png b/templates/rhuk_milkyway/images/mw_header_l_b.png new file mode 100755 index 0000000000000000000000000000000000000000..c24a09b55bcafd22e91f8469276ed5c9a48406c5 GIT binary patch literal 236 zc%17D@N?(olHy`uVBq!ia0vp^Qb5ed!2~4t<<AxYQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*i09817x;Tbd^d|rL|KFaOXO4Bb zUsTkrMy3NUozE7g$#6@_TWXwSa6Y~H{5;#mM=ad9n7Mg*-fdW17Ba`SdRo`9Kuax# YxckB{x)!ug1)9d->FVdQ&MBb@0F<yvfdBvi diff --git a/templates/rhuk_milkyway/images/mw_header_r_b.png b/templates/rhuk_milkyway/images/mw_header_r_b.png new file mode 100755 index 0000000000000000000000000000000000000000..2618a6c042582285c3c309524183a59ee6831e8d GIT binary patch literal 243 zc%17D@N?(olHy`uVBq!ia0vp^Qb5ed!2~4t<<AxYQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*i09AN;x;Tbd^d{GQe8kGU^TGT3 z`}O1Y7#JBfbsJ2~6$>-i(VP79|9|_NvkbrT6`i-M{?^lV%rHo(Y(_#syX@A*kKWwe f9AeUUDv*)kjgyqtkrKJn3?Nfo{an^LB{Ts5>P=DS diff --git a/templates/rhuk_milkyway/images/mw_joomla_logo.png b/templates/rhuk_milkyway/images/mw_joomla_logo.png new file mode 100755 index 0000000000000000000000000000000000000000..bf63f4622f1ddcf5643fc47e71878431972ddca9 GIT binary patch literal 1290 zc$@(W1@-!gP)<h;3K|Lk000e1NJLTq00Alh002t}0{{R3@H;wI00001b5ch_0Itp) z=>Px&08mU+MHv<n;qKF3tSI9c831IZNJT<=t<H^%i@MjJ{EH~8s;E$&82_nS=086r zBOuz@*m`(&GljW<w_5Ctjn>xI_s5>B%G_pVW|^6p|DH(4-mvLlWH&Q1Ypp=u=h)87 z#Z8jG5OS~hi*~cKvF|7-n#OwfwR__1`B+v||JbRn(~iE><MnV}^v}=kw6x_ZDf^j( zlai47q*ectC%(PC_H|<!bg#_J%$2y_@Z;m7qo9L;er;@O8W<KaE-SgWw?8~O>QYkw z?as!<#bT^7_RgzXq$l^ggyk_YW0cPKnT^80zjClgi@j?0`tlEMtk&es?Q(MNGcy0D zS|EG1|Cuw=-{<w!yzt%KiH3#k@9E&@>i3a@P)$ntvUTrLMg6IhEGsAYzLEK*TZ*;O z?46zZ$h}94!gFzNqt1e1UtRjBVfrB=^yAa~g&+EyNzmfDdAv&W-pvnpx?Qm$k&cZb z9~+##;r*35Sfe8GVN>daglMA2L_$FPqmAypy%&4Dv9GS!>)iUUZOz~D|IC?<z+C_4 z!T!*jgoA==Xl4m(s^RDBS)0eR(Vg;aU}~&8m6Vi_z;I%yG2|g4IXE<Pv_kdKv-qT! z{`Ken#fhq@sQ;!^IEA<8N=n||-v9sqOG-%mjxhHrDWadBwY9bO+PEnvB=hLr^X=hW zT3Cs{R{y<v9~&4`QBPs7DF2-~oyUMFezlFZ+f||<lEdKt+Q|Rf+VIxaz1FJ!tCX&- zt(lgU*5cRaIXQiMdWwmM<mug}#@qIRasPvZ=xAsTbG3D{Q2x1e|H6Z%rKE(sU)kf| z>_|R3guR!<bN{rTQkcVab8^t)#Q(m&x6j|S+m~{q((IFyd$v<OIyf43vu2sh^?Pja zSxM(yT`w#tW3(!4wK;vO)&FK@=<VbpfV=YY@?)<!4tc%C*yN|ojMnA#iM?V%Kt2Dp zZ0xkV|CBNRu4C}V#xpZB0%xb@=H_v3Z1~H^CL<wvw?yuyrv2Q!^JrH7aB=B6Fye>{ zaR2}S0d!JMQvg8b*k%9#010qNS#tmY3labT3lag+-G2N4000McNliru*#QdzIsi4P zL*W1b0fR|IK~#9!?V4Mz!ypU=+5aleQhTNTw7mh21wwW*^O*-RBOqXC4FCWD00000 z00000AS+Vr`rnN=gInKRJmtNpZVVMvO(o2$dnKTRsgSDA_{Vh_-H{zxSylhs3}o$5 zRduZD^|<gz*Y2)L-N7qXYQR)cRf<)9i>jKF1qBD6Zoe$ts617}xUc{ItJTkE%2gFC zVp)}ns+xs;^=rIeqdKT6Gz%}PY998*BrLip%HRLasroQ9ca_o9F;zcy#;%l9)ofWW zN0kg!zKxWoELHKgX{27XV@aK?18!0k%09H`s_NwPN;Rrusuq$Ok5VO6`Kkin7OH$z zt*WXGQ_zSip~_d)P-T5vrB$sbVM3}}ZB+_pOw7rGDmAJ@31fRyN^I)THpFvOEpKkQ zeNFXMEpM5cnT5=zPHn{7hlg&UYV~-Bl?6?0>fE8BuZN{#)6ZxoWbG*0e8(oYsjUYb z18;|7DXFRrkIg!z4ts5GRR91000000007%~0lHEvA0+A?CjbBd07*qoM6N<$f<f7& AjQ{`u diff --git a/templates/rhuk_milkyway/images/mw_line_grey.png b/templates/rhuk_milkyway/images/mw_line_grey.png new file mode 100755 index 0000000000000000000000000000000000000000..1b1b8bb8ff19c3aed1da01dc4674bdc70961dd2e GIT binary patch literal 207 zc%17D@N?(olHy`uVBq!ia0vp^j6l4Wkr_yOv$n?rDdu7)&kzm{j@u9Y9{{;*0X`wF zXU?4Y|NsBxUePk32xoyuWHAE+w-5+3Ub<WN2Pmjo;u=vBoS#-wo>-L1;G39Sl%JcL zl9{OBmRXcqo?nz*tl%4=U}Rum(q6XaJWzueNP}}xYGO%dex5=|W^O8jfr-A6nZAMP q(O_!_unS!rLn`JZCrGevVPs&8Vqmo8D)0nKFnGH9xvX<aXaWF*?KwjL diff --git a/templates/rhuk_milkyway/images/mw_menu_cap_l.png b/templates/rhuk_milkyway/images/mw_menu_cap_l.png new file mode 100644 index 0000000000000000000000000000000000000000..b341504746a208f2f679367c7ccb3c1678760edc GIT binary patch literal 4496 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 diff --git a/templates/rhuk_milkyway/images/mw_menu_cap_r.png b/templates/rhuk_milkyway/images/mw_menu_cap_r.png new file mode 100644 index 0000000000000000000000000000000000000000..95b096d2a1210a545b1663c24778d56af3ea4812 GIT binary patch literal 4518 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 Ef@C?H0ssI2 diff --git a/templates/rhuk_milkyway/images/mw_menu_normal_bg.png b/templates/rhuk_milkyway/images/mw_menu_normal_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..e2548540be21c94b1d622a36bc0bca1f55451d1b GIT binary patch literal 15158 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 diff --git a/templates/rhuk_milkyway/images/mw_menu_separator.png b/templates/rhuk_milkyway/images/mw_menu_separator.png new file mode 100755 index 0000000000000000000000000000000000000000..2121292b629aa448f8d553ce3aa3ac55166a034d GIT binary patch literal 225 zc%17D@N?(olHy`uVBq!ia0vp^j6kfw!2~2@+FN~r6mzkYX9x!e$L)vy4}e_G0*}aI z1_o{+5N5n|x9$&6P`<=9q9iy!t)x7$D3!rCF}Wx|H#H?QQNb;<D78GlD7#p}Vr#~w z3ZPOkkW%NO)Wnj^{5*w_%-mE40~38CGkpWoqruh=Ko#bmE{-7_GuIwI$jM;9!F*ss zJLA#*-~G>cnjSF3E@E$g_w3!KRU8jq&wP0I;@z1udpNunsmzjOv}x1lQK@Bn^BHIa NgQu&X%Q~loCIH(zNFM+I diff --git a/templates/rhuk_milkyway/images/mw_readon.png b/templates/rhuk_milkyway/images/mw_readon.png new file mode 100755 index 0000000000000000000000000000000000000000..56c38b29633dddf9c9feac8a188794dcb0e78852 GIT binary patch literal 307 zc%17D@N?(olHy`uVBq!ia0vp^d>}RpGmy;w<m3aSn2Vh}LpV4%Za?&Y0OV=~_=LFr z|NsB{_wTP?zkdAq@$K8UPn|k-?AWngyLN5bv}x9?S$%zdO-)Uem6fTfsl3ISx*$_a zg8YIR{v(5MuiGL(8O{Qa$YKTtt`8v0=(NUU22fD7#5JNMI6tkVJh3R1!8b9vC_gtf zB{NaMEwd=KJijQrSiv_!!N|bCq`hp-d7uU{kOt?X)Wnj^{5*w_%-mE40~38CGkpWo zqruh=Ko!QGE{-7;bCMGjgf?g!7^pL3PMgZrb611sBs0&N>k<+w+ZtOWZfrL+VANz2 fV`EceZ7E~$*~jr~QN)o1pmqjNS3j3^P6<r_m}YRC diff --git a/templates/rhuk_milkyway/images/mw_readon_rtl.png b/templates/rhuk_milkyway/images/mw_readon_rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..fbc20c007cc21c2c4c367230d71ebec59bbcec04 GIT binary patch literal 301 zc%17D@N?(olHy`uVBq!ia0vp^d>}RlGmu=zwB8p;v7|ftIx;Y<KVi<=^%BUJEOCt} z3C>R|DNig)WpGT%PfAtr%uP&B4N6T+sVqF1Y6DcH72p%%x@ps<UAuOjI&~^FHMO#` z^6}%xw{PF>>+5T3YWn{D`>a{BjvYJp`t|Go|NsAPlzIcQyCldj_&+jWa6NG61W+d5 z)5S5Q;#SfFS4IZLBMqlmITTFv92gcBGBR=Watk;J=$UJGJV|^46c?C2ySY*L#KWZY z$3Pxi3ZK5d1A}3Kv2mlwrh>vIjRuCKhE8V@Miv1N{eT8`odYL8`X^Ub91xKPs$6)J bTOfhKeFjJT=b#8lpw$eXu6{1-oD!M<B>!<C diff --git a/templates/rhuk_milkyway/images/old/mw_menu_cap_l.png b/templates/rhuk_milkyway/images/old/mw_menu_cap_l.png new file mode 100755 index 0000000000000000000000000000000000000000..08b2e8b93a162bd8eccfb79da81e94d9a67fde8d GIT binary patch literal 384 zc%17D@N?(olHy`uVBq!ia0vp^B0#Lb!VDxI__($LDdu7)&kzm{j@u9Y9{{;>0X`wF z+qP|c|Ni~6XV324yZ8P3_iNX#{r~^}%$YMsj~?B-cdy)35i6id&H|6fVg?3oArNM~ zbhqvgP*A?aHKHUqKdq!Zu_%?nH!-;=KQ}ccGf}}UvnaJZzbLy{!D4I1r3#=@F_2Q{ zqSVBa%=|oskj&gv1_Kj)BQt#i)1$%G4nP%aJY5_^B&PbF_vJgJAi$bXwr=59hO(SH z-W}PGVissUWRUuH%j^rs+qJ1bGJl7~tF@RPo+Tl9Xw#bS6N7BCzpFJ>DLk6H!e=h$ zv(}lHu65Q$y->YayK138zwGjmGcUhw`7~))<Ikr7FTSi5Xx){kW6x4&{!KeN`b6TJ zAj7N;mGM`cdiT4CB-GaTUFn_06Dy-}z~{3KyHfs=kA+=U5mL@B=Q8Je^ptk)P)<E= Y&%oy@tQoQF2GHFMp00i_>zopr0Cy3caR2}S diff --git a/templates/rhuk_milkyway/images/old/mw_menu_cap_r.png b/templates/rhuk_milkyway/images/old/mw_menu_cap_r.png new file mode 100755 index 0000000000000000000000000000000000000000..5a408889cdd93418028443828a1db35d15395d34 GIT binary patch literal 709 zc$@*n0y_PPP)<h;3K|Lk000e1NJLTq000vJ001Be0ssI2f85lV00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& z8%ab#R5*=|mBEgJFc5~P?X(>rnruAl3;6yI;@!kV6TKLf2%%b9_ApvqMcMz*K+4D8 z8D<8tTrPzW0FYKGrIZo?q?F<=coUXonQn;47{i!Ss_Qy_Q7<prw&kl3LS5IV)9HLZ z3n7Z4U|uQJ3k&c4%Q0e%hr?mF+vRz#ltM&Ae22y5a(Ryd0It{Tdc77xD5bR43FcS; zKz1LbwVuspF~%69_r7i07$a{DkX_dy;&eK7&H(_E4Bv7aW9&WcZ5weinH-PD{eEwZ zNihR}sH*A<$vI!GRzE*K<MG&9i-=ll0Knw_Nm5E8a?a&>j)+RB+i^k&-$?){ilQvb z5CVsKBb%lfBmuxV7eWXj{5M0-S}Ybsq_xhn3;-~F*)QU^&*$@^D2Rv)^IxR*UTb~1 zTsS?vK63R%&N)PcdndAnJwpi2IU?e^eUO8mr_%`l+O{R4=ZYWjyk4)z<Ix!N+^EBz z-uvx#OGMs#Yb}$*o=wwiHXEf>(==I@X|37z;rUL65cc~$H%C=fd7fKqQ**z1c3tPa zud1pn%et-sKnPJ)6%ko$jWN$-;YKbNi{wT`03fBT>lzW+jVq43<PXUX3^?aF7!Hix zUJM^(mSxW~It@F07vFMj{#3$fG-8a!N8(4*+B<KN3qQg9Q2Oqy-WiY9+TQ=lm;b_p rOrFnc0(vn3Kx0hr#-N7V`jdVEc(WT;Sh)#?00000NkvXXu0mjfMQ<|; diff --git a/templates/rhuk_milkyway/images/old/mw_menu_normal_bg.png b/templates/rhuk_milkyway/images/old/mw_menu_normal_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..5133b2e184d79ca60fe91cbfdc551a117cc6b75d GIT binary patch literal 273 zc%17D@N?(olHy`uVBq!ia0vp@K&-&Q1SH*dryd4U%*9TgAsieWw;%dH0CG7CJR*x3 z7`TN%nDNrxx<5cc`4ZQNlHmNblJdl&R0iL~<f8oC)RfFb1-Hzi)bjkI>|zCrtr?dp zfJ((cN}Y>R6H7Al^Atidb5j`%O!SS+^bJgp23tD-Rit~mIEGmCKD}Vg#h}Q;aB)Sq z(~;lvPv7(AXzHE6_mGIDnAz84r$<rQOwV5K6@Gp#YDM{b*LQQ0Z~gvtZ?Ab#vEP#y zviGWk#hreHp1*Z9YNB+q!tzxorUp$oZK*sx$f(rN?a_tFu1{D!b9Ii+x%BEC&`JhR LS3j3^P6<r_V@hMr diff --git a/templates/rhuk_milkyway/images/orange/index.html b/templates/rhuk_milkyway/images/orange/index.html new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/images/orange/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/images/orange/mw_box_bl.png b/templates/rhuk_milkyway/images/orange/mw_box_bl.png new file mode 100644 index 0000000000000000000000000000000000000000..958f6d5a830db0e75dd045620591d445fb182086 GIT binary patch literal 352 zc%17D@N?(olHy`uVBq!ia0vp^5)2HiOIVnJEZxjINkEFZ*vT`5gM;JtL;nXL(Ey(i z*Z=?j|M~jy=bOjh9$))>^Thk}JKr2z^LS;`g9RlI<`>`UiMZC}dAZW&LV@1dGzEcw zLeGF2ISV`@iy0WWg+Q3`(%rg0KtcHu*NBqf{Irtt#G+IN-^Api{M^)(%tQsZ%%art z{G#k)1&gg2mnwit#Xw4(i&7IyGV}8kLNaqx84L~ejSTe-Opl4_9001Q^>lFzshIQj z<VMaz0U{0;*_&LKosiL7le@V?IYs55tBm8NB^-xlA7uIaLqU7aZP~n(XEM4Bgh2!I zw63j6zq{NI*B;)zHZ%V9kE5#pUBe5jM31a}6eH;D8Z+O%hGCcP4Lz<0*BL=NJYD@< J);T3K0RV_MeFFdh diff --git a/templates/rhuk_milkyway/images/orange/mw_box_br.png b/templates/rhuk_milkyway/images/orange/mw_box_br.png new file mode 100644 index 0000000000000000000000000000000000000000..7146057c0be99870512efa5f8a11c56c53c5a6c0 GIT binary patch literal 1676 zc%17D@N?(olHy`uVBq!ia0y~yU`%IVU|qt(3>102^zL>b#a!&<8N$KAar>eF10Yv7 zz$e7@|NsAgzJC1q=JB`3*FN7o@&5eIH^<gIUfJ|uLCJ&p#kYDQt~GgHuC%#Opm#P+ zLExXzGoVJ!0*}aI1_o{+5N5n|x9$&6P`<=9q9iy!t)x7$D3!rCF}Wx|H#H?QQNb;< zD78GlD7#p}Vr#~w3ZPOkkW%NO)Wnj^{5*w_%-mE4LqmNdLwy6&V`4f7fX-g&>Eakt zG3V_$Lto|qiH3vM8yR&~mI!S)7{=+bYSOtk5(!B!KA2qadQo(Ce$Da+*QC<k|NZ^u z@L@0QrBg3?WiH(k6s5U#O4ulOlsn2D<&JWR;GQ^r<jd<LUw$9>^3cfOZ<+P`&zr^h zEo<(b|DFA|vXA-lbyI`C#)h?0GyX+?zI6TZo-f~zzx~7i<)&<U>*B}&V6o2N>FVdQ I&MBb@0B;fmSO5S3 diff --git a/templates/rhuk_milkyway/images/orange/mw_box_tl.png b/templates/rhuk_milkyway/images/orange/mw_box_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..48394c3fc92abe3dc2554736cdd6410e29b0369c GIT binary patch literal 333 zc%17D@N?(olHy`uVBq!ia0vp^5<slZ!3-poS}QgIDdu7)&kzm{j@u9Y9{{;#0X`wF z|NsC0^Y!D;H;=zPy87Y5uJ`A6zT7kK<(|2ZS2jLaQ1W1Y@tvuuw|XLO_Jm(+_PShY zbD==*Y?^}bZyu0MoCO|{#S9GGLLkg|>2BR0prCw-YeY$Kep*R+Vo@rCZ(?#$er{?? zW}<>yW>IQ+eo=O@g2mR1OBFz+Vj!i?MX8A;nfZANA(^?U42FjKMuz$ZrpLr|4gggo zdb&7<XiR*2Hkz+Nfyd>d=8r?-CI4rOnk;hqot^Zk=HBHc2kc%gSN%}yF1I7<)wS!k zjl53%4oUqFj+`?nN-vQ*BXwfEvc})`>jz9*vMtxM^*{BSuyDtDgK2+T!kSmr^O#Lc V)Xn<8L;>U-22WQ%mvv4FO#o?mhYSD! diff --git a/templates/rhuk_milkyway/images/orange/mw_box_tr.png b/templates/rhuk_milkyway/images/orange/mw_box_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..944be6ef79e3ed8cb76f2fd76422f8dd789df3d5 GIT binary patch literal 380 zc%17D@N?(olHy`uVBq!ia0y~yU`z+H)j61f<P*<I5Qn+g$uoq5gX8u?{|7*>S%6Q7 z>;M1%|9t)U^UdRLkFI{Wu<QN#oiF#yd%0)s<CTpM7L+`gUwmh3>aCuLn?2#zn!PSp z+FU5mJDa8;{F?`46K8=(WHAE+w-5+3Ub<WN2Pi0C;u=vBoS#-wo>-L1;G39Sl%JcL zl9{OBmRXcqo?nz*tYEP<<5C4ssTfG9b5UwyNoIbYLP%zADubb+zLBB6f$1?ZodZA> z6FglULoyoQUO36yU?6bdK+Yl2a~JA2+bm%1X|WNF@LL{td0T2v$?siHzc2e>{79qD zZOfx{7jApyRr4ipp6@t#zT@ioj%Vp@^Cj!je$0G`i=nbtW!I~8w|jqkI_{qDc$0qY iO}fi_48<R7_Az{5j9fog-^>8$HU>{uKbLh*2~7aO6QzCt diff --git a/templates/rhuk_milkyway/images/orange/mw_footer_b.png b/templates/rhuk_milkyway/images/orange/mw_footer_b.png new file mode 100644 index 0000000000000000000000000000000000000000..97a728c4d74959133a55765257f06a526f24f5bb GIT binary patch literal 350 zc%17D@N?(olHy`uVBq!ia0vp^Q9x|T!2}{#tzHPEn2Vh}LpV4%Za?&Y0OWEOctjR6 zFmMZjFyp1Wb$@_@@+GbjCBgY=CFO}lsSLh}$wm3OsVSL>3T~N2spa`a*~JPLTQe?I z0F{b?lsXrsCYEI8=P86_=B6?jnCKgs=^L0H4Yqaws@US`;uw<A`1Z;{!NUqXtQR?^ z2n9`kT^uiRgm=DCnzlfDt>~Ydj7KFNFWw)K9hz_9an5qJxy+JKev59)12PGG2JADK z&oDk?C~lyTEAaj6>U#wf-UQk{RJnObZvC6Me&4jurF-_sPPlt}<H=`lZ&X+*?EiM- cN9Y5_lM<ZId<@>l1KrQy>FVdQ&MBb@0Lc`5EdT%j diff --git a/templates/rhuk_milkyway/images/orange/mw_footer_b_l.png b/templates/rhuk_milkyway/images/orange/mw_footer_b_l.png new file mode 100644 index 0000000000000000000000000000000000000000..27d1fcfaf80258f46e892aa89a963cc259d8064f GIT binary patch literal 666 zc$@*60%iS)P)<h;3K|Lk000e1NJLTq001Ze0021%0ssI2%NG6w00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&% z@JU2LR9J=W**%IBK^VsI|5LjfEGU?WCLX|aLcM~Scme}2U}`2F!V8FOASS|!k)W`# zkzg``i>P3*E(7b-V^AN{Gdrl;JLM+z&d}Xc^z^Uax2lV#Tf29!1IN+P#K_#9n_toM zNVMnX*5g++i0!}bF_}!x2cFGlE#T1NpdIdThdbQi4tKc29qw?4JKW)o!U6%x8v=>E zXbS)T=x_}+?co);j<4l#Ls%s}rB52uAaQ(j*bpv!Ue-Db4nDkZ3@ay|R6!7u-aUQP zqS^%>OdW^-K}!73Z=a|8uUo+-TLb|~OG)oNxj*~ywF%6?Pp43m4kAb|9^N_pGTl5} zFQkya3o@O|(f5OA4{lHQ_cqnvTla2W8vK+s*iI{{%q05s_T|Sn&o5uQv2*3>)`g3l zyypKol%C!iFflJ3O*GMUgJ|1CW3X-TAoCGLSbB&mu#gFq>SId3$9#Gi0amrg6n}e# zgfw?JINO3q>H!52?MkLrdrZNX9~)O2p=>*)E9Yb-JEiOTuN0?Bd;!<8%8NROWI(Qi zEMtMObXsgZylNL~kP=2t-JJGtZ9f~l)|Rmx3Xsz+<7>3M=GDN^Rz7;>DcM)34v7uG zi=(HZJmeE4TrREAGsvG_hG?+T+SW6~x!vsj2J1J#A8|Tv0{{R307*qoM6N<$f_*?G A;Q#;t diff --git a/templates/rhuk_milkyway/images/orange/mw_footer_b_r.png b/templates/rhuk_milkyway/images/orange/mw_footer_b_r.png new file mode 100644 index 0000000000000000000000000000000000000000..347f7a1a5ea0efcf894e87512b7e52c36cd12e70 GIT binary patch literal 604 zc$@)T0;BzjP)<h;3K|Lk000e1NJLTq001Ze0021%0ssI2%NG6w00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&% zvPnciR9J=W*gbB-Fcb&y|Nq$>p(n{9st!FwrCy;^CDzWJS$lxaWiCjFkrOb0sxov4 z5Q!ljY{yOzP00r=enMa&;-BC1M<O_%&(TACKHn)qNF~rhMJQ4PLJWiebdn^!z;!>+ zS(fzy*M?k0jc|k`9N`E@IKmN*aD*cq;Rs(9CIFBGVPA0Ve&O1PaED<g_`+~r8UgIe z>K#7p(jr~6vT1ccfL`GBV(L`Cg)WeBJ{b*3ic#HrX&3haFK6TJW@RuT1^(!;<puz7 zzu$MLW<TF=4~dY95JDCI=@CK*NkRy8n{oQJe1EzZQ)HK}FLHU3bw_BvoQ*$T9)%Y2 zJSc!1ZK{@Ve%Ph!#dI<nZZ|6lN?IgM+N8~A5q!P9Iae!PZx<~I_zGJ-XoDb%g$6*Y zKaRCJJvb#ydBa?tdgA2L!X~o0sH_rz3My<>+Im#ySe>)3kH=^`b!9YFrCnBLOkNE` zYiUvI@X^8;-mB(Xp_|Mx%PpIeyASxI>a=R$=5jS@-(dL7u?j#-)3b|V!}VSwPpbeL qPqFWjLHGY5Ej(x=w}`7f?EM1y3N<`6S9VVT0000<MNUMnLSTaKfb-4( diff --git a/templates/rhuk_milkyway/images/orange/mw_header_t.png b/templates/rhuk_milkyway/images/orange/mw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..dce0f0e57e506c493392951233a007e1d232d009 GIT binary patch literal 365 zc%17D@N?(olHy`uVBq!ia0vp^DnQ)G!2~4LH}_8hQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*i0973Jba4#HXncF?Ht%5t0hhpz zZJghq8eQgE#663nzvO_p)Z0bYyfT&PZ}gwP|E&^gXQa6_W&h5S85g|FmJ3LGR~%bt zlN`>MqG3IId)c(<A5Jcrzq;CR_104x?o>}t{9d+9mP6lkhIEf<Q|@7h1Ah|M7|OY& zyC0H#oLIv4j6JzG;kJQ*fxSdF%k8$tBZptS@vum?={W~dD3~M7#spSUXK;;U8!t2C z=jM&aDkSF0c5c0vBJuzA@xyDTC>>tH{F7OuD=U6s^;v76cNjcf{an^LB{Ts5S73>R diff --git a/templates/rhuk_milkyway/images/orange/mw_header_t_l.png b/templates/rhuk_milkyway/images/orange/mw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..7d5382dd76083ff0a4ff9b804c95369145dc103c GIT binary patch literal 793 zc$@(l1LpjRP)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& zZ%IT!RA_<i*1c{TK@bP<0dZhq$Wge7koa&Y;zUX+M~dYtiVLTS3rn%$KJJseL7pJ* zk(WYLD?tH5N5k%<*pJ&=&Up8*&>_tT3H!L?$L#)h?<)UpU&0=%x=#!MYFj=->kZw1 zF+E{-FGoT^Kyw_OGk5XqFU?4qBU#Lwbv*||RFW_U)kkQZ9nfXQ%fYlEl%$U2v>57T zF#XkvK@flfRipYxxR#Hd9Z%Dl#)QNW5rHEBfIyT#$N(FzhiAt@4x_{bq9*m<7MA8U z)N@oD(=U{&36b4acwTf0giJ)*QwB!F=r}&Rx*LAHJ{i6_YIpoQbNf>%PchXH7it&< z;`^J2^Y6b3Fs_#wNl;y?VFW;csQKdZ;m_ICU17=XPq8YUatc%R)6c)JF23xDf!&|n zv=FQ*RO<oXef^P(an7gH>0+^1tyb&xx>Bil_m{3bwWx*OT%zOn!~O5gD;Z;qv0AOx z>2$i?Zllo%=+ExaY?89M*Pp*R0pXlaCX?lI+3)vTt(Fgy=b8P&TFVG<dU5SsGaiqH z5Tns3ilQJ4%>CWm+w_u9w^Kwo8NRhIV2mY6((CmKVDQ-fVwXLboO8z5U@)jwtDF0^ zPd)nl;_O(mX0utnUT-#=1*9ju+?vnlaU2)Mg1sb3+U@rKJRyYVI(x#iAB3#+kP``? zO=L@Ld;ZL=VzD%}@8@gsp0_A3<dxZ@d>*zJHh+jn^S8BVJsh@2^G9BpJ<2C}Aw_v1 zugo6hlf00kyd1Vi^Y^?(<9XN~%^!JX_9&m^g%st5yfS-~Px8v_Q9j8FDas3ZW%m99 XQ)A{D+w9JA00000NkvXXu0mjfpn7zt diff --git a/templates/rhuk_milkyway/images/orange/mw_header_t_r.png b/templates/rhuk_milkyway/images/orange/mw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..58428c331ed770a753b34c024e13e8c1f94f7e7b GIT binary patch literal 906 zc$@)>19kj~P)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& z;7LS5RA_<in6YouKorKm@0}xARnl~bl&~~{4n<;SVP;`RVuk+$CT4cZ$bdR9z(R*^ z2*H3<2_ex5wVf(esbo?SIcl88;Irc<E!c^PlImV0$G)8J=kI&(?yT_b!yA}m$UI>H zyz`+Jy@&S5^nyuartJz|Q5*raCmLVG2qg$m0YI;&dc$E6ROUN-R4Vl%mC(zOUZi;i zGVN#|pH$G=3Q4IXu10!MaX+nxRNBljs}<0{AiY731WwvQT5+NPRpK@zEir|cAiXGm z{;XB8L?uCm(vGK8vAXO-03($neZ$=O18n8loGC~QRfPa3fWitzsxmQFlQb8|9|1cT zk}^p%r%(lxwZobz7fE&yEu;?s5S|5{gC7T9cJ_C-&wu|SDTEM`oS5W<gn;(pI4v&= z{`%&{w|84Y5)i@&%><I9l){T+e|P)S*0b|oHx*|Hk&)b3qLjr0@bmMBo#&5*i8!Ij zNEBvxdwY9%Mih~im6g@i)kdRXjG654@#WL+?_UXNWF#@;DoxBA3<m#%scOI94}u^F zf+&ib&1SRN9P1OF1+Smn9rU`XM2`>|S!x8xx&M*$eZSReZEkL^udkn;o*o_^Mp2aQ z<JZ=1-+!d4LxlpG9HGgEg510;xK^ueY;1&Kcyx3$_Uo;C57hcGqKs9?H2b^fdF^() z-|wHCoMhV@H}AwG0IG`kV-;Gi=u}auR9dap@$qriRll~D#mA@;^u<xFR*f;8PG_uL zCm7}MNY?B1Zns<Lu9@D?>h*fB*P9=&QmKs1ivP=-jCi|B=R;aDX-2(S*3T*Ko%j2- z<CPn(UL0?cd9FT}o9FUZZa6=eo9FW9c#F)NsXnKO>+a`u=ehOF@fMlq>eKOxgsYe3 z=DGZp8_v(==DGYi-Xil{eL7x|aP{JNi_CNXpE=$l^W6Hm+&pjgA;K^$z;pFdYLt*a g-}m!(zV3eh0bFdC6>TLaod5s;07*qoM6N<$f=FGjWdHyG diff --git a/templates/rhuk_milkyway/images/orange/mw_menu_active_bg.png b/templates/rhuk_milkyway/images/orange/mw_menu_active_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..88a8be2f84e026b87a57d7ee9460c8e800351a43 GIT binary patch literal 321 zc%17D@N?(olHy`uVBq!ia0vp^!9Xm|!VDx^L-Ra=6mzkYX9x!e$L)vy4}e_t0G|-o zJH@)U3$<?LC|}7^K9{C=JXzsDy!_4>xlNI>Yr|xg1xsg`2qqf}tXRBH17vhbkYDhB zWFYYBEH_Ysv%n*=n1O*?2!t6g-L3lr6qGM<jVKAuPb(=;EJ|hYO-wGz&rMCqOjK~o zEJ`iUFUl@fu-KY$sRF1}45ZY#C^fMpGe1uuBr`Xa!O%$G&{*HVtU2!L9-s<uPZ!4! zjfu$#3UVAm+$<7PI#{`QjvZlQW)n|pWOmlrsL-I;8!_QPfS-;=!V3j46N57<Vm=8G tt~wD1Hq4IL(D;yN<AVb$E-hRl!tg{*eX48T!cw5I44$rjF6*2UngBe#Y;OPn diff --git a/templates/rhuk_milkyway/images/orange/mw_shadow_l.png b/templates/rhuk_milkyway/images/orange/mw_shadow_l.png new file mode 100644 index 0000000000000000000000000000000000000000..253cddd5ab4bf6767c48519b4b3ce339a9023b74 GIT binary patch literal 226 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaDl9x*978-h-=1=0Y%mZwazI4< zhm#uL%eP@nY)0=R-xo8-&zfZLcFJ5o59_Co`VT)Wu#n+vKg?LbAZQ@oxqj`rLqIba NJYD@<);T3K0RR}_MyLP) diff --git a/templates/rhuk_milkyway/images/orange/mw_shadow_r.png b/templates/rhuk_milkyway/images/orange/mw_shadow_r.png new file mode 100644 index 0000000000000000000000000000000000000000..b35e4317e94f694d2657acc52fe9ed03e3c8e201 GIT binary patch literal 224 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaD$G1x978-h-=1=0WKa}f-Z)dw z!$J7hxsRR)96tBmw^hE#somG3=2FIT$lDzT*bngcK4IMIWGoT_G=ag>)z4*}Q$iB} D9a2In diff --git a/templates/rhuk_milkyway/images/red/.directory b/templates/rhuk_milkyway/images/red/.directory new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/images/red/.directory @@ -0,0 +1,3 @@ +[Dolphin] +ShowPreview=true +Timestamp=2009,1,10,21,21,53 diff --git a/templates/rhuk_milkyway/images/red/__mw_header_t_l.png b/templates/rhuk_milkyway/images/red/__mw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..c25dfa9702fdf99ef70c5b4831c7fd13bceff9d3 GIT binary patch literal 669 zc$@*90%HA%P)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&% z^GQTORA_<i)<LSmFc1ddX{icg(7m88-00Rj)V<<fPoM|z1m03y1$3cE-I(+(`Ur8- z_BCmFM3{deQCdG|GOZ03iv?6mnx++xEJ<X`)Ktqn{j1fwCST|w!1UY-&G&Sp=+%wH zo>^AWq8ZP`RP;~WFzlhGl?065T6?*elu~D;l<?VG$NEYzoy^wG#X;`8n3y6_eGX(~ zmQ_wN#@6d~9LKZStl#g~tq;Kp%ND!cZol6<FxV>@#Y|$19goM&X5%dVdT0Z3dn=_p zoleW;vL*&a*Pmjt;<npuE+&MyUaybG<Mn#I-|rv@DtQV(m1RdT#tw&rc_!zaa~?&} zU@#aChn-HRZhcu+s}&j$A;jf!c|M=x@wnIPRblcy(5@%t#c_;|IiJr`%IS34YPGB| z00>P9t>^Q(egfw_Ns`fM<bc7S_iF&qn<<3goKGf`Fbq?t|A$bQz_>r5x3}A^-EMcg zT?gsILn-?0_xruh&85&QN|GduvH$a=lohYDW;_6>auX@Z-_N@!ZeyupU0=<R*KBBB z$n)8w`TTCrZvXV>V7E{|QK+9@d9;7z`Rvhrl4lc|7xH}eXg<la3C+uQd$fPehWh#4 z9_=4_K6^Bu<k^Jgg*=}<nosh4_GmuIvkA=$c|LnTrY4Ask<`*)00000NkvXXu0mjf D%R4$r diff --git a/templates/rhuk_milkyway/images/red/index.html b/templates/rhuk_milkyway/images/red/index.html new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/images/red/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/images/red/mw_box_bl.png b/templates/rhuk_milkyway/images/red/mw_box_bl.png new file mode 100644 index 0000000000000000000000000000000000000000..e553a09d2bfa4db45ad0384aa5cfc255fc0b3aba GIT binary patch literal 352 zc%17D@N?(olHy`uVBq!ia0vp^5)2HiOIVnJEZxjINkEFZ*vT`5gM;JtL;nXL(Ey(i z*Z=?jfBN+4>C>k-Z{9q6_U!)s`!{di+}qpR(9lp{U!Rti78x1o>+9>_;9zWQymQi3 zWuQjR0*}aI1_o{+5N5n|x9$&6P`<=9q9iy!t)x7$D3!rCF}Wx|H#H?QQNb;<D78Gl zD7#p}Vr#~w3ZPOkkW%NO)Wnj^{5*w_%-mE4LqmNdLwy6&V`4f7fGTP|T^vIy=Da<* zk@HZ1h{HwpCf8*rWHi_0ZthS{Q90-;<9KNa$D!E=S^oY|(4KQ!HZSFwj4lIV(7-&c zYpc@lF89N=hj*{djDP*(sOo>$@WLw5BWoYU2s*pQ%(t&$*rj_zkL$s8Mvx9qS3j3^ HP6<r_8#Q;( diff --git a/templates/rhuk_milkyway/images/red/mw_box_br.png b/templates/rhuk_milkyway/images/red/mw_box_br.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1307bd23451eedeb1e0144df7d7ee641b90519 GIT binary patch literal 1676 zc%17D@N?(olHy`uVBq!ia0y~yU`%IVU|qt(3>102^zL>b#a!&<8N$KAar>eF10Yv7 zz$e7@|NsA=K7D%n^y$r;H_x6uyMO=w&6_v(_VzY3G}PDEr=_JuMn?Mj`Z_o`7#kb! zoOD$gsFAb4BeIx*fm;ZK886+f`vVk|FL8}13C>R|DNig)W$;Z*F3QhMP037DaLX)8 zEzd8?E>^JEnsKQDs8kH3)VU}%u_QA;Paz~TH<iKAP~XT<-@x>kn9c#9vsZe$IEGZr zd3(;#mpMS9;o$W~MqQO9LK_Z-aeAzpbncBrLeh&5CKtS36rG)4v;4s|skHZhf4@0= z*h_oq)JtBOOSc3?X|A0THp(64j&eu2qg*1mCr%&v^7_b^-v_=tG&1;GX8r#2W^sPY zntSJeXTPoNW4?Ud)ZnkNVXf4Rf6<>WU4Oji%lG4N|L}jgDVyH9I5GfOtTTAJ`njxg HN@xNA9Jl`# diff --git a/templates/rhuk_milkyway/images/red/mw_box_tl.png b/templates/rhuk_milkyway/images/red/mw_box_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..3fd8a3931f5c4a302d8bdda4ffd46c3c04d35662 GIT binary patch literal 333 zc%17D@N?(olHy`uVBq!ia0vp^5<slZ!3-poS}QgIDdu7)&kzm{j@u9Y9{{;#0X`wF z|NsC0^y$;nr%!L*ym{cjf&KgUFI%>3>C&Y=Jv|K#4fXZ)MMXtvX=$mcsgaS9zP`Q= z4i3h~#-`?3`9Kpm3p^r=85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJ zL<P6ZqSW&IqU>S?i>(=#Du7DGKuVp9QWHxu^Yau!GILWI3=Q>-4D}66kBR9V0IEpz zba4#PnE3W=G+%=PkIO~PABV(C{?8UQS>*IPJLyr)y~|4u*u7e=`k~fcZb#IsYu9ZX zd7b(llKLMUIcHFmULtiy>co0wjlb>J516)OTdrs8f9f}3;g0hL)Bd)EHLt4YF`JmE VoArN*0w~}ZJYD@<);T3K0RZ*NfI<KO diff --git a/templates/rhuk_milkyway/images/red/mw_box_tr.png b/templates/rhuk_milkyway/images/red/mw_box_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..492891b2dc4118846cd0d00bb5e9089429274141 GIT binary patch literal 380 zc%17D@N?(olHy`uVBq!ia0y~yU`z+H)j61f<P*<I5Qn+g$uoq5gX8u?{|7*>S%6Q7 z>;M1%KYjZ2^y$-^H*X#|aA5!b{mYguTe@^<Pft%nLqmOieNj<ST3T9aYHDO;q_3~9 zgM)*yv9YOnRzA=K&H|6fVg?3oArNM~bhqvgP*A?aHKHUqKdq!Zu_%?nH!-;=KQ}cc zGf}}UvnaJZzbLy{!D4I1r3#=@F_2Q{qSVBa%=|oskj&gv217%ABSU=y(_>;f2Y@Oj zc)B=-WHi3LaFVydK;XcEoI|4LF4S+fS-{%UVj~*iw><9hw$z@I-@BfEU-rTHkw%@{ zmPhF>-1f?==1bl@-*NDK$JO&4&(hoGOV*|RnE4PFLuIeZu2<=9_x|>D+&$m%CjHo( hbeH!Sia*xuWB9-rxqhy`nE}vk44$rjF6*2Ung9+?p0oe} diff --git a/templates/rhuk_milkyway/images/red/mw_footer_b.png b/templates/rhuk_milkyway/images/red/mw_footer_b.png new file mode 100644 index 0000000000000000000000000000000000000000..386c2f30c5300c2582d95d45ce3ac264c7d7b64b GIT binary patch literal 338 zc%17D@N?(olHy`uVBq!ia0vp^Q9x|T!2}{#tzHPEn2Vh}LpV4%Za?&Y0OWEOctjR6 zFmMZjFyp1Wb$@_@@+GbjCBgY=CFO}lsSLh}$wm3OsVSL>3T~N2spa`a*~JPLTQe?I z0F{b?lsXrsCYEI8=P86_=B6?jnCKgs=^L0H4Yqaws#xLa;uw<A`1aC4-ev;^mV**^ z*#CZaa{O~byK5WMZ^Ph&nWc~Sz2~=oTzmhjw3*TT=aG98m5;w-te&X+gu~LQZvw?s zM`7&sSG>|Qk3UqXFKUr7JpVZcXvIB25c{~qYV({U)`zSgaZk_YOl6yp#R_yYgQu&X J%Q~loCIDgxcjEv6 diff --git a/templates/rhuk_milkyway/images/red/mw_footer_b_l.png b/templates/rhuk_milkyway/images/red/mw_footer_b_l.png new file mode 100644 index 0000000000000000000000000000000000000000..2d347969d7c07cdaf50be7e4c02060b750cc9410 GIT binary patch literal 505 zc%17D@N?(olHy`uVBq!ia0vp^8bEBx!2~2vi~VB(Qq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcIsd%8G=M6|xWVVKuyz{7AM zfBPd2o{r!HvKCCsA4tilYfG~~kkOHpkc{xKiYN^hUs2~7wQ>`?w$h(HH{?}BR;)Tz z{eI43pN;RW`+E)hSw8-HD_a`-pLb7gG?zrM&Z-TExU|<G6aSgm8seKGg;I9O)~uQ# zanAGgzXoSDnf0${iHWJ~Id0;6^5KS)GPU=YH{BG_x|_IG_P8PE8O0nI7Z-*XyYeEZ zo%rzZxALyuj@;YlKFbKFz1LZhk)3<lM6mi_kjT-aTPilUCmI}^k~;Hw<+RlDgayVy z?`>20?9M;+VcyqUcfL8@S#Hs%_`Z&FmgjmZ-!m%6+;7U%J$LAt*@dqK!uG-PiAU4R zZq(1>y=t-6Zp+b}DMhM(O4*xuwD)Do+sCw*w*T$m=YIU?*If5sB598c{|O$dNr}*@ jJ?q|f^wM?f3bT6*<-a*kq(55@3Va4nS3j3^P6<r_J}b=2 diff --git a/templates/rhuk_milkyway/images/red/mw_footer_b_r.png b/templates/rhuk_milkyway/images/red/mw_footer_b_r.png new file mode 100644 index 0000000000000000000000000000000000000000..343115c2b3631bd2902c976e153d18925cf9f8e5 GIT binary patch literal 483 zc%17D@N?(olHy`uVBq!ia0vp^8bEBx!2~2vi~VB(Qq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcG$db&7<M6|xWVz{nFL4YlR zZAW|ihHV=^Fsa=;kzB|il%Lq#soFVheZp5?hSI}_Za+FJk`hyDUzZ@hEHjC9)%)tY zDFTn)FdpdLwC=UghvbvB_xCe>UcZ7x*vH@?GV$kp0>h8s8=ude-mE!8f<dPF_~xzy z*P_n2|5n;?O{$OU<aPDi+fv(aZ;PGQ%FeptlX{q!WO7WuYR$<_>T%b%X3ok8n=|9- z-N%*l+7mxaGpSlqthY62)oZKd9&tUL?|c4S*nBN(?eRjBV-HlnzWLy~VwG0!5&Nmv zx5?i4%X3G=(my`;eLtu4Mdns*{x_<}wuyf!@1LCb{`EV5VV3l0F2za0?FAN{D^6|F zF-<-byjSg4p4pGWGo0;Z9kFWrc73#~G;NliT08GYq1^O>qDSRFX8&Roeq-X3`(l9^ QFqj!UUHx3vIVCg!0QH*5Qvd(} diff --git a/templates/rhuk_milkyway/images/red/mw_header_t.png b/templates/rhuk_milkyway/images/red/mw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..2b6fa081ed36e93e54ae83714415f4710d3e8da8 GIT binary patch literal 26706 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 diff --git a/templates/rhuk_milkyway/images/red/mw_header_t_l.png b/templates/rhuk_milkyway/images/red/mw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..2aafc08ae475026b0ee2284734def55ccf18ba9f GIT binary patch literal 22638 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 diff --git a/templates/rhuk_milkyway/images/red/mw_header_t_r.png b/templates/rhuk_milkyway/images/red/mw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..911981390decf4f2bbf0f89571bb8d358e98a812 GIT binary patch literal 16140 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 diff --git a/templates/rhuk_milkyway/images/red/mw_menu_active_bg.png b/templates/rhuk_milkyway/images/red/mw_menu_active_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..67d484f3f57daddbb067d49ef6ebad17c8a08327 GIT binary patch literal 321 zc%17D@N?(olHy`uVBq!ia0vp^!9Xm|!VDx^L-Ra=6mzkYX9x!e$L)vy4}e_t0G|-o z#Kgq-`1q)(sL;^RfPesRZ*Mm@H%CWD8yg#Qb8{mjBNi4Gpjt1p&FmnfOM?7@|04r| zS7*6_5}XAdk;M!Q+(IDCc<FB4AE2OoiEBhjaDG}zd16s2gKuJTQGRY}N@k*hTV_#e zd45rLv4X|cj7t?jrD7nZ&PAz-C7Jno3L%-fsSJij`i92(24>B1SN8x_cze1yhG<Mo zPEe5J5aMQ$n9{+@#dGWk6EmB5QX{jo#zut(#omYs2Lk+bG!kAYh?y9iQ4#Y=h;Y@3 rIIv-M#D>O)JR2VzSaE6L5)p<cYU)#6^A?r@jb-q3^>bP0l+XkK*T!Y8 diff --git a/templates/rhuk_milkyway/images/red/mw_shadow_l.png b/templates/rhuk_milkyway/images/red/mw_shadow_l.png new file mode 100644 index 0000000000000000000000000000000000000000..1d6f4c86fd8515bcd9f930836146990a0a862282 GIT binary patch literal 222 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaDoi|G978-h-=5mY%V5C6<Tz>K zp8r{F;?pjrHU4J`yt8tZ%C_?D@9O@)5@%|3P!Ql?VN&#DUeO}=v)(rg<U$5dS3j3^ HP6<r__7g-Q diff --git a/templates/rhuk_milkyway/images/red/mw_shadow_r.png b/templates/rhuk_milkyway/images/red/mw_shadow_r.png new file mode 100644 index 0000000000000000000000000000000000000000..d0df5857c764a8c7e91ea9ef291706a3d57912d0 GIT binary patch literal 219 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaDhxec978-h-=5ki$Y8*8$bqAI z!~bb{leWY;XjycX-~R0NY5&{Zx11CNI9Qk(9TZeD864ahjXnx}Z3Sv(@O1TaS?83{ F1OO;=LS_H} diff --git a/templates/rhuk_milkyway/images/red/newred/_mw_header_t.png b/templates/rhuk_milkyway/images/red/newred/_mw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..a98ec753c6c16cdd2f2f543f1518210c7b865646 GIT binary patch literal 358 zc%17D@N?(olHy`uVBq!ia0vp^DnQ)G!2~4LH}_8hQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*i09EYqba4#HXncEXBky4Y9+yC^ zgy%}$X|ayc8C<HT*w(Z#YyOFTaPV3G>MiF#n_Z1FI(g>L>Lc576_;&3Q*Y(n$C<BI zyD6JFGx|ryrSn(!&geHxiHOcVxuH6L8E=ccX@pdd)WJi791(IoQm+&5yg5<P`_&+i zZ5sPxw+#g>Oi((A|8bi8vFtVNg~l6fButxHl?A}`(}ODnbz~YFfb>SWV`ux$JfCCK m^Z)hr!+XB#9bVG-hq0I~;ZCq+!dIX_7(8A5T-G@yGywo5BZ$}l diff --git a/templates/rhuk_milkyway/images/red/newred/_mw_header_t_l.png b/templates/rhuk_milkyway/images/red/newred/_mw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..55dce337180c6eb357d13ffcb16af48457375578 GIT binary patch literal 696 zc%17D@N?(olHy`uVBq!ia0vp^sz6-K!2~2HXvgdWQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcIjdAc};WHi3Lw%`Adg9!Tv zc1;28C3ihFm>2JOxniBvof5&`Zthp|5BlpJ{xdzE?><AXk<sbYp}WNsvtP<CEf)xy z^qp6ccgxQ&@AhV||4{PcAYbquRW^omw~PZU1ODIYTkf@ynOpm+^IR3lEl<KKR{V53 zx#Y}--suOHEV<XhI`d12PoHO<nEHcd^TdKx?xb`~+%6{E&FDI*lJV=~?qsKbO8x<1 z&Slp<V<z+|HodNX{{8Oc*M1l5R{h%d_s5m!xS9Y4h6aZnRkizmR%}i%k$Z9aTl`|? z^VNU;?W%YY<t>#j*|#iE;Y(e;-+F85qzNnHYYHZI75uz(Icd)4hXochebP4Htg+J< z;fl2N*ydw0dENWFb^BI_8y%BK?tA=WU;O&(+Ecp@{s>#ek$!i#OLM_F_U3~nR=iCM zqSmG*ewi1uzc6&}$-4deEg4&*mIj^VX#Vlrw(7dhMFE-ZkHrm+9Wux<krI<wa%Q<t zjgjT^o{ednBXz_szLH&WfB%W+VM>cHu87gwy)IjEY2|7oxqjRH#ee6_6mLsh8+LoH zddrC&=dM+J^ve9sYZNJ`q#3#Yzt53%x~XM*_p9aaURbB7e_rnE^SbJ^ug)&3;<GYr z-)wjPstgiTuT+CdgIPE8`(JIpd!gnXHu=hLE9_4ibAIIpvi>n_3$mXP?bZoQ84L`b Lu6{1-oD!M<Cd@Wx diff --git a/templates/rhuk_milkyway/images/red/newred/_mw_header_t_r.png b/templates/rhuk_milkyway/images/red/newred/_mw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..73e3ea277ebe2901cfbd436e7fdb5fbfb3f03fec GIT binary patch literal 812 zc$@(&1JnG8P)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& zf=NU{RA_<i*u9S0Ko9`n8UIKY0Zf5pS5QzOMY@zJ^8`s9>C#@CGP*p$>57#3DWfR4 zF5R7?lu4UNG|2-%g@iyd=tOJ@vnkd#i}xU`?I43@3S^9TKW28kM&Q{!8}=C5J~03= zLiI7Y`HcKg+GD^}Jr+%kiNU0U&7LwB2PPv?RyUExG6Mtv0E{IGuChw7O{B6X=MllN zx}7wZit86off&Dy&O{vBPO9Z6B*)^pki{x;bt|dXFG<OglJY}MoO3IwkY6%}e?{IN ze6A%h1jJ<fkjT{}O#Ozq^}NBa-#@Q!zJI!!dsD=uo)H<n#pq13(iuGw{(N!y<@H+) z0U`;xrwJYiZI#R8@$KW)hx3<zrc;b0Axj~}!aM-@aeedZ>8XZsW`NpyiYu?z>+Le5 zrfHQ*rCzT$n@wHU<qO`wIRE<Q9U^E_ioAPyE8$|X_$S5~3xdG&JkRsOFmxQpah%jO zx1RU>{t2(@ohfo}r{^CcT9)OyZnxWQwOW(Oq~Gs{;o76D+Gsp_cFGtqSnXKyQmH*} z5wTXQbvhm2_XmSP>eGi$9?MdyJ+eIC4Z~=++d&YFMkDcj`@xBTF~MG$8p{->X}YdE z91g{*RvV4fH_Ka3F{;(7uIuCRIBl@IrMw;@+O|EL&6Gyv`h8~G_Iy6ypJ$q8>aO^| zo*Ybih4o`2&;FTV?7n|rlUHm|zmQjEkNWelJzBqFgX($M9<3jFW%hFQXNEZTdLFw+ z`x$v<_NYI}Qwi#q!}e(XiVdpgVSBWG<dxZ@{v=N&s9(q{vq%4*kymDq_RquijQmsh qzOUd>zZ4n;te<6ByI*|l_52I&>0(x0jkEj!0000<MNUMnLSTaL<$kaL diff --git a/templates/rhuk_milkyway/images/red/newred/index.html b/templates/rhuk_milkyway/images/red/newred/index.html new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/images/red/newred/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/images/red/newred/mw_box_bl.png b/templates/rhuk_milkyway/images/red/newred/mw_box_bl.png new file mode 100644 index 0000000000000000000000000000000000000000..bcab1ec2412e5aabde59c3c19a649f4035fd77b8 GIT binary patch literal 352 zc%17D@N?(olHy`uVBq!ia0vp^5)2HiOIVnJEZxjINkEFZ*vT`5gM;JtL;nXL(Ey(i z*Z=?j|NQXb^TS8)E?;?Z<mjU<+wLq|ajK%`NM`PljGUd`0h_EH*6JE9ms45DFB&R6 zZx2u-XMsm#F#`j)5C}6~x?A@LC@5dz8c`CQpH@<ySd_}(o0wdbpPQPJnW*5FS(I9y zUzA;}V6iphQUy?{7)YseQEFmIW`3SRNM>#-gQ20mk)ghU=`k^#13(qEo-U3d6?5L6 z+{k$-K*Zr9dz0(36Ed1>ayNG<r>Gosm2teZgyYccgDii4C}_{QEt{9}Oh%W1Flb<& z*0ojXcbEI&+QYloX2!q%aa8rcYj|Om=#jOLVg#LCW9Hk}FznL3p~v;$IwMGjr>mdK II;Vst0Q_)xp8x;= diff --git a/templates/rhuk_milkyway/images/red/newred/mw_box_br.png b/templates/rhuk_milkyway/images/red/newred/mw_box_br.png new file mode 100644 index 0000000000000000000000000000000000000000..a8381a5639f4b5358ba77af4aaa67d15f1ddd46d GIT binary patch literal 1676 zc%17D@N?(olHy`uVBq!ia0y~yU`%IVU|qt(3>102^zL>b#a!&<8N$KAar>eF10Yv7 zz$e7@|Ns9#KYaN7@X@==S6&=B`e@6xJIhv_s;D`VnR_H7XQy|-CToYax<<?8R2K4! zhDy)d1JuY_;1OBOz`!j8!i<;h*8Kqr%9prClmzFem6RtIr84*?CKu)Brlw>jD!649 zrIzOxWfv=0Y|Xe-0aPjmQtDiknpl#VpQjL#nVZUBXsB;wsBd6;Oibqh(Ag_JT^vIy z=Da;;=*t`+(Qxp3Bcra$5}^$T!#F)wO*;2RA|dI;2a^k4FN)62uUY=!npE2RzrWuc zKJ2Bvbm}Fq%%xj`qBPe|2^-~(a!0wN+)*wO+!Lpde0hE3%kKkU9vT_^Ewg_Ad9ygb zWzD_wzq8*~_Ay_+Zffw?*sxY=#=q##m##nF^X2>Tw}1G*+>}jkT^tzzEY=x3UHx3v IIVCg!04&k}<p2Nx diff --git a/templates/rhuk_milkyway/images/red/newred/mw_box_tl.png b/templates/rhuk_milkyway/images/red/newred/mw_box_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..addef0394ffa52810186a05a48b25b09cc4e1ed8 GIT binary patch literal 333 zc%17D@N?(olHy`uVBq!ia0vp^5<slZ!3-poS}QgIDdu7)&kzm{j@u9Y9{{;#0X`wF z|NsC0`QgLohmYP~y8LMC_D5T`U7J4h+O!#`%BzoL<{rt&*%ukR(>q{?m;YuP$F;gf z%jHxS@{2C~x>*fq0%w6oWHAE+w-5+3Ub<WN2Pi0C;u=vBoS#-wo>-L1;G39Sl%JcL zl9{OBmRXcqo?nz*tYEP<<5C4ssTfG9b5UwyNoIbYLP%zADubb+zLBB6f$1?ZodZA> ziJmTwAsQ3ko{i>fP~dU7sQKfNc*+0Sq9%)+erG2=s=0T0$pO1p%T+(ry36f|dUfr( zZ6mK!ze7_0gCpk*iqcD@&PbhDudMO6{rUmZmTb%QZ2eFDCM?`>-eB6_mayhk^*m-1 W6LquxFHrym9D}E;pUXO@geCxt5Q7l_ diff --git a/templates/rhuk_milkyway/images/red/newred/mw_box_tr.png b/templates/rhuk_milkyway/images/red/newred/mw_box_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..21ab55818a5436e7283ad0dd5a1d89831e258275 GIT binary patch literal 380 zc%17D@N?(olHy`uVBq!ia0y~yU`z+H)j61f<P*<I5Qn+g$uoq5gX8u?{|7*>S%6Q7 z>;M1%e}4Gz`Qf9tmo7iry8Y3XZP%vHyf$sdsq*S0nYl+Ya`r{W?(`1W;pM;C#&NB# z(Q-MJh5Vumziw6on!s7$5n0T@z%2yAjF;}#{Q(Nfm$*ih1m~xflqVLYGWaGY7v<-s zrer26xMdclmgg5`7b{q7&A3znR4N8i>RgnXSdy8arx22vo62BlsBdJbZ(w>%Oy>Yl z#RN|m$B>N1w--+GHW&yTIFNHl^xTE|%{B{Ids=KnBm9=fUEY@3Q}TP))9=eZ7(dde zbKCML-G$p;dDVQ$o98<Yp6|GNzT;VX+kDBov>!7c;$o=mRoV3_-R<7ro{qccJKm%p jdz0?+9z*fRntco(7$euu)i*N$x{blp)z4*}Q$iB}D3zgu diff --git a/templates/rhuk_milkyway/images/red/newred/mw_footer_b.png b/templates/rhuk_milkyway/images/red/newred/mw_footer_b.png new file mode 100644 index 0000000000000000000000000000000000000000..386c2f30c5300c2582d95d45ce3ac264c7d7b64b GIT binary patch literal 338 zc%17D@N?(olHy`uVBq!ia0vp^Q9x|T!2}{#tzHPEn2Vh}LpV4%Za?&Y0OWEOctjR6 zFmMZjFyp1Wb$@_@@+GbjCBgY=CFO}lsSLh}$wm3OsVSL>3T~N2spa`a*~JPLTQe?I z0F{b?lsXrsCYEI8=P86_=B6?jnCKgs=^L0H4Yqaws#xLa;uw<A`1aC4-ev;^mV**^ z*#CZaa{O~byK5WMZ^Ph&nWc~Sz2~=oTzmhjw3*TT=aG98m5;w-te&X+gu~LQZvw?s zM`7&sSG>|Qk3UqXFKUr7JpVZcXvIB25c{~qYV({U)`zSgaZk_YOl6yp#R_yYgQu&X J%Q~loCIDgxcjEv6 diff --git a/templates/rhuk_milkyway/images/red/newred/mw_footer_b_l.png b/templates/rhuk_milkyway/images/red/newred/mw_footer_b_l.png new file mode 100644 index 0000000000000000000000000000000000000000..2d347969d7c07cdaf50be7e4c02060b750cc9410 GIT binary patch literal 505 zc%17D@N?(olHy`uVBq!ia0vp^8bEBx!2~2vi~VB(Qq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcIsd%8G=M6|xWVVKuyz{7AM zfBPd2o{r!HvKCCsA4tilYfG~~kkOHpkc{xKiYN^hUs2~7wQ>`?w$h(HH{?}BR;)Tz z{eI43pN;RW`+E)hSw8-HD_a`-pLb7gG?zrM&Z-TExU|<G6aSgm8seKGg;I9O)~uQ# zanAGgzXoSDnf0${iHWJ~Id0;6^5KS)GPU=YH{BG_x|_IG_P8PE8O0nI7Z-*XyYeEZ zo%rzZxALyuj@;YlKFbKFz1LZhk)3<lM6mi_kjT-aTPilUCmI}^k~;Hw<+RlDgayVy z?`>20?9M;+VcyqUcfL8@S#Hs%_`Z&FmgjmZ-!m%6+;7U%J$LAt*@dqK!uG-PiAU4R zZq(1>y=t-6Zp+b}DMhM(O4*xuwD)Do+sCw*w*T$m=YIU?*If5sB598c{|O$dNr}*@ jJ?q|f^wM?f3bT6*<-a*kq(55@3Va4nS3j3^P6<r_J}b=2 diff --git a/templates/rhuk_milkyway/images/red/newred/mw_footer_b_r.png b/templates/rhuk_milkyway/images/red/newred/mw_footer_b_r.png new file mode 100644 index 0000000000000000000000000000000000000000..343115c2b3631bd2902c976e153d18925cf9f8e5 GIT binary patch literal 483 zc%17D@N?(olHy`uVBq!ia0vp^8bEBx!2~2vi~VB(Qq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcG$db&7<M6|xWVz{nFL4YlR zZAW|ihHV=^Fsa=;kzB|il%Lq#soFVheZp5?hSI}_Za+FJk`hyDUzZ@hEHjC9)%)tY zDFTn)FdpdLwC=UghvbvB_xCe>UcZ7x*vH@?GV$kp0>h8s8=ude-mE!8f<dPF_~xzy z*P_n2|5n;?O{$OU<aPDi+fv(aZ;PGQ%FeptlX{q!WO7WuYR$<_>T%b%X3ok8n=|9- z-N%*l+7mxaGpSlqthY62)oZKd9&tUL?|c4S*nBN(?eRjBV-HlnzWLy~VwG0!5&Nmv zx5?i4%X3G=(my`;eLtu4Mdns*{x_<}wuyf!@1LCb{`EV5VV3l0F2za0?FAN{D^6|F zF-<-byjSg4p4pGWGo0;Z9kFWrc73#~G;NliT08GYq1^O>qDSRFX8&Roeq-X3`(l9^ QFqj!UUHx3vIVCg!0QH*5Qvd(} diff --git a/templates/rhuk_milkyway/images/red/newred/mw_header_t.png b/templates/rhuk_milkyway/images/red/newred/mw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..d82c7951d26254ef9150d98b0b459152a5cda9a2 GIT binary patch literal 113735 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 O0000<MNUMnLSTYXR`B)! diff --git a/templates/rhuk_milkyway/images/red/newred/mw_header_t_l.png b/templates/rhuk_milkyway/images/red/newred/mw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..c017f6d8846f11654aa2ac6ac94d0d534be54c53 GIT binary patch literal 9404 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 C<U$4j diff --git a/templates/rhuk_milkyway/images/red/newred/mw_header_t_r.png b/templates/rhuk_milkyway/images/red/newred/mw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..425013db9d8da263a93562c7082986a3e6eb940c GIT binary patch literal 3188 zc$}q{_dDAQ8^*s%#ok*fwPWvNlUOl}kXS8RLRHOEtCZUGP<u5>TYJ=~Xllh)d(@0Q zsyN})iqjac^EbTL^?dI8y6)ee`}yTbx^H1bPs2k4002GASl{}_MQ+HZqP)>nxZ-mF zpt1CVLhs-A^bPV2^z`);fI*=GegVE7UQgWtAY>73gM!=aa%d4(P9Ua<QCX(G*6dUQ z){vAawscXjAT^UoqF~7ayHyvnfdK{YU~wXOYHHMLb}K2mWSV)<mf-u;m=B4`L!|Za z58ktF#2=$q&2!p2HOJ_taS)D*F2`8WN;!(I62i~C7BkS>zrH1-8%-nZ2QX1JJr)eS z6e0u8BQ-T8@8Lil09nX1Efs(>FT}~+Nw{X*gXBArMa7cgg3|vmrHWz$bi-01Wq__B zSrj@?)CMS~09=M2xoraXr2!YQmp`U~DD-)LI2quWCCE-zoDK-Ex+m%bo*F>SxLvXV zfRqE+JWPAlfO%;^4u<eB2I^Y?+!zyWBS1w5$XO-ENdOe#fXkqePzVs453m^?AvAwU z)-mmXZ<@+))Wiy_8ALl$N&ABk2pN9yF&L*Ln~Li#*8*Lc?$CU0g=i(lwc`;0C{Aa; z+4lG{WQ?J1Y)mB;!|+gguaolno}1g|)%JL`pDqBb2SrX^Ny#?xL}^e)`CPphIiT=- zKwJDLF~y^iQMVZ=-d#i-`~BCALCG8J!ov2}*1SnC#L;yK5pjj;euzU{KK(aR^MZJ~ z*0CWRt>7GOL~*{>J#u1JdS^U?I@WFJN1D+^3+?p<-}Jp+m>U)eX4|x4@lVw+czvu; zdM^o*A<-u?b^Ul_Rf<Hey{Zh<KhY)&PnWK6enfs|D#nBi!fg-%;HcHN>$^A=d6Z|& z`grj5q0XgIu?P_50n6|QfCu`*GVq}$odGHU&@YY#*X!|~ba6@HDDQOLUh1N~a8Zec z2={hFm>@KdqwWN_NYuQ7h{uoC^MPGtzw7cT;jBF4GyNE3x^2HOX!$YzcBLxn5^sy9 zrqCOtVs#Z<OeAwlMhc};apuRJ3w9Y(u%rkJd`o1rx@VfMY%Fh`3>UC9<~z~~xTTih zWcW2*V-QeybrIiYB%c-CXr=X?t{IB0Q00j=d`~;^I7q%Ajib15BH%NR)@zlLor!8s z#>F&k=ztvVCl^Su_o<vre-EVL4=L)*N5c*GYUrx_dFt(I$Xk<6AB{HzQ?NuE;HXt7 zf*}H~{CdVnGo;15afQGgVI}58YE^3TSgUTadzlrcpGChi|J%#urXZhyG?o&YWl3X| zWeQJ(_NofABtaF#uy1a`8a~3OSf&i8o>>d+N>vsr8S@Bbep`I(-3U_4k`j;{jN3wQ z^=v6_@ootoIntorbp1b`+iZwi4?QvA-e%fX+NN~RQ_!>hP++}WQ37XHPIG|NmSC(u zStV4kD*aiYHX6eLGcB!spFPdv$>~Y-`t&pCEAw(TzeVl@VrqET=x6Rv@{?dX`gr!3 zfkc!zcOe&u3&kDG^(oJ+jC(qTdjKw{D!-q%lh2s%Yl{S9z%SU-hiI}*vPH9b!Lsnm zs<Nt;Dq7oP+hKTG<pZ0DIzwAUo6Sn<?>W`BRp|TsHoP{dN{xzyDpZ9pT<2q?{bdrR zeUDj>CG?|Jal^ySwtfNHN8C*zQi9&})$xBuEBA^vj4r%*4sOl6<ZDgQs;VqegDRRR zBATp^vpjS_n|c1{Z-XqTcf`wck0X;;*bXH&BzVh|%&_wAPTo~HxjD#c<7%sFqy2W3 zIzl<Rtlgm1o)pcXH((;>BxZz48@r9(v01QLE~hEyFxOH)t&^$pF6Aw0)er7`R(_CI z)bSvy$jrBVCA59#_nipYOZcVF@A6Y4IwWNioiHVyZj4K_PubsBlTUU4|H}&M+@lLE zb<K9oU5`!2PHKLbG5pJr@wHdK)28sIPrpz92T@8<K~YolJ@bPCYjbRwM45(}hS|XA z$msjg*?i?fE%`Zxox+{Mxx&>J7l#lBDNF_Ci#x1w%c0Ev0Mqs?&Oyz-6lv?=++<jb zt`(VWt!*u5F2`DAT2vR!qI&9oVZLE1Te$1D=PB`Z7#~c8E6R-%)zVkjbCB7d8SypZ zuS+cueZm4mHJ<}tWZ>rjHg!Aom4dOi2RadbCpo*aDC9WP_`KpKhILq?*9&b^IBkUD zL}3GCjuTUoOkWMl<Z8<l^7bzewr`mPo%%bkhfSTL3!4hN2^IKH2Py|%2MJ5>MwH%3 z6xk~VPV@{y*Q~ZDb!gvZ%XzQXL|Q^EqfyN}Lb8u!(-F0E^)02rRYccAPVF=8fOnhP zo0_UC3M=*xM^tewgDu0BJ-$T`<5r<Bg{~i8hh0ws<xwJJDDtFey=cc<r1P*Bf}N>4 z>Uj6F#sz}j>td`PyI$I>+E?3MwSu05f4`{}B<|#mrH^?r#NChlIXeMz{o$I@6G<l) zmk@`D*GctDMDk3^=PCzJE<poV^?&Q<=&ux_<So@cNt-BxwX0;FXfCRLRr;#aFXLf9 zGJ`}TVNXr(sL6oqRGvNUSiK+|Cv2cMXg9+-^JE8|{X$E|x=-TDIVxpXq||eC%@QsC z$ofZ*30%SPTI7f|SR|Duw41LRbx(FuWioLd>ICMuI5GyChh_Yo-liNX+^1M7wT+Dx zt9;XDMsK!Us9wZT@La%0K})?|J|-jmjX$JH&^!}^+C%;Dcs^X?9@lu)_bjDFmOmTx z&AaJM&24*W8VscDC)`1N4h(8Uxg$I}N0Wxsa;l3YM+qZML-;qUZx7#H6Ii-g)-y1r z@umoAKID(~nkQ<Fn*O19noaiGlJRzwHJV?NF<_q=%W485w=S|>G|b#P`a##wtFC4; z?|oWZn(erV{iQjAvn5j2ezn>4cRZR`n>{JHjt$S5%l>j+d?{p`H^FzPGk+=Tb7gfe z_VKvKl*jIm73m^JhMcP0AGr+A=oc10)34fnCY+ub;AL}1#qq5%7%28br{<S7_wsLJ zqZ&H!kMI-tZ@9|A)N-@y-1)P~1K#kqGo`<0@Q!W7OYLtRcv~`C^BIpBcM^=$MAWHE zs@grzA^AAhTKM=A2FRz#FF`^Km^tkC8NMkkxOLjB<h~KZz}=23^kJ|xy$ZeUUvK+2 zg#7eFw|0rtt3-Z!^~L9}!)w+-(|4cqq4;E<Knjiu3=3@vNRDofUoA(pCujFo!Y+*P zcNyO*Y1)UH9K*kPE$+UW&O{xJzeZ=HBO+z~U2?&{$As@Z8e4tB=zI8;DQJDl;5ubT zqfKMX>F7()Q6qkv74Zd8@Jaol&tA};=2hmj<v{D()`B{$lQ;Gtti3thgSg9Eq&l{I z(jNMY<9c?cNKI?G{W#2**hf5F<yejk5W5^3Ze0i#JE(25Y<qa3OVC?@E+@?BI9@Hy zA1=Lof(tG_o?J2_QpUxMU!|X>F+y*r<);nD)5q@@{h_U<wxJVnxqDF#9e+G7TEuzv z{%W|6lS4N0d}e=cY%*`MB=;ycv(x8A>E#}7pZgQOzq_Bm<6DTL{DTua5}_-2DVXo@ z!z!cY)(e4`;@6)4Hk{f_l#?>KGc&I#$n%ab9w|!WZ$3<FKV$nq0H9_44>F+OE!Ry5 z3WAv%fELJT$#2OAfU`LPfb0uQUk@I#NLXr5X47Nq`*mIE<uSmB<eG41wr9Wnmsv#O zZPuPs`WFm=?|SBOgD5$97Bi*UUfmdV%I7gu`*I^^AzgtkTt6#IB9|O(gWzw3uk|P< z!e5dvEzf<dZ6>`WMR0XmMuppgl>uY$OoyGndA6bRqSC}!<XjdZH>2(nBUDHb@iUlO zJd<8yu3y5Z`#lIdjQI#%n?HlXP`FIASo<J)CS2#By>qWUJoj&SWuS|yNCaRPX!~S; zdCr0Kl=Nqx(7KOW)<+_{<Z0!dp|jj%0?Do+LI?altnUo#R(h1d3BRv*oBjWjaKnXX z>{i18;xG{V-1pODf=1<h$3W?Q3<5W;X4Rt-6MpEurq+3|naAl)!eRPnsgM9IUJ{0g zZYF4CSVW@&?-orv>&Xf)=M^nHFy@IG#tHgSXnv`OsX7IhG+5vDS>?Z$t3@x=?JvX@ z%zh{83|tPAVvcg^3F&LUY(VZLzJIcXVHr0gp+m+zR>`8VO3Ju7D*!XF(658Iy!s!W Cb@A2! diff --git a/templates/rhuk_milkyway/images/red/newred/mw_menu_active_bg.png b/templates/rhuk_milkyway/images/red/newred/mw_menu_active_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..479ff16c493ddd2768ea798acf3860486059f1c9 GIT binary patch literal 321 zc%17D@N?(olHy`uVBq!ia0vp^!9Xm|!VDx^L-Ra=6mzkYX9x!e$L)vy4}e_t0G|-o zd-~e<wAJsZDqdGnxS%Y5Qc3QRqU>%3nJseC>*b_Y$Vg@i38V<}Cp4N?gN!Z-@(cct z3<O@C<pxS{7I;J!Gca%qfiUBxyLEqng7PJ<5hcO-X(i=}MX3zFiOEIzxv43ci3)C+ zMXBZaMcKs)7F#neRREQWfs{HIr6!hS=I1GdWag$a7#ist8tWUFHOF1u161Md>Ealo zF)=woL5@R+n?+(u2P+rPu_H{(Y~o3c%+4Ac6&e(KBPJXO@YB&qc%dL>VsJ)9%qJnj tRVU)WhS?Dt8Xxj(d~jgJrG-mG7@nx9Pj$^(SPC?j!PC{xWt~$(69C4UXwCot diff --git a/templates/rhuk_milkyway/images/red/newred/mw_shadow_l.png b/templates/rhuk_milkyway/images/red/newred/mw_shadow_l.png new file mode 100644 index 0000000000000000000000000000000000000000..1d6f4c86fd8515bcd9f930836146990a0a862282 GIT binary patch literal 222 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaDoi|G978-h-=5mY%V5C6<Tz>K zp8r{F;?pjrHU4J`yt8tZ%C_?D@9O@)5@%|3P!Ql?VN&#DUeO}=v)(rg<U$5dS3j3^ HP6<r__7g-Q diff --git a/templates/rhuk_milkyway/images/red/newred/mw_shadow_r.png b/templates/rhuk_milkyway/images/red/newred/mw_shadow_r.png new file mode 100644 index 0000000000000000000000000000000000000000..d0df5857c764a8c7e91ea9ef291706a3d57912d0 GIT binary patch literal 219 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaDhxec978-h-=5ki$Y8*8$bqAI z!~bb{leWY;XjycX-~R0NY5&{Zx11CNI9Qk(9TZeD864ahjXnx}Z3Sv(@O1TaS?83{ F1OO;=LS_H} diff --git a/templates/rhuk_milkyway/images/red/old/__mw_header_t.png b/templates/rhuk_milkyway/images/red/old/__mw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..b00fce447b2ae90a5555291060b026065eedf6a3 GIT binary patch literal 350 zc%17D@N?(olHy`uVBq!ia0vp^DnQ)G!2~4LH}_8hQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*i099=9ba4#HXncF?G%t%H56i_= zSC=RAnUuH}JusI1(Gs;Sbnb!6k7nJTcI}q`)~fec6Q9e-PWwLn>CtcZtaRQRYi(Tg z=iEOdP1CUB5=Lv*Y)y%{H#?L0;bOMp=0N2cmQ0MFn*)<=dS=^7o|oW%oR&~$ki}x` zt^lJy8svRTu>mP){CRMN;2D|51~AR<)|>E*g9Su`m6V>-Jp5ySoz0qW_flt=OyEDV XqwwOI!tjki_cM69`njxgN@xNA)8vKn diff --git a/templates/rhuk_milkyway/images/red/old/__mw_header_t_r.png b/templates/rhuk_milkyway/images/red/old/__mw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..b8ebf498ad2fb33289442be0216652f1297dbae6 GIT binary patch literal 752 zc$@+70uTL(P)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& zMoC0LRA_<i*iWj0Ko|h<nNdNanoXdqTC@mSc7T>0pi^{>pbK<@XdNA(4$-!4t%4}f zl2Ax}3*VdOsrhn79v0uX2${z3*L?HG5chgLBpn#z7kjE<7|Kg5$)B(q1c3mM4QHsi z$CsUvsn0s(9$%D{si~=-wTpY~BAJ@Cq*g-2V_EP|L;(Lgo{rD=eKCpmGD;eQ#p}r! zLI@8NLNZ7xFF8;`NDu@Wq{#kb3n6yRuo(I4c7gN7w(ae9yI!xC%jNZYWf=b%EApcZ zGUu6X+tcZEHk<JV`3c4s=0&ksEGCnQ<2XE)^d4JB(nAQXR;$ryL=urQ#LZ^&N=8CR zrBbQa>y1W3QIuqd@pwF+&m%xllvENSgzxwJpI8`%p66MXWm%T*`-Wi{h7s#y+jhU- zcN`~ml#dPb%HS}@x~`k1+39qe&F1-h-tBg=gNaf)91g?Zfw)KGcb#7Gc(_)pwcBmi zb@%&y?AyU$z)MLiw-<$~s;ySb^StBn$hUX9U3Se&{51)MLen(UG!KUZUsXzJl%21n zR6Y5qR;!AloK7dcF_t}9SaA<yOewuwE~(!>+t%V9LWoj&yWMi#BIRkCmiKWj<q3q; z|6PH5|9gDk6&tW#z$>!{>+`)mn7?8J>iOOt%pZ7V_GI6e=Z#OV=cjvco`F|p57sAm zc>>nUdwVc{#Rk;#y*-#e@XGAL`UEdez<L3%%pSZy1Fy^;oS*OQsq!gY*UjO<dMPvt im_J?DU+?_s_51?#FS12lh4R<{0000<MNUMnLSTZ(HC+h+ diff --git a/templates/rhuk_milkyway/images/red/old/_mw_header_t.png b/templates/rhuk_milkyway/images/red/old/_mw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..a98ec753c6c16cdd2f2f543f1518210c7b865646 GIT binary patch literal 358 zc%17D@N?(olHy`uVBq!ia0vp^DnQ)G!2~4LH}_8hQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*i09EYqba4#HXncEXBky4Y9+yC^ zgy%}$X|ayc8C<HT*w(Z#YyOFTaPV3G>MiF#n_Z1FI(g>L>Lc576_;&3Q*Y(n$C<BI zyD6JFGx|ryrSn(!&geHxiHOcVxuH6L8E=ccX@pdd)WJi791(IoQm+&5yg5<P`_&+i zZ5sPxw+#g>Oi((A|8bi8vFtVNg~l6fButxHl?A}`(}ODnbz~YFfb>SWV`ux$JfCCK m^Z)hr!+XB#9bVG-hq0I~;ZCq+!dIX_7(8A5T-G@yGywo5BZ$}l diff --git a/templates/rhuk_milkyway/images/red/old/_mw_header_t_l.png b/templates/rhuk_milkyway/images/red/old/_mw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..55dce337180c6eb357d13ffcb16af48457375578 GIT binary patch literal 696 zc%17D@N?(olHy`uVBq!ia0vp^sz6-K!2~2HXvgdWQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcIjdAc};WHi3Lw%`Adg9!Tv zc1;28C3ihFm>2JOxniBvof5&`Zthp|5BlpJ{xdzE?><AXk<sbYp}WNsvtP<CEf)xy z^qp6ccgxQ&@AhV||4{PcAYbquRW^omw~PZU1ODIYTkf@ynOpm+^IR3lEl<KKR{V53 zx#Y}--suOHEV<XhI`d12PoHO<nEHcd^TdKx?xb`~+%6{E&FDI*lJV=~?qsKbO8x<1 z&Slp<V<z+|HodNX{{8Oc*M1l5R{h%d_s5m!xS9Y4h6aZnRkizmR%}i%k$Z9aTl`|? z^VNU;?W%YY<t>#j*|#iE;Y(e;-+F85qzNnHYYHZI75uz(Icd)4hXochebP4Htg+J< z;fl2N*ydw0dENWFb^BI_8y%BK?tA=WU;O&(+Ecp@{s>#ek$!i#OLM_F_U3~nR=iCM zqSmG*ewi1uzc6&}$-4deEg4&*mIj^VX#Vlrw(7dhMFE-ZkHrm+9Wux<krI<wa%Q<t zjgjT^o{ednBXz_szLH&WfB%W+VM>cHu87gwy)IjEY2|7oxqjRH#ee6_6mLsh8+LoH zddrC&=dM+J^ve9sYZNJ`q#3#Yzt53%x~XM*_p9aaURbB7e_rnE^SbJ^ug)&3;<GYr z-)wjPstgiTuT+CdgIPE8`(JIpd!gnXHu=hLE9_4ibAIIpvi>n_3$mXP?bZoQ84L`b Lu6{1-oD!M<Cd@Wx diff --git a/templates/rhuk_milkyway/images/red/old/_mw_header_t_r.png b/templates/rhuk_milkyway/images/red/old/_mw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..73e3ea277ebe2901cfbd436e7fdb5fbfb3f03fec GIT binary patch literal 812 zc$@(&1JnG8P)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& zf=NU{RA_<i*u9S0Ko9`n8UIKY0Zf5pS5QzOMY@zJ^8`s9>C#@CGP*p$>57#3DWfR4 zF5R7?lu4UNG|2-%g@iyd=tOJ@vnkd#i}xU`?I43@3S^9TKW28kM&Q{!8}=C5J~03= zLiI7Y`HcKg+GD^}Jr+%kiNU0U&7LwB2PPv?RyUExG6Mtv0E{IGuChw7O{B6X=MllN zx}7wZit86off&Dy&O{vBPO9Z6B*)^pki{x;bt|dXFG<OglJY}MoO3IwkY6%}e?{IN ze6A%h1jJ<fkjT{}O#Ozq^}NBa-#@Q!zJI!!dsD=uo)H<n#pq13(iuGw{(N!y<@H+) z0U`;xrwJYiZI#R8@$KW)hx3<zrc;b0Axj~}!aM-@aeedZ>8XZsW`NpyiYu?z>+Le5 zrfHQ*rCzT$n@wHU<qO`wIRE<Q9U^E_ioAPyE8$|X_$S5~3xdG&JkRsOFmxQpah%jO zx1RU>{t2(@ohfo}r{^CcT9)OyZnxWQwOW(Oq~Gs{;o76D+Gsp_cFGtqSnXKyQmH*} z5wTXQbvhm2_XmSP>eGi$9?MdyJ+eIC4Z~=++d&YFMkDcj`@xBTF~MG$8p{->X}YdE z91g{*RvV4fH_Ka3F{;(7uIuCRIBl@IrMw;@+O|EL&6Gyv`h8~G_Iy6ypJ$q8>aO^| zo*Ybih4o`2&;FTV?7n|rlUHm|zmQjEkNWelJzBqFgX($M9<3jFW%hFQXNEZTdLFw+ z`x$v<_NYI}Qwi#q!}e(XiVdpgVSBWG<dxZ@{v=N&s9(q{vq%4*kymDq_RquijQmsh qzOUd>zZ4n;te<6ByI*|l_52I&>0(x0jkEj!0000<MNUMnLSTaL<$kaL diff --git a/templates/rhuk_milkyway/images/red/old/originalmw_header_t.png b/templates/rhuk_milkyway/images/red/old/originalmw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..cf01c0275c1c0d78e8cc1644d4a7fd6acd7ba914 GIT binary patch literal 26664 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ÍR{~z#t^#n%Jhj* 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 D1-d@V diff --git a/templates/rhuk_milkyway/images/red/old/originalmw_header_t_l.png b/templates/rhuk_milkyway/images/red/old/originalmw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..30b50948cd560a46b4c8c9dace10550356701f93 GIT binary patch literal 25732 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 Hu0mjfbH9=0 diff --git a/templates/rhuk_milkyway/images/red/old/originalmw_header_t_r.png b/templates/rhuk_milkyway/images/red/old/originalmw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..5aa011c046a26bf8cd47c54bcc23c8d7bb7de1c7 GIT binary patch literal 17896 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 XCcv}L)%3tQ00000NkvXXu0mjfihB8l diff --git a/templates/rhuk_milkyway/images/spacer.png b/templates/rhuk_milkyway/images/spacer.png new file mode 100755 index 0000000000000000000000000000000000000000..b91e00daa0561278ab0d08e8c262ee80c91e698a GIT binary patch literal 218 zc%17D@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga%*9TgAsieWw;%dH0CL#^d_r9R z|NjqUh90_H2c(!vg8YIR7|JG}wE*%s3p^r=85p>QK$!8;-MT+OL9r6oh!W?b)Wnj^ z{5*w_%-mE40}Fi+GI{^n^&`kKkc!~^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S? u-v|XG0|S%xvNh*{8n`@N978JRBqxAez`*FSen}ya#o+1c=d#Wzp$P!lB|L8c diff --git a/templates/rhuk_milkyway/images/white/index.html b/templates/rhuk_milkyway/images/white/index.html new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/images/white/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/images/white/mw_box_bl.png b/templates/rhuk_milkyway/images/white/mw_box_bl.png new file mode 100644 index 0000000000000000000000000000000000000000..861a0f8d518ca2978d2d322d0c85dfbf5df5204c GIT binary patch literal 349 zc%17D@N?(olHy`uVBq!ia0vp^5)2HiOIVnJEZxjINkEFZ*vT`5gM;JtL;nXru2z6g zi0l9V|Ns8|`{&P}-@kwV{Q2|y_wV1nef#w3(}xcq-oAbN`t|EquU@@;`SSVm=S;JN z{sVP!7I;J!Gca%qfiUBxyLEqng7PJ<5hcO-X(i=}MX3zFiOEIzxv43ci3)C+MXBZa zMcKs)7F#neRREQWfs{HIr6!hS=I1GdWag$a7#ivu8R{FD9uw0!08~-y>EaktG3V{c zjhu%9L>w-%H%-vp<i=Hfo97XS<k3TpGL9a?9EWZnW%>I<L3_?^*}RlzGP(?eK?C!& zuB}SHyW9`g9^Sn+Gye6DqpJU1!waiKkF0$ZBk1fJGvB_3;jVDBny}o#yC5B&u6{1- HoD!M<6a<3Y diff --git a/templates/rhuk_milkyway/images/white/mw_box_br.png b/templates/rhuk_milkyway/images/white/mw_box_br.png new file mode 100644 index 0000000000000000000000000000000000000000..b53e693be47f4e76da29ebd5d56a3ec40315cbfd GIT binary patch literal 1670 zc%17D@N?(olHy`uVBq!ia0y~yU`%IVU|qt(3>102^zL>b#a!&<8N$KAar>eF10Yu` zz$e7@|NsAg|Ni~+=g;rozkmMx`ThI%Z{NOs`t<3;hYxSxzJ2}r^{ZE}UcP+!{P}aH zSwjDTx;P6wB8wRqxP?HN@zUM8KR`kG64!{5;QX|b^2DN42H(WwqWs*{l*~j0x6Go{ z^8BLgVg-w>8J8-6O2t4*or_WvOEUBG6hbm{QyB~m^^FYm4NQ-T=^OyMd6}n+V@SoE zx92uyG6hI99K6nA<gM_4LsEIEa>^8)r1ug{0vjrJXSi+n`J{a}XWrVxZ}+B$%g<Ab zow&{;e2MlY(U)B%uDg^*xue`s?kIPZOPK3^Pi@(K^=0<z%lw%y%lCi&SNrvm<^BK9 z|8D+f)86><w$zM$em?T-%l=>6^X099e(k@iIqyr41o_&OttkVR=?tE(elF{r5}E*L Cl>y@b diff --git a/templates/rhuk_milkyway/images/white/mw_box_tl.png b/templates/rhuk_milkyway/images/white/mw_box_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8eee8e20972aceada9ca95f148fcd3a2980f79 GIT binary patch literal 311 zc%17D@N?(olHy`uVBq!ia0vp^5<slZ!VDyzmrmUbq?n7HJVQ7*IBq}me*okf1o(uw z{{R2~@87?F{`~p%>(`GTKfZte{`KqEFJHcV{P^+1hY#=Gy?gui?VC4mUcGwt^5x6t z&!0bC^|J}6m$SelvY3H^TL^?1FWs&C0~C}mag8Vm&QB{TPb^Ah@J&oE%Fj(r$xKvm z%PdMQ&o9a@R<PKbaj62RR1BolxhOTUBr`uxAtW<5mBG+Z-^ftk!1S1y&H<o`Ku;IP z5Q(YD2|y74^`E^2!%dn0i4Bd7KkbB$zq1#5ZY$LO*<Q$9e&*!<GdKIs{Ir*`w3n4U zz;NW>;sXs2WKtX+X($xd87UO*Q!2K*(8$d2vopN=KD*CHpy3Rju6{1-oD!M<8%u?R diff --git a/templates/rhuk_milkyway/images/white/mw_box_tr.png b/templates/rhuk_milkyway/images/white/mw_box_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..62dff3e93afe48dc1b8cf70705477436a8bdbf4d GIT binary patch literal 353 zc%17D@N?(olHy`uVBq!ia0y~yU`z+H)mfN<q~gvgX+Vm(*vT`5gM;JtL;nXru0eoL zi0l9V|Ns8|`{&P}U%!6+`0?ZW_wQf7e*N<0%g2u&KYaM`?%lh$Z{NOo^XAp7S1(__ zeE$6T(^Ws4fO<I#JR*x37`TN%nDNrxx<5cc`4ZQNlHmNblJdl&R0iL~<f8oC)RfFb z1-Hzi)bjkI>|zCrtr?dpfJ((cN}Y>R6H7Al^Atidb5j`%4fTx-^$kpqiRl~ws;KsK zaSVxQeS2XeuS0@}>%;3BCI30tCTwWa?O9>mc1Y=8pN5=v#=1FA=5g+u;}P;b>e1W$ zW7p3yxjgrCdG6tIoyjHs$mN@Y7mWq?3S4ZzxTq&Ab&J;GP|3BYGD6)}H!TYEbt(Dc sQj+8H#ldB}ONp~f`^8mYH9Ef-{pPIuE8bz;1#||3r>mdKI;Vst0IE)#xBvhE diff --git a/templates/rhuk_milkyway/images/white/mw_footer_b.png b/templates/rhuk_milkyway/images/white/mw_footer_b.png new file mode 100644 index 0000000000000000000000000000000000000000..04704756cd65994836bfeb2cfa3221fdc1b66a4d GIT binary patch literal 347 zc%17D@N?(olHy`uVBq!ia0vp^Q9x|T!2}{#tzHPEn2Vh}LpV4%Za?&Y0OWEOctjR6 zFmMZjFyp1Wb$@_@@+GbjCBgY=CFO}lsSLh}$wm3OsVSL>3T~N2spa`a*~JPLTQe?I z0F{b?lsXrsCYEI8=P86_=B6?jnCKgs=^L0H4Yqaws@Ul1;uw<A`1bZj-UA9etQQ&X z)f;8CB`{e9xnA^55dW_B!-`Qh_uS7Hm*4HZDb3Yc?DwtBsp?xp)EUNS48;wW2V@fX z4A^HdQ^;+I$WG1ISn_u7W^)mtz18t`&l)6>Q}Q)bl$5HS73cAN(3knq*96q@f$2e? Wpl;s1%^QJ^XYh3Ob6Mw<&;$Si;&x>K diff --git a/templates/rhuk_milkyway/images/white/mw_footer_b_l.png b/templates/rhuk_milkyway/images/white/mw_footer_b_l.png new file mode 100644 index 0000000000000000000000000000000000000000..689560e2057b167630f84a9805e06ea7003b8af6 GIT binary patch literal 486 zc%17D@N?(olHy`uVBq!ia0vp^8bEBx!2~2vi~VB(Qq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcIMc)B=-M6|xWaki`3K!CkK zxS69auC{OA|H&M2E;g$<+#WA!KRDs4UaMKAc-cR8exW~>o;*fA*|IVdgWmmKH|5rM zSq6p$xzW`PhdY)l=WV}T{vb87=D?lf&YWs95}Htm2jU53C)*!n+my!5JM6^4@PkRl z^`eRI{04vSIVzs_zu!wd(sN3p`*8$^Ay0Gp50P_~fg-WjHJ92P%J{6Dal9~QTIyw! z*Smf-t$&)dN$2$EJ?paDi_g8$7hN;MZq><6I*%>#Zij`2&RUizVb#3#8biZ%?Vj&T zr+l{Y)|?vjUM4qPg1LXu+C9PA&)mOX3prrPujifjOu3+N%Dmghw(&CjV5^X4m{6W% z|04YMwrjVhWQW9W$W?CZIb2lVnrm(0#ou@LIZK+~winz#rT5$YXWGXsY%k1Ou&4Y2 QFr*ngUHx3vIVCg!034;k(f|Me diff --git a/templates/rhuk_milkyway/images/white/mw_footer_b_r.png b/templates/rhuk_milkyway/images/white/mw_footer_b_r.png new file mode 100644 index 0000000000000000000000000000000000000000..23df213d7dd53e44f25954273520836fd4154db6 GIT binary patch literal 491 zc%17D@N?(olHy`uVBq!ia0vp^8bEBx!2~2vi~VB(Qq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcGWdb&7<M6|xWak|gdL4fT+ z*wu~}0cmUfhkx%ktX(Ucq^{!<la}cAYsWL0?I(TyYImNV{%T#G)2G_`vBK9&85tM^ zCKmT~tXkEVzVmry_zFjXocIH)SM6fD$7{1l$j9Iyi!c)LVSnS&$h@ZQ#iDn<|79+? zUOMM9`-4RqCceq*FW0coS++7!g4t}<bo20e&pTFVoLU=u*Ti>{%C=m7A%-=)U;ViE zOx?9^vBoByY>o1O_WfPOzfCO8f41oJy?mv#_K3^ZlpVRZH|cEFadtUgDB{|9ea%@z z{=*-Vx4y5AoE93oHMd&fxYqMOPvSIBZ|Z;e-u=&-X`DSB(ZxIkTQ(j&I7fU}#Jj+V zJ4#2s8i$Kd6IPnX*UjFomE80G-Lv<%CY!~D+&tLj8u4W22G{lXcKm*{N2C57_ml63 Z;^V{}vSvC=X9os1gQu&X%Q~loCIHoi%vAsY diff --git a/templates/rhuk_milkyway/images/white/mw_header_t.png b/templates/rhuk_milkyway/images/white/mw_header_t.png new file mode 100644 index 0000000000000000000000000000000000000000..5805868b75de63dc68ad40cd27bafdb29f5cabd0 GIT binary patch literal 353 zc%17D@N?(olHy`uVBq!ia0vp^DnQ)G!2~4LH}_8hQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*i099=Fba4#HXncF?G%vHF083!< z#QL-j8H)+bLi5ii_^mK)UL{=d$*<CX_Bl)YtN)B%X6p1CmfVQ)Za-^TI^)aqw|nJ} zMr9l6eB8y={xoVekM}9_6T8hXvmKf*b%xiiH{lrv%Nc&R-j4=(WvMpDDkRLAKQ{*| z&#+`-gwmbug`2e>8y-8nLvn_EkJQ04f*fG_Pr?<Bv_6LeKw5(Taa#Da>i0%H@4r4y g+&M+*@RG)wO}SZ@jJ+>@0(ybL)78&qol`;+0M!kI6#xJL diff --git a/templates/rhuk_milkyway/images/white/mw_header_t_l.png b/templates/rhuk_milkyway/images/white/mw_header_t_l.png new file mode 100644 index 0000000000000000000000000000000000000000..8ddf9816df38d8e5b687d5855cc13868c76dcdae GIT binary patch literal 646 zc%17D@N?(olHy`uVBq!ia0vp^sz6-K!2~2HXvgdWQq09po*^6@9Je3(KLBz$3p^r= z85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJL<P6ZqSW&IqU>S?i>(=# zDu7DGKuVp9QWHxu^Yau!GILWI3{3Qm%=8URj|N*iFfcIQ@pN$v$!L6gJ$7}Ifdu;p z$uNOyDjZdcuNS@lKX=h;$HZqJTECqs7Cbs@Ue0OZYnA`P7ryL2{`YE8*CK^{pXYOL z*nhag{#(yGI;Qw{&F!m8md}gwiqy!wr~R(@W60H6Yd)MhBVRRjhFetfuH{KjGrVs! ze4nu=$LI2t;ySze`J1JV2KEP@=VO>PJvCCI&56V7WrfW*oAtNf?lZaH{P2+l-{A}2 z|0;0k%#iXAWmM==I`^~2ZvNS{YeB8<>&mxBO|Uut*dk7E`s9;OTz$TGt&-_?_sUdd zWBC2|Uy0SyOs$pznd3K<zx!{}Io%@QC@`fzrN{7C%=NFe^&2C;{H}fcbBiFS;+)SH zGnR<5FqG|<eO|LQs&d|Up3ke7tDgV-vSd~6oxJTqr_QD&2VR-=U7jIB*x=YCm5uwf zvz`^pxZCP87#zFyx^(&Fjn%8}o(<Pq{_XAIhZkOdWovG14S9G~txL&krD@t5RZk-s zzWdKTHRta+KkFlh;&~evxh2cyKi%_blj{Bd)!%R1zTvLQ{kCEL{I@gL-tVse#}Riv z=tI@EQ-{AguRkmIP1tsFLi~m7&Fz0(&a2#*e*Rm*-&wqI=Rq`FRQ$`WH;MKak-2{v YM2b8^|7(Qp0;U88Pgg&ebxsLQ0DF}%Qvd(} diff --git a/templates/rhuk_milkyway/images/white/mw_header_t_r.png b/templates/rhuk_milkyway/images/white/mw_header_t_r.png new file mode 100644 index 0000000000000000000000000000000000000000..c23f5cc5c06ef7b9032102b92c0efa5cba093c59 GIT binary patch literal 749 zc$@+40uud+P)<h;3K|Lk000e1NJLTq001Qb0046c0ssI2kSkoi00003b3#c}2nYz< z;ZNWI000SaNLh0L01FZT01FZU(%pXi0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_ zMrm?ocW-iQb09diXwrB9000(rMObu0a%Ew3X>V>IRB3Hx05CK!GBz(THN{gqKmY&& zLrFwIRA_<inoY~9KorNFw|pTrBC{6JqVNA%+O%zvP)0<VNNA>W7XyRWr`ydJ!g|hs zG1zIwU+0B$L_(Z%<&DDcg#7{@O_HR>F@#WY6)M>u^Rg^!!YfG_Ip_aE()<113JhcX z6a0Wz!@q|-&bdHhj7vNJ;^lc>l_&32bdGZ_kcy%_K{nz^sw7E?j}QFwJg+K-b500R zRn;_2RaJ$hD2Wu;MJlS%&(buFqUdxwg<(i39SjD#u8XJ&5kd$d;<}vCCjB!_Q_u4* zmy2!NrfCX>TqUwKo{;bR`~BXwZOgJs{>fEtrVU|=qD-e#O6hjHWsHfy=6NpbsN@e_ zE|;&|6k}`{hGki!(Wv-)g&fBT!|;4Q>$?81cBIfN{e^R$BuNkiK@enF=DM!yx}`m7 znyyx>@p!ChnhdEBW2_pl2#%s?x7!(pF`Lawj;`11+wJB!j!YY+6l2`$_2iyv^9Uhi zn&x7$h~s#(*_6H=4u@jeJc(zW`9~?8&*w>!91e$~z2EQuH(Hq25@T#KnfSh6Z1;?@ zCzG$ff6^O5$nkirbgDiNA!OTj7=|VL&tSB}QxwIv?d$bg=}03UW31}9e*5!TlYU*} z?6*Jfemf891$bTNL4AHU5AxTpAfBJigZu%n%e+SQSwr6*&u`~JKLcKuc~GCgt0JhE z&*nk?+7-m}vw4s|;B}b?^$ENxf_ed7mwE9140v7ULI3=0UJL(^jN`Zh59*~=wU9qe f(_Y{F?eY8rGfI$S(N-=c00000NkvXXu0mjf;+b5k diff --git a/templates/rhuk_milkyway/images/white/mw_menu_active_bg.png b/templates/rhuk_milkyway/images/white/mw_menu_active_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..100acdbdb845001c98f2b763bac4a1c1456ff3c5 GIT binary patch literal 321 zc%17D@N?(olHy`uVBq!ia0vp^!9Xm|!VDx^L-Ra=6mzkYX9x!e$L)vy4}e_t0G|-o zGiT16K7IP+$&)8eoH%~`_|c<B4<9~!=+L192M+Atzkl!Ez3bMkTf27cYNscMKt`7Y z`33(+1_H0naswqe3p^r=85p>QK$!8;-MT+OLHQEbh?3y^w370~qErUo#N?v<+|-oJ zL<P6ZqSW&IqU>S?i>(=#Du7DGKuVp9QWHxu^Yau!GILWI42|>+jr9%8n&YnS0jlu! zba4#Pn3$ZPAjcuZ%_1?SgO!Wt*bydXHu0oJW@n9!3Jr?A5fcss_~~dQyigD`F*u_l x=93WNsuOWw!|aF+jSqP?J~*)A(!wPo3{TY5r@H1XECm|N;OXk;vd$@?2>|0SddUC) diff --git a/templates/rhuk_milkyway/images/white/mw_shadow_l.png b/templates/rhuk_milkyway/images/white/mw_shadow_l.png new file mode 100644 index 0000000000000000000000000000000000000000..a383e4d4b2ed0532006a2dc59bc8aea1f1d90f3e GIT binary patch literal 225 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaD$G4y978-h-=5kic));%+3?u! z{FRy|>Ot#*svF&V^UJ@!&bw`#Z0$K|l~q-ufdmg*^T7lIm6uG{f+d*m&V1?vG=jm? L)z4*}Q$iB};8{h= diff --git a/templates/rhuk_milkyway/images/white/mw_shadow_r.png b/templates/rhuk_milkyway/images/white/mw_shadow_r.png new file mode 100644 index 0000000000000000000000000000000000000000..cc81e833dbf95013cd9ab7ca21bc78621846b4a5 GIT binary patch literal 224 zc%17D@N?(olHy`uVBq!ia0vp^+(7Kd!2~2LqpQ~eDdu7)&kzm{j@u9Y9{{<W1s;*b zKxIN8%y{W;-5;Q!e2HsBNpOBzNqJ&XDuZuga#4P6YD#9Jf?H-$YI%N9cCmuR){ILP zK&4_JrOrjEi6xo&c?uz!xv2~WCi+HZ`Ua*)gRLEaD$G1x978-h-<~oQWH8`iHoSf= zHloFTM#HNsJ6Ym3pL=(%C-=7JDlO0Q*Bk33c-Wc`CKyQYc<z!bWS+T{Wyc$!2@IaD KelF{r5}E*<0!7;Z diff --git a/templates/rhuk_milkyway/index.html b/templates/rhuk_milkyway/index.html new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/rhuk_milkyway/index.php b/templates/rhuk_milkyway/index.php new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/index.php @@ -0,0 +1,169 @@ +<?php +/** + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined( '_JEXEC' ) or die( 'Restricted access' ); +?> +<!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="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" > +<head> +<jdoc:include type="head" /> + +<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" /> +<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" /> +<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/rhuk_milkyway/css/template.css" type="text/css" /> +<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/rhuk_milkyway/css/<?php echo $this->params->get('colorVariation'); ?>.css" type="text/css" /> +<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/rhuk_milkyway/css/<?php echo $this->params->get('backgroundVariation'); ?>_bg.css" type="text/css" /> +<!--[if lte IE 6]> +<link href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/ieonly.css" rel="stylesheet" type="text/css" /> +<![endif]--> +<?php if($this->direction == 'rtl') : ?> + <link href="<?php echo $this->baseurl ?>/templates/rhuk_milkyway/css/template_rtl.css" rel="stylesheet" type="text/css" /> +<?php endif; ?> + +</head> +<body id="page_bg" class="color_<?php echo $this->params->get('colorVariation'); ?> bg_<?php echo $this->params->get('backgroundVariation'); ?> width_<?php echo $this->params->get('widthStyle'); ?>"> +<a name="up" id="up"></a> +<div class="center" align="center"> + <div id="wrapper"> + <div id="wrapper_r"> + <div id="header"> + <div id="header_l"> + <div id="header_r"> + <div id="logo"></div> + <jdoc:include type="modules" name="top" /> + </div> + </div> + </div> + + <div id="tabarea"> + <div id="tabarea_l"> + <div id="tabarea_r"> + <div id="tabmenu"> + <table cellpadding="0" cellspacing="0" class="pill"> + <tr> + <td class="pill_l"> </td> + <td class="pill_m"> + <div id="pillmenu"> + <jdoc:include type="modules" name="user3" /> + </div> + </td> + <td class="pill_r"> </td> + </tr> + </table> + </div> + </div> + </div> + </div> + + <div id="search"> + <jdoc:include type="modules" name="user4" /> + </div> + + <div id="pathway"> + <jdoc:include type="modules" name="breadcrumb" /> + </div> + + <div class="clr"></div> + + <div id="whitebox"> + <div id="whitebox_t"> + <div id="whitebox_tl"> + <div id="whitebox_tr"></div> + </div> + </div> + + <div id="whitebox_m"> + <div id="area"> + <jdoc:include type="message" /> + + <div id="leftcolumn"> + <?php if($this->countModules('left')) : ?> + <jdoc:include type="modules" name="left" style="rounded" /> + <?php endif; ?> + </div> + + <?php if($this->countModules('left')) : ?> + <div id="maincolumn"> + <?php else: ?> + <div id="maincolumn_full"> + <?php endif; ?> + <?php if($this->countModules('user1 or user2')) : ?> + <table class="nopad user1user2"> + <tr valign="top"> + <?php if($this->countModules('user1')) : ?> + <td> + <jdoc:include type="modules" name="user1" style="xhtml" /> + </td> + <?php endif; ?> + <?php if($this->countModules('user1 and user2')) : ?> + <td class="greyline"> </td> + <?php endif; ?> + <?php if($this->countModules('user2')) : ?> + <td> + <jdoc:include type="modules" name="user2" style="xhtml" /> + </td> + <?php endif; ?> + </tr> + </table> + + <div id="maindivider"></div> + <?php endif; ?> + + <table class="nopad"> + <tr valign="top"> + <td> + <jdoc:include type="component" /> + <jdoc:include type="modules" name="footer" style="xhtml"/> + </td> + <?php if($this->countModules('right') and JRequest::getCmd('layout') != 'form') : ?> + <td class="greyline"> </td> + <td width="170"> + <jdoc:include type="modules" name="right" style="xhtml"/> + </td> + <?php endif; ?> + </tr> + </table> + + </div> + <div class="clr"></div> + </div> + <div class="clr"></div> + </div> + + <div id="whitebox_b"> + <div id="whitebox_bl"> + <div id="whitebox_br"></div> + </div> + </div> + </div> + + <div id="footerspacer"></div> + </div> + + <div id="footer"> + <div id="footer_l"> + <div id="footer_r"> + <p id="syndicate"> + <jdoc:include type="modules" name="syndicate" /> + </p> + <p id="power_by"> + <?php echo JText::_('Valid') ?> <a href="http://validator.w3.org/check/referer">XHTML</a> <?php echo JText::_('and') ?> <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> + </p> + </div> + </div> + </div> + </div> +</div> +<jdoc:include type="modules" name="debug" /> + +</body> +</html> diff --git a/templates/rhuk_milkyway/params.ini b/templates/rhuk_milkyway/params.ini new file mode 100644 --- /dev/null +++ b/templates/rhuk_milkyway/params.ini @@ -0,0 +1,4 @@ +colorVariation=black +backgroundVariation=red +widthStyle=fmax + diff --git a/templates/rhuk_milkyway/templateDetails.xml b/templates/rhuk_milkyway/templateDetails.xml new file mode 100755 --- /dev/null +++ b/templates/rhuk_milkyway/templateDetails.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE install PUBLIC "-//Joomla! 1.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.5/template-install.dtd"> +<install version="1.5" type="template"> + <name>rhuk_milkyway</name> + <creationDate>11/20/06</creationDate> + <author>Andy Miller</author> + <authorEmail>rhuk@rockettheme.com.com</authorEmail> + <authorUrl>http://www.rockettheme.com</authorUrl> + <copyright></copyright> + <license>GNU/GPL</license> + <version>1.0.2</version> + <description>TPL_RHUK_MILKYWAY</description> + <files> + <filename>index.php</filename> + <filename>templateDetails.xml</filename> + <filename>template_thumbnail.png</filename> + <filename>params.ini</filename> + <filename>images/arrow.png</filename> + <filename>images/indent1.png</filename> + <filename>images/indent2.png</filename> + <filename>images/indent3.png</filename> + <filename>images/indent4.png</filename> + <filename>images/index.html</filename> + <filename>images/mw_box_blue_bl.png</filename> + <filename>images/mw_box_blue_br.png</filename> + <filename>images/mw_box_blue_tl.png</filename> + <filename>images/mw_box_blue_tr.png</filename> + <filename>images/mw_content_b_l.png</filename> + <filename>images/mw_content_b_r.png</filename> + <filename>images/mw_content_b.png</filename> + <filename>images/mw_content_t_l.png</filename> + <filename>images/mw_content_t_r.png</filename> + <filename>images/mw_content_t.png</filename> + <filename>images/mw_footer_blue_b_l.png</filename> + <filename>images/mw_footer_blue_b_r.png</filename> + <filename>images/mw_footer_blue_b.png</filename> + <filename>images/mw_footer_separator.png</filename> + <filename>images/mw_header_b.png</filename> + <filename>images/mw_header_blue_t_l.png</filename> + <filename>images/mw_header_blue_t_r.png</filename> + <filename>images/mw_header_blue_t.png</filename> + <filename>images/mw_header_l_b.png</filename> + <filename>images/mw_header_r_b.png</filename> + <filename>images/mw_header.jpg</filename> + <filename>images/mw_joomla_logo.png</filename> + <filename>images/mw_line_grey.png</filename> + <filename>images/mw_menu_active_bg.png</filename> + <filename>images/mw_menu_cap_l.png</filename> + <filename>images/mw_menu_cap_r.png</filename> + <filename>images/mw_menu_normal_bg.png</filename> + <filename>images/mw_menu_separator.png</filename> + <filename>images/mw_readon.png</filename> + <filename>images/mw_shadow_blue_l.png</filename> + <filename>images/mw_shadow_blue_r.png</filename> + <filename>images/spacer.png</filename> + <filename>css/index.html</filename> + <filename>css/template.css</filename> + <filename>css/template_rtl.css</filename> + <filename>css/editor.css</filename> + <filename>css/ieonly.css</filename> + </files> + <positions> + <position>breadcrumb</position> + <position>left</position> + <position>right</position> + <position>top</position> + <position>user1</position> + <position>user2</position> + <position>user3</position> + <position>user4</position> + <position>footer</position> + <position>debug</position> + <position>syndicate</position> + </positions> + <params> + <param name="colorVariation" type="list" default="white" label="Color Variation" description="Color variation to use"> + <option value="blue">Blue</option> + <option value="red">Red</option> + <option value="green">Green</option> + <option value="orange">Orange</option> + <option value="black">Black</option> + <option value="white">White</option> + </param> + <param name="backgroundVariation" type="list" default="blue" label="Background Variation" description="Background color variation to use"> + <option value="blue">Blue</option> + <option value="red">Red</option> + <option value="green">Green</option> + <option value="orange">Orange</option> + <option value="black">Black</option> + <option value="white">White</option> + </param> + <param name="widthStyle" type="list" default="fmax" label="Template Width" description="Width style of the template"> + <option value="fmax">Fluid with maximum</option> + <option value="medium">Medium</option> + <option value="small">Small</option> + <option value="fluid">Fluid</option> + </param> + </params> +</install> diff --git a/templates/rhuk_milkyway/template_thumbnail.png b/templates/rhuk_milkyway/template_thumbnail.png new file mode 100755 index 0000000000000000000000000000000000000000..ecce69dfa41555a4567440729ed03d3eb674e7fb GIT binary patch literal 8001 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 D%oD|k diff --git a/templates/system/component.php b/templates/system/component.php new file mode 100644 --- /dev/null +++ b/templates/system/component.php @@ -0,0 +1,30 @@ +<?php +/** + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined( '_JEXEC' ) or die( 'Restricted access' ); +?> +<!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="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>"> +<head> + <jdoc:include type="head" /> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" /> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/css/template.css" type="text/css" /> + +<?php if($this->direction == 'rtl') : ?> + <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template_rtl.css" type="text/css" /> +<?php endif; ?> +</head> +<body class="contentpane"> + <jdoc:include type="message" /> + <jdoc:include type="component" /> +</body> +</html> \ No newline at end of file diff --git a/templates/system/css/editor.css b/templates/system/css/editor.css new file mode 100644 --- /dev/null +++ b/templates/system/css/editor.css @@ -0,0 +1,52 @@ +body { + background: #fff; + font-family: Tahoma,Helvetica,Arial,sans-serif; + line-height: 1.3em; + font-size: 76%; + color: #333; +} + +h1 { + font-family:Helvetica ,Arial,sans-serif; + font-size: 16px; + font-weight: bold; + color: #666; +} + +h2 { + font-family: Arial, Helvetica,sans-serif; + font-size: 14px;; + font-weight: normal; + color: #333; +} + +h3 { + font-weight: bold; + font-family: Helvetica,Arial,sans-serif; + font-size: 13px; + color: #135cae; +} + +h4 { + font-weight: bold; + font-family: Arial, Helvetica, sans-serif; + color: #333; +} + +a:link, a:visited { + color: #1B57B1; text-decoration: none; + font-weight: normal; +} + +a:hover { + color: #00c; text-decoration: underline; + font-weight: normal; +} + +div.caption { padding: 0 10px 0 10px; } +div.caption img { border: 1px solid #CCC; } +div.caption p { font-size: .90em; color: #666; text-align: center; } + +/* STYLES FOR JOOMLA! EDITOR */ +hr#system-readmore { border: red dashed 1px; color: red; } +hr.system-pagebreak { border: gray dashed 1px; color: gray; } \ No newline at end of file diff --git a/templates/system/css/error.css b/templates/system/css/error.css new file mode 100644 --- /dev/null +++ b/templates/system/css/error.css @@ -0,0 +1,81 @@ +/** + * CSS Document for offline page + * @version $Id: error.css 10387 2008-06-03 10:59:16Z pasamio $ + * @package Joomla + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software and parts of it may contain or be derived from the + * GNU General Public License or other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +/* Start Common Styles */ +* { + font-family: helvetica, arial, sans-serif; + font-size: 11px; + color: #5F6565; +} + +html { + height: 100%; + margin-bottom: 1px; +} + +body { + margin: 0px; + padding: 0px; + height: 100%; + margin-bottom: 1px; + background: #FFFFFF; + font-family: helvetica, arial, sans-serif; + font-weight: normal; + padding-top: 0px; + margin-top: 0px; +} + +table, td, th, div, pre, blockquote, ul, ol, dl, address,.componentheading,.contentheading,.contentpagetitle,.sectiontableheader,.newsfeedheading { + font-family: helvetica, arial, sans-serif; + font-weight: normal; +} + +#outline { + width: 814px; + margin: 0px; + padding: 0px; + padding-top: 60px; + padding-bottom: 60px; + background: #FFFFFF; +} +#errorboxoutline { + width: 600px; + margin: 0px; + padding: 0px; + border: 1px solid #000000; +} +#errorboxheader { + width: 600px; + margin: 0px; + padding: 0px; + background: #E44249; + color: #FFFFFF; + font-weight: bold; + font-size: 12px; + line-height: 22px; + text-align: center; + border-bottom: 1px solid #000000; +} +#errorboxbody { + margin: 0px; + padding: 10px; + text-align: left; +} +#techinfo { + margin: 10px; + padding: 10px; + text-align: left; + border: 1px solid #CCCCCC; + color: #CCCCCC; +} +#techinfo p { + color: #CCCCCC; +} \ No newline at end of file diff --git a/templates/system/css/general.css b/templates/system/css/general.css new file mode 100644 --- /dev/null +++ b/templates/system/css/general.css @@ -0,0 +1,147 @@ +/* Form validation */ +.invalid { border-color: #ff0000; } +label.invalid { color: #ff0000; } + +/* Buttons */ +#editor-xtd-buttons { + padding: 5px; +} + +.button2-left, +.button2-right, +.button2-left div, +.button2-right div { + float: left; +} + +.button2-left a, +.button2-right a, +.button2-left span, +.button2-right span { + display: block; + height: 22px; + float: left; + line-height: 22px; + font-size: 11px; + color: #666; + cursor: pointer; +} + +.button2-left span, +.button2-right span { + cursor: default; + color: #999; +} + +.button2-left .page a, +.button2-right .page a, +.button2-left .page span, +.button2-right .page span { + padding: 0 6px; +} + +.page span { + color: #000; + font-weight: bold; +} + +.button2-left a:hover, +.button2-right a:hover { + text-decoration: none; + color: #0B55C4; +} + +.button2-left a, +.button2-left span { + padding: 0 24px 0 6px; +} + +.button2-right a, +.button2-right span { + padding: 0 6px 0 24px; +} + +.button2-left { + background: url(../images/j_button2_left.png) no-repeat; + float: left; + margin-left: 5px; +} + +.button2-right { + background: url(../images/j_button2_right.png) 100% 0 no-repeat; + float: left; + margin-left: 5px; +} + +.button2-left .image { + background: url(../images/j_button2_image.png) 100% 0 no-repeat; +} + +.button2-left .readmore { + background: url(../images/j_button2_readmore.png) 100% 0 no-repeat; +} + +.button2-left .pagebreak { + background: url(../images/j_button2_pagebreak.png) 100% 0 no-repeat; +} + +.button2-left .blank { + background: url(../images/j_button2_blank.png) 100% 0 no-repeat; +} + +/* Tooltips */ +div.tooltip { + float: left; + background: #ffc; + border: 1px solid #D4D5AA; + padding: 5px; + max-width: 200px; + z-index:13000; +} + +div.tooltip h4 { + padding: 0; + margin: 0; + font-size: 95%; + font-weight: bold; + margin-top: -15px; + padding-top: 15px; + padding-bottom: 5px; + background: url(../images/selector-arrow.png) no-repeat; +} + +div.tooltip p { + font-size: 90%; + margin: 0; +} + +/* Caption fixes */ +.img_caption.left { + float: left; + margin-right: 1em; +} + +.img_caption.right { + float: right; + margin-left: 1em; +} + +.img_caption.left p { + clear: left; + text-align: center; +} + +.img_caption.right p { + clear: right; + text-align: center; +} + +/* Calendar */ +a img.calendar { + width: 16px; + height: 16px; + margin-left: 3px; + background: url(../images/calendar.png) no-repeat; + cursor: pointer; + vertical-align: middle; +} diff --git a/templates/system/css/index.html b/templates/system/css/index.html new file mode 100644 --- /dev/null +++ b/templates/system/css/index.html @@ -0,0 +1,1 @@ +<html><body bgcolor="#FFFFFF"></body></html> \ No newline at end of file diff --git a/templates/system/css/offline.css b/templates/system/css/offline.css new file mode 100644 --- /dev/null +++ b/templates/system/css/offline.css @@ -0,0 +1,63 @@ +/** + * CSS Document for offline page + * @version $Id: offline.css 10387 2008-06-03 10:59:16Z pasamio $ + * @package Joomla + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software and parts of it may contain or be derived from the + * GNU General Public License or other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +body { + margin: 0; padding: 0; + font-family: Arial, Helvetica, Sans Serif; font-size: 78%; + color: #333333; + text-align: center; +} + +img { border: 0 none; } + +/* -- id styles ------------------------------------- */ + +#frame { + margin: 20px auto; + width: 400px; + padding: 20px; +} + +#frame form { + text-align: left; +} + +/* -- class styles ---------------------------------- */ + +.outline { + border: 1px solid #cccccc; + background: #ffffff; + padding: 2px; +} + +/* -- form styles ----------------------------------- */ + +form { margin: auto; } +form p { margin: 0; padding: 0; } +form fieldset { border: 0 none; margin: 0em; padding: 0.2em;} +label { display: block; float: left; } +input { padding: 1px; } +input.button { width: auto; height: 1.8em; cursor: pointer; } + +label { margin: 5px 0px 2px 0px; width: 10em;} +form p { padding: 0.2em 0 0.2em 0; } +form br { display: none; } +input { border: 1px solid #0E67A1; } +input.button { background-color: white; } +input.button:hover { border-color: #FC902E; } + + + +#frmlogin { margin: 0 10px 0 10px; } +#frmlogin fieldset.button { text-align: right; } + + + diff --git a/templates/system/css/offline_rtl.css b/templates/system/css/offline_rtl.css new file mode 100644 --- /dev/null +++ b/templates/system/css/offline_rtl.css @@ -0,0 +1,24 @@ +/** + * @version $Id: offline_rtl.css 10054 2008-02-22 11:24:37Z mtk $ + * @package Joomla + * @subpackage Accessible-Template-Beez + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant to the + * GNU General Public License, and as distributed it includes or is derivative + * of works licensed under the GNU General Public License or other free or open + * source software licenses. See COPYRIGHT.php for copyright notices and + * details. + */ + + /** + * Joomla! 1.5 Offline RTL css file + * + * @author Mati Kochen + * @package Joomla + * @since 1.5 + * @version 1.0 + */ + +#frame form{ text-align: right; } +label { float:right; } diff --git a/templates/system/css/system.css b/templates/system/css/system.css new file mode 100644 --- /dev/null +++ b/templates/system/css/system.css @@ -0,0 +1,38 @@ +/* OpenID icon style */ +input.system-openid { + background: url(http://openid.net/login-bg.gif) no-repeat; + background-color: #fff; + background-position: 0 50%; + color: #000; + padding-left: 18px; +} + + +/* Unpublished */ +.system-unpublished { +background: #e8edf1; +border-top: 4px solid #c4d3df; +border-bottom: 4px solid #c4d3df; +} + +/* System Messages */ +#system-message { margin-bottom: 10px; padding: 0;} +#system-message dt { font-weight: bold; } +#system-message dd { margin: 0; font-weight: bold; text-indent: 30px; } +#system-message dd ul { color: #0055BB; margin-bottom: 10px; list-style: none; padding: 10px; border-top: 3px solid #84A7DB; border-bottom: 3px solid #84A7DB;} + +/* System Standard Messages */ +#system-message dt.message { display: none; } +#system-message dd.message { } + +/* System Error Messages */ +#system-message dt.error { display: none; } +#system-message dd.error ul { color: #c00; background-color: #E6C0C0; border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B;} + +/* System Notice Messages */ +#system-message dt.notice { display: none; } +#system-message dd.notice ul { color: #c00; background: #EFE7B8; border-top: 3px solid #F0DC7E; border-bottom: 3px solid #F0DC7E;} + +/* Debug */ +#system-debug { color: #ccc; background-color: #fff; padding: 10px; margin: 10px; } +#system-debug div { font-size: 11px;} diff --git a/templates/system/css/toolbar.css b/templates/system/css/toolbar.css new file mode 100644 --- /dev/null +++ b/templates/system/css/toolbar.css @@ -0,0 +1,34 @@ +/** + * CSS Document for edit page for toolbar control + * @version $Id: toolbar.css 10387 2008-06-03 10:59:16Z pasamio $ + * @package Joomla + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software and parts of it may contain or be derived from the + * GNU General Public License or other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + + +table#toolbar { + margin-right: 10px; +} + +table#toolbar a.toolbar { + color : #808080; + text-decoration : none; + display: block; + border: 1px solid #DDD; + width: 40px; + padding: 2px 5px 2px 5px; +} +table#toolbar a.toolbar:hover { + color : #C64934; + cursor: pointer; + border: 1px solid #c24733; + background-color: #f1e8e6; + padding: 3px 5px 1px 5px; +} +table#toolbar a.toolbar:active { + color : #FF9900; +} \ No newline at end of file diff --git a/templates/system/error.php b/templates/system/error.php new file mode 100644 --- /dev/null +++ b/templates/system/error.php @@ -0,0 +1,56 @@ +<?php +/** + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +// no direct access +defined( '_JEXEC' ) or die( 'Restricted access' ); +?> +<!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="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>"> +<head> + <title><?php echo $this->error->code ?> - <?php echo $this->title; ?> + + + +
        +
        +
        +
        error->code ?> - error->message ?>
        +
        +

        +
          +
        1. +
        2. +
        3. +
        4. +
        5. +
        6. +
        +

        +

        +

          +
        • +
        +

        +

        +
        +

        error->message; ?>

        +

        + debug) : + echo $this->renderBacktrace(); + endif; ?> +

        +
        +
        +
        +
        +
        + + diff --git a/templates/system/html/index.html b/templates/system/html/index.html new file mode 100644 --- /dev/null +++ b/templates/system/html/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/templates/system/html/modules.php b/templates/system/html/modules.php new file mode 100644 --- /dev/null +++ b/templates/system/html/modules.php @@ -0,0 +1,116 @@ +content; +} + +/* + * Module chrome that wraps the module in a table + */ +function modChrome_table($module, &$params, &$attribs) +{ ?> + + showtitle != 0) : ?> + + + + + + + +
        + title; ?> +
        + content; ?> +
        + tag of another table + */ +function modChrome_horz($module, &$params, &$attribs) +{ ?> + + + + +
        + +
        + content)) : ?> +
        + showtitle != 0) : ?> +

        title; ?>

        + + content; ?> +
        + +
        +
        +
        +
        + showtitle != 0) : ?> +

        title; ?>

        + + content; ?> +
        +
        +
        +
        + addStyleDeclaration($css); + + ?> +
        +
        position."[".$module->style."]"; ?>
        +
        + content; ?> +
        +
        + \ No newline at end of file diff --git a/templates/system/images/calendar.png b/templates/system/images/calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..658913852d60fc6ca8557568d26b8e93e7d56525 GIT binary patch literal 675 zc$@*F0$lxxP)w!? zFisFv!T|cmRtW;1f$>$s0G>^*GP-h`H-mzTP&3`b(d;hDCL-{+T2LSiJi1S%34OTG znWn~v^Brk?FQB#MFuosf?qnt!t(A%g#tAAA`tV{p&t%~)6GMus628BV?|aP6=Lr0O zrxPn=6Fy3{fE84gngF`mQ;ZG4p#ul`mYb)mJw@Q%q_eddamvg>kv)yI#B0M!3sxev z!1s9dp#Z>KE{BK5@W%p1Kt!2cEYj2vBiUHDJ-HCTS{r%b!`Wj=!r&Tb+LFBfRN!=5 zl7aC&Ul)Foh{s4J>JU)^p9+C-Q44MR8(8|WK})8dx#e}T%`v`wFOp3_q9I1QsXihN zJVaEgK9Y|1KAJgEb`m$%VXVVh!8pM>`_Eli`}OBJfVb0i{tF{QT8%v&>u>-7002ov JPDHLkV1feuD8K*! diff --git a/templates/system/images/index.html b/templates/system/images/index.html new file mode 100644 --- /dev/null +++ b/templates/system/images/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/templates/system/images/j_button2_blank.png b/templates/system/images/j_button2_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..a8c2e300aa6b94615c4e98bb44b43fb802c1ca17 GIT binary patch literal 398 zc$@)_0df9`P)gww0>FMX^ z=jG+)dbVG7wVRUJ4 zZXi@?ZDjy7FETJMFgAXJ@C*O|03UQkSaefwW^{L9a%BKbVPkS{ZDnL>VIW3na%FdK za%*!SIJIcfcmMzZa7jc#R2Y?Y(MuMBFc3u1LJ>OgM-T&Q#L)X+BpIj6JAAV`1+Ap$ zL+9<3 z>hbK&>FVq4>(J@x>F?>s=jZ3{=*Q^i&E@6gW+}qpR&)(PC+S=II*vi}D*Vot8*WSO}=hoKNyxZr~*51w7)4|!>%Gu4- z)YQ|{)6vq_!`i#j($dk<(a+J`&e7Y>(cI9`(9O}?&CuG+(BHn>qrBUp&(F`y&)Lh* z-Nn<=%h27<&d$ru*~`z_&CSis&C$2h-ptI*$j#cz%ge{i*s;>wtI^=9(ci?#)veCk zsLk8L#?q?OrNqRSm&Mn-yu7%)$GE%2w7tf;y1$Rik+HnRox#PN!O4)q)wQ|9kipcnx4^cx zwus1)qq@YZxWcNp!J@dyeado^yULij#j>)puCctLv&47Cf26U$bH#j)w#9PAdycim zfwjnhw8)mNyMMFCezL}>sib|e#fY!Ie6YoPu*7<=!DZyG%qqR zFEBQKgYXOh0019!MObuGZ)S9NVRB^vO<`klZ*65{X<;BnX>w(EZ*psMAUL&X(s%#> z0Y^zhK~xx(WAH))CW_pgoSY13fQ3iJMG7d)hyl3mr8pUwFaeJXHv=;>Gb=w5-~tM$ zDlxFIu*Aj18Nq-@4p2bY6eL`dU0GQH1$p&A0X8oNR#w)czJ{t5K(Gi1rey&ISiKn7 z*w`{_r#DRmg6{6__L?-H08ljt2S-Zzq|VgT)X0DUP0gT0pa6##1JFw`YM$}wg@v)f zetNn+5kLV>F9tzD!H}sdm(HI%TUk^@L_|IiC?M#?AR{9a*fM9%oS6j@?0mM>Q+$B} zGGJlvwi)^Q0&;cd$mX>yQG7imcY;A3AZf-8K0SZWaF-S>CX_%RrIlzDp zP(TVStYYXBl~Gz(SDF##W1t8Uuw;+~0T~%Z6%de>l>%{1v>3!Ofr2|PgBS)-bdlx6 o5LPsCmjy-|dK6o#^8kGh0P+1_hp-mhrvLx|07*qoM6N<$f}~_P3;+NC diff --git a/templates/system/images/j_button2_left.png b/templates/system/images/j_button2_left.png new file mode 100644 index 0000000000000000000000000000000000000000..c364b745514dadd1059c0a03082edb15d2d8a5d8 GIT binary patch literal 410 zc$@*60cHM)P)+9<3 z>gnm}<>lq%VIW3na%FdKa%*!SIJIcfcmMzZ6?8>dbVG7wVRUJ4ZXi@?ZDjy7FETJM zFgAXJ@C*O|0DnnDK~zYI&DKc*f-n#T(JxMoh(k0%(FlG2OB!8ph15GiElXzBrI!=P zEaY@(L{L)N6@$7@+dya-))ad88w&ZhcEX~xV90kE@;!#!Fyto;`5lARa>FPsfkHXe zPFUzUUMbYi@d6=>Q#>=2$BgrsLhX*9(qhL)uD#uVUtYkNUU#^;E&u=k07*qoM6N<$ Ef|QTRu>b%7 diff --git a/templates/system/images/j_button2_pagebreak.png b/templates/system/images/j_button2_pagebreak.png new file mode 100644 index 0000000000000000000000000000000000000000..aa619b49f69125753b8527ff6646c6209412fe58 GIT binary patch literal 803 zc$^iHTWAwo6oyADoV40=MDYI5a8#(ER-|}&5nEf^aI{LTq6lKuNTbAP5>a2YsCY%Z zfQaX`Ryk-Wm2aSX#;E|=5k{N^N36t$rNhr?laV0OFRX7^gZ`9{8aN30&pXKZ-H zYWeIM8n#-7tb@bopvCdYJo?dW>mT^?{)5@nZ+Y`}@ZZY4MtGXyQ}z1|2r_$Kp=P*) z7xM6NzOigTHNPglvUMKH7$Ce#T*qyRg0|2&V@r&G4kk&-r`5M^i|B^ z7k!!^U8Z^6e;7^b1OH!t)hBfSH-6}o5~j=#*lGaKd-t6ILFZ<(c3 zUC-WM*EjG{5uJJWPQ{vw?N7g~9z*Z7xt?pfd#jgTE$=$LtWMSWd>h@-eVGb4MR V>9jK2S_glQsA?N(URNKw^c%9H2mAm4 diff --git a/templates/system/images/j_button2_readmore.png b/templates/system/images/j_button2_readmore.png new file mode 100644 index 0000000000000000000000000000000000000000..8cf01ccd2bb949a20493c72306bf2c4174083b9c GIT binary patch literal 875 zc$@)i1C;!UP)+9>< z_Oj~g>gnt7>FV$3>hJ04>FDY2=jiU}>FVd{?&j$3=jZ3<=jzw*zt-=+<>u+;=IQ0- z<<{-H$@-Otn9&eGqz z-Jj9X(a_M)#@4vc&(EUkK+ew2%Fo-)&CSfs(ag-uzSOJ7%h#^iiK5?Qo#Q{R)RDx; z)2q~spxj);#K*wI(YVOI!o$bG!pFYC&Aq|Tyui(x)?%*8ov6-vbDdRw}^+nU5vGBjbyUo00009a7bBm000XT000XT0n*)m`~Uy| z6?8>dbVG7wVRUJ4ZXi@?ZDjy7FETJMFgAXJ@C*O|03UQkSaefwW^{L9a%BKbVPkS{ zZDnL>VIW3na%FdKa%*!SIJIcfcmMza2}wjjR2Y?Q(aB50KorOEhvc9J4-yaw!6t*? zL1VNK5Gxh8NvtI(jayYx)K-mk+!ZD6`}#LKuOTiSKc~m{_V@v-6L=;e1RDQRtU^e6 zZW5TAlt8n{3QcJJ$LtI!iZ<{|m%?SrJV#MfO6)vi))=Vj>%=e`s(Dip15JBrPspBOat7`X1SBuNc5>$gYeF2cOm))G6} zFBU(h;_NuvhGBG|>xFFgVAtUoP`cL3b#kYDFuJutIn47btFfEI$)zW(g$j)S$lraw zFT4B*7GX@3ulB=;zzcIk$X-y*@zLrhuFP5d`!5#pZ}%!KSL^@)002ovPDHLkV1lkr BCt3gi diff --git a/templates/system/images/notice-alert.png b/templates/system/images/notice-alert.png new file mode 100644 index 0000000000000000000000000000000000000000..83adc35f0311449058cd67fc9f357afcbf10fd75 GIT binary patch literal 973 zc%17D@N?(olHy`uVBq!ia0vp^vLMXC3?vhMr`rN4=3*z$5DpHG+YkL8FfcI62Ka=y z?&acouxZnl{{EYhk^leyKc=t$iJ$*VSJ&hI{s$!`?=>~gFIjR}T>Q(jW%rVj9;m5( zS5$mHYt~tA?)Tfbzbh$umz;dt+4F)vqKkMtC=jXpCCG}(?I>5V&t+^V!Pk3OD!l^z>5;7QD~Q+%aj=-O$i08X7+( zB;M85ewi}muDAF5=;#Y_a!0wio^IXxu&wQepy2K)Q@*;nJ&BI~Fm2l1_3NJ{B|WpT z`Lb=>0~M8fQ>MIKyY{l7;WsUsS#OGx-qTKdw->1kcv!_3TYAt7gsjlT#Bf6dPRW@z|CU;jXF@0ZwEqp5a3fZ-Nj z666>BpAcXmr~)7Op>-t%XccFHM`SSr1Gf+eGhVt|_Xj8_U*Z~35}cn_Ql40p%HW%r zT$G=inv$8Q;FejGTAp8&U94cSHRDnRP^l@jRu)m!@U+BncCx^v_SNxt`N0v~^eCtE~_A9b&oi*+I)E?0xj{ zNA1_`Tw=bzag$2kQu<_DtHhjdZ$p_R*cOXR9pYi`Jm9Cc+u?ZG1>bdVHwSRd?__us zx#P>`4c~qXZJT=fYjRhT#OYMEWC^b|^G|PViSY91jyhvtWNyAN;Kdh{WDT$V_ZPjH lrz7ALvF+)ROO_jt-@h4Me7`i;UJn>~44$rjF6*2UngE?v0Vn_f diff --git a/templates/system/images/notice-download.png b/templates/system/images/notice-download.png new file mode 100644 index 0000000000000000000000000000000000000000..e77ae4b4532c607ad87bd8e08f8124bc551dbedf GIT binary patch literal 1404 zc$}?M{ZrBh9R4b`6eV1)C0T}BwYss;w58qFh|naJ5VVV$1}O%KX-FAbHqk5*og}`I zm?FM~h@vQIs9C7^R=%eAJ_|L&msVc6I!FIP*K_xLp1aRIpS$OW=aY!X9fN?kf&l=4 zU_CGdqi+99Gmvpoyfc3{3Mc}N^))jy8<{#W2>_;GyqB+=TasnZ*h7g-kZ<_yYLETP zrO|p#$@KyfK?*K>7G2bJ^NavNZv6Jfs8db1xNedA;Ej)bC^<&zm;Qu7D|0NZ%96ci zG|v|FziesybS8Vo1(&)drT#)okK+A*?_^y9#SDkq56OEHCwqep@7;0gfklbo&txsW zcsA^O@y`|WQJEU%aiMwQ_>q>;YDIlsyw*uj8#%7m+-gA=O)&=a>gK6?+;N0Z?@_(% zojq_ixCeT=-hw2DPQM-Kd|unsA-i}F{oqw6jiwz5T1pa9Jq+$)_4$(f*(=~)Tg$m_#DWY@(=r=l|I z*yl?elRHi-7kL4hjskT^e5-5TD}2N_%wRBN%^kQlLhv+}q?|>-5!b#1z!zP81*|$? zLXFAI!#zk50AR7{GfjHOVm=y|J6LX~Sj4bkRwRW<1-vPN%&<^u5S;>dr!%RMVa$*S zxQmk3d(~*&{MmYxNu{vpVHe@P^iV3`gmm1GbU0|w^*UjE7!Ve7#CH!r(4l#QP3n++ z#AP=7@=QY3xptw@H^OUjWhLNnT!HS%ciz8ZG<_ousnB)bM@8R{&ud#f=!w+FfsW1v z-`GjoGLXV+LhXakf;df0yp4WaRAsQIyu<7dMSF=LR8uiFAOI_DwcI@~wYJ?kD}mcV zzL^5!I7jv$YQPU)OTp}09}^RgNbT}_%!l$1l=q%&>*^ZdXroMA!8*SdGO5p<@8*x1 z1gD8M{KHOk7IK2BTrxN+|8sj3{+_N1lp<$rw;LSD6oK^JbNY2!_nM^5o73qu8Ven? zEB+?cIfBd8{rE^xs#dEnbcp#V(Fa}5xJw1Yy44E`{oC)8nYQVDdpp)C^e#&AOD+LU zPqNFBjDN(UnqCi^t}Je9G^4_4$~aw!m5Hg|6P`a6Xv;S@tuu#X2h+*8-~uRS&^fsf zuxx%IF0kg=Ga8+VG{heEs^%|LtY3A`D$Aj7lxS|(h~9?CxPu}O47&&Q$K5m<0 zE$gyC^}@AtnnCOB-uym4rte*G^wQ~Iz4FllH`GTf`A8E5^P6ST`J|98Ko@4})R_Z2$lO diff --git a/templates/system/images/notice-info.png b/templates/system/images/notice-info.png new file mode 100644 index 0000000000000000000000000000000000000000..55bf7e0f147882997e37b4e24a7d0cd9ec91730b GIT binary patch literal 1010 zc%17D@N?(olHy`uVBq!ia0vp^vLMXC3?vhMr`rN4=3*z$5DpHG+YkL8FfcHR1o(uw z@*1VA+Ig10=zCK0`j|!kIenJ?|Nq}Prp|NP|5+<`1=a7W-tvFK+_hGH|972v$dh={ z(5KL@^+`-ofA7BkTxLZ%tN#bh`LEpgKdNc_mZLYhqmM1wa*Q|aZe8EPsVfg3xb%YE zy2)|E&uNGMD>-CsICN|Iu1n!_e-*F$FHrv9XXgLJ(*B~hMZT$RQr4MTt^aqNew4E8 z|D**Q*YCe97_@>n>q+DG|5ic8R#W~vP5vKIx1PtjC!=T2tfT*{CvI4<{?NYj&$b-D z$Depks`3Y?->NBl|EE>-FWh=Iwq$bT{QqnAoEONxr`P_UzwAG|MU`FmCw`NRiSyQ1 z^sSbt{y%rkzNw41xJ>-Xn|d>@ZI3|E+Jz_oFWhiAySisHUoaCexME6z{DS|Z0EYk6 z1iM1)D}eTJ7I;J!Gca%qfiUBxyLEqng7PJ<5hcO-X(i=}MX3zFiOEIzxv43ci3)C+ zMXBZaMcKs)7F#nef%J=llsXrsCYEI8=P86_=B6?j>l+&B8<;D0`S=4P`k<$aV~EDY z+DW;=w;V*=nvZNU+5C}rQqlz_CC{!SJVI(WF6GQxnd2UKCqVY+fBPln@7qFd`JG>$ zUOYqk)19k!|M+uXAIZzVx&Q6e;J1Z^#hWYE*v9@%Wk39yS=Mrg9N#3}+qdu6a@4+a zn|Rvu$A;batCRKHGVkY?aXamw&!_Ko`rQ2A8w*2{Cj9$sdHcq#kCAtJ7QOf?YtZ~) z(&ooeiT>72!s0)a-j>g__`c!$Mc7FSn zPf|X&BGZ10ba<+$hig8%ebeVwrPKt8!lkw$mVB3XZkhhpdXd2evG(2HmTqcXAF$1W z<^hB5K<=gW4?(NEX!#aiSp2hFa*BI9xbcrsp;?6b7nCZD`qgwLfz@?AY zT>ts$NlN7T&s&36_C$S<*7Xdq@|$-(e6{L^RoC}ho#S75HRW;(mdKI;Vst0093F9{>OV diff --git a/templates/system/images/notice-note.png b/templates/system/images/notice-note.png new file mode 100644 index 0000000000000000000000000000000000000000..b5342ebc7952f4f838d05aa863f24aa5ad78c220 GIT binary patch literal 1335 zc$}?M`%_YR9KA-mDuY?sT1tg(8YTH`)n#;3(UK91l$6xU7nVJ+McZiCG<2=$p^ht| zxX`w%$ixx|R7T6TIGAM1Gh4hdwjsb7nqs<}>Gqb51fhZz9;c z*h3IRphri>S$O$p*y1cZEw(DuLb%)rI?LA9c4%bFFa%kRGa0NXMS&X_C{+Df@U}d1 ze7FTn_8{;fASce8Am}xXpfl-7y9C@j`1WT9Q`3eyvk4KpzgFUNeItRmE1* zMK7dX+yYllU(1*nYWyU1(Dy25)D_dU8HRtQ(=|-hN$Q8o{>IZz<}NN)ABLV=V;UWN z-&uk+GmSmPw_Bygk;W!@`CNbDm?&iM-o@$4wQr6t>x9o>l@8cnZirTDk~m|}V zplSWwI}O&CYify^dt5&J7)HeFF}a)J3~9WEHhDZ4jNP2m9G`6~1=lIy!9H+vE9g!) zcILOi(mNgJF-3;)h0;*6K;2OO{!-9~2cl1PuAqh1tE>S4e0*32^cT>EaKoL`)0N*L z<<6}o>*nf7W{t=sBMyw8Kh7ko;>jRV_hEkU)A>)IZHLgDN z{?^gi#&qoN5u}~lst{okH>21WX@~)GcOYMb3Y|xvD#spOn(dOl&^DoE4iCHQ(Ay%Q zjsb7)BaehrHEbaF1BM~2v$U;IsJi-Vr%Ko+D>SL14XXXd%5RYSzkm@rkW+zd4WjsI ztmTNIoQyUnf&QYY6H9?sY`T5aAdY-@h6*OSu;%@S{%Yfp45_28&dKYrWS}-LZgV{N z!UKKjhXCxI7xT(u*Y05S_FM?UFZv9t0eykla$K1g#mwfET!={X?fW>ToNn$00#>2@$>ib4RSlh*kUQc1U)jG zMXt!W+V#~^M~2ir*~`Nt*%eQLv+_L!+1~fOI|Q={>&DkTS6YP%kq10 zF8=vE(YjIcO96D1A`IPdkjf6!(XH3|FQAKdCwJyUa!*?5NvEDC`zG(X(y=XGik-jAL;bODsEyT{iO2uUH;6!Ypm1#@%WfSJ9aEz hJ^#rN&g0ev9F)%;cFRhP4YtGrqDO6xyb_UG^gr_G@7MqU diff --git a/templates/system/images/selector-arrow.png b/templates/system/images/selector-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..1c74b08275ec445f972536ceb5ad40ab0684a762 GIT binary patch literal 299 zc%17D@N?(olHy`uVBq!ia0vp@K+MI#3?w5ARK5Wz=3*z$5DpHG+YkL80J+8iJ|V8x zudn(3{rUU%m!Ce{{^sr8|NqbY`Sbnmy^a6>AHDxz+w&Jke*QfE_3Oj`|NlRFwCl;! zeZPLa*I2V-4p6&bNswRge`LS_#Mf38$N?oe3p^r=85p>QK$!8;-MT+OLHQEbh?3y^ zw370~qErUo#N?v<+|-oJLS?i>(=#Du7DeJzX3_IA;2uaTID$;9)t) z8oAx6=g0r+T0sknU!PV`T0TQ@k<$MZ=~wDI7W>93XufrBm)ohich#}Dm- \ No newline at end of file diff --git a/templates/system/index.php b/templates/system/index.php new file mode 100644 --- /dev/null +++ b/templates/system/index.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/templates/system/offline.php b/templates/system/offline.php new file mode 100644 --- /dev/null +++ b/templates/system/offline.php @@ -0,0 +1,61 @@ + + + + + + + direction == 'rtl') : ?> + + + + + + +
        + Joomla! Logo +

        + getCfg('sitename'); ?> +

        +

        + getCfg('offline_message'); ?> +

        + + + +
        +
        +

        +
        + +

        +

        +
        + +

        +

        + + +

        + +
        + + + + +
        +
        + + \ No newline at end of file diff --git a/tmp/index.html b/tmp/index.html new file mode 100644 --- /dev/null +++ b/tmp/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/xmlrpc/cache/index.html b/xmlrpc/cache/index.html new file mode 100644 --- /dev/null +++ b/xmlrpc/cache/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/xmlrpc/client.php b/xmlrpc/client.php new file mode 100644 --- /dev/null +++ b/xmlrpc/client.php @@ -0,0 +1,212 @@ +getCfg('xmlrpc_server') && $mainframe->getCfg('debug'))) { + JError::raiseError(403, 'XML-RPC Client or Debugging not enabled.'); +} + +// Includes the required class file for the XML-RPC Client +jimport('phpxmlrpc.xmlrpc'); + +// Get default values for the XMLRPC server host and path +$uri = JURI::getInstance(); +$host = $uri->getHost(); +$path = $uri->getPath(); +$path = dirname($path).'/'; + +$host = JRequest::getString( 'host', $host, 'post' ); +$path = JRequest::getString( 'path', $path, 'post' ); +$debug = JRequest::getVar( 'debug', 0, 'post', 'int' ); +$task = JRequest::getVar( 'task', 0, 'post', 'cmd' ); + +$output = ''; +$array = array(); + +if ($task) +{ + if ($path) + { + $client = new xmlrpc_client($path, $host, 80); + } + else + { + $client = new xmlrpc_client('', $host); + } + $client->setDebug($debug); + + switch ($task) + { + case 'list_methods': + { + jimport( 'joomla.html.html' ); + $msg = new xmlrpcmsg('system.listMethods'); + $xmlrpcdoc = $client->send($msg); + + //echo var_dump($xmlrpcdoc); + //die; + + if ($xmlrpcdoc->faultCode() == 0) + { + $result = $xmlrpcdoc->value(); + $array = $result->scalarval(); + } + else + { + print $xmlrpcdoc->faultString(); + } + + $methods = array(); + for ($i=0; $i < sizeof($array); $i++) + { + $var = new xmlrpcval($array[$i]); + $array_method = $var->scalarval(); + + $methods[$i] = JHTML::_('select.option', $array_method->scalarval()); + } + + $output = 'Methods
        '; + $output .= JHTML::_('select.genericlist', $methods, 'method', 'size="10"', 'value', 'text' ); + $output .= ' '; + $output .= ' '; + + } break; + + case 'exec': + { + $method = JRequest::getVar( 'method', '', '', 'cmd' ); + $args = JRequest::getVar( 'args' ); + + $message = new xmlrpcmsg($method, array(new xmlrpcval(0, "int"))); + + $xmlrpcdoc = $client->send($message); + + if ($xmlrpcdoc->faultCode()== 0) + { + $scalar_var = $xmlrpcdoc->value(); + $output = var_export($scalar_var->scalarval(), true); + } + else + { + print $xmlrpcdoc->faultString(); + } + + } break; + } + +} + +?> + + + + + + Joomla! XML-RPC Test Client + + + +
        +
        +
        +
        +
        Joomla! XML-RPC Test Client
        +
        +
        + + + + + + + + + +
        XML-RPC Host + + Eg: www.test.com or http://james:bond@www.test.com/xmlrpc +
        Server File + + + Debug: + /> +
        + +
        +
        +
        + + diff --git a/xmlrpc/includes/application.php b/xmlrpc/includes/application.php new file mode 100644 --- /dev/null +++ b/xmlrpc/includes/application.php @@ -0,0 +1,75 @@ +_encoding = "UTF-8"; + + //Set the root in the URI based on the application name + JURI::root(null, str_replace('/'.$this->getName(), '', JURI::base(true))); + + } + + /** + * Get the charset encoding + * + * @return string the charset encoding + * @since 1.5 + */ + function getEncoding() { + return $this->_encoding; + } + + /** + * Set the charset encoding + * + * @var $encoding The encoding of the charset + */ + function setEncoding($encoding) { + $this->_encoding = $encoding; + } +} +?> \ No newline at end of file diff --git a/xmlrpc/includes/defines.php b/xmlrpc/includes/defines.php new file mode 100644 --- /dev/null +++ b/xmlrpc/includes/defines.php @@ -0,0 +1,31 @@ + \ No newline at end of file diff --git a/xmlrpc/includes/framework.php b/xmlrpc/includes/framework.php new file mode 100644 --- /dev/null +++ b/xmlrpc/includes/framework.php @@ -0,0 +1,67 @@ +error_reporting === 0) { + error_reporting( 0 ); +} else if (@$CONFIG->error_reporting > 0) { + error_reporting( $CONFIG->error_reporting ); + ini_set( 'display_errors', 1 ); +} + +unset( $CONFIG ); + +/* + * Joomla! framework loading + */ + +// Include object abstract class +require_once(JPATH_SITE.DS.'libraries'.DS.'joomla'.DS.'utilities'.DS.'compat'.DS.'compat.php'); + +// Joomla! library imports +jimport( 'joomla.environment.uri' ); +jimport( 'joomla.user.user' ); +jimport( 'joomla.event.event'); +jimport( 'joomla.event.dispatcher'); +jimport( 'joomla.plugin.helper' ); +jimport( 'joomla.utilities.string' ); +?> \ No newline at end of file diff --git a/xmlrpc/includes/index.html b/xmlrpc/includes/index.html new file mode 100644 --- /dev/null +++ b/xmlrpc/includes/index.html @@ -0,0 +1,1 @@ + \ No newline at end of file diff --git a/xmlrpc/index.php b/xmlrpc/index.php new file mode 100644 --- /dev/null +++ b/xmlrpc/index.php @@ -0,0 +1,57 @@ +getCfg('xmlrpc_server')) { + JError::raiseError(403, 'XML-RPC Server not enabled.'); +} + +// Includes the required class file for the XML-RPC Server +jimport('phpxmlrpc.xmlrpc'); +jimport('phpxmlrpc.xmlrpcs'); + +// load all available remote calls +JPluginHelper::importPlugin( 'xmlrpc' ); +$allCalls = $mainframe->triggerEvent( 'onGetWebServices' ); +$methodsArray = array(); + +foreach ($allCalls as $calls) { + $methodsArray = array_merge($methodsArray, $calls); +} + +$xmlrpcServer = new xmlrpc_server($methodsArray, false); +// allow casting to be defined by that actual values passed +$xmlrpcServer->functions_parameters_type = 'phpvals'; +// define UTF-8 as the internal encoding for the XML-RPC server +$xmlrpcServer->xml_header($mainframe->getEncoding()); +$xmlrpc_internalencoding = $mainframe->getEncoding(); +// debug level +$xmlrpcServer->setDebug(0); +// start the service +$xmlrpcServer->service(); +?>