summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo Chatzimichos <tampakrap@gentoo.org>2012-08-05 20:03:20 +0200
committerTheo Chatzimichos <tampakrap@gentoo.org>2012-08-05 20:03:20 +0200
commitd376f4be2e866f1ea5e8758325fc8920929aea93 (patch)
tree33376c9f1f5dd33d7b74357f1269e559c6ab1c8a /plugins/wordpress-mobile-pack
parentReplace kde-breathe-tampakrap with kde-graffiti in the update script (diff)
downloadblogs-gentoo-d376f4be2e866f1ea5e8758325fc8920929aea93.tar.gz
blogs-gentoo-d376f4be2e866f1ea5e8758325fc8920929aea93.tar.bz2
blogs-gentoo-d376f4be2e866f1ea5e8758325fc8920929aea93.zip
Add wordpress-mobile-pack
Diffstat (limited to 'plugins/wordpress-mobile-pack')
-rw-r--r--plugins/wordpress-mobile-pack/COPYING176
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_ads/wpmp_ads.php281
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_ads/wpmp_ads_widget_admin.php54
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_analytics/wpmp_analytics.php179
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_analytics/wpmp_analytics_admin.php71
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_barcode/barcode_reader_list.php41
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_barcode/wpmp_barcode.php193
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_barcode/wpmp_barcode_widget_admin.php52
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo.php712
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo_admin.php130
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo_widget_admin.php33
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_switcher/lite_detection.php171
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/desktop_interstitial.php40
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile.php127
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_admin.php442
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_interstitial.php38
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_login.php163
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_switcher/wpmp_switcher.php708
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_switcher/wpmp_switcher_admin.php122
-rwxr-xr-xplugins/wordpress-mobile-pack/plugins/wpmp_transcoder/wpmp_transcoder.php529
-rw-r--r--plugins/wordpress-mobile-pack/readme.txt386
-rw-r--r--plugins/wordpress-mobile-pack/screenshot-1.pngbin0 -> 151933 bytes
-rw-r--r--plugins/wordpress-mobile-pack/screenshot-10.pngbin0 -> 44997 bytes
-rw-r--r--plugins/wordpress-mobile-pack/screenshot-2.pngbin0 -> 153596 bytes
-rw-r--r--plugins/wordpress-mobile-pack/screenshot-3.pngbin0 -> 78580 bytes
-rw-r--r--plugins/wordpress-mobile-pack/screenshot-4.pngbin0 -> 121647 bytes
-rw-r--r--plugins/wordpress-mobile-pack/screenshot-5.pngbin0 -> 183120 bytes
-rw-r--r--plugins/wordpress-mobile-pack/screenshot-6.pngbin0 -> 267417 bytes
-rw-r--r--plugins/wordpress-mobile-pack/screenshot-7.pngbin0 -> 79918 bytes
-rw-r--r--plugins/wordpress-mobile-pack/screenshot-8.pngbin0 -> 118020 bytes
-rw-r--r--plugins/wordpress-mobile-pack/screenshot-9.pngbin0 -> 240788 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/archives.php48
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/comments.php118
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/footer.php44
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/functions.php294
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/functions_persist.php194
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/group_detection.php46
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/Licence.txt31
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/Release_notes_v1_2.txt98
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/comments.php42
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/footer.php30
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/header.php54
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-30x30-icon.pngbin0 -> 844 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-40x40.pngbin0 -> 4792 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-60x60.pngbin0 -> 8910 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-bottom-left.pngbin0 -> 3180 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-bottom-right.pngbin0 -> 1471 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-flat.pngbin0 -> 522 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-top-left.pngbin0 -> 603 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-top-right.pngbin0 -> 432 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-branding-background.pngbin0 -> 263 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-form-input-shadow.pngbin0 -> 198 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-h1-gradient.pngbin0 -> 217 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-h1-shadow.pngbin0 -> 216 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-home.pngbin0 -> 273 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-email.pngbin0 -> 423 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-external.pngbin0 -> 304 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-ical.pngbin0 -> 327 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-sms.pngbin0 -> 300 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-tel.pngbin0 -> 339 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-logo.pngbin0 -> 2303 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-quote.pngbin0 -> 442 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-top.pngbin0 -> 256 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-flat.pngbin0 -> 308 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-rounded-left.pngbin0 -> 719 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-rounded-right.pngbin0 -> 1048 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-expand-collapse.pngbin0 -> 423 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-footer.pngbin0 -> 206 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-list.pngbin0 -> 327 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-nav-rounded.pngbin0 -> 1529 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-open.pngbin0 -> 404 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-rating.pngbin0 -> 2634 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-table-hover.pngbin0 -> 262 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-toggle-switch.pngbin0 -> 1581 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/vertical-divider.pngbin0 -> 197 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/index.php48
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/scripts/templates.js328
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/sidebar.php39
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/baseStyles.css1223
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/reset.css48
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S406th.css22
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S603rdFP2.css10
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S605th.css8
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/maemo.css4
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/operamini.css9
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/buttons.html62
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/content.html80
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/form.html78
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/index.html46
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/lists.html95
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/navigation.html85
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/table.html99
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/utility.html104
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/Licence.txt31
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/Release_notes_v1_1.txt126
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/footer.php30
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/header.php40
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/images/img-logo.pngbin0 -> 1130 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/images/img-lowend.pngbin0 -> 21282 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/styles/baseStyles-low.css373
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/styles/reset-low.css59
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/content.html49
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/form.html47
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/index.html27
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/lists.html51
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/table.html46
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/Licence.txt31
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/Release_notes_v1_1.txt151
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/footer.php30
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/header.php40
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-form-input-shadow.pngbin0 -> 207 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-home.pngbin0 -> 254 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-logo.pngbin0 -> 1130 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-midrange.pngbin0 -> 37590 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-top.pngbin0 -> 257 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-footer.pngbin0 -> 227 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-h1.pngbin0 -> 227 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-h2.pngbin0 -> 222 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-header.pngbin0 -> 213 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/styles/baseStyles-mid.css385
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/styles/reset-mid.css65
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/content.html53
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/form.html47
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/index.html27
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/lists.html51
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/table.html46
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/header.php81
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/dahs.pngbin0 -> 105 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/high.pngbin0 -> 82 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/radial.pngbin0 -> 194 bytes
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/shad.pngbin0 -> 79 bytes
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/index.php182
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/links.php42
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/screenshot.pngbin0 -> 25419 bytes
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/searchform.php35
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/sidebar.php58
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/style.css80
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/style.css.nokia.css185
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_base/style_structure.css239
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/wpmp_theme_theme_admin.php153
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_base/wpmp_theme_widget_admin.php106
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_blue/screenshot.pngbin0 -> 25231 bytes
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_blue/style.css33
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_blue/style.css.nokia.css54
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_green/screenshot.pngbin0 -> 25269 bytes
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_green/style.css33
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_green/style.css.nokia.css54
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_red/screenshot.pngbin0 -> 25213 bytes
-rwxr-xr-xplugins/wordpress-mobile-pack/themes/mobile_pack_red/style.css33
-rw-r--r--plugins/wordpress-mobile-pack/themes/mobile_pack_red/style.css.nokia.css54
-rwxr-xr-xplugins/wordpress-mobile-pack/wordpress-mobile-pack.php275
-rw-r--r--plugins/wordpress-mobile-pack/wordpress-mobile-pack.pot1453
-rwxr-xr-xplugins/wordpress-mobile-pack/wordpress_mobile_pack.php5
153 files changed, 12995 insertions, 0 deletions
diff --git a/plugins/wordpress-mobile-pack/COPYING b/plugins/wordpress-mobile-pack/COPYING
new file mode 100644
index 00000000..d9a10c0d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/COPYING
@@ -0,0 +1,176 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_ads/wpmp_ads.php b/plugins/wordpress-mobile-pack/plugins/wpmp_ads/wpmp_ads.php
new file mode 100755
index 00000000..fa7fb35f
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_ads/wpmp_ads.php
@@ -0,0 +1,281 @@
+<?php
+
+/*
+$Id: wpmp_ads.php 567923 2012-07-05 18:10:01Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_ads/wpmp_ads.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+/*
+Plugin Name: Mobile Ads
+Plugin URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: Provides a widget (intended to be used on a mobile theme) that displays <a href='http://www.google.com/adsense/www/mobile/' target='_blank'>Google</a> or <a href='http://www.admob.com' target='_blank'>AdMob</a> ads. This plugin is tested with WordPress 2.5, 2.6, 2.7 and 2.8.
+Version: 1.2.5
+Author: James Pearce & friends
+Author URI: http://www.assembla.com/spaces/wordpress-mobile-pack
+*/
+
+
+add_action('init', 'wpmp_ads_init');
+
+function wpmp_ads_init() {
+ wp_register_sidebar_widget('wpmp_ads_widget', __('Mobile Ads', 'wpmp'), 'wpmp_ads_widget',
+ array('classname' => 'wpmp_ads_widget', 'description' => __( "Displays AdMob or Google mobile ads", 'wpmp'))
+ );
+ wp_register_widget_control('wpmp_ads_widget', __('Mobile Ads', 'wpmp'), 'wpmp_ads_widget_control');
+}
+
+function wpmp_ads_activate() {
+ foreach(array(
+ 'wpmp_ads_title'=>__('Mobile ads', 'wpmp'),
+ 'wpmp_ads_provider'=>'none',
+ 'wpmp_ads_publisher_id'=>'',
+ 'wpmp_ads_desktop_disable'=>'true',
+ ) as $name=>$value) {
+ if (get_option($name)=='') {
+ update_option($name, $value);
+ }
+ }
+}
+
+function wpmp_ads_deactivate() {}
+
+function wpmp_ads_widget($args) {
+ if(get_option('wpmp_ads_desktop_disable') &&
+ function_exists('wpmp_switcher_outcome') &&
+ wpmp_switcher_outcome() == WPMP_SWITCHER_DESKTOP_PAGE
+ ) {
+ return;
+ }
+ if (($provider = get_option('wpmp_ads_provider'))!='' && ($publisher_id = get_option('wpmp_ads_publisher_id'))!='') {
+ extract($args);
+ $buffer = $before_widget;
+ if (($title = get_option('wpmp_ads_title'))=='') {
+ $title = __("Mobile ads", 'wpmp');
+ }
+
+ //nice to see them in accordions
+ $before_title = str_replace('class="collapsed"', 'class="expanded"', $before_title);
+ $after_title = str_replace('style="display: none;"', 'style="display: block;"', $after_title);
+
+ $buffer .= $before_title . $title . $after_title;
+ if(strpos($provider, '_')!==false) {
+ $provider = explode('_', $provider, 2);
+ $format = $provider[1];
+ $provider = $provider[0];
+ }
+ if (function_exists($function = "wpmp_ads_insertion_$provider")) {
+ if(($ad =call_user_func($function, $publisher_id, $format))!='') {
+ print $buffer;
+ print "<ul><li>$ad</li></ul>";
+ print $after_widget;
+ }
+ }
+ }
+}
+
+function wpmp_ads_widget_control() {
+ if($_POST['wpmp_ads']) {
+ wpmp_ads_widget_options_write();
+ }
+ include('wpmp_ads_widget_admin.php');
+}
+
+function wpmp_ads_widget_options_write() {
+ foreach(array(
+ 'wpmp_ads_title'=>false,
+ 'wpmp_ads_provider'=>false,
+ 'wpmp_ads_publisher_id'=>false,
+ 'wpmp_ads_desktop_disable'=>true
+ ) as $option=>$checkbox) {
+ if(isset($_POST[$option])){
+ $value = $_POST[$option];
+ $value = trim($value);
+ $value = stripslashes_deep($value);
+ update_option($option, $value);
+ } elseif ($checkbox) {
+ update_option($option, 'false');
+ }
+ }
+}
+
+function wpmp_ads_option($option, $onchange='', $class='', $style='') {
+ switch ($option) {
+ case 'wpmp_ads_title':
+ case 'wpmp_ads_publisher_id':
+ return wpmp_ads_option_text(
+ $option, $onchange, $class, $style
+ );
+
+ case 'wpmp_ads_provider':
+ return wpmp_ads_option_dropdown(
+ $option,
+ array(
+ "none"=>__("None", 'wpmp'),
+ "admob"=>__("AdMob", 'wpmp'),
+ "google_mobile_single"=>__("Google (single ad)", 'wpmp'),
+ "google_mobile_double"=>__("Google (double ads)", 'wpmp'),
+ ),
+ $onchange
+ );
+
+ case 'wpmp_ads_desktop_disable':
+ return wpmp_ads_option_checkbox(
+ $option, $onchange
+ );
+
+ }
+}
+
+function wpmp_ads_option_text($option, $onchange='', $class='', $style='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ if ($class!='') {
+ $class = 'class="' . attribute_escape($class) . '"';
+ }
+ if ($style!='') {
+ $style = 'style="' . attribute_escape($style) . '"';
+ }
+ $text = '<input type="text" id="' . $option . '" name="' . $option . '" value="' . attribute_escape(get_option($option)) . '" ' . $onchange . ' ' . $class . ' ' . $style . '/>';
+ return $text;
+}
+function wpmp_ads_option_dropdown($option, $options, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ $dropdown = "<select id='$option' name='$option' $onchange>";
+ foreach($options as $value=>$description) {
+ if(get_option($option)==$value) {
+ $selected = ' selected="true"';
+ } else {
+ $selected = '';
+ }
+ $dropdown .= '<option value="' . attribute_escape($value) . '"' . $selected . '>' . __($description, 'wpmp') . '</option>';
+ }
+ $dropdown .= "</select>";
+ return $dropdown;
+}
+function wpmp_ads_option_checkbox($option, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '"';
+ }
+ $checkbox = '<input type="checkbox" id="' . $option . '" name="' . $option . '" value="true" ' . (get_option($option)==='true'?'checked="true"':'') . ' ' . $onchange . ' />';
+ return $checkbox;
+}
+
+
+function wpmp_ads_insertion_admob($publisher_id, $format='') {
+ $html = '';
+ $ua = urlencode(getenv("HTTP_USER_AGENT"));
+ $ip = urlencode($_SERVER['REMOTE_ADDR']);
+ $url = "http://ads.admob.com/ad_source.php?s=$publisher_id&u=$ua&i=$ip";
+ if($ip == "127.0.0.1") {
+ $url .= "&m=test";
+ }
+ $response = wpmp_ads_http($url);
+ $link = explode("><", $response);
+ if (sizeof($link) == 2) {
+ $ad_text = $link[0];
+ $ad_link = $link[1];
+ if (isset($ad_link) && ($ad_link !='')) {
+ $html .= '<a href="'. $ad_link .'">'. $ad_text . '</a>';
+ }
+ }
+ return $html;
+}
+function wpmp_ads_insertion_google($publisher_id, $format='mobile_single') {
+ //'color_border'=>'FFFFFF',
+ //'color_bg'=>'FFFFFF',
+ //'color_link'=>'333333',
+ //'color_text'=>'666666',
+ //'color_url'=>'333399',
+ $params = array(
+ 'ad_type'=>'text_image',
+ 'channel'=>'',
+ 'client'=>$publisher_id,
+ 'format'=>$format,
+ 'https'=>$_SERVER['HTTPS'],
+ 'host'=>$_SERVER['HTTP_HOST'],
+ 'ip'=>$_SERVER['REMOTE_ADDR'],
+ 'markup'=>'xhtml',
+ 'oe'=>'utf8',
+ 'output'=>'xhtml',
+ 'ref'=>$_SERVER['HTTP_REFERER'],
+ 'url'=>$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],
+ 'useragent'=>$_SERVER['HTTP_USER_AGENT']
+ );
+ $screen_res = $_SERVER['HTTP_UA_PIXELS'];
+ $delimiter = 'x';
+ if ($screen_res == '') {
+ $screen_res = $_SERVER['HTTP_X_UP_DEVCAP_SCREENPIXELS'];
+ $delimiter = ',';
+ }
+ $res_array = explode($delimiter, $screen_res);
+ if (sizeof($res_array) == 2) {
+ $params['u_w'] = $res_array[0];
+ $params['u_h'] = $res_array[1];
+ }
+ $dcmguid = $_SERVER['HTTP_X_DCMGUID'];
+ if ($dcmguid != '') {
+ $params['dcmguid'] = $dcmguid;
+ }
+ $google_dt = time();
+ $url = 'http://pagead2.googlesyndication.com/pagead/ads?';
+ $google_scheme = ($params['https'] == 'on') ? 'https://' : 'http://';
+ foreach ($params as $param => $value) {
+ if ($param == 'client') {
+ $url .= '&client=' . urlencode("ca-mb-$value");
+ } elseif (strpos($param, 'color_') === 0) {
+ $color_array = split(',', $value);
+ $url .= '&' . $param . '=' . $color_array[$google_dt % sizeof($color_array)];
+ } elseif ((strpos($param, 'host') === 0) || (strpos($param, 'url') === 0)) {
+ $url .= '&' . $param . '=' . urlencode($google_scheme . $value);
+ } else {
+ $url .= '&' . $param . '=' . urlencode($value);
+ }
+ }
+ $url .= '&dt=' . round(1000 * array_sum(explode(' ', microtime())));
+ $html = wpmp_ads_http($url);
+ if (substr($html, 0, 15) == "<!-- google_afm" && substr($html, -3) == "-->") {
+ $html = "";
+ }
+ return $html;
+}
+
+
+function wpmp_ads_http($url) {
+ $html = "";
+ if($handle = @fopen($url, 'r')) {
+ while (!feof($handle)) {
+ $html .= fread($handle, 8192);
+ }
+ fclose($handle);
+ } elseif ($handle = @curl_init($url)) {
+ curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
+ $html = curl_exec($handle);
+ curl_close($handle);
+ }
+ return $html;
+}
+
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_ads/wpmp_ads_widget_admin.php b/plugins/wordpress-mobile-pack/plugins/wpmp_ads/wpmp_ads_widget_admin.php
new file mode 100755
index 00000000..2fa517f7
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_ads/wpmp_ads_widget_admin.php
@@ -0,0 +1,54 @@
+<?php
+
+/*
+$Id: wpmp_ads_widget_admin.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_ads/wpmp_ads_widget_admin.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+<p>
+ <label for="wpmp_ads_title"><?php _e('Title:', 'wpmp'); ?></label>
+ <?php print wpmp_ads_option('wpmp_ads_title', '', 'widefat'); ?>
+</p>
+<p>
+ <label for="wpmp_ads_provider"><?php _e('Provider:', 'wpmp'); ?></label>
+ <?php print wpmp_ads_option('wpmp_ads_provider'); ?>
+</p>
+<p>
+ <label for="wpmp_ads_publisher_id"><?php _e('Publisher ID:', 'wpmp'); ?></label>
+ <br />
+ <?php print wpmp_ads_option('wpmp_ads_publisher_id', '', 'widefat'); ?>
+ <br /><?php _e("Examples: a14948dbe57548e (for AdMob) or pub-2709587966093607 (for Google)", 'wpmp'); ?>
+</p>
+<p>
+ <?php printf(__("This widget should only be used on mobile themes. If you are using a theme from, or derived from, the WordPress Mobile Pack, you will need to enable this widget <a%s>here</a>.", 'wpmp'), " href='/wp-admin/themes.php?page=wpmp_theme_widget_admin' target='_blank'"); ?>
+</p>
+<p>
+ <?php print wpmp_ads_option('wpmp_ads_desktop_disable'); ?>
+ <label for="wpmp_ads_desktop_disable"><?php _e('Attempt to automatically disable for desktop themes (when switcher is running)', 'wpmp'); ?></label>
+</p>
+<p>
+ <?php _e('Note also that this widget will be completely hidden if no ads are returned from the provider you have selected.', 'wpmp'); ?>
+</p>
+<input type="hidden" id="wpmp_ads" name="wpmp_ads" value="1" />
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_analytics/wpmp_analytics.php b/plugins/wordpress-mobile-pack/plugins/wpmp_analytics/wpmp_analytics.php
new file mode 100755
index 00000000..d8dc43c0
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_analytics/wpmp_analytics.php
@@ -0,0 +1,179 @@
+<?php
+
+/*
+$Id: wpmp_switcher.php 191227 2010-01-07 20:45:22Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/wpmp_switcher.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+/*
+Plugin Name: Mobile Analytics
+Plugin URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: Provides simple local mobile analytics and hooks to external providers
+Version: 1.2.5
+Author: James Pearce & friends
+Author URI: http://www.assembla.com/spaces/wordpress-mobile-pack
+*/
+
+add_action('init', 'wpmp_analytics_init');
+add_action('admin_menu', 'wpmp_analytics_admin_menu');
+add_action('wp_footer', 'wpmp_analytics_wp_footer');
+
+function wpmp_analytics_init() {
+ if(($provider_id=get_option('wpmp_analytics_provider_id'))=='') {
+ return;
+ }
+ switch (get_option('wpmp_analytics_provider')) {
+ }
+}
+
+function wpmp_analytics_activate() {
+ foreach(array(
+ 'wpmp_analytics_provider'=>'',
+ 'wpmp_analytics_provider_id'=>'',
+ ) as $name=>$value) {
+ if (get_option($name)=='') {
+ update_option($name, $value);
+ }
+ }
+}
+
+function wpmp_analytics_wp_footer() {
+ if(($provider_id=get_option('wpmp_analytics_provider_id'))=='') {
+ return;
+ }
+ print "<span id='wpmp_analytics'>";
+ switch (get_option('wpmp_analytics_provider')) {
+ }
+ print "</span>";
+}
+
+function wpmp_analytics_admin_menu() {
+ add_management_page(__('Mobile Analytics', 'wpmp'), __('Mobile Analytics', 'wpmp'), 3, 'wpmp_analytics_admin', 'wpmp_analytics_admin');
+
+}
+function wpmp_analytics_admin() {
+ if(sizeof($_POST)>0) {
+ print '<div id="message" class="updated fade"><p><strong>' . wpmp_analytics_options_write() . '</strong></p></div>';
+ if(isset($_POST['wpmp_analytics_local_reset']) && $_POST['wpmp_analytics_local_reset']=='true') {
+ if (wpmp_analytics_local_enabled()) {
+ wpmp_switcher_hit_reset();
+ print '<div id="message" class="updated fade"><p><strong>' . __('Hit counter reset.', 'wpmp') . '</strong></p></div>';
+ }
+ }
+ }
+ include_once('wpmp_analytics_admin.php');
+}
+
+
+function wpmp_analytics_options_write() {
+ $message = __('Settings saved.', 'wpmp');
+ foreach(array(
+ 'wpmp_analytics_provider'=>false,
+ 'wpmp_analytics_provider_id'=>false,
+ ) as $option=>$checkbox) {
+ if(isset($_POST[$option])){
+ $value = $_POST[$option];
+ if(!is_array($value)) {
+ $value = trim($value);
+ }
+ $value = stripslashes_deep($value);
+ update_option($option, $value);
+ } elseif ($checkbox) {
+ update_option($option, 'false');
+ }
+ }
+ return $message;
+}
+
+function wpmp_analytics_option($option, $onchange='', $class='', $style='') {
+ switch ($option) {
+ case 'wpmp_analytics_provider':
+ return wpmp_analytics_option_dropdown(
+ $option,
+ array(
+ 'none'=>__('Disabled', 'wpmp'),
+ ),
+ $onchange
+ );
+ case 'wpmp_analytics_provider_id':
+ return wpmp_analytics_option_text(
+ $option,
+ $onchange,
+ $class,
+ $style
+ );
+ case 'wpmp_analytics_local_reset':
+ return wpmp_analytics_option_checkbox(
+ $option,
+ $onchange
+ );
+ }
+}
+
+
+function wpmp_analytics_option_dropdown($option, $options, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ $dropdown = "<select id='$option' name='$option' $onchange>";
+ foreach($options as $value=>$description) {
+ if(get_option($option)==$value) {
+ $selected = ' selected="true"';
+ } else {
+ $selected = '';
+ }
+ $dropdown .= '<option value="' . attribute_escape($value) . '"' . $selected . '>' . __($description, 'wpmp') . '</option>';
+ }
+ $dropdown .= "</select>";
+ return $dropdown;
+}
+
+function wpmp_analytics_option_text($option, $onchange='', $class='', $style='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ if ($class!='') {
+ $class = 'class="' . attribute_escape($class) . '"';
+ }
+ if ($style!='') {
+ $style = 'style="' . attribute_escape($style) . '"';
+ }
+ $text = '<input type="text" id="' . $option . '" name="' . $option . '" value="' . attribute_escape(get_option($option)) . '" ' . $onchange . ' ' . $class . ' ' . $style . '/>';
+ return $text;
+}
+
+function wpmp_analytics_option_checkbox($option, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '"';
+ }
+ $checkbox = '<input type="checkbox" id="' . $option . '" name="' . $option . '" value="true" ' . (get_option($option)==='true'?'checked="true"':'') . ' ' . $onchange . ' />';
+ return $checkbox;
+}
+
+function wpmp_analytics_local_enabled() {
+ return function_exists('wpmp_switcher_hit_reset');
+}
+function wpmp_analytics_local_summary() {
+ return wpmp_switcher_hit_summary();
+}
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_analytics/wpmp_analytics_admin.php b/plugins/wordpress-mobile-pack/plugins/wpmp_analytics/wpmp_analytics_admin.php
new file mode 100755
index 00000000..8bd88cb8
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_analytics/wpmp_analytics_admin.php
@@ -0,0 +1,71 @@
+<?php
+
+/*
+$Id: wpmp_switcher_admin.php 188277 2009-12-30 21:30:27Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/wpmp_switcher_admin.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+<div class="wrap">
+ <h2>
+ <?php _e('Mobile Analytics', 'wpmp') ?>
+ <p style='font-size:small;font-style:italic;margin:0'>
+ <?php _e('Part of the WordPress Mobile Pack', 'wpmp'); ?>
+ </p>
+ </h2>
+ <form method="post" action="">
+ <p>
+ <?php _e('The Mobile Pack keeps a basic local tally of mobile traffic. However, we recommend you register with an external provider to obtain much richer statistics.', 'wpmp'); ?>
+ </p>
+ <table class="form-table">
+ <?php if (wpmp_analytics_local_enabled()) { ?>
+ <tr>
+ <th><?php _e('Local analytics', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_analytics_local_summary(); ?>
+ <br />
+ <?php print wpmp_analytics_option('wpmp_analytics_local_reset'); ?> <strong><?php _e("Reset counter", 'wpmp'); ?></strong>
+ </td>
+ </tr>
+ <?php } ?>
+ </table>
+ <p>
+ <?php _e('Note that Percent Mobile\'s external analytics service is no longer available.', 'wpmp'); ?>
+ </p>
+ <p class="submit">
+ <input type="submit" name="Submit" value="<?php _e('Save Changes', 'wpmp'); ?>" />
+ </p>
+ </form>
+</div>
+
+<script>
+ var wpmp_pale = 0.3;
+ var wpmp_speed = 'slow';
+ function wpmpProvider(speed) {
+ if (speed==null) {speed=wpmp_speed;}
+ var value = jQuery("#wpmp_analytics_provider").val();
+ jQuery(".wpmp_provider").children().fadeTo(speed, (value!='none') ? 1 : wpmp_pale);
+ }
+ wpmpProvider(-1);
+</script>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_barcode/barcode_reader_list.php b/plugins/wordpress-mobile-pack/plugins/wpmp_barcode/barcode_reader_list.php
new file mode 100755
index 00000000..deb01a1a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_barcode/barcode_reader_list.php
@@ -0,0 +1,41 @@
+<?php
+
+/*
+$Id: barcode_reader_list.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_barcode/barcode_reader_list.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+function wpmp_barcode_barcode_reader_list() {
+ return array(
+ "Active Print" => "http://www.activeprint.org/glass.html",
+ "BeeTagg" => "http://www.beetagg.com/downloadreader/",
+ "Google" => "http://code.google.com/p/zxing",
+ "i-nigma" => "http://www.i-nigma.com/personal/GetReader.asp",
+ "Kaywa" => "http://reader.kaywa.com/getit",
+ "Nokia" => "http://mobilecodes.nokia.com/index.htm",
+ "QuickMark" => "http://www.quickmark.com.tw/En/basic/download.asp",
+ "UpCode" => "http://www.upcode.co.uk/page/1346211",
+ );
+}
+
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_barcode/wpmp_barcode.php b/plugins/wordpress-mobile-pack/plugins/wpmp_barcode/wpmp_barcode.php
new file mode 100755
index 00000000..b68aa4e3
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_barcode/wpmp_barcode.php
@@ -0,0 +1,193 @@
+<?php
+
+/*
+$Id: wpmp_barcode.php 567923 2012-07-05 18:10:01Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_barcode/wpmp_barcode.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+/*
+Plugin Name: Mobile Barcode
+Plugin URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: Provides a widget (intended to be used on a desktop theme) that displays a 2D-barcode for navigating to the mobile site. This plugin is tested with WordPress 2.5, 2.6, 2.7 and 2.8.
+Version: 1.2.5
+Author: James Pearce & friends
+Author URI: http://www.assembla.com/spaces/wordpress-mobile-pack
+*/
+
+
+add_action('init', 'wpmp_barcode_init');
+
+function wpmp_barcode_init() {
+ wp_register_sidebar_widget('wpmp_barcode_widget', __('Mobile Barcode', 'wpmp'), 'wpmp_barcode_widget',
+ array('classname' => 'wpmp_barcode_widget', 'description' => __( "A 2D-barcode used for navigating to a mobile URL", 'wpmp'))
+ );
+ wp_register_widget_control('wpmp_barcode_widget', __('Mobile Barcode', 'wpmp'), 'wpmp_barcode_widget_control');
+}
+function wpmp_barcode_activate() {
+ foreach(array(
+ 'wpmp_barcode_title'=>__('Our mobile site', 'wpmp'),
+ 'wpmp_barcode_link'=>
+ function_exists('wpmp_switcher_domains') ?
+ "http://" . wpmp_switcher_domains('mobile', true) :
+ ''
+ ,
+ 'wpmp_barcode_size'=>'190',
+ 'wpmp_barcode_help'=>'true',
+ 'wpmp_barcode_reader_list'=>'true'
+ ) as $name=>$value) {
+ if (get_option($name)=='') {
+ update_option($name, $value);
+ }
+ }
+}
+
+function wpmp_barcode_deactivate() {}
+
+function wpmp_barcode_widget($args) {
+ extract($args);
+ print $before_widget;
+ if (($title = get_option('wpmp_barcode_title'))=='') {
+ $title = __("Our mobile site", 'wpmp');
+ }
+ print $before_title . $title . $after_title;
+ $size = get_option('wpmp_barcode_size');
+ if(!is_numeric($size) && $size < 64) {
+ $size = 190;
+ } else {
+ $size = floor($size);
+ }
+
+ $link = get_option('wpmp_barcode_link');
+
+ //If the user hasn't specified a URL in the widget admin panel
+ if (trim($link)=='') {
+ //Get the unique ID of this post http://codex.wordpress.org/Function_Reference/get_the_ID
+ //We can use this to craft a shorter URL, thus making the QR code smaller and easier to scan.
+ //http://example.com/?p=1234 rather than http://example.com/2010/01/05/some-title
+ //Using http://codex.wordpress.org/Function_Reference/get_page
+ $page_data = get_page( get_the_ID() );
+ $link = $page_data->guid; //[guid] => (http://mydomain/?page_id={[ID]})
+
+ //We need to add wpmp_switcher=true to force the mobile version if the switcher uses domain mapping.
+ if (get_option('wpmp_switcher_mode') != 'browser' ) {
+ $link .= "&wpmp_switcher=mobile";
+ }
+ }
+
+ $url = "http://chart.apis.google.com/chart?chs=" .
+ $size . "x" . $size .
+ "&amp;cht=qr&amp;choe=UTF-8&amp;chl=" .
+ urlencode($link);
+
+ print "<img width='$size' height='$size' src='$url' alt='QR Code - scan to visit our mobile site' />";
+ if(get_option('wpmp_barcode_help')=='true') {
+ print "<p>";
+ printf (__('This is a 2D-barcode containing the address of our <a %s>mobile site</a>.', 'wpmp'), "href='$link'");
+ print __('If your mobile has a barcode reader, simply snap this bar code with the camera and launch the site.', 'wpmp');
+ print "</p>";
+ }
+ if(get_option('wpmp_barcode_reader_list')=='true') {
+ print "<p>";
+ print __('Many companies provide barcode readers that you can install on your mobile, and all of the following are compatible with this format:', 'wpmp');
+ print "</p>";
+ include_once('barcode_reader_list.php');
+ print "<ul>";
+ foreach(wpmp_barcode_barcode_reader_list() as $name=>$url) {
+ print "<li><a href='$url' target='_blank'>$name</a></li>";
+ }
+ print "</ul>";
+ }
+ print $after_widget;
+}
+
+function wpmp_barcode_widget_control() {
+ if($_POST['wpmp_barcode']) {
+ wpmp_barcode_widget_options_write();
+ }
+ include('wpmp_barcode_widget_admin.php');
+}
+
+function wpmp_barcode_widget_options_write() {
+ foreach(array(
+ 'wpmp_barcode_title'=>false,
+ 'wpmp_barcode_link'=>false,
+ 'wpmp_barcode_size'=>false,
+ 'wpmp_barcode_help'=>true,
+ 'wpmp_barcode_reader_list'=>true,
+ ) as $option=>$checkbox) {
+ if(isset($_POST[$option])){
+ $value = $_POST[$option];
+ $value = trim($value);
+ $value = stripslashes_deep($value);
+ update_option($option, $value);
+ } elseif ($checkbox) {
+ update_option($option, 'false');
+ }
+ }
+ if (!is_numeric(get_option('wpmp_barcode_size'))) {
+ update_option('wpmp_barcode_size', '190');
+ }
+}
+
+function wpmp_barcode_option($option, $onchange='', $class='', $style='') {
+ switch ($option) {
+ case 'wpmp_barcode_title':
+ case 'wpmp_barcode_link':
+ case 'wpmp_barcode_size':
+ return wpmp_barcode_option_text(
+ $option, $onchange, $class, $style
+ );
+
+ case 'wpmp_barcode_help':
+ case 'wpmp_barcode_reader_list':
+ return wpmp_barcode_option_checkbox(
+ $option, $onchange
+ );
+ }
+}
+
+function wpmp_barcode_option_text($option, $onchange='', $class='', $style='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ if ($class!='') {
+ $class = 'class="' . attribute_escape($class) . '"';
+ }
+ if ($style!='') {
+ $style = 'style="' . attribute_escape($style) . '"';
+ }
+ $text = '<input type="text" id="' . $option . '" name="' . $option . '" value="' . attribute_escape(get_option($option)) . '" ' . $onchange . ' ' . $class . ' ' . $style . '/>';
+ return $text;
+}
+
+function wpmp_barcode_option_checkbox($option, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '"';
+ }
+ $checkbox = '<input type="checkbox" id="' . $option . '" name="' . $option . '" value="true" ' . (get_option($option)==='true'?'checked="true"':'') . ' ' . $onchange . ' />';
+ return $checkbox;
+}
+
+
+
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_barcode/wpmp_barcode_widget_admin.php b/plugins/wordpress-mobile-pack/plugins/wpmp_barcode/wpmp_barcode_widget_admin.php
new file mode 100755
index 00000000..e1134505
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_barcode/wpmp_barcode_widget_admin.php
@@ -0,0 +1,52 @@
+<?php
+
+/*
+$Id: wpmp_barcode_widget_admin.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_barcode/wpmp_barcode_widget_admin.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+<p>
+ <label for="wpmp_barcode_title"><?php _e('Title:', 'wpmp'); ?></label>
+ <?php print wpmp_barcode_option('wpmp_barcode_title', '', 'widefat'); ?>
+</p>
+<p>
+ <label for="wpmp_barcode_link"><?php _e('Link:', 'wpmp'); ?></label>
+ <?php print wpmp_barcode_option('wpmp_barcode_link', '', 'widefat'); ?>
+ <br /><?php _e('If you leave this blank, the URL in the barcode will be dynamic, and will be the mobile equivalent of the actual page the user is on.', 'wpmp'); ?>
+</p>
+<p>
+ <label for="wpmp_barcode_size"><?php _e('Size:', 'wpmp'); ?></label>
+ <br />
+ <?php print wpmp_barcode_option('wpmp_barcode_size', '', 'widefat', 'width:23%'); ?>px
+</p>
+<p>
+ <?php print wpmp_barcode_option('wpmp_barcode_help'); ?>
+ <label for="wpmp_barcode_help"><?php _e('Show explanation', 'wpmp'); ?></label>
+</p>
+<p>
+ <?php print wpmp_barcode_option('wpmp_barcode_reader_list'); ?>
+ <label for="wpmp_barcode_reader_list"><?php _e('Show list of readers', 'wpmp'); ?></label>
+</p>
+<input type="hidden" id="wpmp_barcode" name="wpmp_barcode" value="1" />
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo.php b/plugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo.php
new file mode 100755
index 00000000..ebd23817
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo.php
@@ -0,0 +1,712 @@
+<?php
+
+/*
+$Id: wpmp_mpexo.php 180811 2009-12-08 06:13:51Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_mpexo/wpmp_mpexo.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+/*
+Plugin Name: mpexo client
+Plugin URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: Publishes information about this blog to the mpexo directory service. This plugin is tested with WordPress 2.5, 2.6, 2.7 and 2.8.
+Version: 1.2.5
+Author: James Pearce & friends
+Author URI: http://www.assembla.com/spaces/wordpress-mobile-pack
+*/
+
+add_action('init', 'wpmp_mpexo_init', 100);
+add_action('shutdown', 'wpmp_mpexo_shutdown');
+add_action('admin_menu', 'wpmp_mpexo_admin_menu');
+
+function wpmp_mpexo_add_action_options_core() {
+ add_action('update_option_siteurl', 'wpmp_mpexo_update_option_siteurl', 100, 2);
+ add_action('update_option_blogname', 'wpmp_mpexo_update_option_blogname', 100, 2);
+ add_action('update_option_blogdescription', 'wpmp_mpexo_update_option_blogdescription', 100, 0);
+ add_action('update_option_admin_email', 'wpmp_mpexo_update_option_admin_email', 100, 0);
+}
+wpmp_mpexo_add_action_options_core();
+
+function wpmp_mpexo_add_action_options_mpexo() {
+ add_action('update_option_wpmp_mpexo_enabled_beta', 'wpmp_mpexo_update_option_wpmp_mpexo_enabled', 100, 2);
+ add_action('update_option_wpmp_mpexo_description', 'wpmp_mpexo_update_option_blogdescription', 100, 0);
+ add_action('update_option_wpmp_mpexo_description_custom', 'wpmp_mpexo_update_option_blogdescription', 100, 0);
+ add_action('update_option_wpmp_mpexo_email', 'wpmp_mpexo_update_option_admin_email', 100, 0);
+ add_action('update_option_wpmp_mpexo_classification', 'wpmp_mpexo_update_option_wpmp_mpexo_classification', 100, 2);
+ add_action('update_option_wpmp_mpexo_content', 'wpmp_mpexo_update_option_wpmp_mpexo_content', 100, 2);
+ add_action('update_option_wpmp_mpexo_popularity', 'wpmp_mpexo_update_option_wpmp_mpexo_popularity', 100, 2);
+ add_action('update_option_wpmp_mpexo_diagnostics', 'wpmp_mpexo_update_option_wpmp_mpexo_diagnostics', 100, 2);
+
+ add_action('add_option_wpmp_mpexo_enabled_beta', 'wpmp_mpexo_update_option_wpmp_mpexo_enabled', 100, 2);
+ add_action('add_option_wpmp_mpexo_description', 'wpmp_mpexo_update_option_blogdescription', 100, 0);
+ add_action('add_option_wpmp_mpexo_description_custom', 'wpmp_mpexo_update_option_blogdescription', 100, 0);
+ add_action('add_option_wpmp_mpexo_email', 'wpmp_mpexo_update_option_admin_email', 100, 0);
+ add_action('add_option_wpmp_mpexo_classification', 'wpmp_mpexo_update_option_wpmp_mpexo_classification', 100, 2);
+ add_action('add_option_wpmp_mpexo_content', 'wpmp_mpexo_update_option_wpmp_mpexo_content', 100, 2);
+ add_action('add_option_wpmp_mpexo_popularity', 'wpmp_mpexo_update_option_wpmp_mpexo_popularity', 100, 2);
+ add_action('add_option_wpmp_mpexo_diagnostics', 'wpmp_mpexo_update_option_wpmp_mpexo_diagnostics', 100, 2);
+}
+wpmp_mpexo_add_action_options_mpexo();
+
+function wpmp_mpexo_add_action_options_wpmp($call_now=false) {
+ foreach(array(
+
+ 'wad'=>'wpmp_ads_desktop_disable',
+ 'wap'=>'wpmp_ads_provider',
+ 'wat'=>'wpmp_ads_title',
+
+ 'wbh'=>'wpmp_barcode_help',
+ 'wbl'=>'wpmp_barcode_link',
+ 'wbr'=>'wpmp_barcode_reader_list',
+ 'wbs'=>'wpmp_barcode_size',
+ 'wbt'=>'wpmp_barcode_title',
+
+ 'wsd'=>'wpmp_switcher_desktop_domains',
+ 'wse'=>'wpmp_switcher_detection',
+ 'wsf'=>'wpmp_switcher_footer_links',
+ 'wsm'=>'wpmp_switcher_mobile_domains',
+ 'wst'=>'wpmp_switcher_mobile_theme',
+ 'wss'=>'wpmp_switcher_mobile_theme_stylesheet',
+ 'wsp'=>'wpmp_switcher_mobile_theme_template',
+ 'wso'=>'wpmp_switcher_mode',
+
+ 'wth'=>'wpmp_theme_home_link_in_menu',
+ 'wtc'=>'wpmp_theme_post_count',
+ 'wts'=>'wpmp_theme_post_summary',
+ 'wtm'=>'wpmp_theme_post_summary_metadata',
+ 'wtl'=>'wpmp_theme_teaser_length',
+ 'wto'=>'wpmp_theme_widget_list_count',
+ 'wtr'=>'wpmp_theme_transcoder_remove_media',
+ 'wtp'=>'wpmp_theme_transcoder_partition_pages',
+ 'wti'=>'wpmp_theme_transcoder_shrink_images',
+ 'wtf'=>'wpmp_theme_transcoder_simplify_styling',
+ 'wtn'=>'wpmp_theme_nokia_templates',
+
+ 'wpt'=>'current_theme',
+
+ ) as $key=>$option) {
+ if($call_now) {
+ wpmp_mpexo_add_to_payload($key, get_option($option));
+ } else {
+ $function = create_function('$was,$is', "wpmp_mpexo_add_to_payload('$key', \$is);");
+ add_action("update_option_$option", $function, 100, 2);
+ }
+ }
+}
+wpmp_mpexo_add_action_options_wpmp();
+
+function wpmp_mpexo_add_action_classification() {
+ add_action('created_post_tag', 'wpmp_mpexo_update_tag');
+ add_action('edited_post_tag', 'wpmp_mpexo_update_tag');
+ add_action('delete_post_tag', 'wpmp_mpexo_delete_tag');
+
+ add_action('created_category', 'wpmp_mpexo_update_category');
+ add_action('edited_category', 'wpmp_mpexo_update_category');
+ add_action('delete_category', 'wpmp_mpexo_delete_category');
+}
+wpmp_mpexo_add_action_classification();
+
+function wpmp_mpexo_add_action_content() {
+ add_action('publish_post', 'wpmp_mpexo_update_post', 10, 2);
+ add_action('pending_post', 'wpmp_mpexo_delete_post', 10, 2);
+ add_action('draft_post', 'wpmp_mpexo_delete_post', 10, 2);
+ add_action('private_post', 'wpmp_mpexo_delete_post', 10, 2);
+
+ add_action('publish_page', 'wpmp_mpexo_update_page', 10, 2);
+ add_action('pending_page', 'wpmp_mpexo_delete_page', 10, 2);
+ add_action('draft_page', 'wpmp_mpexo_delete_page', 10, 2);
+ add_action('private_page', 'wpmp_mpexo_delete_page', 10, 2);
+
+ add_action('delete_post', 'wpmp_mpexo_delete_post_or_page');
+}
+wpmp_mpexo_add_action_content();
+
+function wpmp_mpexo_init() {
+ if (isset($_GET['wpmp_mpexo_ping'])) {
+ wpmp_mpexo_ping();
+ }
+ global $wpmp_mpexo_payload;
+ $wpmp_mpexo_payload = array();
+ global $wpmp_mpexo_payload_forced;
+ $wpmp_mpexo_payload_forced = array();
+ wp_register_sidebar_widget('wpmp_mpexo_widget', 'mpexo', 'wpmp_mpexo_widget',
+ array('classname' => 'wpmp_mpexo_widget', 'description' => __( "A widget to show mpexo links for this blog", 'wpmp'))
+ );
+ wp_register_widget_control('wpmp_mpexo_widget', 'mpexo', 'wpmp_mpexo_widget_control');
+}
+
+function wpmp_mpexo_ping() {
+ if ($_GET['wpmp_mpexo_ping']=='verify') {
+ print "OK";
+ }
+ exit();
+}
+
+function wpmp_mpexo_activate() {
+ foreach(array(
+ 'wpmp_mpexo_client_key'=>uniqid('', true),
+ 'wpmp_mpexo_description'=>'tagline',
+ 'wpmp_mpexo_description_custom'=>get_option('blogdescription'),
+ 'wpmp_mpexo_classification'=>'both',
+ 'wpmp_mpexo_content'=>'both',
+ 'wpmp_mpexo_popularity'=>'true',
+ 'wpmp_mpexo_diagnostics'=>'true',
+ 'wpmp_mpexo_email'=>'true',
+ 'wpmp_mpexo_enabled_beta'=>'false',
+ ) as $name=>$value) {
+ if (get_option($name)=='') {
+ update_option($name, $value);
+ }
+ }
+ wpmp_mpexo_update_tag(0);
+ wpmp_mpexo_update_category(0);
+ wpmp_mpexo_update_post(0);
+ wpmp_mpexo_update_page(0);
+}
+
+function wpmp_mpexo_add_to_payload($option, $value="", $force=false) {
+ if ($force) {
+ global $wpmp_mpexo_payload_forced;
+ $wpmp_mpexo_payload_forced[$option] = $value;
+ } else {
+ global $wpmp_mpexo_payload;
+ $wpmp_mpexo_payload[$option] = $value;
+ }
+}
+
+function wpmp_mpexo_update_option_siteurl($was, $is) {
+ wpmp_mpexo_add_to_payload('siteurl', $is);
+}
+
+function wpmp_mpexo_update_option_blogname($was, $is) {
+ wpmp_mpexo_add_to_payload('blogname', $is);
+}
+
+function wpmp_mpexo_update_option_blogdescription() {
+ switch (get_option('wpmp_mpexo_description')) {
+ case 'tagline':
+ wpmp_mpexo_add_to_payload('description', get_option('blogdescription'));
+ break;
+ case 'custom':
+ wpmp_mpexo_add_to_payload('description', get_option('wpmp_mpexo_description_custom'));
+ break;
+ default:
+ wpmp_mpexo_add_to_payload('description', '');
+ }
+}
+function wpmp_mpexo_update_option_admin_email() {
+ if(get_option('wpmp_mpexo_email')=='true') {
+ wpmp_mpexo_add_to_payload('email', get_option('admin_email'));
+ } else {
+ wpmp_mpexo_add_to_payload('email', 'Unknown');
+ }
+}
+function wpmp_mpexo_update_option_wpmp_mpexo_enabled($was, $is) {
+ wpmp_mpexo_add_to_payload('wpmp_mpexo_enabled', $is, true);
+ wpmp_mpexo_delete_category(0);
+ wpmp_mpexo_delete_tag(0);
+ wpmp_mpexo_delete_post(0);
+ wpmp_mpexo_delete_page(0);
+ if($is=='true') {
+ wpmp_mpexo_update_option_siteurl('', get_option('siteurl'));
+ wpmp_mpexo_update_option_blogname('', get_option('blogname'));
+ wpmp_mpexo_update_option_blogdescription();
+ wpmp_mpexo_update_option_wpmp_mpexo_classification('none', get_option('wpmp_mpexo_classification'));
+ wpmp_mpexo_update_option_wpmp_mpexo_content('none', get_option('wpmp_mpexo_content'));
+ wpmp_mpexo_update_option_wpmp_mpexo_popularity('', get_option('wpmp_mpexo_popularity'));
+ wpmp_mpexo_update_option_wpmp_mpexo_diagnostics('', get_option('wpmp_mpexo_diagnostics'));
+ wpmp_mpexo_update_option_admin_email();
+ }
+}
+function wpmp_mpexo_update_option_wpmp_mpexo_classification($was, $is) {
+ wpmp_mpexo_add_to_payload('wpmp_mpexo_classification', $is);
+ if (($was=='none'||$was=='categories')&&($is=='tags'||$is=='both')) {
+ wpmp_mpexo_delete_tag(0);
+ wpmp_mpexo_update_tag(0);
+ }
+ if (($was=='tags'||$was=='both')&&($is=='none'||$is=='categories')) {
+ wpmp_mpexo_delete_tag(0);
+ }
+ if (($was=='none'||$was=='tags')&&($is=='categories'||$is=='both')) {
+ wpmp_mpexo_delete_category(0);
+ wpmp_mpexo_update_category(0);
+ }
+ if (($was=='categories'||$was=='both')&&($is=='none'||$is=='tags')) {
+ wpmp_mpexo_delete_category(0);
+ }
+}
+function wpmp_mpexo_update_option_wpmp_mpexo_content($was, $is) {
+ wpmp_mpexo_add_to_payload('wpmp_mpexo_content', $is);
+ if (($was=='none'||$was=='posts')&&($is=='pages'||$is=='both')) {
+ wpmp_mpexo_delete_page(0);
+ wpmp_mpexo_update_page(0);
+ }
+ if (($was=='pages'||$was=='both')&&($is=='none'||$is=='posts')) {
+ wpmp_mpexo_delete_page(0);
+ }
+ if (($was=='none'||$was=='pages')&&($is=='posts'||$is=='both')) {
+ wpmp_mpexo_delete_post(0);
+ wpmp_mpexo_update_post(0);
+ }
+ if (($was=='posts'||$was=='both')&&($is=='none'||$is=='pages')) {
+ wpmp_mpexo_delete_post(0);
+ }
+}
+function wpmp_mpexo_update_option_wpmp_mpexo_popularity($was, $is) {
+ wpmp_mpexo_add_to_payload('wpmp_mpexo_popularity', $is);
+ if($is=='true' && function_exists('wpmp_switcher_hit_data')) {
+ wpmp_mpexo_add_to_payload('wpmp_mpexo_popularity_data', wpmp_switcher_hit_data());
+ }
+}
+function wpmp_mpexo_update_option_wpmp_mpexo_diagnostics($was, $is) {
+ wpmp_mpexo_add_to_payload('wpmp_mpexo_diagnostics', $is);
+ if($is=='true') {
+ wpmp_mpexo_add_action_options_wpmp(true);
+ }
+}
+function wpmp_mpexo_update_tag($tag_id) {
+ if(get_option('wpmp_mpexo_classification')=='tags' || get_option('wpmp_mpexo_classification')=='both') {
+ if ($tag_id==0) {
+ foreach(get_tags('hide_empty=0') as $tag) {
+ wpmp_mpexo_add_to_payload('t'.$tag->term_id, $tag->name);
+ }
+ wpmp_mpexo_update_post(0, null, 'tags');
+ } else {
+ $tag = get_tag($tag_id);
+ wpmp_mpexo_add_to_payload('t'.$tag_id, $tag->name);
+ }
+ }
+}
+
+function wpmp_mpexo_delete_tag($tag_id) {
+ if(get_option('wpmp_mpexo_classification')=='tags' || get_option('wpmp_mpexo_classification')=='both') {
+ wpmp_mpexo_add_to_payload("td$tag_id");
+ }
+ if($tag_id==0) {
+ wpmp_mpexo_add_to_payload("td0", "", true);
+ }
+}
+
+function wpmp_mpexo_update_category($category_id) {
+ if(get_option('wpmp_mpexo_classification')=='categories' || get_option('wpmp_mpexo_classification')=='both') {
+ if ($category_id==0) {
+ foreach(get_categories('hide_empty=0') as $category) {
+ wpmp_mpexo_add_to_payload('c'.$category->term_id, $category->name);
+ }
+ wpmp_mpexo_update_post(0, null, 'categories');
+ } else {
+ $category = get_category($category_id);
+ wpmp_mpexo_add_to_payload('c'.$category_id, $category->name);
+ }
+ }
+}
+
+function wpmp_mpexo_delete_category($category_id) {
+ if(get_option('wpmp_mpexo_classification')=='categories' || get_option('wpmp_mpexo_classification')=='both') {
+ wpmp_mpexo_add_to_payload("cd$category_id");
+ }
+ if($category_id==0) {
+ wpmp_mpexo_add_to_payload("cd0", "", true);
+ }
+}
+
+function wpmp_mpexo_update_post($post_id, $post=null, $just_classifications='') {
+ if(get_option('wpmp_mpexo_content')=='posts' || get_option('wpmp_mpexo_content')=='both') {
+ if ($post_id==0) {
+ if(!($post_count=get_option('wpmp_theme_post_count'))) {
+ $post_count = 5;
+ }
+ foreach(get_posts(array(
+ 'post_type'=>'post',
+ 'numberposts'=>$post_count
+ )) as $post) {
+ wpmp_mpexo_update_single_post_or_page($post, true, $just_classifications);
+ }
+ } else {
+ wpmp_mpexo_update_single_post_or_page($post, true, $just_classifications);
+ }
+ }
+}
+
+function wpmp_mpexo_delete_post($post_id) {
+ if(get_option('wpmp_mpexo_content')=='posts' || get_option('wpmp_mpexo_content')=='both') {
+ wpmp_mpexo_add_to_payload("pd$post_id");
+ }
+ if($post_id==0) {
+ wpmp_mpexo_add_to_payload("pd0", "", true);
+ }
+}
+
+function wpmp_mpexo_update_page($page_id, $page=null) {
+ if(get_option('wpmp_mpexo_content')=='pages' || get_option('wpmp_mpexo_content')=='both') {
+ if ($page_id==0) {
+ foreach(get_posts(array(
+ 'post_type'=>'page',
+ 'numberposts'=>0
+ )) as $page) {
+ wpmp_mpexo_update_single_post_or_page($page, false);
+ }
+ } else {
+ wpmp_mpexo_update_single_post_or_page($page, false);
+ }
+ }
+}
+
+function wpmp_mpexo_delete_page($page_id) {
+ if(get_option('wpmp_mpexo_content')=='pages' || get_option('wpmp_mpexo_content')=='both') {
+ wpmp_mpexo_add_to_payload("gd$page_id");
+ }
+ if($page_id==0) {
+ wpmp_mpexo_add_to_payload("gd0", "", true);
+ }
+}
+
+function wpmp_mpexo_update_single_post_or_page($post_or_page, $is_post=true, $just_classifications=false) {
+ $prefix = $is_post ? 'p' : 'g';
+ if ($just_classifications=='') {
+ wpmp_mpexo_add_to_payload($prefix.$post_or_page->ID, $post_or_page->post_title);
+ }
+ if($is_post) {
+ if($just_classifications!='tags' && (get_option('wpmp_mpexo_classification')=='categories' || get_option('wpmp_mpexo_classification')=='both')) {
+ $categories = array();
+ foreach(wp_get_post_categories($post_or_page->ID) as $category) {
+ $categories[]=$category;
+ }
+ wpmp_mpexo_add_to_payload("$prefix{$post_or_page->ID}c", join('.', $categories));
+ }
+ if($just_classifications!='categories' && (get_option('wpmp_mpexo_classification')=='tags' || get_option('wpmp_mpexo_classification')=='both')) {
+ $tags = array();
+ foreach(wp_get_post_tags($post_or_page->ID, array('fields'=>'ids')) as $tag) {
+ $tags[]=$tag;
+ }
+ wpmp_mpexo_add_to_payload("$prefix{$post_or_page->ID}t", join('.', $tags));
+ }
+ }
+}
+
+function wpmp_mpexo_delete_post_or_page($post_or_page_id) {
+ $post_or_page = get_post($post_or_page_id);
+ switch($post_or_page->post_type) {
+ case 'post':
+ wpmp_mpexo_delete_post($post_or_page_id);
+ break;
+ case 'page':
+ wpmp_mpexo_delete_page($post_or_page_id);
+ break;
+ }
+}
+
+
+
+function wpmp_mpexo_top_tags() {
+ $top_tags = array();
+ if (($o=get_option('wpmp_mpexo_classification'))=='tags' || $o=='both') {
+ foreach(get_tags(array('hide_empty'=>0, 'orderby'=>'count', 'order'=>'DESC', 'number'=>5)) as $tag) {
+ $top_tags[] = $tag->term_id;
+ }
+ }
+ wpmp_mpexo_add_to_payload('tt', join('.', $top_tags));
+}
+function wpmp_mpexo_top_categories() {
+ $top_categories = array();
+ if (($o=get_option('wpmp_mpexo_classification'))=='categories' || $o=='both') {
+ foreach(get_categories(array('hide_empty'=>0, 'orderby'=>'count', 'order'=>'DESC', 'number'=>5)) as $category) {
+ $top_categories[] = $category->term_id;
+ }
+ }
+ wpmp_mpexo_add_to_payload('ct', join('.', $top_categories));
+}
+
+function wpmp_mpexo_shutdown() {
+ return wpmp_mpexo_send_payload();
+}
+
+function wpmp_mpexo_send_payload() {
+ global $wpmp_mpexo_payload;
+ global $wpmp_mpexo_payload_forced;
+ if (get_option('wpmp_mpexo_enabled_beta')!='true') {
+ $wpmp_mpexo_payload = $wpmp_mpexo_payload_forced;
+ } else {
+ if (!is_array($wpmp_mpexo_payload) || !is_array($wpmp_mpexo_payload_forced)) {
+ $wpmp_mpexo_payload = array();
+ $wpmp_mpexo_payload_forced = array();
+ }
+ $wpmp_mpexo_payload = array_merge($wpmp_mpexo_payload, $wpmp_mpexo_payload_forced);
+ }
+ $wpmp_mpexo_payload_forced = array();
+ if (sizeof($wpmp_mpexo_payload)==0) {
+ return true;
+ }
+
+ if (get_option('wpmp_mpexo_client_key')=='') {
+ update_option('wpmp_mpexo_client_key', uniqid('', true)); //to be sure
+ }
+
+ $wpmp_mpexo_payload['siteurl'] = get_option('siteurl');
+ $wpmp_mpexo_payload['wpmp_mpexo_client_key'] = get_option('wpmp_mpexo_client_key');
+ $wpmp_mpexo_payload['wpmp_mpexo_server_key'] = get_option('wpmp_mpexo_server_key');
+
+
+ if (get_option('wpmp_mpexo_enabled_beta')=='true') {
+ wpmp_mpexo_top_tags();
+ wpmp_mpexo_top_categories();
+ }
+ $wpmp_mpexo_payload['wpmp_mpexo_wp_version'] = $GLOBALS['wp_version'];
+ $wpmp_mpexo_payload['wpmp_mpexo_wpmp_version'] = WPMP_VERSION;
+
+ $url = 'http://www.mpexo.com/api';
+ if(substr(get_option('siteurl'), -10)=='_dev.local') {
+ $url = 'http://localhost:8081/api';
+ }
+
+ $query_aliases = array(
+ 'siteurl'=>'u',
+ 'wpmp_mpexo_client_key'=>'c',
+ 'wpmp_mpexo_server_key'=>'s',
+ );
+
+ $post_aliases = array(
+
+ 'blogname'=>'nn',
+ 'description'=>'nd',
+ 'email'=>'ne',
+
+ 'wpmp_mpexo_wp_version'=>'vw',
+ 'wpmp_mpexo_wpmp_version'=>'vp',
+
+ 'wpmp_mpexo_enabled'=>'me',
+ 'wpmp_mpexo_classification'=>'mc',
+ 'wpmp_mpexo_content'=>'mo',
+ 'wpmp_mpexo_popularity'=>'mp',
+ 'wpmp_mpexo_diagnostics'=>'mi',
+
+ 'wpmp_mpexo_popularity_data'=>'pd',
+
+ );
+
+ $query = array();
+ $post = array();
+ foreach($wpmp_mpexo_payload as $key=>$value) {
+ $value = urlencode($value);
+ if (isset($query_aliases[$key])) {
+ $key = $query_aliases[$key];
+ $query[] = ("$key=$value");
+ } elseif (isset($post_aliases[$key])) {
+ $key = $post_aliases[$key];
+ $post[] = ("$key=$value");
+ } else {
+ $post[] = ("$key=$value");
+ }
+ }
+ $wpmp_mpexo_payload = array();
+
+ $url .= '?q=' . (sizeof($query) + sizeof($post)) . '&' . join('&', $query);
+ $body = join('&', $post);
+ $response = "";
+
+ if($handle = @fopen($url, 'r', false, @stream_context_create(array(
+ 'http'=>array(
+ 'method' => 'POST',
+ 'content' => $body
+ )
+ )))) {
+ while (!feof($handle)) {
+ $response .= fread($handle, 8192);
+ }
+ fclose($handle);
+ } elseif ($handle = @curl_init($url)) {
+ $query[] = 'curl=1';
+ $url .= '?q=' . (sizeof($query) + sizeof($post)) . '&' . join('&', $query);
+ curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
+ curl_setopt($handle, CURLOPT_POST, TRUE);
+ curl_setopt($handle, CURLOPT_POSTFIELDS, $body);
+ $response = curl_exec($handle);
+ curl_close($handle);
+ }
+ if($response=='OK') {
+ return true;
+ }
+ if(substr($response, 0, 2)=='s=' && get_option('wpmp_mpexo_server_key')=='') {
+ update_option('wpmp_mpexo_server_key', substr($response, 2));
+ return true;
+ }
+ return false;
+}
+
+
+
+
+function wpmp_mpexo_admin_menu() {
+ $state = '';
+ if (get_option('wpmp_mpexo_enabled_beta')!='true') {
+ $state = ' (disabled)';
+ }
+ if(sizeof($_POST)>0 && $_POST['wpmp_mpexo_enabled_beta']=='true') {
+ $state = '';
+ }
+ add_options_page(__('mpexo', 'wpmp'), __("mpexo$state", 'wpmp'), 3, 'wpmp_mpexo_admin', 'wpmp_mpexo_admin');
+}
+
+function wpmp_mpexo_widget($args) {
+ extract($args);
+ print $before_widget;
+ print $before_title . 'mpexo' . $after_title;
+ print "<ul><li>";
+ printf (__('This site is proudly listed as a mobile blog on <a%s>mpexo</a>.', 'wpmp'), ' href="http://www.mpexo.com"');
+ print "</li></ul>";
+ print $after_widget;
+}
+
+function wpmp_mpexo_widget_control() {
+ if($_POST['wpmp_mpexo']) {
+ wpmp_mpexo_options_write();
+ }
+ include('wpmp_mpexo_widget_admin.php');
+}
+
+function wpmp_mpexo_admin() {
+ if(sizeof($_POST)>0) {
+ print '<div id="message" class="updated fade"><p><strong>' . wpmp_mpexo_options_write() . '</strong></p></div>';
+ }
+ include_once('wpmp_mpexo_admin.php');
+}
+
+function wpmp_mpexo_options_write() {
+ foreach(array(
+ 'wpmp_mpexo_enabled_beta'=>true,
+ 'wpmp_mpexo_description'=>false,
+ 'wpmp_mpexo_description_custom'=>false,
+ 'wpmp_mpexo_classification'=>false,
+ 'wpmp_mpexo_content'=>false,
+ 'wpmp_mpexo_popularity'=>true,
+ 'wpmp_mpexo_diagnostics'=>true,
+ 'wpmp_mpexo_email'=>true,
+ ) as $option=>$checkbox) {
+ if(isset($_POST[$option])){
+ $value = $_POST[$option];
+ $value = trim($value);
+ $value = stripslashes_deep($value);
+ } elseif ($checkbox) {
+ $value = 'false';
+ }
+ update_option($option, $value);
+ }
+ if(wpmp_mpexo_shutdown()) {
+ return __('Settings saved.', 'wpmp');
+ }
+ return __('<strong>Communications error:</strong> these settings have been saved locally and will be transmitted to mpexo when resubmitted.', 'wpmp');
+}
+
+function wpmp_mpexo_option($option, $onchange='', $class='', $style='') {
+ switch ($option) {
+
+ case 'wpmp_mpexo_description':
+ return wpmp_mpexo_option_dropdown(
+ $option,
+ array(
+ 'none'=>__('None', 'wpmp'),
+ 'tagline'=>__('Tagline', 'wpmp'),
+ 'custom'=>__('Custom', 'wpmp'),
+ ),
+ $onchange
+ );
+ case 'wpmp_mpexo_classification':
+ return wpmp_mpexo_option_dropdown(
+ $option,
+ array(
+ 'none'=>__('None', 'wpmp'),
+ 'tags'=>__('Tags only', 'wpmp'),
+ 'categories'=>__('Categories only', 'wpmp'),
+ 'both'=>__('Tags and Categories', 'wpmp'),
+ ),
+ $onchange
+ );
+ case 'wpmp_mpexo_content':
+ return wpmp_mpexo_option_dropdown(
+ $option,
+ array(
+ 'none'=>__('None', 'wpmp'),
+ 'posts'=>__('Posts only', 'wpmp'),
+ 'pages'=>__('Pages only', 'wpmp'),
+ 'both'=>__('Posts and Pages', 'wpmp'),
+ ),
+ $onchange
+ );
+
+ case 'wpmp_mpexo_description_custom':
+ return wpmp_mpexo_option_text(
+ $option, $onchange, $class, $style
+ );
+
+ case 'wpmp_mpexo_enabled_beta':
+ case 'wpmp_mpexo_popularity':
+ case 'wpmp_mpexo_diagnostics':
+ case 'wpmp_mpexo_email':
+ return wpmp_mpexo_option_checkbox(
+ $option, $onchange
+ );
+ }
+}
+
+function wpmp_mpexo_option_dropdown($option, $options, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ $dropdown = "<select id='$option' name='$option' $onchange>";
+ foreach($options as $value=>$description) {
+ if(get_option($option)==$value) {
+ $selected = ' selected="true"';
+ } else {
+ $selected = '';
+ }
+ $dropdown .= '<option value="' . attribute_escape($value) . '"' . $selected . '>' . __($description, 'wpmp') . '</option>';
+ }
+ $dropdown .= "</select>";
+ return $dropdown;
+}
+
+
+function wpmp_mpexo_option_text($option, $onchange='', $class='', $style='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ if ($class!='') {
+ $class = 'class="' . attribute_escape($class) . '"';
+ }
+ if ($style!='') {
+ $style = 'style="' . attribute_escape($style) . '"';
+ }
+ $text = '<input type="text" id="' . $option . '" name="' . $option . '" value="' . attribute_escape(get_option($option)) . '" ' . $onchange . ' ' . $class . ' ' . $style . '/>';
+ return $text;
+}
+
+function wpmp_mpexo_option_checkbox($option, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '"';
+ }
+ $checkbox = '<input type="checkbox" id="' . $option . '" name="' . $option . '" value="true" ' . (get_option($option)==='true'?'checked="true"':'') . ' ' . $onchange . ' />';
+ return $checkbox;
+}
+
+
+
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo_admin.php b/plugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo_admin.php
new file mode 100755
index 00000000..1fa4cf6b
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo_admin.php
@@ -0,0 +1,130 @@
+<?php
+
+/*
+$Id: wpmp_barcode_widget_admin.php 180811 2009-12-08 06:13:51Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_barcode/wpmp_barcode_widget_admin.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+
+<div class="wrap">
+ <h2>
+ <?php _e('mpexo', 'wpmp') ?>
+ <p style='font-size:small;font-style:italic;margin:0'>
+ <?php _e('Part of the WordPress Mobile Pack', 'wpmp'); ?>
+ </p>
+ </h2>
+ <p><?php printf(__("<a%s>mpexo</a> is an online directory of mobile sites built using the WordPress Mobile Pack.", 'wpmp'), " target='_blank' href='http://www.mpexo.com'"); ?></p>
+ <p><?php _e("Using the settings below, you can easily, and automatically, get your own site listed on mpexo. It's a safe and easy way to drive traffic to the mobile version of your site.", 'wpmp'); ?></p>
+ <p><strong><?php _e("This feature is currently in beta.", 'wpmp'); ?></strong> <?php _e("It is therefore disabled by default, but will be <em>enabled</em> by default in the forthcoming v2.0 of the WordPress Mobile Pack. Please provide feedback in the meantime.", 'wpmp'); ?></p>
+ <form method="post" action="">
+ <table class="form-table">
+ <tr>
+ <th><?php _e('List my site on mpexo', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_mpexo_option('wpmp_mpexo_enabled_beta', 'wpmpMpexo();'); ?>
+ <br />
+ <?php _e('Publish summary information about your site to the mpexo server. This makes it easier for mobile users to find it.', 'wpmp'); ?>
+ </td>
+ </tr>
+
+ <tr class='wpmp_mpexo'>
+ <th><?php _e('Site description', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_mpexo_option('wpmp_mpexo_description', 'wpmpMpexo();'); ?>
+ <br />
+ <?php printf(__('mpexo can display a description of your blog. This can be the tagline in your <a%s>general settings</a>, or some custom text.', 'wpmp'), ' href="options-general.php"'); ?>
+ <br />
+ <?php print wpmp_mpexo_option('wpmp_mpexo_description_override'); ?>
+ </td>
+ </tr>
+ <tr class='wpmp_mpexo_description_custom'>
+ <th><?php _e('Custom description', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_mpexo_option('wpmp_mpexo_description_custom', '', 'regular-text'); ?>
+ <br />
+ <?php _e("Use this custom description instead of the blog's tagline.", 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr class='wpmp_mpexo'>
+ <th><?php _e('Publish classification', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_mpexo_option('wpmp_mpexo_classification'); ?>
+ <br />
+ <?php _e("mpexo can display your site's tags and categories, helping readers discover the topics you cover.", 'wpmp'); ?>
+ <br />
+ <?php _e("NB: mpexo does not currently display your blog's tags.", 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr class='wpmp_mpexo'>
+ <th><?php _e('Publish content titles', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_mpexo_option('wpmp_mpexo_content'); ?>
+ <br />
+ <?php _e('mpexo can display the titles of your posts and pages so readers can see teasers of your recent content.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr class='wpmp_mpexo'>
+ <th><?php _e('Gather mobile popularity', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_mpexo_option('wpmp_mpexo_popularity'); ?>
+ <br />
+ <?php _e("This will gather an aggregated summary of your site's popularity amongst mobile users. This data is never published on a per-site basis: it is merely used to order blogs by popularity.", 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr class='wpmp_mpexo'>
+ <th><?php _e('Gather diagnostics', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_mpexo_option('wpmp_mpexo_diagnostics'); ?>
+ <br />
+ <?php _e("This gathers non-sensitive details regarding your Mobile Pack configuration. This is never published: it is merely used to diagnose issues you may have with your site.", 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr class='wpmp_mpexo'>
+ <th><?php _e('Register email address', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_mpexo_option('wpmp_mpexo_email'); ?>
+ <br />
+ <?php _e("This registers your email address so we can contact you regarding updates to mpexo and the Mobile Pack. This is never published or shared: unchecking this box will unsubscribe you from any mailings.", 'wpmp'); ?>
+ </td>
+ </tr>
+ </table>
+ <p class="submit">
+ <input type="submit" name="Submit" value="<?php _e('Save Changes', 'wpmp'); ?>" />
+ </p>
+ </form>
+</div>
+
+<script>
+ var wpmp_pale = 0.3;
+ var wpmp_speed = 'slow';
+ function wpmpMpexo(speed) {
+ if (speed==null) {speed=wpmp_speed;}
+ var mpexo_enabled = jQuery("#wpmp_mpexo_enabled_beta")[0].checked;
+ var description = jQuery("#wpmp_mpexo_description").val();
+ jQuery(".wpmp_mpexo").children().fadeTo(speed, mpexo_enabled ? 1 : wpmp_pale);
+ jQuery(".wpmp_mpexo_description_custom").children().fadeTo(speed, (mpexo_enabled && description=='custom') ? 1 : wpmp_pale);
+ }
+ wpmpMpexo(-1);
+</script> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo_widget_admin.php b/plugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo_widget_admin.php
new file mode 100755
index 00000000..407c7cef
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_mpexo/wpmp_mpexo_widget_admin.php
@@ -0,0 +1,33 @@
+<?php
+
+/*
+$Id: wpmp_barcode_widget_admin.php 180811 2009-12-08 06:13:51Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_barcode/wpmp_barcode_widget_admin.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+<p>
+ <?php _e("There are currently no settings for this widget", 'wpmp'); ?>
+</p>
+<input type="hidden" id="wpmp_mpexo" name="wpmp_mpexo" value="1" />
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/lite_detection.php b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/lite_detection.php
new file mode 100755
index 00000000..42cf7853
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/lite_detection.php
@@ -0,0 +1,171 @@
+<?php
+
+/*
+$Id: lite_detection.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/lite_detection.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+function lite_detection() {
+ if (isset($_SERVER['HTTP_X_WAP_PROFILE']) ||
+ isset($_SERVER['HTTP_PROFILE'])) {
+ return true;
+ }
+ $user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);
+ if (in_array(substr($user_agent, 0, 4), lite_detection_ua_prefixes())) {
+ return true;
+ }
+ $accept = strtolower($_SERVER['HTTP_ACCEPT']);
+ if (strpos($accept, 'wap') !== false) {
+ return true;
+ }
+ if (preg_match("/(" . lite_detection_ua_contains() . ")/i", $user_agent)) {
+ return true;
+ }
+ if (isset($_SERVER['ALL_HTTP']) && strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false) {
+ return true;
+ }
+ return false;
+}
+
+function lite_detection_ua_prefixes() {
+ return array(
+ 'w3c ',
+ 'w3c-',
+ 'acs-',
+ 'alav',
+ 'alca',
+ 'amoi',
+ 'audi',
+ 'avan',
+ 'benq',
+ 'bird',
+ 'blac',
+ 'blaz',
+ 'brew',
+ 'cell',
+ 'cldc',
+ 'cmd-',
+ 'dang',
+ 'doco',
+ 'eric',
+ 'hipt',
+ 'htc_',
+ 'inno',
+ 'ipaq',
+ 'ipod',
+ 'jigs',
+ 'kddi',
+ 'keji',
+ 'leno',
+ 'lg-c',
+ 'lg-d',
+ 'lg-g',
+ 'lge-',
+ 'lg/u',
+ 'maui',
+ 'maxo',
+ 'midp',
+ 'mits',
+ 'mmef',
+ 'mobi',
+ 'mot-',
+ 'moto',
+ 'mwbp',
+ 'nec-',
+ 'newt',
+ 'noki',
+ 'palm',
+ 'pana',
+ 'pant',
+ 'phil',
+ 'play',
+ 'port',
+ 'prox',
+ 'qwap',
+ 'sage',
+ 'sams',
+ 'sany',
+ 'sch-',
+ 'sec-',
+ 'send',
+ 'seri',
+ 'sgh-',
+ 'shar',
+ 'sie-',
+ 'siem',
+ 'smal',
+ 'smar',
+ 'sony',
+ 'sph-',
+ 'symb',
+ 't-mo',
+ 'teli',
+ 'tim-',
+ 'tosh',
+ 'tsm-',
+ 'upg1',
+ 'upsi',
+ 'vk-v',
+ 'voda',
+ 'wap-',
+ 'wapa',
+ 'wapi',
+ 'wapp',
+ 'wapr',
+ 'webc',
+ 'winw',
+ 'winw',
+ 'xda ',
+ 'xda-',
+ );
+}
+
+function lite_detection_ua_contains() {
+ return implode("|", array(
+ 'android',
+ 'blackberry',
+ 'hiptop',
+ 'ipod',
+ 'lge vx',
+ 'midp',
+ 'maemo',
+ 'mmp',
+ 'netfront',
+ 'nintendo DS',
+ 'novarra',
+ 'openweb',
+ 'opera mobi',
+ 'opera mini',
+ 'palm',
+ 'psp',
+ 'phone',
+ 'smartphone',
+ 'symbian',
+ 'up.browser',
+ 'up.link',
+ 'wap',
+ 'windows ce',
+ ));
+}
+
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/desktop_interstitial.php b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/desktop_interstitial.php
new file mode 100755
index 00000000..43afe489
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/desktop_interstitial.php
@@ -0,0 +1,40 @@
+<?php
+
+/*
+$Id: desktop_interstitial.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/pages/desktop_interstitial.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?><html>
+ <head>
+ <title><?php bloginfo('name'); ?> - <?php _e("Select site", 'wpmp'); ?></title>
+ <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
+ <?php wp_head(); ?>
+ </head>
+ <body>
+ <h2><?php _e("Select site", 'wpmp'); ?></h2>
+ <p><?php _e("You've requested the mobile site, but you appear to have a desktop browser.", 'wpmp'); ?></p>
+ <p><?php print wpmp_switcher_link('desktop', __("Revert to the desktop site", 'wpmp')); ?></p>
+ <p><?php print wpmp_switcher_link('mobile', __("Continue to our mobile site", 'wpmp')); ?></p>
+ </body>
+</html>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile.php b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile.php
new file mode 100755
index 00000000..49ed1516
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile.php
@@ -0,0 +1,127 @@
+<?php
+
+/*
+$Id: mobile.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/pages/mobile.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+function wpmp_ms_mobile_top($title, $menu=array()) {
+ print "<?xml version='1.0' encoding='UTF-8'?>";
+
+ //defend against old, confused or custom mobile themes
+ include_once(get_theme_root() . DIRECTORY_SEPARATOR . 'mobile_pack_base' . DIRECTORY_SEPARATOR . 'functions.php');
+ if(!function_exists('wpmp_theme_group_file')) {
+ function wpmp_theme_group_file($file='index.php') {
+ return 'none';
+ }
+ function wpmp_theme_base_style() {
+ return get_bloginfo('stylesheet_url');
+ }
+ function wpmp_theme_group() {
+ return 'none';
+ }
+ }
+
+ if (file_exists($wpmp_include = wpmp_theme_group_file('header.php'))) {
+ include_once($wpmp_include);
+ } else {
+ ?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head profile="http://gmpg.org/xfn/11">
+ <?php if (get_bloginfo('stylesheet_url') != wpmp_theme_base_style()) { ?>
+ <link href="<?php print wpmp_theme_base_style() ?>" rel="stylesheet" type="text/css" />
+ <?php } ?>
+ <link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" />
+ <link href="<?php print get_theme_root_uri(); ?>/mobile_pack_base/style_structure.css" rel="stylesheet" type="text/css" />
+ <?php
+ }
+ ?>
+ <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
+ <title><?php bloginfo('name'); ?> <?php print $title; ?></title>
+ <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
+ <link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
+ <link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />
+ <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
+ <?php wp_head(); ?>
+ </head>
+ <body class="<?php if($wpmp_theme_group = wpmp_theme_group()) {print $wpmp_theme_group;} else {print 'base';} ?>">
+ <div id="wrap">
+ <div id="header" style='height:auto'>
+ <p><a href="<?php echo get_option('home'); ?>/"><strong><?php bloginfo('name'); ?></strong></a></p>
+ <p><?php bloginfo('description'); ?></p>
+ </div>
+ <?php
+ if($menu) {
+ $base = get_option('home');
+ print '<div id="menu"><ul class="breadcrumbs">';
+ $page = $_SERVER['REQUEST_URI'];
+ if(substr($page, -9)=="/wp-admin") {
+ $page="$base/wp-admin/index.php";
+ }
+ foreach($menu as $name=>$link) {
+ $item = '<li class="';
+ if(strpos(strtolower($page), strtolower($link))!==false) {
+ $item .= 'current_';
+ $title = substr($name, ($name[0]=='_')?1:0);
+ }
+ if(substr($link, 0, 7)!="http://" && substr($link, 0, 8)!="https://") {
+ $link = $base . $link;
+ }
+ $item .= 'page_item"><a href="' . $link . '" title="' . $name . '">' . __($name, 'wpmp') . '</a></li> ';
+ if ($name[0]!='_') {
+ print $item;
+ }
+ }
+ print '</ul></div>';
+ }
+ ?>
+ <div id="wrapper">
+ <div id="content">
+ <h1><?php print $title; ?></h1>
+ <?php
+ }
+
+
+
+ function wpmp_ms_mobile_bottom() {
+ ?>
+ </div>
+ </div>
+ <div id="footer">
+ <?php
+ if (file_exists($wpmp_include = wpmp_theme_group_file('footer.php'))) {
+ include_once($wpmp_include);
+ } else {
+ ?>
+ <p><?php printf(__("Powered by the <a%s>WordPress Mobile Pack</a>", 'wpmp'), ' href="http://wordpress.org/extend/plugins/wordpress-mobile-pack/"');?> | <?php printf(__("Theme designed by <a%s>ribot</a>", 'wpmp'), ' href="http://ribot.co.uk"'); ?></p>
+ <?php
+ }
+ ?>
+ <?php wpmp_switcher_wp_footer(true); ?>
+ </div>
+ </div>
+ </body>
+</html>
+<?php
+}
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_admin.php b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_admin.php
new file mode 100755
index 00000000..19d798be
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_admin.php
@@ -0,0 +1,442 @@
+<?php
+
+/*
+$Id: mobile_admin.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/pages/mobile_admin.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+ include_once('mobile.php');
+ wpmp_ms_mobile_admin();
+
+ function wpmp_ms_mobile_admin() {
+ $base = get_option('home');
+
+ if (($user = wp_get_current_user())==null || $user->ID==0) {
+ header("Location: $base/wp-login.php?redirect_to=" . urlencode($base) . "%2Fwp-admin%2F");
+ }
+
+ $menu = array(
+ __("Overview", 'wpmp') => "/wp-admin/index.php",
+ __("New post", 'wpmp') => "/wp-admin/post-new.php",
+ __("Edit post", 'wpmp') => "/wp-admin/post.php?action=edit",
+ __("Comments", 'wpmp') => "/wp-admin/edit-comments.php",
+ "_" . __("Comment", 'wpmp') => "/wp-admin/comment.php",
+ __("Switcher", 'wpmp') => "/wp-admin/themes.php",
+ __("Settings", 'wpmp') => "/wp-admin/options-general.php",
+ );
+ if (function_exists('wp_logout_url')) {
+ $menu[__("Log out", 'wpmp')] = wp_logout_url();
+ } else {
+ $menu[__("Log out", 'wpmp')] = "/wp-login.php?action=logout";
+ }
+
+ $page = $_SERVER['REQUEST_URI'];
+ $function = "";
+ foreach($menu as $link) {
+ if(strpos(strtolower($page), strtolower($link))!==false) {
+ $function = substr($link, 10);
+ $function = explode(".", $function);
+ $function = str_replace("-", "_", $function[0]);
+ $function = strtolower($function);
+ break;
+ }
+ }
+ if(!function_exists("wpmp_msma_$function")) {
+ $function = "overview";
+ }
+ if(!current_user_can('manage_options')) { // harsh but fair
+ $menu = array();
+ $function = "junior";
+ }
+
+ wpmp_ms_mobile_top("Admin", $menu);
+ call_user_func("wpmp_msma_$function", $menu);
+ wpmp_ms_mobile_bottom();
+ }
+
+ function wpmp_msma_overview($menu) {
+ $base = get_option('home');
+ $post_count = wp_count_posts('post');
+ $page_count = wp_count_posts('page');
+ print "<p>";
+ printf(__ngettext("You have one post", "You have %d posts", $c=0+($post_count->publish), 'wpmp'), $c);
+ print ' ';
+ printf(__ngettext("and one page", "and %d pages", $c=0+($page_count->publish), 'wpmp'), $c);
+ print ' ' . __("contained within", 'wpmp') . ' ';
+ printf(__ngettext("one category", "%d categories", $c=0+(wp_count_terms('category')), 'wpmp'), $c);
+ print ' ' . __("and", 'wpmp') . ' ';
+ printf(__ngettext("one tag", "%d tags", $c=0+(wp_count_terms('post_tag')), 'wpmp'), $c);
+ print ".</p>";
+ global $wpdb;
+ $comments = $wpdb->get_results("SELECT count(*) as cnt FROM $wpdb->comments WHERE comment_approved='0'" );
+ $comment_count = $comments[0];
+ printf("<p>" . __ngettext("You have one comment to moderate", "You have %d comments to moderate", $c=0+($comment_count->cnt), 'wpmp') . ".</p>", $c);
+ print "<h3>" . __("Select an admin page:", 'wpmp') . "</h3>";
+ print "<p><ul>";
+ $not_first = false;
+ foreach($menu as $name=>$link) {
+ if($name[0]!='_' && $not_first) {
+ if(substr($link, 0, 7)!="http://" && substr($link, 0, 8)!="https://") {
+ $link = $base . $link;
+ }
+ print "<li><a href='$link'>" . __("$name", 'wpmp') . "</a>";
+ }
+ $not_first = true;
+ }
+ print "</ul></p>";
+ print "<p>" . sprintf(__("...or <a%s>return to the site</a>", 'wpmp'), " href='$base/'") . "</p>";
+ print "<p>" . __("A subset of the full WordPress administration is available through this mobile interface.", 'wpmp') . "</p>";
+ }
+
+ function wpmp_msma_junior($menu) {
+ $base = get_option('home');
+ print "<h3>" . __("Sorry! Permission denied...", 'wpmp') . "</h3>";
+ print "<p>" . __("Only 'administrator' users can use the mobile admin panel.", 'wpmp') . "</p>";
+ print "<p><a href='" . get_option('siteurl') . "$base/wp-login.php?action=logout'>" . __("Login as a different user", 'wpmp') . "</a> " . __("or", 'wpmp') . " <a href='$base/'>" . __("return to the site", 'wpmp') . "</a></p>";
+ }
+
+ function wpmp_msma_post_new() {
+ wpmp_msma_post(null, true);
+ }
+ function wpmp_msma_post($menu, $new = false) {
+ if (sizeof($_POST) > 0) {
+ if (!wpmp_msma_check_referer()) { return; }
+ @wp_update_post($_POST);
+ print "<p>" . __("Your changes have been applied.", 'wpmp') . "</p>";
+ wpmp_msma_post_list();
+ } else {
+ if(is_numeric($id = @$_GET['post'])) {
+ $post = get_post($id, OBJECT, 'edit');
+ if(!$post->ID) {
+ print "<p>" . __("That post does not exist, but you may write a new one.", 'wpmp') . "</p>";
+ }
+ } elseif (!$new) {
+ wpmp_msma_post_list();
+ return;
+ }
+ if(!@$post->ID) {
+ $post->ID = 0;
+ $post->post_status = 'draft';
+ }
+ wpmp_msma_post_edit_form($post);
+ }
+ }
+
+ function wpmp_msma_post_edit_form($post) {
+ global $user_ID;
+ print '<form name="post" action="' . $_SERVER['REQUEST_URI'] . '" method="post" id="post">';
+
+ print '<input type="hidden" name="ID" value="' . $post->ID . '" />';
+ print '<input type="hidden" name="user_ID" value="' . (int) $user_ID . '" />';
+
+ print '<p><label for="title">' . __('Title', 'wpmp') . ':</label><br />';
+ print '<input type="text" name="post_title" value="' . attribute_escape(@$post->post_title) . '" id="title" /></p>';
+
+ print '<p><label for="post_status">' . __('Status', 'wpmp') . ':</label><br />';
+ print '<select name="post_status" id="post_status">';
+ print '<option ' . (($post->post_status == 'publish' || $post->post_status == 'private') ? 'selected="selected"' : "") . ' value="publish">' . __('Published', 'wpmp') . '</option>';
+ print '<option ' . (($post->post_status == 'draft' || $post->post_status == 'future') ? 'selected="selected"' : "") . ' value="draft">' . __('Unpublished', 'wpmp') . '</option>';
+ print '<option ' . (($post->post_status == 'pending') ? 'selected="selected"' : "") . ' value="pending">' . __('Pending Review', 'wpmp') . '</option>';
+ print '</select></p>';
+
+ print '<p><label for="post_content">' . __('Content', 'wpmp') . ':</label><br />';
+ $safe_content = @$post->post_content;
+ $safe_content = str_replace("<textarea", "<div", $safe_content);
+ $safe_content = str_replace("<TEXTAREA", "<div", $safe_content);
+ $safe_content = str_replace("</textarea", "</div", $safe_content);
+ $safe_content = str_replace("</TEXTAREA", "</div", $safe_content);
+ print '<textarea name="post_content" id="post_content" rows="6">' . $safe_content . '</textarea></p>';
+ print '<input class="button" name="submit" type="submit" id="submit" value="' . __('Apply', 'wpmp') . '" />';
+ print '<p>' . __('You can use HTML tags to format your post. Use &lt;!--more--&gt; to indicate the end of the teaser.', 'wpmp') . '</p>';
+
+ print '</form>';
+ }
+
+ function wpmp_msma_post_list() {
+ $base = get_option('home');
+ wp('orderby=modified');
+ if(have_posts()) {
+ global $post;
+ print "<p>" . __("Select a post to edit:", 'wpmp') . "</p>";
+ add_filter('get_pagenum_link', 'wpmp_msma_get_pagenum_link');
+ while (have_posts()) {
+ the_post();
+ print "<p>" .
+ "<strong><a href='$base/wp-admin/post.php?action=edit&post=$post->ID'>" . get_the_title() . "</a></strong>" .
+ "<br />" . get_the_modified_date() .
+ "<br />" . wpmp_msma_post_status($post->post_status) .
+ "</p>";
+ }
+ next_posts_link('Older');
+ previous_posts_link('Newer');
+ } else {
+ print "<p>" . __("There are no posts to edit.", 'wpmp') . "</p>";
+ }
+ }
+ function wpmp_msma_edit_comments() {
+ global $wpdb;
+ $comments = $wpdb->get_results("SELECT $wpdb->comments.*, $wpdb->posts.post_title FROM $wpdb->comments INNER JOIN $wpdb->posts ON $wpdb->comments.comment_post_id = $wpdb->posts.id WHERE comment_approved='0' ORDER BY comment_date_gmt DESC LIMIT 5" );
+ if(sizeof($comments)==0) {
+ print "<p>" . __("This site has no comments awaiting moderation.", 'wpmp') . "</p>";
+ } else {
+ switch($size = sizeof($comments)) {
+ case 5:
+ print "<p>" . __("There are at least 5 comments awaiting moderation:", 'wpmp') . "</p>";
+ break;
+ case 1:
+ return wpmp_msma_edit_comment($comments[0], true);
+ default:
+ print "<p>" . __("There are $size comments awaiting moderation:", 'wpmp') . "</p>";
+ }
+ foreach($comments as $comment) {
+ wpmp_msma_edit_comment($comment);
+ }
+ }
+ }
+ function wpmp_msma_comment() {
+ $id = $_GET['c'];
+ if(is_numeric($id)) {
+ global $wpdb;
+ if(isset($_GET['action']) && $_GET['action']=="approvecomment" && wpmp_msma_check_referer()) {
+ wp_set_comment_status($id, 'approve');
+ } elseif (isset($_GET['action']) && $_GET['action']=="deletecomment" && wpmp_msma_check_referer()) {
+ wp_set_comment_status($id, 'delete');
+ } elseif (isset($_GET['action']) && $_GET['action']=="spamcomment" && wpmp_msma_check_referer()) {
+ wp_set_comment_status($id, 'spam');
+ } else {
+ $comment = $wpdb->get_results("SELECT $wpdb->comments.*, $wpdb->posts.post_title FROM $wpdb->comments INNER JOIN $wpdb->posts ON $wpdb->comments.comment_post_id = $wpdb->posts.id WHERE comment_ID=$id;" );
+ }
+ }
+ if(!@$comment) {
+ return wpmp_msma_edit_comments();
+ }
+ wpmp_msma_edit_comment($comment[0], true);
+ }
+
+ function wpmp_msma_themes() {
+ if (isset($_POST['wpmp_switcher_mode'])) {
+ if (!wpmp_msma_check_referer()) { return; }
+ update_option('wpmp_switcher_mode', $_POST['wpmp_switcher_mode']);
+ print "<p>" . __("Your changes have been applied.", 'wpmp') . "</p>";
+ print "<p><a href='/wp-admin/'>" . __("Continue.", 'wpmp') . "</a></p>";
+ return;
+ }
+ print '<form name="post" action="' . $_SERVER['REQUEST_URI'] . '" method="post" id="post">';
+ print '<p><label for="title">' . __('Change the mobile switcher mode:', 'wpmp') . '</label><br />';
+ $current = get_option('wpmp_switcher_mode');
+ foreach(array(
+ 'none'=>__('Disabled', 'wpmp'),
+ 'browser'=>__('Browser detection', 'wpmp'),
+ 'domain'=>__('Domain mapping', 'wpmp'),
+ 'browserdomain'=>__('BOTH: browser detection and domain mapping', 'wpmp'),
+ ) as $value=>$title) {
+ print "<input style='width:32px;' type='radio' name='wpmp_switcher_mode' value='$value'";
+ if ($value == $current) {
+ print " checked";
+ }
+ print "/> $title<br />";
+ }
+ print '</select></p>';
+ print '<input class="button" name="submit" type="submit" id="submit" value="' . __('Apply', 'wpmp') . '" />';
+ print '</form>';
+ print "<p>" . __("NB: Changing the switcher mode may return you to the desktop version of the admin pages. Be cautious if you are using a mobile device.", 'wpmp') . "</p>";
+ }
+
+ function wpmp_msma_edit_comment(&$comment, $full = false) {
+ $base = get_option('home');
+ $id = $comment->comment_ID;
+ $content = strip_tags($comment->comment_content);
+ $title = strip_tags($comment->comment_author);
+ if(!$full) {
+ $title = "<a href='$base/wp-admin/comment.php?action=editcomment&amp;c=$id'>$title</a>";
+ if(strlen($content)>100) {
+ $content = substr($content, 0, 100) . "...";
+ }
+ }
+ $approve = "<a href='comment.php?action=approvecomment&amp;c=$id'>" . __('Approve', 'wpmp') . "</a>";
+ $delete = "<a href='comment.php?action=deletecomment&amp;c=$id'>" . __('Delete', 'wpmp') . "</a>";
+ $spam = "<a href='comment.php?action=spamcomment&amp;c=$id'>" . __('Spam', 'wpmp') . "</a>";
+ print "<p>" . sprintf(_c('<strong>%1$s</strong> on %2$s|comment_title ON post_title', 'wpmp'), $title, $comment->post_title) .
+ "<br />$content" .
+ "<br />$approve | $delete | $spam" .
+ "</p>";
+ }
+
+ function wpmp_msma_options_general() {
+ if(isset($_GET['option']) && is_numeric($id = $_GET['option'])) {
+ if (sizeof($_POST) > 0) {
+ if (!wpmp_msma_check_referer()) { return; }
+ wpmp_msma_option_update($_POST);
+ print "<p>" . __("Your changes have been applied.", 'wpmp') . "</p>";
+ return wpmp_msma_options_list();
+ } else {
+ return wpmp_msma_option_edit_form($id);
+ }
+ }
+ wpmp_msma_options_list();
+ }
+
+ function wpmp_msma_options_filter() {
+ return "WHERE option_name!='' AND " .
+ "LEFT(option_name, 4)!='rss_' AND " .
+ "NOT INSTR(option_name, 'widget') AND " .
+ "NOT INSTR(option_name, 'plugin') AND " .
+ "option_name NOT IN ('cron', 'update_core', 'recently_edited', 'wp_user_roles', 'category_children', 'wpmp_deviceatlas_json_location')" .
+ "";
+ }
+
+ function wpmp_msma_options_list() {
+ global $wpdb;
+ $base = get_option('home');
+ $count = $wpdb->get_results("SELECT count(*) as cnt FROM $wpdb->options " . wpmp_msma_options_filter());
+ $count = ($count[0]->cnt);
+ $size = 10;
+ $page = 0;
+ if(isset($_GET['page']) && is_numeric($_GET['page'])) {
+ $page = $_GET['page'];
+ }
+ $start = $page * $size;
+ $options = $wpdb->get_results("SELECT * FROM $wpdb->options " . wpmp_msma_options_filter() . " order by option_id asc LIMIT $start, $size" );
+ foreach($options as $option) {
+ $editable = false;
+ $label = wpmp_msma_option_name($option->option_name);
+ $value = wpmp_msma_option_value($option->option_name, $option->option_value, $editable);
+ if ($editable) {
+ $label = "<a href='$base/wp-admin/options-general.php?page=$page&amp;option=$option->option_id'>$label</a>";
+ }
+ print "<p>$label: " . htmlentities($value) . "</p>";
+ }
+ $next = "";
+ $previous = "";
+ if($page>0) {
+ $previous = "<a href='?page=" . ($page-1) . "'>" . __('Previous page', 'wpmp') . "</a>";
+ }
+ if(($page+1) * $size < $count) {
+ $next = "<a href='?page=" . ($page+1) . "'>" . __('Next page', 'wpmp') . "</a>";
+ }
+ if ($next || $previous) {
+ print "<p>$previous";
+ if ($next && $previous) {
+ print " | ";
+ }
+ print "$next</p>";
+ }
+ print "<p>" . __("NB: Some complex options cannot be edited in this mobile interface.", 'wpmp') . "</p>";
+
+ }
+ function wpmp_msma_option_edit_form($id) {
+ global $wpdb;
+ $option = $wpdb->get_results("SELECT * FROM $wpdb->options " . wpmp_msma_options_filter() . " and option_id=$id");
+ if(sizeof($option)==0) {
+ print "<p>" . __("That option is not editable.", 'wpmp') . "</p>";
+ return wpmp_msma_options_list();
+ }
+ $option = $option[0];
+ $value = wpmp_msma_option_value($option->option_name, $option->option_value, $editable);
+ if(!$editable) {
+ print "<p>" . __("That option is not editable.", 'wpmp') . "</p>";
+ return wpmp_msma_options_list();
+ }
+ print '<form name="post" action="' . $_SERVER['REQUEST_URI'] . '" method="post" id="post">';
+ print '<input type="hidden" name="option_name" value="' . attribute_escape($option->option_name) . '" />';
+
+ print '<p><label for="title">' . wpmp_msma_option_name($option->option_name) . ':</label><br />';
+ print '<input type="text" name="option_value" value="' . attribute_escape($value) . '" id="title" /></p>';
+
+ print '<input class="button" name="submit" type="submit" id="submit" value="' . __('Apply', 'wpmp') . '" />';
+ if($value==='0' or $value==='1') {
+ print '<p>' . __('For options that are usually a checkbox, use 1 for \'on\', and 0 for \'off\'', 'wpmp') . '</p>';
+ }
+ print '</form>'; }
+
+ function wpmp_msma_option_update($option) {
+ if(isset($option['option_name'])) {
+ update_option($option['option_name'], stripslashes($option['option_value']));
+ }
+ }
+
+ function wpmp_msma_option_name($name) {
+ $name = str_replace("_", " ", $name);
+ $name = strtoupper($name[0]) . substr($name, 1);
+ if(substr($name, 0, 5)=='Wpmp ') {
+ $name = "Mobile " . substr($name, 5);
+ }
+ $name = str_replace("Mobile deviceatlas", "DeviceAtlas", $name);
+ $name = str_replace("Siteurl", "Site url", $name);
+ $name = str_replace("Blogname", "Blog name", $name);
+ $name = str_replace("Blogdescription", "Blog description", $name);
+ $name = str_replace("Gzipcompression", "GZIP compression", $name);
+ $name = str_replace("linksupdate", "links update", $name);
+ $name = str_replace("yearmonth", "year/month", $name);
+ $name = str_replace(" url", " URL", $name);
+ $name = str_replace(" uri", " URI", $name);
+ $name = str_replace("Gmt", "GMT", $name);
+ $name = str_replace("Html", "HTML", $name);
+ $name = str_replace("rss", "RSS", $name);
+ return $name;
+ }
+ function wpmp_msma_option_value($name, $value, &$editable) {
+ $value = maybe_unserialize($value);
+ if (gettype($value)=='object') { //is_object has incomplete class bug
+ $value = "(locked)";
+ } elseif (is_array($value)) {
+ $value = "(locked)";
+ } else {
+ $editable = true;
+ }
+ return print_r($value, 1);
+ }
+
+ function wpmp_msma_get_pagenum_link($link) {
+ return str_replace('&amp;post=', '&amp;_post=',
+ str_replace('&post=', '&_post=', $link)); // remove post-post-POST evidence
+ }
+
+ function wpmp_msma_post_status($status) {
+ switch($status) {
+ case 'publish':
+ case 'private':
+ return __('Published', 'wpmp');
+ case 'future':
+ return __('Scheduled', 'wpmp');
+ case 'pending':
+ return __('Pending Review', 'wpmp');
+ default:
+ return __('Unpublished', 'wpmp');
+ }
+ }
+
+
+ function wpmp_msma_check_referer() {
+ $base = get_option('home');
+ $admin = "$base/wp-admin";
+ $referer = $_SERVER['HTTP_REFERER'];
+ if (substr($referer, 0, strlen($admin)) != $admin) {
+ print __("You may only originate this action from the admin pages", 'wpmp');
+ return false;
+ }
+ return true;
+ }
+
+
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_interstitial.php b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_interstitial.php
new file mode 100755
index 00000000..9cff7489
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_interstitial.php
@@ -0,0 +1,38 @@
+<?php
+
+/*
+$Id: mobile_interstitial.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/pages/mobile_interstitial.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+ include_once('mobile.php');
+ wpmp_ms_mobile_top(__("Select site", 'wpmp'));
+?>
+
+<p><?php _e("You've requested the desktop site, but you appear to have a mobile browser.", 'wpmp'); ?></p>
+<p><?php print wpmp_switcher_link('mobile', __("Revert to the mobile site", 'wpmp')); ?></p>
+<p><?php print wpmp_switcher_link('desktop', __("Continue to our desktop site", 'wpmp')); ?></p>
+
+<?php
+ wpmp_ms_mobile_bottom();
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_login.php b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_login.php
new file mode 100755
index 00000000..1b81af11
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/pages/mobile_login.php
@@ -0,0 +1,163 @@
+<?php
+
+/*
+$Id: mobile_login.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/pages/mobile_login.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+function wpmp_switcher_login_header($title, $message = '', $wp_error = '') {
+ global $error;
+
+ if ( empty($wp_error) )
+ $wp_error = new WP_Error();
+
+ include_once('mobile.php');
+ wpmp_ms_mobile_top($title);
+
+ if ( !empty( $message ) ) echo apply_filters('login_message', $message) . "\n";
+
+ if ( !empty( $error ) ) {
+ $wp_error->add('error', $error);
+ unset($error);
+ }
+
+ if ( $wp_error->get_error_code() ) {
+ $errors = '';
+ $messages = '';
+ foreach ( $wp_error->get_error_codes() as $code ) {
+ $severity = $wp_error->get_error_data($code);
+ foreach ( $wp_error->get_error_messages($code) as $error ) {
+ if ( 'message' == $severity )
+ $messages .= ' ' . $error . "<br />\n";
+ else
+ $errors .= ' ' . $error . "<br />\n";
+ }
+ }
+ if ( !empty($errors) )
+ echo '<div id="login_error">' . apply_filters('login_errors', $errors) . "</div>\n";
+ if ( !empty($messages) )
+ echo '<p class="message">' . apply_filters('login_messages', $messages) . "</p>\n";
+ }
+}
+
+$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
+$errors = new WP_Error();
+
+if ( isset($_GET['key']) )
+ $action = 'resetpass';
+
+nocache_headers();
+
+header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset'));
+
+if ( defined('RELOCATE') ) { // Move flag is set
+ if ( isset( $_SERVER['PATH_INFO'] ) && ($_SERVER['PATH_INFO'] != $_SERVER['PHP_SELF']) )
+ $_SERVER['PHP_SELF'] = str_replace( $_SERVER['PATH_INFO'], '', $_SERVER['PHP_SELF'] );
+
+ $schema = ( isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ) ? 'https://' : 'http://';
+ if ( dirname($schema . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']) != get_option('siteurl') )
+ update_option('siteurl', dirname($schema . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']) );
+}
+
+setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN);
+if ( SITECOOKIEPATH != COOKIEPATH )
+ setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN);
+
+$http_post = ('POST' == $_SERVER['REQUEST_METHOD']);
+switch ($action) {
+
+case 'logout' :
+
+ wp_logout();
+
+ $redirect_to = 'wp-login.php?loggedout=true';
+ if ( isset( $_REQUEST['redirect_to'] ) )
+ $redirect_to = $_REQUEST['redirect_to'];
+
+ wp_safe_redirect($redirect_to);
+ exit();
+
+break;
+
+case 'login' :
+default:
+ if ( isset( $_REQUEST['redirect_to'] ) )
+ $redirect_to = $_REQUEST['redirect_to'];
+ else
+ $redirect_to = 'wp-admin/';
+
+ $user = wp_signon();
+
+ if ( !is_wp_error($user) ) {
+ if ( !$user->has_cap('edit_posts') && ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' ) )
+ $redirect_to = get_option('siteurl') . '/wp-admin/profile.php';
+ wp_safe_redirect($redirect_to);
+ exit();
+ }
+
+ $errors = $user;
+ if ( !empty($_GET['loggedout']) )
+ $errors = new WP_Error();
+
+ if ( isset($_POST['testcookie']) && empty($_COOKIE[TEST_COOKIE]) )
+ $errors->add('test_cookie', sprintf(__("<strong>ERROR</strong>: Cookies are blocked or not supported by your browser. You must <a%s>enable cookies</a> to use WordPress.", 'wpmp'), " href='http://www.google.com/cookies.html'"));
+
+ if ( isset($_GET['loggedout']) && TRUE == $_GET['loggedout'] ) $errors->add('loggedout', __('You are now logged out.', 'wpmp'), 'message');
+ elseif ( isset($_GET['registration']) && 'disabled' == $_GET['registration'] ) $errors->add('registerdiabled', __('User registration is currently not allowed.', 'wpmp'));
+ elseif ( isset($_GET['checkemail']) && 'confirm' == $_GET['checkemail'] ) $errors->add('confirm', __('Check your e-mail for the confirmation link.', 'wpmp'), 'message');
+ elseif ( isset($_GET['checkemail']) && 'newpass' == $_GET['checkemail'] ) $errors->add('newpass', __('Check your e-mail for your new password.', 'wpmp'), 'message');
+ elseif ( isset($_GET['checkemail']) && 'registered' == $_GET['checkemail'] ) $errors->add('registered', __('Registration complete. Please check your e-mail.', 'wpmp'), 'message');
+
+ wpmp_switcher_login_header(__('Login', 'wpmp'), '', $errors);
+?>
+
+<form name="loginform" id="loginform" action="wp-login.php" method="post">
+<?php if ( !isset($_GET['checkemail']) || !in_array( $_GET['checkemail'], array('confirm', 'newpass') ) ) : ?>
+ <p>
+ <label><?php _e('Username', 'wpmp') ?><br />
+ <input type="text" name="log" id="user_login" class="input" value="<?php echo attribute_escape(stripslashes(@$user_login)); ?>" size="20" tabindex="10" /></label>
+ </p>
+ <p>
+ <label><?php _e('Password', 'wpmp') ?><br />
+ <input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20" /></label>
+ </p>
+<?php do_action('login_form'); ?>
+ <p class="forgetmenot"><label><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" /> <?php _e('Remember Me', 'wpmp'); ?></label></p>
+ <p class="submit">
+ <input type="submit" name="wp-submit" id="submit" value="<?php _e('Log In', 'wpmp'); ?>" tabindex="100" />
+ <input type="hidden" name="redirect_to" value="<?php echo attribute_escape($redirect_to); ?>" />
+ <input type="hidden" name="testcookie" value="1" />
+ </p>
+<?php else : ?>
+ <p>&nbsp;</p>
+<?php endif; ?>
+</form>
+
+<p id="backtoblog"><a href="<?php bloginfo('url'); ?>/" title="<?php _e('Are you lost?', 'wpmp') ?>"><?php print '&laquo; ' . sprintf(__('Back to %s', 'wpmp'), get_bloginfo('title', 'display' )); ?></a></p>
+
+<?php
+ wpmp_ms_mobile_bottom();
+ break;
+}
+
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/wpmp_switcher.php b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/wpmp_switcher.php
new file mode 100755
index 00000000..72f756f5
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/wpmp_switcher.php
@@ -0,0 +1,708 @@
+<?php
+
+/*
+$Id: wpmp_switcher.php 567923 2012-07-05 18:10:01Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/wpmp_switcher.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+/*
+Plugin Name: Mobile Switcher
+Plugin URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: Detects a mobile user accessing your site and switches theme accordingly. This plugin is tested with WordPress 2.5, 2.6, 2.7 and 2.8.
+Version: 1.2.5
+Author: James Pearce & friends
+Author URI: http://www.assembla.com/spaces/wordpress-mobile-pack
+*/
+
+define("WPMP_SWITCHER_COOKIE_VAR", "wpmp_switcher");
+define("WPMP_SWITCHER_CGI_VAR", "wpmp_switcher");
+define("WPMP_SWITCHER_NO_SWITCH", 0);
+define("WPMP_SWITCHER_DESKTOP_PAGE", 1);
+define("WPMP_SWITCHER_MOBILE_PAGE", 2);
+define("WPMP_SWITCHER_REDIRECT_TO_MOBILE", 3);
+define("WPMP_SWITCHER_REDIRECT_TO_DESKTOP", 4);
+define("WPMP_SWITCHER_MOBILE_INTERSTITIAL", 5);
+define("WPMP_SWITCHER_DESKTOP_INTERSTITIAL", 6);
+
+if (file_exists($theme_functions_persist = str_replace('/', DIRECTORY_SEPARATOR, get_theme_root()) . DIRECTORY_SEPARATOR . 'mobile_pack_base' . DIRECTORY_SEPARATOR . 'functions_persist.php')) {
+ include_once($theme_functions_persist);
+}
+
+add_action('init', 'wpmp_switcher_init');
+add_action('admin_menu', 'wpmp_switcher_admin_menu');
+add_action('wp_footer', 'wpmp_switcher_wp_footer');
+add_filter('stylesheet', 'wpmp_switcher_stylesheet');
+add_filter('template', 'wpmp_switcher_template');
+add_filter('option_home', 'wpmp_switcher_option_home_siteurl');
+add_filter('option_siteurl', 'wpmp_switcher_option_home_siteurl');
+
+if (function_exists('add_cacheaction')) {
+ // WP Super Cache integration
+ if (isset($GLOBALS['wp_super_cache_debug']) && $GLOBALS['wp_super_cache_debug']) {
+ wp_cache_debug("Adding hook for wpmp mobile detection", 5);
+ }
+ add_cacheaction('wp_cache_get_cookies_values', 'wpmp_switcher_wp_cache_check_mobile');
+}
+
+function wpmp_switcher_init() {
+ wp_register_sidebar_widget('wpmp_switcher_widget_link', __('Mobile Switcher Link', 'wpmp'), 'wpmp_switcher_widget_link',
+ array('classname' => 'wpmp_switcher_widget_link', 'description' => __( "A link that allows users to toggle between desktop and mobile sites (when a switcher mode is enabled)", 'wpmp'))
+ );
+ switch($switcher_outcome = wpmp_switcher_outcome()) {
+ case WPMP_SWITCHER_NO_SWITCH:
+ break;
+ case WPMP_SWITCHER_DESKTOP_PAGE:
+ wpmp_switcher_hit('desktop');
+ wpmp_switcher_set_cookie('desktop');
+ break;
+ case WPMP_SWITCHER_MOBILE_PAGE:
+ wpmp_switcher_hit('mobile');
+ wpmp_switcher_set_cookie('mobile');
+ if (strpos(strtolower($_SERVER['REQUEST_URI']), '/wp-login.php')!==false) {
+ wpmp_switcher_mobile_login();
+ }
+ if (is_admin() || strtolower(substr($_SERVER['REQUEST_URI'], -9))=='/wp-admin') {
+ wpmp_switcher_mobile_admin();
+ }
+ break;
+ case WPMP_SWITCHER_DESKTOP_INTERSTITIAL:
+ wpmp_switcher_desktop_interstitial();
+ break;
+ case WPMP_SWITCHER_MOBILE_INTERSTITIAL:
+ wpmp_switcher_mobile_interstitial();
+ break;
+ case WPMP_SWITCHER_REDIRECT_TO_MOBILE:
+ $target_url = "http://" . wpmp_switcher_domains('mobile', true) . wpmp_switcher_current_path_plus_cgi();
+ header("Location: $target_url");
+ exit;
+ case WPMP_SWITCHER_REDIRECT_TO_DESKTOP:
+ $target_url = "http://" . wpmp_switcher_domains('desktop', true) . wpmp_switcher_current_path_plus_cgi();
+ header("Location: $target_url");
+ exit;
+ }
+ if($switcher_outcome!=WPMP_SWITCHER_NO_SWITCH) {
+ remove_filter('template_redirect', 'redirect_canonical');
+ }
+}
+function wpmp_switcher_widget_link($args) {
+ extract($args);
+ if(get_option('wpmp_switcher_mode')=='none') {
+ return;
+ }
+ print $before_widget . $before_title . __('Switch site', 'wpmp') . $after_title;
+ switch (wpmp_switcher_outcome()) {
+ case WPMP_SWITCHER_MOBILE_PAGE:
+ print "<ul><li>" . wpmp_switcher_link('desktop', __('Switch to our desktop site', 'wpmp')) . "</li></ul>";
+ break;
+ case WPMP_SWITCHER_DESKTOP_PAGE:
+ print "<ul><li>" . wpmp_switcher_link('mobile', __('Switch to our mobile site', 'wpmp')) . "</li></ul>";
+ break;
+ }
+ print $after_widget;
+}
+function wpmp_switcher_activate() {
+ $default_desktop_domain=wpmp_switcher_trim_domain(get_option('home'));
+ $default_desktop_domains = array();
+ $default_mobile_domains = array();
+
+ $default_desktop_domains[] = $default_desktop_domain;
+ if(($tld=substr($default_desktop_domain, 0, -4))==".com" || $tld==".org" || $tld==".net") {
+ $default_mobile_domains[] = substr($default_desktop_domain, 0, -4) . ".mobi";
+ }
+ if(substr($default_desktop_domain, 0, 4)=="www.") {
+ $default_desktop_domains[] = substr($default_desktop_domain, 4);
+ $default_mobile_domains[] = "m." . substr($default_desktop_domain, 4);
+ } else {
+ $default_mobile_domains[] = "m." . $default_desktop_domain;
+ }
+ $default_theme = '';
+ foreach(get_themes() as $name=>$theme) {
+ if ($default_theme=='') {
+ $default_theme = $theme;
+ }
+ if(strpos(strtolower($name), 'mobile')!==false) {
+ $default_theme = $theme;
+ break;
+ }
+ }
+ foreach(array(
+ 'wpmp_switcher_mode'=>'browser',
+ 'wpmp_switcher_detection'=>'simple',
+ 'wpmp_switcher_desktop_domains'=>implode(", ", $default_desktop_domains),
+ 'wpmp_switcher_mobile_domains'=>implode(", ", $default_mobile_domains),
+ 'wpmp_switcher_mobile_theme'=>$default_theme['Name'],
+ 'wpmp_switcher_mobile_theme_stylesheet'=>$default_theme['Stylesheet'],
+ 'wpmp_switcher_mobile_theme_template'=>$default_theme['Template'],
+ 'wpmp_switcher_footer_links'=>'true',
+ 'wpmp_switcher_hits_desktop'=>'0',
+ 'wpmp_switcher_hits_mobile'=>'0',
+ 'wpmp_switcher_hits_start'=>microtime(true),
+ ) as $name=>$value) {
+ if (get_option($name)=='') {
+ update_option($name, $value);
+ }
+ }
+ //fixing incorrect settings from WP1.1.2 & earlier
+ foreach(array('desktop', 'mobile') as $type) {
+ $domains = strtolower(get_option('wpmp_switcher_' . $type . '_domains'));
+ $domains = explode(",", $domains);
+ $trimmed_domains = array();
+ foreach($domains as $domain) {
+ $trimmed_domains[] = wpmp_switcher_trim_domain($domain);
+ }
+ update_option('wpmp_switcher_' . $type . '_domains', join(', ', $trimmed_domains));
+ }
+}
+
+function wpmp_switcher_trim_domain($domain) {
+ $trimmed_domain = trim(strtolower($domain));
+ if(substr($trimmed_domain, 0, 7) == 'http://') {
+ $trimmed_domain = substr($trimmed_domain, 7);
+ } elseif(substr($trimmed_domain, 0, 8) == 'https://') {
+ $trimmed_domain = substr($trimmed_domain, 8);
+ }
+ $trimmed_domain = explode("/", "$trimmed_domain/");
+ $trimmed_domain = $trimmed_domain[0];
+ return $trimmed_domain;
+}
+
+function wpmp_switcher_deactivate() {
+}
+
+
+function wpmp_switcher_admin_menu() {
+ add_theme_page(__('Mobile Switcher', 'wpmp'), __('Mobile Switcher', 'wpmp'), 3, 'wpmp_switcher_admin', 'wpmp_switcher_admin');
+}
+function wpmp_switcher_admin() {
+ if(sizeof($_POST)>0) {
+ print '<div id="message" class="updated fade"><p><strong>' . wpmp_switcher_options_write() . '</strong></p></div>';
+ }
+ include_once('wpmp_switcher_admin.php');
+}
+
+function wpmp_switcher_wp_footer($force=false) {
+ if(!$force && (get_option('wpmp_switcher_mode')=='none' || get_option('wpmp_switcher_footer_links')!='true')) {
+ return;
+ }
+ switch (wpmp_switcher_outcome()) {
+ case WPMP_SWITCHER_MOBILE_PAGE:
+ print "<p>" . wpmp_switcher_link('desktop', __('Switch to our desktop site', 'wpmp')) . "</p>";
+ break;
+ case WPMP_SWITCHER_DESKTOP_PAGE:
+ print "<p>" . wpmp_switcher_link('mobile', __('Switch to our mobile site', 'wpmp')) . "</p>";
+ break;
+ }
+}
+function wpmp_switcher_stylesheet($stylesheet) {
+ switch (wpmp_switcher_outcome()) {
+ case WPMP_SWITCHER_MOBILE_PAGE:
+ case WPMP_SWITCHER_MOBILE_INTERSTITIAL:
+ if($mobile_stylesheet = get_option('wpmp_switcher_mobile_theme_stylesheet')) {
+ return $mobile_stylesheet;
+ }
+ }
+ return $stylesheet;
+}
+
+function wpmp_switcher_template($template) {
+ switch (wpmp_switcher_outcome()) {
+ case WPMP_SWITCHER_MOBILE_PAGE:
+ case WPMP_SWITCHER_MOBILE_INTERSTITIAL:
+ if($mobile_template = get_option('wpmp_switcher_mobile_theme_template')) {
+ return $mobile_template;
+ }
+ }
+ return $template;
+}
+
+function wpmp_switcher_option_home_siteurl($value) {
+ switch (wpmp_switcher_outcome()) {
+ case WPMP_SWITCHER_MOBILE_PAGE:
+ case WPMP_SWITCHER_MOBILE_INTERSTITIAL:
+ if(($scheme = substr($value, 0, 7))=="http://" || ($scheme = substr($value, 0, 8))=="https://") {
+ $path = "";
+ if(sizeof($parts=(explode('/', "$value", 4)))==4) {
+ $path = '/' . array_pop($parts);
+ }
+ if (strpos(get_option('wpmp_switcher_mode'), 'domain')!==false){
+ $domain = wpmp_switcher_domains('mobile', true);
+ } else {
+ $domain = $_SERVER['HTTP_HOST'];
+ }
+ return $scheme . $domain . $path;
+ }
+ }
+ return $value;
+}
+
+function wpmp_switcher_hit($type='desktop') {
+ $current = get_option("wpmp_switcher_hits_$type");
+ if(!is_numeric($current)) {
+ wpmp_switcher_hit_reset();
+ $current = '0';
+ }
+ if(function_exists('bcadd')) {
+ $next = bcadd($current, '1');
+ } else {
+ $next = $current + 1;
+ }
+ update_option("wpmp_switcher_hits_$type", $next);
+}
+function wpmp_switcher_hit_reset() {
+ update_option("wpmp_switcher_hits_desktop", 0);
+ update_option("wpmp_switcher_hits_mobile", 0);
+ update_option("wpmp_switcher_hits_start", microtime(true));
+}
+function wpmp_switcher_hit_data() {
+ $desktop = get_option("wpmp_switcher_hits_desktop");
+ $mobile = get_option("wpmp_switcher_hits_mobile");
+ $duration = floor(microtime(true) - get_option("wpmp_switcher_hits_start"))+1;
+ return "1.$desktop.$mobile.$duration";
+}
+function wpmp_switcher_hit_summary() {
+ $desktop = get_option("wpmp_switcher_hits_desktop");
+ $desktop_text = sprintf(__ngettext('one desktop hit', '%d desktop hits', wpmp_switcher_humanize_number($desktop), 'wpmp'), $desktop);
+ $mobile = get_option("wpmp_switcher_hits_mobile");
+ $mobile_text = sprintf(__ngettext('one mobile hit', '%d mobile hits', wpmp_switcher_humanize_number($mobile), 'wpmp'), $mobile);
+ $duration = wpmp_switcher_humanize_delta(microtime(true) - get_option("wpmp_switcher_hits_start"));
+ $percentage = round(100 * $mobile / ($desktop + $mobile), 1);
+ return "<strong>" . sprintf(__('%d%% of your traffic is currently from mobile users.', 'wpmp'), $percentage) . "</strong><br />" .
+ sprintf(__('You\'ve had %1$s and %2$s in the last %3$s.', 'wpmp'), $desktop_text, $mobile_text, $duration);
+}
+
+function wpmp_switcher_humanize_number($number) {
+ $number = $number * 1;
+ $suffix = '';
+ if ($number>(1000000000000)){
+ $suffix=' ' . __('trillion', 'wpmp');
+ $number = $number / (1000000000000);
+ } elseif ($number>(1000000000)){
+ $suffix=' ' . __('billion', 'wpmp');
+ $number = $number / (1000000000);
+ } elseif ($number>(1000000)){
+ $suffix=' ' . __('million', 'wpmp');
+ $number = $number / (1000000);
+ }
+ return round($number, 1) . $suffix;
+}
+
+function wpmp_switcher_humanize_delta($seconds) {
+ $seconds = $seconds * 1;
+ $suffix = ' ' . __('seconds', 'wpmp');
+ if (($seconds)>60*60*24*365*2){
+ $suffix=' ' . __('years', 'wpmp');
+ $seconds = round($seconds / (60*60*24*365), 1);
+ } elseif ($seconds>60*60*24*30*2){
+ $suffix=' ' . __('months', 'wpmp');
+ $seconds = round($seconds / (60*60*24*30), 0);
+ } elseif ($seconds>60*60*24*7*2){
+ $suffix=' ' . __('weeks', 'wpmp');
+ $seconds = round($seconds / (60*60*24*7), 1);
+ } elseif ($seconds>60*60*24*2){
+ $suffix=' ' . __('days', 'wpmp');
+ $seconds = round($seconds / (60*60*24), 1);
+ } elseif ($seconds>60*60*2){
+ $suffix=' ' . __('hours', 'wpmp');
+ $seconds = round($seconds / (60*60), 1);
+ } elseif ($seconds>60){
+ $suffix=' ' . __('minutes', 'wpmp');
+ $seconds = round($seconds / 60, 1);
+ } else {
+ $seconds = round($seconds, 1);
+ }
+ return $seconds . $suffix;
+}
+
+function wpmp_switcher_outcome() {
+ global $wpmp_switcher_outcome;
+ if(!isset($wpmp_switcher_outcome)) {
+ $switcher_mode = get_option('wpmp_switcher_mode');
+ if (wpmp_switcher_domains('desktop', true) == wpmp_switcher_domains('mobile', true)) {
+ $switcher_mode = "browser";
+ }
+ $desktop_domain = wpmp_switcher_is_domain('desktop');
+ $mobile_domain = wpmp_switcher_is_domain('mobile');
+ if($desktop_domain==$mobile_domain) {
+ $desktop_domain=!$desktop_domain;
+ }
+ $desktop_browser = wpmp_switcher_is_browser('desktop');
+ $mobile_browser = wpmp_switcher_is_browser('mobile');
+ if($desktop_browser==$mobile_browser) {
+ $desktop_browser=!$desktop_browser;
+ }
+ $desktop_cookie = wpmp_switcher_is_cookie('desktop');
+ $mobile_cookie = wpmp_switcher_is_cookie('mobile');
+ $cgi = wpmp_switcher_is_cgi_parameter_present();
+ $wpmp_switcher_outcome = wpmp_switcher_outcome_process($switcher_mode, $desktop_domain, $mobile_domain, $desktop_browser, $mobile_browser, $desktop_cookie, $mobile_cookie, $cgi);
+ }
+ return $wpmp_switcher_outcome;
+}
+function wpmp_switcher_outcome_process($switcher_mode, $desktop_domain, $mobile_domain, $desktop_browser, $mobile_browser, $desktop_cookie, $mobile_cookie, $cgi) {
+ switch ($switcher_mode) {
+ case 'browser':
+ if ($cgi=='desktop' || $desktop_cookie) {
+ return WPMP_SWITCHER_DESKTOP_PAGE;
+ } elseif ($cgi=='mobile' || $mobile_cookie) {
+ return WPMP_SWITCHER_MOBILE_PAGE;
+ }
+ return $mobile_browser ? WPMP_SWITCHER_MOBILE_PAGE : WPMP_SWITCHER_DESKTOP_PAGE;
+ case 'domain':
+ return $mobile_domain ? WPMP_SWITCHER_MOBILE_PAGE : WPMP_SWITCHER_DESKTOP_PAGE;
+ case 'browserdomain':
+ if ($desktop_domain) {
+ if ($desktop_browser) {
+ if ($mobile_cookie && !$cgi) {
+ return WPMP_SWITCHER_REDIRECT_TO_MOBILE;
+ } else {
+ return WPMP_SWITCHER_DESKTOP_PAGE;
+ }
+ } else {
+ if ($cgi || $desktop_cookie) {
+ return WPMP_SWITCHER_DESKTOP_PAGE;
+ } else {
+ if ($mobile_cookie) {
+ return WPMP_SWITCHER_REDIRECT_TO_MOBILE;
+ } else {
+ return WPMP_SWITCHER_MOBILE_INTERSTITIAL;
+ }
+ }
+ }
+ } else {
+ if ($mobile_browser) {
+ if ($desktop_cookie && !$cgi) {
+ return WPMP_SWITCHER_REDIRECT_TO_DESKTOP;
+ } else {
+ return WPMP_SWITCHER_MOBILE_PAGE;
+ }
+ } else {
+ if ($cgi || $mobile_cookie) {
+ return WPMP_SWITCHER_MOBILE_PAGE;
+ } else {
+ if ($desktop_cookie) {
+ return WPMP_SWITCHER_REDIRECT_TO_DESKTOP;
+ } else {
+ return WPMP_SWITCHER_DESKTOP_INTERSTITIAL;
+ }
+ }
+ }
+ }
+ default:
+ return WPMP_SWITCHER_NO_SWITCH;
+ }
+}
+
+function wpmp_switcher_domains($type='desktop', $first_only=false) {
+ if(get_option('wpmp_switcher_mode')=='browser'){
+ $type = 'desktop';
+ }
+ $domains = strtolower(get_option('wpmp_switcher_' . $type . '_domains'));
+ $domains = explode(",", $domains);
+ $trimmed_domains = array();
+ foreach($domains as $domain) {
+ if($first_only) {
+ return wpmp_switcher_trim_domain($domain);
+ }
+ $trimmed_domains[] = wpmp_switcher_trim_domain($domain);
+ }
+ return $trimmed_domains;
+}
+function wpmp_switcher_is_domain($type='desktop') {
+ $this_domain = strtolower($_SERVER['HTTP_HOST']);
+ $domains = wpmp_switcher_domains($type);
+ foreach($domains as $domain) {
+ if (substr($this_domain, -strlen($domain)) == $domain) {
+ return true;
+ }
+ }
+ return false;
+}
+
+function wpmp_switcher_is_browser($type='desktop') {
+ return call_user_func('wpmp_switcher_is_' . $type . '_browser');
+}
+function wpmp_switcher_is_desktop_browser() {
+ return !wpmp_switcher_is_mobile_browser();
+}
+function wpmp_switcher_is_mobile_browser() {
+ global $wpmp_switcher_is_mobile_browser;
+ if (!isset($wpmp_switcher_is_mobile_browser)) {
+ if(get_option('wpmp_switcher_detection')=='deviceatlas' &&
+ function_exists('wpmp_deviceatlas_enabled') &&
+ wpmp_deviceatlas_enabled()
+ ) {
+ $wpmp_switcher_is_mobile_browser = (wpmp_deviceatlas_property("mobileDevice")==1);
+ } else {
+ include_once('lite_detection.php');
+ $wpmp_switcher_is_mobile_browser = lite_detection();
+ }
+ }
+ return $wpmp_switcher_is_mobile_browser;
+}
+function wpmp_switcher_is_cookie($type='desktop') {
+ return (isset($_COOKIE[WPMP_SWITCHER_COOKIE_VAR]) && $_COOKIE[WPMP_SWITCHER_COOKIE_VAR] == $type);
+}
+function wpmp_switcher_is_cgi_parameter_present() {
+ if(isset($_GET[WPMP_SWITCHER_CGI_VAR])) {
+ return $_GET[WPMP_SWITCHER_CGI_VAR];
+ }
+ return false;
+}
+
+
+
+function wpmp_switcher_link($type, $label) {
+ $cookie = WPMP_SWITCHER_COOKIE_VAR . "=$type;path=/;expires=Tue, 01-01-2030 00:00:00 GMT";
+ $target_url = esc_url("http://" . wpmp_switcher_domains($type, true) . wpmp_switcher_current_path_plus_cgi('', $type));
+ if ($target_url) {
+ return "<a onclick='document.cookie=\"$cookie\";' href='$target_url'>$label</a>";
+ }
+}
+
+function wpmp_switcher_current_path_plus_cgi($path='', $type='true') {
+ if($path) {
+ if(strpos(strtolower($path), 'http://')===0 || strpos(strtolower($path), 'https://')===0) {
+ $path = explode("/", $path, 4);
+ $path = '/' . array_pop($path);
+ }
+ } else {
+ $path = $_SERVER['REQUEST_URI'];
+ }
+ $path = htmlentities($path);
+ foreach(array("true", "desktop", "mobile") as $t) {
+ $path = str_replace(WPMP_SWITCHER_CGI_VAR . "=$t&amp;", "", $path);
+ $path = str_replace(WPMP_SWITCHER_CGI_VAR . "=$t&", "", $path);
+ $path = str_replace("&amp;" . WPMP_SWITCHER_CGI_VAR . "=$t", "", $path);
+ $path = str_replace("&" . WPMP_SWITCHER_CGI_VAR . "=$t", "", $path);
+ $path = str_replace(WPMP_SWITCHER_CGI_VAR . "=$t", "", $path);
+ } //surely there's a better way
+ if (strpos($path, "?") === false) {
+ return $path . "?" . WPMP_SWITCHER_CGI_VAR . "=$type";
+ } elseif (substr($path, -1) == "?") {
+ return $path . WPMP_SWITCHER_CGI_VAR . "=$type";
+ }
+ return $path . "&amp;" . WPMP_SWITCHER_CGI_VAR . "=$type";
+}
+function wpmp_switcher_set_cookie($type) {
+ setcookie(WPMP_SWITCHER_COOKIE_VAR, $type, time()+60*60*24*365, '/');
+}
+function wpmp_switcher_interstitial($type) {
+ return call_user_func('wpmp_switcher_' . $type . '_interstitial');
+}
+function wpmp_switcher_desktop_interstitial() {
+ add_action('template_redirect', 'wpmp_switcher_template_redirect_desktop_insterstitial');
+}
+function wpmp_switcher_template_redirect_desktop_insterstitial() {
+ include_once('pages/desktop_interstitial.php');
+ exit;
+}
+function wpmp_switcher_mobile_interstitial() {
+ add_action('template_redirect', 'wpmp_switcher_template_redirect_mobile_insterstitial');
+}
+function wpmp_switcher_template_redirect_mobile_insterstitial() {
+ include_once('pages/mobile_interstitial.php');
+ exit;
+}
+function wpmp_switcher_mobile_login() {
+ include_once('pages/mobile_login.php');
+ exit;
+}
+function wpmp_switcher_mobile_admin() {
+ include_once('pages/mobile_admin.php');
+ exit;
+}
+function wpmp_switcher_options_write() {
+ $message = __('Settings saved.', 'wpmp');
+ foreach(array(
+ 'wpmp_switcher_mode'=>false,
+ 'wpmp_switcher_detection'=>false,
+ 'wpmp_switcher_desktop_domains'=>false,
+ 'wpmp_switcher_mobile_domains'=>false,
+ 'wpmp_switcher_mobile_theme'=>false,
+ 'wpmp_switcher_footer_links'=>true,
+ ) as $option=>$checkbox) {
+ if(isset($_POST[$option])){
+ $value = $_POST[$option];
+ if(!is_array($value)) {
+ $value = trim($value);
+ }
+ $value = stripslashes_deep($value);
+ update_option($option, $value);
+ } elseif ($checkbox) {
+ update_option($option, 'false');
+ }
+ }
+ $option = 'wpmp_switcher_mobile_theme';
+ $theme_data = get_theme(get_option($option));
+ if(isset($theme_data['Stylesheet']) && isset($theme_data['Template'])) {
+ update_option($option . "_stylesheet", $theme_data['Stylesheet']);
+ update_option($option . "_template", $theme_data['Template']);
+ }
+ if (strpos(get_option('wpmp_switcher_mode'), 'none')===false) {
+ foreach(array('wpmp_switcher_mobile_domains', 'wpmp_switcher_desktop_domains') as $option) {
+ $trimmed_domains=array();
+ foreach(split(",", get_option($option)) as $domain) {
+ $domain = trim($domain);
+ $trimmed_domain = wpmp_switcher_trim_domain($domain);
+ if ($trimmed_domain!=$domain) {
+ $message = __('You must provide clean domain names without any leading or trailing syntax. We fixed them for you.', 'wpmp');
+ }
+ $trimmed_domains[] = $trimmed_domain;
+ }
+ update_option($option, join(', ', $trimmed_domains));
+ }
+ }
+
+ if (get_option('wpmp_switcher_desktop_domains')=='' || get_option('wpmp_switcher_mobile_domains')=='') {
+ switch(get_option('wpmp_switcher_mode')) {
+ case 'domain':
+ update_option('wpmp_switcher_mode', 'none');
+ $message = __('You must provide both desktop and mobile domains. Switching has been disabled.', 'wpmp');
+ break;
+ case 'browserdomain':
+ update_option('wpmp_switcher_mode', 'browser');
+ $message = __('You must provide both desktop and mobile domains. Switching has been changed to browser detection only.', 'wpmp');
+ break;
+ }
+ }
+ return $message;
+}
+
+function wpmp_switcher_option($option, $onchange='') {
+ switch ($option) {
+ case 'wpmp_switcher_mode':
+ return wpmp_switcher_option_dropdown(
+ $option,
+ array(
+ 'none'=>__('Disabled', 'wpmp'),
+ 'browser'=>__('Browser detection', 'wpmp'),
+ 'domain'=>__('Domain mapping', 'wpmp'),
+ 'browserdomain'=>__('BOTH: browser detection and domain mapping', 'wpmp'),
+ ),
+ $onchange
+ );
+
+ case 'wpmp_switcher_mobile_theme':
+ return wpmp_switcher_option_themes($option);
+
+ case 'wpmp_switcher_detection':
+ $options = array('simple'=>__('User-agent prefixes', 'wpmp'));
+ if(function_exists('wpmp_deviceatlas_enabled') && wpmp_deviceatlas_enabled()) {
+ $options['simple']=__('SIMPLE: User-agent prefixes', 'wpmp');
+ $options['deviceatlas']=__('ADVANCED: DeviceAtlas recognition', 'wpmp');
+ }
+ return wpmp_switcher_option_dropdown(
+ $option, $options, $onchange
+ );
+ case 'wpmp_switcher_desktop_domains':
+ case 'wpmp_switcher_mobile_domains':
+ return wpmp_switcher_option_text(
+ $option,
+ $onchange
+ );
+
+ case 'wpmp_switcher_footer_links':
+ return wpmp_switcher_option_checkbox(
+ $option,
+ $onchange
+ );
+ }
+}
+
+
+function wpmp_switcher_option_dropdown($option, $options, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ $dropdown = "<select id='$option' name='$option' $onchange>";
+ foreach($options as $value=>$description) {
+ if(get_option($option)==$value) {
+ $selected = ' selected="true"';
+ } else {
+ $selected = '';
+ }
+ $dropdown .= '<option value="' . attribute_escape($value) . '"' . $selected . '>' . __($description, 'wpmp') . '</option>';
+ }
+ $dropdown .= "</select>";
+ return $dropdown;
+}
+
+function wpmp_switcher_option_text($option, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ $text = '<input type="text" id="' . $option . '" name="' . $option . '" value="' . attribute_escape(get_option($option)) . '" ' . $onchange . '/>';
+ return $text;
+}
+
+function wpmp_switcher_option_checkbox($option, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '"';
+ }
+ $checkbox = '<input type="checkbox" id="' . $option . '" name="' . $option . '" value="true" ' . (get_option($option)==='true'?'checked="true"':'') . ' ' . $onchange . ' />';
+ return $checkbox;
+}
+
+function wpmp_switcher_option_themes($option) {
+ $mobile_themes = array();
+ $non_mobile_themes = array();
+ foreach(get_themes() as $name=>$theme) {
+ if(strpos(strtolower($name), 'mobile')!==false) {
+ $mobile_themes[$name] = $name;
+ } else {
+ $non_mobile_themes[$name] = $name;
+ }
+ }
+ if(sizeof($mobile_themes)>0) {
+ $mobile_themes[''] = '-------';
+ }
+ $options = array_merge($mobile_themes, $non_mobile_themes);
+ return wpmp_switcher_option_dropdown($option, $options);
+}
+
+function wpmp_switcher_desktop_theme() {
+ $info = current_theme_info();
+ return $info->title;
+}
+
+function wpmp_switcher_wp_cache_check_mobile( $cache_key ) {
+ if (!isset($_SERVER["HTTP_USER_AGENT"])) {
+ return $cache_key;
+ }
+
+ $is_mobile = wpmp_switcher_is_mobile_browser();
+ $mobile_group = '';
+ $wp_mobile_pack_dir = WP_CONTENT_DIR . '/plugins/wordpress-mobile-pack';
+ if ($is_mobile && is_file($wp_mobile_pack_dir . '/themes/mobile_pack_base/group_detection.php')) {
+ include_once($wp_mobile_pack_dir . '/themes/mobile_pack_base/group_detection.php');
+ $mobile_group = group_detection();
+ }
+ if (isset($GLOBALS['wp_super_cache_debug']) && $GLOBALS['wp_super_cache_debug']) {
+ wp_cache_debug("Lite detection says is_mobile: {$is_mobile} and group: {$mobile_group} for User-Agent: " . $_SERVER[ "HTTP_USER_AGENT" ], 5);
+ }
+
+ $new_cache_key = $cache_key . $is_mobile . $mobile_group;
+ // In the worst case we return the cache_key as it came in
+ return $new_cache_key;
+}
+
+?>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/wpmp_switcher_admin.php b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/wpmp_switcher_admin.php
new file mode 100755
index 00000000..b034c365
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_switcher/wpmp_switcher_admin.php
@@ -0,0 +1,122 @@
+<?php
+
+/*
+$Id: wpmp_switcher_admin.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/wpmp_switcher_admin.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+<div class="wrap">
+ <h2>
+ <?php _e('Mobile Switcher', 'wpmp') ?>
+ <p style='font-size:small;font-style:italic;margin:0'>
+ <?php _e('Part of the WordPress Mobile Pack', 'wpmp'); ?>
+ </p>
+ </h2>
+ <form method="post" action="">
+ <table class="form-table">
+ <tr>
+ <th><?php _e('Switcher mode', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_switcher_option('wpmp_switcher_mode', 'wpmpSwitcherMode();'); ?>
+ <br />
+ <?php _e('The switcher can detect whether the user is using a mobile device or has requested a mobile domain. It will switch theme accordingly.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr class='wpmp_theme'>
+ <th><?php _e('Mobile theme', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_switcher_option('wpmp_switcher_mobile_theme'); ?>
+ <br />
+ <?php _e('The theme that will be sent to a mobile user. Desktop users will receive ', 'wpmp'); ?>
+ <a href='/wp-admin/themes.php' target='_blank'><?php print wpmp_switcher_desktop_theme(); ?></a>
+ </td>
+ </tr>
+ <tr class='wpmp_browser'>
+ <th><?php _e('Browser detection', 'wpmp'); ?></th>
+ <td><?php print wpmp_switcher_option('wpmp_switcher_detection'); ?></td>
+ </tr>
+ <tr class='wpmp_desktop_domain'>
+ <th><?php _e('Desktop domains', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_switcher_option('wpmp_switcher_desktop_domains'); ?>
+ <br />
+ <?php _e('Use comma-separated domain names. eg:', 'wpmp'); ?> <b>mysite.com, downloads.mysite.com</b>
+ <br />
+ <?php _e("Desktop users who mistakenly access a mobile domain will be given the option to return to the first domain in this list.", 'wpmp'); ?>
+ <br />
+ <?php _e("This is also the domain used for switching when 'browser detection' is used, and in that case should be your site's primary domain.", 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr class='wpmp_mobile_domain'>
+ <th><?php _e('Mobile domains', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_switcher_option('wpmp_switcher_mobile_domains'); ?>
+ <br />
+ <?php _e('Use comma-separated domain fragments. eg:', 'wpmp'); ?> <b>mysite.mobi, m.mysite.com</b>
+ <?php
+ if (strpos(get_option('wpmp_switcher_mode'), 'domain')!==false && wpmp_switcher_domains('desktop', true) == wpmp_switcher_domains('mobile', true)) {
+ _e("<br /><strong style='color:#770000'>Warning</strong>: your primary desktop and mobile domains are the same. The switcher will default to 'browser detection' mode unless one is changed.", 'wpmp');
+ }
+ ?>
+ <br/>
+ <?php _e('Mobile users who mistakenly access a desktop domain will be given the option to return to the first domain in this list.', 'wpmp'); ?>
+ <br/>
+ <?php _e('<b>NB</b>: The plugin does not <i>create</i> these domains. You must be sure their DNS entries already resolve and are served by this web server.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr class='wpmp_links'>
+ <th><?php _e('Footer links', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_switcher_option('wpmp_switcher_footer_links'); ?>
+ <br />
+ <?php _e('Places a link in the theme footer to allow users to override the detection.', 'wpmp'); ?>
+ <?php _e('You can also enable the widget that contains this link.', 'wpmp'); ?>
+ <?php _e('Both the footer link and the widget will only appear when a switcher mode is enabled.', 'wpmp'); ?>
+ <?php _e('Regardless of this setting, the switcher link will always appear on the mobile admin pages.', 'wpmp'); ?>
+ </td>
+ </tr>
+ </table>
+ <p class="submit">
+ <input type="submit" name="Submit" value="<?php _e('Save Changes', 'wpmp'); ?>" />
+ </p>
+ </form>
+</div>
+
+<script>
+ var wpmp_pale = 0.3;
+ var wpmp_speed = 'slow';
+ function wpmpSwitcherMode(speed) {
+ if (speed==null) {speed=wpmp_speed;}
+ var value = jQuery("#wpmp_switcher_mode").val();
+ var browser = value.indexOf("browser")>-1;
+ var domain = value.indexOf("domain")>-1;
+ jQuery(".wpmp_browser").children().fadeTo(speed, browser ? 1 : wpmp_pale);
+ jQuery(".wpmp_desktop_domain").children().fadeTo(speed, (domain||browser) ? 1 : wpmp_pale);
+ jQuery(".wpmp_mobile_domain").children().fadeTo(speed, domain ? 1 : wpmp_pale);
+ jQuery(".wpmp_theme").children().fadeTo(speed, (domain||browser) ? 1 : wpmp_pale);
+ jQuery(".wpmp_links").children().fadeTo(speed, (domain||browser) ? 1 : wpmp_pale);
+ }
+ wpmpSwitcherMode(-1);
+</script>
diff --git a/plugins/wordpress-mobile-pack/plugins/wpmp_transcoder/wpmp_transcoder.php b/plugins/wordpress-mobile-pack/plugins/wpmp_transcoder/wpmp_transcoder.php
new file mode 100755
index 00000000..247d69a3
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/plugins/wpmp_transcoder/wpmp_transcoder.php
@@ -0,0 +1,529 @@
+<?php
+
+/*
+$Id: wpmp_transcoder.php 567923 2012-07-05 18:10:01Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_transcoder/wpmp_transcoder.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+/*
+Plugin Name: Mobile Transcoder
+Plugin URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: Rewrites blog pages and posts for the mobile theme, to ensure compatibility with mobile devices
+Version: 1.2.5
+Author: James Pearce & friends
+Author URI: http://www.assembla.com/spaces/wordpress-mobile-pack
+*/
+
+function wpmp_transcoder_activate() {
+ if(!is_writable($dir = $dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'c')) {
+ update_option('wpmp_warning', sprintf(__('<strong>Transcoder will not be able to cache images</strong> to %s.', 'wpmp'), $dir) . ' ' . __('Please ensure that the web server has write-access to that directory.', 'wpmp'));
+ }
+}
+
+function wpmp_transcoder_remove_media(&$content) {
+
+ // in some cases we might know what the tag wants to do, so we can replace it
+ // with something good like a link to the mobile site of YouTube no need to
+ // replace vimeo as the embedding code already comes with a nice link in case
+ // the object is not supported or removed
+ $patterns_to_replace = array(
+ '/<object.*movie\"\ value=\"http\:\/\/(www\.|m\.)?youtube\.com\/(watch\?v=|v\/)(\w+).*\">.*\/object>/i',
+ );
+ $replacements = array(
+ '<a href="http://m.youtube.com/#/watch?v=${3}">YouTube video</a>', // replace the youtube embedding object with a link to the mobile page
+ );
+ $content = preg_replace($patterns_to_replace, $replacements, $content);
+
+ $remove_tags = array(
+ "script"=>true,
+ "object"=>false,
+ "embed"=>false,
+ "marquee"=>false,
+ "frame"=>false,
+ "iframe"=>false,
+ );
+
+ $remove_attributes = array(
+ "on[^=]*",
+ );
+
+ foreach($remove_tags as $remove_tag=>$and_inner) {
+ if($and_inner) {
+ $content = preg_replace("/\<$remove_tag.*\<\/$remove_tag"."[^>]*\>/Usi", "", $content);
+ }
+ $content = preg_replace("/\<\/?$remove_tag"."[^>]*\>/Usi", "", $content);
+ }
+
+ foreach($remove_attributes as $remove_attribute) {
+ $content = preg_replace("/(\<[^>]*)(\s$remove_attribute=\\\".*\\\")/Usi", '$1', $content);
+ $content = preg_replace("/(\<[^>]*)(\s$remove_attribute=\'.*\')/Usi", '$1', $content);
+ }
+
+}
+
+function wpmp_transcoder_partition_pages(&$content) {
+ global $wpmp_transcoder_is_last_page;
+ $pages = wpmp_transcoder_weigh_paragraphs($content);
+ if(!isset($_GET['wpmp_tp']) || !is_numeric($page = $_GET['wpmp_tp'])) {
+ $page = 0;
+ }
+ if($page >= sizeof($pages)) {
+ $page = sizeof($pages)-1;
+ }
+ if($page < 0) {
+ $page = 0;
+ }
+ $pager = '';
+ if(sizeof($pages)>1) {
+ $pager = "<p>" . sprintf(__('Page %1$d of %2$d', 'wpmp'), $page+1, sizeof($pages));
+ if ($page>0) {
+ $previous .= "<a href='" . wpmp_transcoder_replace_cgi("wpmp_tp", $page-1) . "'>" . __('Previous page', 'wpmp') . "</a>";
+ }
+ if ($page<sizeof($pages)-1) {
+ $next .= "<a href='" . wpmp_transcoder_replace_cgi("wpmp_tp", $page+1) . "'>" . __('Next page', 'wpmp') . "</a>";
+ $wpmp_transcoder_is_last_page = false;
+ } else {
+ $wpmp_transcoder_is_last_page = true;
+ }
+ if($previous || $next) {
+ $pager .= " | $previous";
+ if($previous && $next) {
+ $pager .= " | ";
+ }
+ $pager .= $next;
+ }
+ $pager .= "</p>";
+ }
+ $content = "<p>" . @implode("</p><p>", $pages[$page]) . "</p>$pager";
+}
+
+
+function wpmp_transcoder_is_last_page() {
+ global $wpmp_transcoder_is_last_page;
+ if(isset($wpmp_transcoder_is_last_page)) {
+ return $wpmp_transcoder_is_last_page;
+ }
+ return true;
+}
+
+function wpmp_transcoder_shrink_images(&$content) {
+ if(!function_exists('imagecreatetruecolor')) {
+ return;
+ }
+ $content = preg_replace("/\<\/img*\>/Usi", "", $content);
+ preg_match_all("/\<img.* src=((?:'[^']*')|(?:\"[^\"]*\")).*\>/Usi", $content, $images);
+ foreach($images[0] as $img_index=>$image) {
+ $src = $images[1][$img_index];
+ $new_src = trim($src, "'\"");
+ $new_src = wpmp_transcoder_url_join('http://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"], $new_src);
+ $height = "";
+ $width = "";
+ $new_image = $image;
+ preg_match_all("/(width|height)[=:'\"\s]*(\d+)(?:px|[^\d])/Usi", $image, $dimensions);
+ foreach($dimensions[0] as $dimension_index=>$dimension_clause) {
+ $$dimensions[1][$dimension_index] = $dimensions[2][$dimension_index];
+ $new_image = str_replace($dimension_clause, "", $new_image);
+ }
+ if(!$height || !$width) { //er, where did these come from anyway? the magic of $$ ;-)
+ wpmp_transcoder_fetch_image($new_src, $width, $height, $type, $location);
+ }
+ $max_width = wpmp_transcoder_max_screen_width();
+ if($width>$max_width) {
+ $height = floor($height * $max_width / $width);
+ $width = $max_width;
+ }
+ $max_height = wpmp_transcoder_max_screen_height();
+ if($height>$max_height) {
+ $width = floor($width * $max_height / $height);
+ $height = $max_height;
+ }
+ $new_src = wpmp_transcoder_convert_image($new_src, $width, $height);
+ $new_image = str_replace($src, "'$new_src'", $new_image);
+ $new_image = "<img width='$width' height='$height'" . substr($new_image, 4);
+ $content = str_replace($image, $new_image, $content);
+ }
+}
+
+
+function wpmp_transcoder_simplify_styling(&$content) {
+
+ $remove_attributes = array(
+ "align",
+ "background",
+ "bgcolor",
+ "border",
+ "cellpadding",
+ "cellspacing",
+ "class",
+ "color",
+ "height",
+ "style",
+ "width",
+ );
+
+ $remove_tags = array(
+ "center",
+ "font",
+ "span",
+ "style"
+ );
+
+ $remove_empty_tags = array(
+ "\w*",
+ );
+
+ foreach($remove_attributes as $remove_attribute) {
+ $content = preg_replace("/(\<[^>]*)(\s$remove_attribute=\\\".*\\\")/Usi", '$1', $content);
+ $content = preg_replace("/(\<[^>]*)(\s$remove_attribute=\'.*\')/Usi", '$1', $content);
+ }
+
+ foreach($remove_tags as $remove_tag) {
+ $content = preg_replace("/\<\/?$remove_tag"."[^>]*\>/Usi", "", $content);
+ }
+
+ foreach($remove_empty_tags as $remove_empty_tag) {
+ $content = preg_replace("/\<{$remove_empty_tag}\s*\>\<\/{$remove_empty_tag}\s*\>/Usi", "", $content);
+ }
+}
+
+
+
+function wpmp_transcoder_replace_cgi($key, $new_value) {
+ $new_get = array();
+ foreach($_GET as $get=>$value) {
+ if($get!=$key) {
+ $new_get[$get] = urlencode($get) . "=" . urlencode(stripslashes($value));
+ }
+ }
+ $new_get[$key] = urlencode($key) . "=" . urlencode($new_value);
+ return array_shift(explode("?", $_SERVER['REQUEST_URI'])) . "?" . implode("&amp;", $new_get);
+}
+
+function wpmp_transcoder_weigh_paragraphs($content) {
+ $contiguous_tags = array(
+ "ul"=>false,
+ "ol"=>false,
+ "div"=>false,
+ "code"=>false,
+ );
+ $content = trim($content);
+ foreach($contiguous_tags as $contiguous_tag=>$save_breaks) {
+ preg_match_all("/\<{$contiguous_tag}.*<\/{$contiguous_tag}[^>]*\>/Usi", $content, $blocks);
+ foreach($blocks[0] as $block) {
+ $new_block = wpmp_transcoder_normalise_breaks($block);
+ if($save_breaks) {
+ $new_block = str_replace("\n", "<wpmpbr />", $new_block);
+ } else {
+ $new_block = str_replace("\n", " ", $new_block);
+ }
+ $content = str_replace($block, $new_block, $content);
+ }
+ }
+
+ $content = wpmp_transcoder_normalise_breaks($content);
+ $content = explode("\n", $content);
+ $weights = array();
+ $total_weight = 0;
+ $max_weight = wpmp_transcoder_max_paragraph_weight();
+ $paragraphs = array();
+ foreach($content as $paragraph) {
+ $paragraph = trim($paragraph);
+ $paragraph = balanceTags($paragraph, true);
+ if ($paragraph!='') {
+ $weight = strlen($paragraph);
+ if (strpos(strtolower($paragraph), "<img")) {
+ $weight += 300;
+ }
+ $total_weight += $weight;
+ if($weight > $max_weight) {
+ $max_weight = $weight;
+ }
+ $weights[] = $weight;
+ $paragraphs[] = $paragraph;
+ }
+ }
+ $pages = array();
+ $page = 0;
+ $page_weight = 0;
+ foreach($paragraphs as $p=>$paragraph) {
+ if($page_weight + $weights[$p] > $max_weight) {
+ $page++;
+ $page_weight = 0;
+ }
+ $pages[$page][] = str_replace("<wpmpbr />", "<br />", $paragraph);
+ $page_weight += $weights[$p];
+ }
+ return $pages;
+}
+
+function wpmp_transcoder_normalise_breaks($content) {
+ $content = preg_replace("/\r/Usi", "\n", $content);
+ $content = preg_replace("/\<\/?p[^>]*\>/Usi", "\n", $content);
+ $content = preg_replace("/\<\/?br[^>]*\>/Usi", "\n", $content);
+ $content = preg_replace("/\n+/Usi", "\n", $content);
+ $content = preg_replace("/[\x20\x09]+/Usi", " ", $content);
+ return $content;
+}
+
+
+function wpmp_transcoder_max_paragraph_weight() {
+ $default = 5000;
+ if(function_exists('wpmp_deviceatlas_enabled') && wpmp_deviceatlas_enabled()) {
+ $memory = wpmp_deviceatlas_property('memoryLimitMarkup');
+ if(!is_numeric($memory)) {
+ return $default;
+ }
+ if($memory==0) {
+ return 10000;
+ }
+ if($memory<3000) {
+ return $default;
+ }
+ if($memory>15000) {
+ return 10000;
+ }
+ return floor($memory * 0.66);
+ }
+ return $default;
+}
+function wpmp_transcoder_max_screen_width() {
+ $default = 124;
+ if(function_exists('wpmp_deviceatlas_enabled') && wpmp_deviceatlas_enabled()) {
+ $width = wpmp_deviceatlas_property('usableDisplayWidth');
+ if(!is_numeric($width)) {
+ return $default;
+ }
+ if($width<40) {
+ return 40;
+ }
+ if($width>300) {
+ return 300;
+ }
+ return $width - 4;
+ }
+ return $default;
+}
+function wpmp_transcoder_max_screen_height() {
+ $default = 124;
+ if(function_exists('wpmp_deviceatlas_enabled') && wpmp_deviceatlas_enabled()) {
+ $height = wpmp_deviceatlas_property('usableDisplayHeight');
+ if(!is_numeric($height)) {
+ return $default;
+ }
+ if($height<40) {
+ return 40;
+ }
+ if($height>300) {
+ return 300;
+ }
+ return $height - 4;
+ }
+ return $default;
+}
+
+
+function wpmp_transcoder_url_is_dot($val) {
+ return $val != '.';
+}
+
+function wpmp_transcoder_url_join($base, $url) {
+ $base = parse_url($base);
+ $url = parse_url($url);
+
+ if ($url['scheme']) {
+ return wpmp_transcoder_url_unparse($url);
+ }
+
+ if (!($url['path'] || $url['query'] || $url['fragment'])) {
+ return wpmp_transcoder_url_unparse($base);
+ }
+
+ if (substr($url['path'], 0, 1) == '/') {
+ $base['path'] = $url['path'];
+ return wpmp_transcoder_url_unparse($base);
+ }
+
+ $base['query'] = $url['query'];
+ $base['fragment'] = $url['fragment'];
+
+ $segments = explode('/', $base['path']);
+ array_pop($segments);
+ $segments = array_merge($segments, explode('/', $url['path']));
+ if ($segments[sizeof($segments) - 1] == '.') {
+ $segments[sizeof($segments) - 1] = '';
+ }
+
+ $segments = array_filter($segments, 'wpmp_transcoder_url_is_dot');
+
+ while (true) {
+ $i = 1;
+ $n = sizeof($segments) - 1;
+ while ($i < $n) {
+ if ($segments[$i] == '..' &&
+ $segments[$i-1] != '' &&
+ $segments[$i-1] != '..') {
+ unset($segments[$i]);
+ unset($segments[$i-1]);
+ break;
+ }
+ $i ++;
+ }
+ if ($i >= $n) {
+ break;
+ }
+ }
+ $cnt = sizeof($segments);
+ if ($cnt == 2 && $segments[0] == '' && $segments[1] == '..') {
+ $segments[1] = '';
+ } elseif ($cnt >= 2 && $segments[$cnt - 1] == '..') {
+ unset($segments[$cnt - 1]);
+ $segments[$cnt - 2] = '';
+ }
+ $base['path'] = implode('/', $segments);
+ return wpmp_transcoder_url_unparse($base);
+}
+
+function wpmp_transcoder_url_unparse($url) {
+ if($url['scheme']) {
+ $result = $url['scheme'] . '://';
+ }
+ if (@$url['user'] || @$url['pass']) {
+ $result .= $url['user'] . ':' . $url['pass'] . '@';
+ }
+ $result .= $url['host'] . $url['path'];
+ if (@$url['query']) {
+ $result .= '?' . $url['query'];
+ }
+ if (@$url['fragment']) {
+ $result .= '#' . $url['fragment'];
+ }
+ return $result;
+}
+
+
+function wpmp_transcoder_fetch_image($url, &$width, &$height, &$type, &$location) {
+ $location = "c" . DIRECTORY_SEPARATOR . md5($url);
+ $full_location = dirname(__FILE__) . DIRECTORY_SEPARATOR . $location;
+ if(file_exists($full_location)) {
+ if(file_exists($meta = "$full_location.meta")) {
+ include($meta);
+ return;
+ }
+ } else {
+ $data = "";
+ if($handle = @fopen($url, 'r')) {
+ while (!feof($handle)) {
+ $data .= fread($handle, 8192);
+ }
+ fclose($handle);
+ } elseif ($handle = @curl_init($url)) {
+ curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
+ $data = curl_exec($handle);
+ curl_close($handle);
+ }
+ if(!$data) {
+ return false;
+ }
+ @file_put_contents($full_location, $data);
+ $data = "";
+ }
+ $info = @getimagesize($full_location);
+ $width = $info[0];
+ $height = $info[1];
+ switch($info[2]) {
+ case IMAGETYPE_GIF:
+ $type='gif';
+ break;
+ case IMAGETYPE_PNG:
+ $type='png';
+ break;
+ case IMAGETYPE_JPEG:
+ $type='jpg';
+ break;
+ }
+ @file_put_contents("$full_location.meta", "<?php $"."width='$width';$"."height='$height';$"."type='$type'; ?>");
+}
+
+if (!function_exists('file_put_contents')) {
+ function file_put_contents($filename, $data) {
+ $f = @fopen($filename, 'w');
+ if (!$f) {
+ return false;
+ } else {
+ $bytes = fwrite($f, $data);
+ fclose($f);
+ return $bytes;
+ }
+ }
+}
+
+function wpmp_transcoder_convert_image($url, $width, $height) {
+ if (wpmp_transcoder_fetch_image($url, $_w, $_h, $type, $location)===false) {
+ return;
+ }
+ $base = get_option('home') . "/wp-content/plugins/wordpress-mobile-pack/plugins/wpmp_transcoder/";
+ if ($width==$_w && $height==$_h) {
+ return "$base$location";
+ }
+ if(!file_exists($full_file = dirname(__FILE__) . DIRECTORY_SEPARATOR . ($file = "$location.$width.$height.$type"))) {
+ $source = @imagecreatefromstring(file_get_contents(dirname(__FILE__) . DIRECTORY_SEPARATOR . $location));
+ @imagealphablending($source, true);
+ @imagesavealpha($source, true);
+ $image = @imagecreatetruecolor($width, $height);
+ @imagealphablending($image, false);
+ @imagesavealpha($image, true);
+ @imagecopyresampled($image, $source, 0, 0, 0, 0, $width, $height, $_w, $_h);
+ @imagealphablending($image, true);
+ @imagedestroy($source);
+ switch($type) {
+ case 'gif':
+ imagegif($image, $full_file);
+ break;
+ case 'jpg':
+ imagejpeg($image, $full_file);
+ break;
+ case 'png':
+ imagepng($image, $full_file);
+ break;
+ }
+ @imagedestroy($image);
+ }
+ return "$base$file";
+}
+
+
+function wpmp_transcoder_purge_cache() {
+ $count = 0;
+
+ $dir_handle = opendir($dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'c');
+ while($file = readdir($dir_handle)) {
+ if($file[0]!=".") {
+ if(@unlink($dir . DIRECTORY_SEPARATOR . $file)) {
+ $count++;
+ }
+ }
+ }
+ closedir($dir_handle);
+ return $count;
+}
+?>
diff --git a/plugins/wordpress-mobile-pack/readme.txt b/plugins/wordpress-mobile-pack/readme.txt
new file mode 100644
index 00000000..f246cc92
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/readme.txt
@@ -0,0 +1,386 @@
+=== WordPress Mobile Pack ===
+Contributors: jamesgpearce, andreatrasatti, edent
+Tags: mobile, mobile web, mobile internet, wireless, pda, iphone, android, webkit, wap, dotMobi, theme, blackberry, admob, mobile adsense, qr-code, device, switcher, cellular, palm, nokia
+Requires at least: 2.5
+Tested up to: 3.0
+Stable tag: 1.2.5
+
+The WordPress Mobile Pack is a complete toolkit to help mobilize your WordPress site. It has a mobile switcher, themes, widgets, and mobile admin panel.
+
+== Description ==
+
+The WordPress Mobile Pack is a complete toolkit to help mobilize your WordPress site and blog.
+
+It includes a mobile switcher to select themes based on the type of user that is visiting the site, a selection of mobile themes, extra widgets, device adaptation and a mobile administration panel to allow users to edit the site or write new posts when out and about.
+
+The pack has been tested on WordPress 2.5.1, 2.6.5, 2.7.1, 2.8.6, 2.9.2, and 3.0. It has been tested on WordPress MU 2.6 in the 'plugins', rather than 'mu_plugins', mode. PHP 5.x is also highly recommended, although the plugin also works with PHP 4.3.
+
+Features include:
+
+* **A mobile switcher** which automatically suggests desktop or mobile presentation, but lets users switch to the other if required (and remembers their choice).
+
+* **A standard mobile theme**, crafted by [ribot](http://ribot.co.uk "ribot"), a top UK mobile design team.
+
+* **A set of advanced themes for Nokia and WebKit devices**, designed by [Forum Nokia](http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Browsing/Web_Templates/ "Forum Nokia"). These also look beautiful on Android, iPhone and Palm devices.
+
+* **Custom color variations** demonstrating how the themes can be easily tinted with CSS.
+
+* **Standards adherence**, ensuring that mark-up is valid XHTML-MP 1 and the site scores 5 on [mobiReady](http://mobiready.com "mobiReady").
+
+* **Device adaptation**, including the rescaling of images, intelligent splitting of articles and posts into multiple pages, the simplifaction styles, and the removal of non-supported media.
+
+* **A mobile admin panel**, that allows the blog managers to access the admin interface via a mobile device, with simplified access to the most common features such as editing a post or approving comments.
+
+* **A mobile ad widget** to easily enable mobile ads with AdMob or Google's Mobile Adsense.
+
+* **Mobile analytics**, allowing you to view simple local traffic tallies.
+
+* **A barcode widget** which adds a barcode to your desktop site so that devices with a suitable reader can quickly bookmark your mobile site, or deep link within it.
+
+* **Automatic listing** on <a href='http://www.mpexo.com/blogs'>mpexo</a>, making it easier for users to discover that you have a mobile-friendly site. (NB: you can enable the mpexo listing in the 'Settings' dashboard menu.)
+
+
+**NEW in Version 1.2.2**: Support for WordPress v3.0
+
+**NEW in Version 1.2.1**: Native integration with WP Super Cache. Read more at [Go mobile with WP Super Cache and the Mobile Pack](http://blog.trasatti.it/2010/05/go-mobile-with-wp-super-cache-and.html)
+
+**NEW in Version 1.2.0**: The Mobile Pack now displays advanced themes for Nokia and WebKit devices. There are three grades of theme designed for low-, mid-, and high-end Nokia devices, the latter of which also provides full support for WebKit browsers, including those on Android, iPhone and Palm devices. The development of this feature has been kindly sponsored by Forum Nokia.
+
+
+We enjoy writing and maintaining this plugin. If you like it too, please rate us. But if you don't, let us know how we can improve it.
+
+Have fun on your mobile adventures.
+
+
+== Installation ==
+
+= Simple installation for WordPress v2.7 and later =
+
+1. Go to the 'Plugins' / 'Add new' menu
+1. Upload wordpress-mobile-pack.zip then press 'Install now'.
+1. Activate the switcher plugin. Change its settings as required.
+1. Select which desktop widgets are to appear on the mobile theme.
+1. Enable your site to be listed on mpexo.
+1. Enjoy.
+
+= Simple installation for WordPress v2.5 and v2.6 =
+
+Here, the installation is very slightly different:
+
+1. Locate your WordPress install on the file system
+1. Extract the contents of wordpress-mobile-pack.zip into wp-content/plugins
+1. Activate the switcher plugin. Change its settings as required.
+1. Select which desktop widgets are to appear on the mobile theme.
+1. Enable your site to be listed on mpexo.
+1. Enjoy.
+
+= Make the cache writable =
+
+**NB:** the web server needs to have write-access to the image cache folder `wp-content/plugins/wordpress-mobile-pack/plugins/wpmp_transcoder/c`. If you have installed the plugin with WordPress 2.7, this should already be the case. Otherwise, or if you see errors when the plugin tries to resize images, you will need to set the permissions on that folder appropriately.
+
+Ensure that the `c` directory flags are `rwxrwxrwx`, or whatever you choose in order to be web-server-writable:
+
+ wordpress $> cd wp-content/plugins
+ plugins $> cd wordpress-mobile-pack/plugins/wpmp_transcoder
+ wpmp_transcoder $> sudo chmod 777 c
+ wpmp_transcoder $> ls -al
+ -----------------------------------------------------------------
+ drwxrwxrwx 3 root staff 102 20 Apr 10:08 c
+ -rwxrwxrwx 1 root staff 13003 20 Apr 10:43 wpmp_transcoder.php</pre>
+
+= Make the themes directory writable =
+
+**NB:** the web server also needs to have write-access to the themes folder `wp-content/themes`, as it installs themes in that directory as part of the plugin activation. If you have installed the plugin with WordPress 2.7, this may already be the case. Otherwise, or if you see errors when activating the plugin, you will need to set the permissions on that folder appropriately.
+
+Ensure that the `themes` flags are `rwxrwxrwx`, or whatever you choose in order to be web-server-writable, using a similar technique to that above.
+
+= Comprehensive setup =
+
+A more comprehensive setup process and guide to configuration is as follows. If you are installing the plugin through the admin dashboard, you'll be able to skip most of the early steps.
+
+1. Locate your WordPress install on the file system
+1. Extract the contents of `wordpress-mobile-pack.zip` into `wp-content/plugins`
+1. In `wp-content/plugins` you should now see a directory named `wordpress-mobile-pack`
+1. Ensure the `wp-content/themes` directory and `wpmp_transcoder/c` cache directory are web-server-writable, as described above.
+1. Login to the WordPress admin panel at `http://yoursite.com/wp-admin`
+1. Go to the 'Plugins' menu.`
+1. You should see 'Mobile Switcher' in the list. If not, check steps 2 and 3.`
+1. Click 'Activate' for that plugin.`
+1. In `wp-content/themes` you should now see a selection of new directories including `mobile_pack_base`, `mobile_pack_blue` etc.
+1. Go to the 'Themes' page in the 'Appearance' menu (or 'Design' in WordPress v2.6 or earlier)
+1. You should see a number of mobile themes in the list. If not, check steps 8 and the permissions on the theme directory. **NB** do NOT select one of these themes. If you do so, even your desktop users will receive a mobile theme. The selected theme here should reflect what you want your desktop users to continue to see, and you'll configure the mobile theme choice separately in the switcher settings.
+1. Go to the 'Mobile Switcher' page in the 'Appearance' menu (or 'Design' in WordPress v2.6 or earlier)
+1. Choose a switcher mode:
+ * 'Disabled' removes switching and all users receive the desktop theme
+ * 'Browser detection' means that the switcher will try to identify if your user has a mobile device
+ * 'Domain mapping' requires you to provide a different domain for your mobile users to access the site
+ * 'BOTH' (recommended) enables a combined algorithm that uses recognition and domain usage for the best user experience
+1. If you are using 'domain mapping' (or the combined approach), ensure all your relevant domains are resolving to this single WordPress installation. This may require you to configure your DNS and web server configurations.
+1. Choose the theme to be used for your mobile users.
+1. Users can choose whether to toggle between sites. Decide whether you want this link to appear in the theme footer. Alternatively, you can enable the 'Mobile Switcher Link' widget in the 'Widgets' admin menu.
+1. Go to the 'Widgets' menu and select which of the currently enabled desktop widgets you wish to have displaying on your mobile theme.
+1. Enable your blog for inclusion in the mpexo mobile blog directory.
+1. Take a quick look at the other mobile admin settings and widgets available.
+1. You're all done!
+
+= Testing your installation =
+
+Ideally, use a real mobile device to access your (public) site address and check that the switching and theme work correctly.
+
+You can also download a number of mobile emulators that can run on a desktop PC and simulate mobile devices.
+
+If you use the Firefox Browser, the 'User-Agent Switcher' add-on can be configured to send mobile headers and crudely simulate a mobile device's request.
+
+You can also use dotMobi's free on-line ready.mobi tool to test the compliance and mobile quality of your site.
+
+Finally, you might consider DeviceAnywhere's web-based service that allows you to remotely test your site with hundreds of different models of handsets.
+
+If you discover that your device is not being correctly served the mobile themes, please check the plugin and theme installations. Failing that, contact the authors with details of your device and site.
+
+If you have a new or unusual device, and are happy editing PHP files, you may wish to add a new user-agent prefix to the list of those to be detected. You'll find these (4-letter) prefixes in the file `wp-content/plugins/mobile_pack_switcher/lite_detection.php`
+
+
+== Frequently Asked Questions ==
+
+= Where are my widgets? =
+You need to select which of your desktop widgets you want to have appear on the mobile theme. Go to the 'Mobile Widgets' admin page to do so.
+
+= Are shrinked images cached? =
+Yes, all images, once rescaled, are cached locally.
+
+= Where is the cache directory? =
+From your root directory of WordPress, go to:
+`wp-content/plugins/wordpress-mobile-pack/plugins/wpmp_transcoder/c`
+
+= How do I place mobile ads on my site? =
+The plugin provides a widget to display either Google AdSense or AdMob mobile ads. Enable it for the sidebar in the 'Widgets' menu, provide your publisher ID, and then ensure it is also enabled as in the 'Mobile Widgets' list.
+
+= What version of PHP do I need? =
+Although most of the functionality of the pack does in fact work with PHP4, we only theoretically support and warrant running it with PHP5. If you must use PHP4, give it a test drive and make sure it works for your environment before going live. The plugin will be (deliberately) disabled if you try to use it with PHP6.
+
+= I need more help! =
+
+You are welcome to comment about the pack, suggest new features and ask for help on our public forums, available on [WordPress](http://www.wordpress.org/tags/wordpress-mobile-pack).
+
+= How can I help on the project? =
+
+We run the development of the plugin over at [Assembla](http://www.assembla.com/spaces/wordpress-mobile-pack). You can track issues and development progress there. Feel free to volunteer too!
+
+= Is it compatible with WP Super Cache? =
+
+YES! You have to make sure your settings are correct though. Follow these simple steps:
+
+1. Install both plugins
+1. Activate WP Super Cache
+1. Go to the WP Super Cache settings page
+1. Check the radio button "ON" to activate the cache
+1. Click on "Update status"
+1. Scroll down and click on the "Update Mod_Rewrite Rules" button
+1. Go back to the plugins page, activate WPMP and configure it
+
+== Changelog ==
+
+= 1.2.5 =
+* Removed [PercentMobile](http://percentmobile.com) analytics and XSS issue.
+
+= 1.2.4 =
+* Fixed image transcoder callback bug
+
+= 1.2.3 =
+* Updated [PercentMobile](http://percentmobile.com) tracking code for mobile analytics
+
+= 1.2.2 =
+* Support for WordPress v3.0 RC2: custom menus and sidebars
+* Primary custom menu will appear on mobile theme if it is enabled for the desktop theme
+* Mobile widgets can be enabled from multiple sidebar locations (as in the default WP3.0 theme, twentyten)
+
+= 1.2.1 =
+* Native WP Super Cache integration - read more: [Go mobile with WP Super Cache and the Mobile Pack](http://blog.trasatti.it/2010/05/go-mobile-with-wp-super-cache-and.html)
+* Fixed minor XHTML issues
+* Improved management of embedded YouTube and Vimeo videos
+* Minor change to PercentMobile code
+
+= 1.2.0 =
+* Advanced themes for Nokia and WebKit devices enabled by default. (The development of this feature has been kindly sponsored by Forum Nokia.)
+* Mobile analytics and integration with [PercentMobile](http://percentmobile.com)
+* Updated screenshots
+
+= 1.2.0b2 =
+* Shortened QR-code URLs and added alt attribute to img tag to be valid XHTML
+Two major issues were introduced in beta 1, now solved:
+* Solved mobile admin login error
+* Restored compatibility with PHP4
+
+= 1.2.0b =
+* Full internationalisation and readiness for translation (see .pot file within installation)
+* Automatic [mpexo](http://www.mpexo.com) listings (enabled in the settings menu)
+
+= 1.1.92 =
+* Prevented javascript being displayed in posts
+
+= 1.1.91 =
+* Fixed admin bug when using older themes
+
+= 1.1.9 =
+* Multi-device theming engine
+* Metadata in post lists can be hidden
+* More tolerance of installs on Windows servers
+* Changes to comment status now generate emails
+* Shortcodes filtered from teasers
+* base theme patterns refactored, and any derived themes may need to be updated
+
+= 1.1.3 =
+* Ensure subdirectoried blogs work correctly with switcher
+* Support object-oriented widgets in WP2.8
+* Fixed empty and pre WP2.8 widgets causing invalid XHTML
+* Switcher link now always appears in footer on admin pages
+* Nokia N97 checkbox rendering fixed
+
+= 1.1.2 =
+* Tested to support WP v2.8.4
+* Minor typos & theme credits
+* Preparation for I18N
+
+= 1.1.1 =
+* Tested support for WP v2.8.1
+* Improved tolerance of permissions issues at install
+* Ability to force the upgrade of themes at install
+* Deep-link QR-codes to the page you're on
+* User can override detection-only switching
+* Switcher race conditions avoided
+* Mobile teaser now overrules 'more' break
+* Support for Nintendo and Novarra mobile user agents
+* PHP4 support
+* Numerous minor bug fixes
+
+[Full ticket list](http://www.assembla.com/spaces/wordpress-mobile-pack/milestones/95962)
+
+
+= 1.0.8223 =
+* Initial release
+
+
+== Upgrade Notice ==
+
+= 1.2.0 =
+* Includes advanced themes for Nokia and WebKit devices, and mobile analytics and integration with [PercentMobile](http://percentmobile.com)
+
+
+
+== Screenshots ==
+
+1. Blog post listing with teasers, shown in both Nokia/WebKit and default themes.
+2. Single blog post, shown in both Nokia/WebKit and default themes.
+3. Editing a post in the mobile admin dashboard, shown in both Nokia/WebKit and default themes.
+4. WebKit theme on an iPhone, showing teaser-less post listing and collapsible widgets.
+5. Admin panel for mobile switcher.
+6. Admin panel for the mobile theme and device adaptation.
+7. Admin panel for enabling and disabling widgets on the mobile theme.
+8. Admin panel for configuring analytics.
+9. Admin panel for enabling mpexo support.
+10. A desktop theme showing a barcode widget and switcher link.
+
+
+
+== Documentation ==
+
+The pack is so-called because it contains a number of discrete pieces of functionality. In theory it is possible to individually enable or disable the components (through editing the registrations at the top of the main plugin file), but the vast majority of users are expected to install the pack en masse.
+
+The pack contains the following functionality:
+
+= Mobile switcher =
+
+The mobile switcher identifies whether the visitor to the site is mobile or not, and switches between the primary WordPress theme (for desktop users) and a mobile theme (of the site owner's choice) accordingly.
+
+It can use two approaches to identify the user as mobile. Firstly, it can try to identify if they have a mobile device based on the headers sent when a page is requested. Alternatively, it can identify whether the user has requested the site on a 'desktop domain' (such as yoursite.com) or a 'mobile domain' (such as yoursite.mobi) and deduce their intent from that.
+
+The recommended approach is a third, combined, approach that uses both techniques, and also allows users to switch between sites if the choice is not appropriate by providing a link in the themes' footers or a widget.
+
+In this combined mode, the switcher will provide interstitial warning pages if a mobile user accesses the desktop domain or vice-versa. It will also remember their choice of preferred site through the use of a cookie.
+
+Settings for the switcher are found under the 'Mobile Switcher' admin page, and are self-explanatory.
+
+More detail on these switching algorithms is available in a series of articles published by [http://mobiforge.com](mobiForge).
+
+= Base mobile theme =
+
+The pack contains an extensible theme that is ready for display on mobile devices. The theme is XHTML-MP compliant and scores highly on dotMobi's ready.mobi site tester.
+
+The base theme supports all standard WordPress content, including indexes, posts, pages, archives, search results, comments and widgets. If configured, it also invokes the device adaptation process (detailed below) that ensures the posts themselves are formatted suitable for mobile devices.
+
+There are a number of simple settings that can be used to adapt the way in which lists of posts appear on the mobile theme. These are found under the 'Mobile Theme' admin page, which appears when the switcher component is installed (or when the mobile theme is selected as the main WordPress theme). It is possible to set how many posts appear on the home page and in archives, and how verbosely they display.
+
+Away from the posts themselves, the theme does not provide a 'hard-coded' sidebar and relies wholly on the WordPress widget framework. Widgets that are selected in the WordPress admin pages (and then selected to show for the mobile theme) will appear in a 'sidebar' below the main part of the mobile page.
+
+Since each widget adds size to the overall page, it is recommended that no more than 5 desktop widgets are enabled for the mobile theme. The 'Mobile Widgets' admin page also appears when the switcher component is installed (or when the mobile theme is selected as the main WordPress theme).
+
+Any standard WordPress widgets that are known not to be XHTML-compliant are slightly rewritten by the theme to make them so. However, the theme does not currently correct arbitrary widget content and the use of third-party widgets (that were designed for desktop use) may easily push the overall page out of XHTML-MP compliance and affect the user's experience.
+
+Large widgets are not currently split or paged for small mobile devices. This may increase the load time, cost to the user, or even make the page unreadable on a limited capability device. Be aware of this when enabling large widgets on the mobile theme.
+
+= Extended mobile themes =
+
+Simply by extending the base theme, it is very easy and quick to customise the mobile theme to fit existing requirements or brand.
+
+The easiest way to do this is to re-tint the theme's colour scheme. The colour specifications for the base theme are all defined at the top of its stylesheet. Site owners can override this palette with their own colours, named DARKEST, DARK, MID, LIGHT, LIGHTEST and so on.
+
+To demonstrate, three extended themes are available within this pack: blue, green and red. Note how they use the 'Template:' directive at the top of the stylesheet (and the CSS @import statement) to indicate that they extend the base theme.
+
+Of course it is also easy to extend the theme in other, more structural ways, and even adapt the template's PHP files. However, if such changes should be done carefully to preserve XHTML-MP compliance within the markup.
+
+= Transcoding and device adaptation =
+
+When the base theme, or a theme that extends it, it used, the pack provides some features to adapt the content of the posts and pages of the blog to make them more suitable for mobile use.
+
+There are four major stages to this process, and each may be enabled or disabled independently on the 'Mobile Theme' admin page. These are:
+
+1. **Remove media** - This will remove interactivity and media elements (such as script, Flash, movies, and embedded frames) from the posts and pages. Unless it is certain that users have high-capability handsets, these types of content will stretch the abilities of their mobile devices. The HTML tags removed are object, embed, marquee, script, frame and iframe. This process also removes any event attributes (such as onClick) from the page.
+1. **Partition large pages** - This will break large blog posts or pages into smaller pieces more suitable for mobile devices. The length of each piece depends on the known memory limitations of the visitor's device (if DeviceAtlas integration is enabled), or will default to approximately 5K in size. Contiguous sections such as lists will not be broken, and a pager will appear at the bottom of each post to allow the user to page through the post.
+1. **Shrink images** - This will shrink large images within posts or pages to fit on smaller screens. The width or height constraints of the device (if DeviceAtlas integration is enabled) are used to determine the new dimensions, or they will default to 124 pixels. This functionality relies on the server having the PHP graphics library LibGD installed (as it will be for PHP 4.3 or greater). Both the original and resized images are cached locally for performance, and site owners have an option to clear this cache on the admin page.
+1. **Simplify styling** - This will remove styling elements from the posts and pages to ensure mobile compatibility. The HTML attributes removed are: align, background, bgcolor, border, cellpadding, cellspacing, class, color, height, style and width. It removes the following tags: center, font, and span (although note that the inner content of those tags remains). Finally it removes any empty, non-singleton tags that do not have attributes, such as, for example, `&lt;div&gt;&lt;/div&gt;`.
+
+= Mobile admin panel =
+
+A user identified as mobile by the switcher will receive a mobilised version of the WordPress administration interface. The link to the dashboard is available in the standard 'Meta' widget, or it can be reached directly at `http://your.site/wp-admin`
+
+Only users with administrator status are allowed to access the mobile administration pages. Note this makes it more restrictive than the desktop dashboard, but this prevents less-authorised users from accessing it and making changes to important site settings.
+
+The following pages are available in the mobile administration interface:
+
+1. **Overview** - Like the desktop dashboard, this details how many pages, posts, categories and tags site owners have on the site. It also highlights how many comments currently await moderation.
+1. **New post** - Administrators may write a new post to appear on the site. They can specify the title and the body of the post, and whether they want it to remain draft, pending review, or published. It is not currently possible to specify tags, categories or other advanced properties of the post in the mobile interface.
+1. **Edit post** - This page lists all of the current posts and allows administrators to edit them. As for the 'New post' page, they can edit title, status, and body. It is not possible to edit the categories or tags and so on, although existing values for such properties of the post will remain set after editing in the mobile interface. Depending on the theme, a link to this edit panel may also be available on the site itself when administrators are logged in.
+1. **Comments** - This page lists extracts of all of the comments awaiting moderation on the site. From this list, administrators can click on the commentator's name to see the whole comment, and, by clicking the appropriate links, set the comment to be published or marked as spam. Editing, de-approving or deleting a comment cannot be performed in this interface.
+1. **Switcher** - It is possible to change the mobile switching mode in case the site-owner needs to reset the configuration.
+1. **Settings** - This page lists all the settings for the site which are simple enough to edit with this mobile interface. Complex settings, such as which plugins are installed, are not available. However, text- and number-based settings can be easily edited. Note that no descriptions are available for each setting and the meanings of the values, so it is advisable to only edit them cautiously.
+
+It is also possible to log-out of the admin panel. Since the login is stored persistently on the mobile device, this is advisable if the site is sensitive and administrators want to protect against the impact of handset theft.
+
+The mobile administration panel uses the same URL structure as the desktop version, so in most cases, the administration links sent to administrators in emails (such as when a comment needs moderation) can be followed regardess of whether they are using a mobile device or a desktop.
+
+= Mobile ad widget =
+
+This provides the ability to place a new widget into the site containing either AdMob or Google mobile ads. Administrators will see the 'Mobile Ads' in the 'Widget' admin page, and it allows them to specify which provider to use, and the publisher ID.
+
+The widget can also be configured to attempt to disable itself when shown on a desktop theme. This is recommended, since the quality of mobile ads presented in response to a desktop user context is lower, and relevant conversion rates may be negatively affected.
+
+Google supports both single-ad and double-ad modes. Administrators can select which to use from the same publisher dropdown.
+
+= Barcode widget =
+
+Site owners can place a two-dimensional QR-code widget on the desktop site that users can use to quickly navigate to the mobile version of the site. If their phones have a camera and QR-code reader capabilities, they can simply snap the barcode off their desktop screen and navigate directly to the mobile equivalent.
+
+If a URL is specified, the QR-code is fixed to that address. If it is left blank, it will correspond to the page it is being displayed upon.
+
+Within the widget site owners can specify the link to provide, and the size of the square barcode to show. Site owners should ensure it fits well into the desktop theme.
+
+Site owners can also indicate whether they want the widget to show some instructions to the users about the purpose of the barcode, as well as a list of well-known readers they can download for their devices if they are not already installed.
+
+
+
+== Known issues ==
+
+* On a WordPress MU installation, it is not possible to configure the favicon for each site independently within the single mobile theme. You are advised to create multiple derived themes from the mobile base theme, and configure the favicons separately for each.
+* Note that if you use a desktop theme that provides unusual, additional page templates, the default mobile theme will not have the corresponding logic. The mobile theme will fall back to showing a default posting list. However, you are able to create new mobile templates just as for the desktop theme. (Copy archives.php as a simple example of an auxiliary page template.)
+* If you are using a desktop domain and a mobile domain, it is not currently possible to host them on different sub-directory locations (eg `http://mysite.com/blog/` but `http://mysite.mobi/`). Both versions of the site must either be at the top-level of the domain or in the same sub-directory.
+* W3 Total Cache does not play well with mobile plugins, you can read how to make it work at [Getting W3 Total cache to work with WordPress Mobile Pack](http://blog.trasatti.it/2010/04/getting-w3-total-cache-to-work-with.html) until a new release comes (very soon!)
diff --git a/plugins/wordpress-mobile-pack/screenshot-1.png b/plugins/wordpress-mobile-pack/screenshot-1.png
new file mode 100644
index 00000000..3532573c
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/screenshot-1.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/screenshot-10.png b/plugins/wordpress-mobile-pack/screenshot-10.png
new file mode 100644
index 00000000..e608f2bb
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/screenshot-10.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/screenshot-2.png b/plugins/wordpress-mobile-pack/screenshot-2.png
new file mode 100644
index 00000000..f1f2bfc6
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/screenshot-2.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/screenshot-3.png b/plugins/wordpress-mobile-pack/screenshot-3.png
new file mode 100644
index 00000000..8af99a4f
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/screenshot-3.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/screenshot-4.png b/plugins/wordpress-mobile-pack/screenshot-4.png
new file mode 100644
index 00000000..212875f7
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/screenshot-4.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/screenshot-5.png b/plugins/wordpress-mobile-pack/screenshot-5.png
new file mode 100644
index 00000000..d37634e6
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/screenshot-5.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/screenshot-6.png b/plugins/wordpress-mobile-pack/screenshot-6.png
new file mode 100644
index 00000000..6242b33d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/screenshot-6.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/screenshot-7.png b/plugins/wordpress-mobile-pack/screenshot-7.png
new file mode 100644
index 00000000..8a20fdbc
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/screenshot-7.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/screenshot-8.png b/plugins/wordpress-mobile-pack/screenshot-8.png
new file mode 100644
index 00000000..06f32fc2
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/screenshot-8.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/screenshot-9.png b/plugins/wordpress-mobile-pack/screenshot-9.png
new file mode 100644
index 00000000..f7e91ba4
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/screenshot-9.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/archives.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/archives.php
new file mode 100644
index 00000000..9bcbfd2c
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/archives.php
@@ -0,0 +1,48 @@
+<?php
+
+/*
+$Id: archives.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/archives.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+get_header();
+
+?>
+<div id="wrapper">
+ <div id="content">
+ <div class="post">
+ <h2><?php _e('Archives by Month:', 'wpmp'); ?></h2>
+ <ul>
+ <?php wp_get_archives('type=monthly'); ?>
+ </ul>
+ </div>
+ <div class="post">
+ <h2><?php _e('Archives by Subject:', 'wpmp'); ?></h2>
+ <ul>
+ <?php wp_list_categories(); ?>
+ </ul>
+ </div>
+ </div>
+ <?php get_sidebar(); ?>
+</div>
+<?php get_footer(); ?>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/comments.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/comments.php
new file mode 100755
index 00000000..29c7a677
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/comments.php
@@ -0,0 +1,118 @@
+<?php
+
+/*
+$Id: comments.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/comments.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+<?php if (basename($_SERVER['SCRIPT_FILENAME'])=='comments.php') { die(); } ?>
+
+<?php if (!empty($post->post_password) && $_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { ?>
+ <p class="nocomments"><?php _e('This post is password protected. Enter the password to view comments.', 'wpmp'); ?></p>
+ <?php return; ?>
+<?php } ?>
+
+<?php
+ if (file_exists($wpmp_include = wpmp_theme_group_file('comments.php'))) {
+ include_once($wpmp_include);
+ } else {
+ if ($comments) {
+ print '<h3 id="comments">'; comments_number('No comments', '1 comment', '% comments' ); _e(' on this post.', 'wpmp') . '</h3>';
+ wpmp_theme_comment_list($comments);
+ }
+ if ($post->comment_status == 'open') {
+ print '<h3 id="respond">' . __('Leave a comment', 'wpmp') . '</h3>';
+ wpmp_theme_comment_form($user_ID, $user_identity, $req, $comment_author, $comment_author_url, $id, $post);
+ }
+ }
+?>
+
+
+<?php
+ function wpmp_theme_comment_list($comments) {
+ global $comment; //ouch
+ ?>
+ <ol class="commentlist">
+ <?php foreach ($comments as $comment) { ?>
+ <li>
+ <a name="#comment-<?php comment_ID($comment->comment_ID) ?>"></a>
+ <p><?php comment_author_link($comment->comment_ID) ?>:</p>
+ <?php if ($comment->comment_approved == '0') { ?>
+ <em><?php _e('Your comment is awaiting moderation.', 'wpmp'); ?></em>
+ <?php } ?>
+ <p class="metadata"><?php comment_date('F jS, Y') ?> at <?php comment_time() ?> <?php edit_comment_link('Edit','',''); ?></p>
+ <?php comment_text() ?>
+ </li>
+ <?php } ?>
+ </ol>
+ <?php
+ }
+?>
+
+<?php
+ function wpmp_theme_comment_form($user_ID, $user_identity, $req, $comment_author, $comment_author_url, $id, $post) {
+ ?>
+ <?php if ( get_option('comment_registration') && !$user_ID ) { ?>
+ <p>
+ <?php printf(__('You must be <a%s>logged in</a> to post a comment.', 'wpmp'), ' href="' . get_option('siteurl') . '/wp-login.php?redirect_to=' . get_permalink($post->ID)); ?>
+ </p>
+ <?php } else { ?>
+ <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
+ <?php if ( $user_ID ) { ?>
+ <p>
+ <?php _e('Logged in as', 'wpmp'); ?> <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>.
+ <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout"><?php _e('Logout', 'wpmp'); ?></a></p>
+ <?php } else { ?>
+ <p>
+ <label for="author"><?php _e('Name', 'wpmp'); ?> <?php if ($req) {_e("(required)", 'wpmp');} ?></label>
+ <br />
+ <input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" />
+ </p>
+ <p>
+ <label for="email"><?php _e('Mail', 'wpmp'); ?> (<?php if ($req) {_e("required, but ", 'wpmp');} ?><?php _e("not published", 'wpmp'); ?>)</label>
+ <br />
+ <input type="text" name="email" id="email" value="<?php print empty($comment_author_email)?"":$comment_author_email; ?>" />
+ </p>
+ <p>
+ <label for="url"><?php _e('Website', 'wpmp'); ?></label>
+ <br />
+ <input type="text" name="url" id="url" value="<?php print empty($comment_author_url)?"http://":$comment_author_url; ?>"/>
+ </p>
+ <?php } ?>
+ <p>
+ <label for="comment"><?php _e('Comment', 'wpmp'); ?></label>
+ <br />
+ <textarea name="comment" id="comment" rows="3"></textarea>
+ </p>
+ <p>
+ <input class="button" name="submit" type="submit" id="submit" value="<?php _e('Submit comment', 'wpmp'); ?>" />
+ <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
+ </p>
+ <?php do_action('comment_form', $post->ID); ?>
+ </form>
+ <?php
+ }
+ }
+?> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/footer.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/footer.php
new file mode 100755
index 00000000..96ff20b0
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/footer.php
@@ -0,0 +1,44 @@
+<?php
+
+/*
+$Id: footer.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/footer.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+ <div id="footer">
+ <?php
+ if (file_exists($wpmp_include = wpmp_theme_group_file('footer.php'))) {
+ include_once($wpmp_include);
+ } else {
+ ?>
+ <p><?php printf(__("Powered by the <a%s>WordPress Mobile Pack</a>", 'wpmp'), ' href="http://wordpress.org/extend/plugins/wordpress-mobile-pack/"');?> | <?php printf(__("Theme designed by <a%s>ribot</a>", 'wpmp'), ' href="http://ribot.co.uk"'); ?></p>
+ <?php
+ }
+ ?>
+ <?php wp_footer(); ?>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/functions.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/functions.php
new file mode 100755
index 00000000..f16cbe1b
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/functions.php
@@ -0,0 +1,294 @@
+<?php
+
+/*
+$Id: functions.php 250849 2010-06-11 05:51:54Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/functions.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+include_once('functions_persist.php');
+
+add_action('init', 'wpmp_theme_init_in_use');
+add_filter('dynamic_sidebar_params', 'wpmp_theme_dynamic_sidebar_params');
+add_action('pre_get_posts', 'wpmp_theme_pre_get_posts');
+add_action('the_content', 'wpmp_theme_the_content');
+
+function wpmp_theme_group() {
+ global $wpmp_theme_group;
+ if(!isset($wpmp_theme_group)) {
+ if (get_option('wpmp_theme_nokia_templates')=='true') {
+ $wp_mobile_pack_dir = WP_CONTENT_DIR . '/plugins/wordpress-mobile-pack';
+ include_once($wp_mobile_pack_dir . '/themes/mobile_pack_base/group_detection.php');
+ $wpmp_theme_group = group_detection();
+ } else {
+ $wpmp_theme_group = '';
+ }
+ }
+ return $wpmp_theme_group;
+}
+
+function wpmp_theme_group_file($file='index.php') {
+ return dirname(__FILE__) . DIRECTORY_SEPARATOR . 'groups' . DIRECTORY_SEPARATOR . wpmp_theme_group() . DIRECTORY_SEPARATOR . $file;
+}
+
+function wpmp_theme_group_uri() {
+ return get_theme_root_uri() . "/mobile_pack_base/groups/" . wpmp_theme_group();
+}
+
+function wpmp_theme_base_style() {
+ return get_theme_root_uri() . '/mobile_pack_base/style.css';
+}
+
+function wpmp_theme_init_in_use() {
+ global $wp_registered_sidebars;
+ if(sizeof($wp_registered_sidebars)==0) {
+ $sidebars_widgets = get_option('sidebars_widgets');
+ if (is_array($sidebars_widgets)) {
+ foreach($sidebars_widgets as $index=>$widgets) {
+ if ($index!='wp_inactive_widgets') {
+ register_sidebar(array(
+ 'id' => $index,
+ 'before_widget' => '<li>',
+ 'after_widget' => '</li>',
+ 'before_title' => '<h2>',
+ 'after_title' => '</h2>',
+ ));
+ }
+ }
+ }
+ }
+
+ global $wp_registered_widgets;
+ foreach ($wp_registered_widgets as $index=>$widget) {
+ if(function_exists($function = 'wpmp_theme_widget_' . strtolower(str_replace(' ', '_', $widget['name'])))) {
+ $wp_registered_widgets[$index]['callback'] = $function;
+ }
+ }
+
+ global $wpmp_theme_menu_location;
+ if (function_exists('get_nav_menu_locations')) {
+ $wpmp_theme_menu_locations = get_nav_menu_locations();
+ if (is_array($wpmp_theme_menu_locations)) {
+ $wpmp_theme_menu_locations = array_keys($wpmp_theme_menu_locations);
+ if (sizeof($wpmp_theme_menu_locations)>0) {
+ $wpmp_theme_menu_location = $wpmp_theme_menu_locations[0];
+ }
+ }
+ }
+
+}
+
+function wpmp_theme_dynamic_sidebar_params($params) {
+ global $wp_registered_widgets;
+ $widget = $params[0]['widget_id'];
+ $widgets = get_option('wpmp_theme_widget');
+ if (!is_array($widgets) || array_search($widget, $widgets)===false) {
+ $wp_registered_widgets[$widget]['callback'] = 'wpmp_theme_widget_removed';
+ }
+ return $params;
+}
+function wpmp_theme_widget_removed() {
+}
+
+
+function wpmp_theme_pre_get_posts($wp_query) {
+ $wp_query->query_vars['posts_per_page'] = get_option('wpmp_theme_post_count');
+ return $wp_query;
+}
+
+function wpmp_theme_the_content($content) {
+ if (is_single() || is_page()) {
+ wpmp_theme_transcode_content($content);
+ return $content;
+ }
+ if(strpos(strtolower($content), 'class="more-link"')!==false) {
+ #return $content;
+ }
+ $content = preg_replace("/\r/Usi", " ", $content);
+ $content = preg_replace("/\<\/?p[^>]*\>/Usi", " ", $content);
+ $content = preg_replace("/\<\/?br[^>]*\>/Usi", " ", $content);
+ $content = preg_replace("/\n+/Usi", " ", $content);
+ $content = preg_replace("/[\x20\x09]+/Usi", " ", $content);
+ $content = strip_tags($content);
+ $content = trim($content);
+ $length = get_option('wpmp_theme_teaser_length');
+ $suffix = false;
+ if(strlen($content)>$length) {
+ $content = substr($content, 0, $length);
+ $content = substr($content, 0, strrpos($content, ' ')) . "...";
+ $content = balanceTags($content, true);
+ global $id;
+ $suffix = true;
+ }
+ if(($pos=strpos($content, '['))!==false) {
+ $content = substr($content, 0, $pos) . ' ' . __("Read more", 'wpmp');
+ }
+ if (substr($content, strlen(__("Read more", 'wpmp')))==__("Read more", 'wpmp')) {
+ $content = substr($content, 0, -9);
+ $suffix = true;
+ }
+ if ($suffix) {
+ $content .= '<br /><a href="'. get_permalink() . '#more-'.$id.'" class="more-link">' . __('Read more', 'wpmp') . "</a>";
+ }
+ return $content;
+}
+
+function wpmp_theme_transcode_content(&$content) {
+ if(get_option('wpmp_theme_transcoder_remove_media')=='true' && function_exists('wpmp_transcoder_remove_media')) {
+ wpmp_transcoder_remove_media($content);
+ }
+ if(get_option('wpmp_theme_transcoder_partition_pages')=='true' && function_exists('wpmp_transcoder_partition_pages')) {
+ wpmp_transcoder_partition_pages($content);
+ }
+ if(get_option('wpmp_theme_transcoder_shrink_images')=='true' && function_exists('wpmp_transcoder_shrink_images')) {
+ wpmp_transcoder_shrink_images($content);
+ }
+ if(get_option('wpmp_theme_transcoder_simplify_styling')=='true' && function_exists('wpmp_transcoder_simplify_styling')) {
+ wpmp_transcoder_simplify_styling($content);
+ }
+}
+
+function wpmp_theme_widget_search($args, $widget_args=1) {
+ extract($args);
+ print $before_widget . $before_title . __('Search Site', 'wpmp') . $after_title;
+ include (TEMPLATEPATH . "/searchform.php");
+ print $after_widget;
+}
+
+
+function wpmp_theme_widget_archives($args, $widget_args=1) {
+ extract($args);
+ $options = get_option('widget_archives');
+ $title = empty($options['title']) ? __('Archives', 'wpmp') : $options['title'];
+ print $before_widget . $before_title . $title . $after_title . "<ul>";
+ ob_start();
+ wp_get_archives("type=monthly&show_post_count=1");
+ $html = ob_get_contents();
+ ob_end_clean();
+ $content = wpmp_theme_widget_trim_list($html, "<li><a href='/?archives=month'>" . __('...more months', 'wpmp') . "</a></li>");
+ if($content) {
+ print $content;
+ } else {
+ print "<li>" . __('No archives', 'wpmp') . "</li>";
+ }
+ print "</ul>$after_widget";
+}
+
+function wpmp_theme_widget_categories($args, $widget_args=1) {
+ extract($args, EXTR_SKIP);
+ if (is_numeric($widget_args)) {
+ $widget_args = array('number' => $widget_args);
+ }
+ $widget_args = wp_parse_args($widget_args, array('number'=>-1));
+ extract($widget_args, EXTR_SKIP);
+ $options = get_option('widget_categories');
+ if (!isset($options[$number])) { return; }
+ $title = empty($options[$number]['title']) ? __('Categories', 'wpmp') : $options[$number]['title'];
+ print $before_widget . $before_title . $title . $after_title . "<ul>";
+ ob_start();
+ wp_list_categories("orderby=name&hierarchical=0&show_count=1&title_li=0");
+ $html = ob_get_contents();
+ ob_end_clean();
+ print wpmp_theme_widget_trim_list($html, "<li><a href='/?archives=category'>" . __('...more categories', 'wpmp') . "</a></li>");
+ print "</ul>$after_widget";
+}
+
+function wpmp_theme_widget_tag_cloud($args, $widget_args=1) {
+ extract($args);
+ $options = get_option('widget_tag_cloud');
+ $title = empty($options['title']) ? __('Tags', 'wpmp') : $options['title'];
+ $tags = get_tags();
+ if(sizeof($tags)>0) {
+ print $before_widget . $before_title . $title . $after_title . "<ul>";
+ $limit = get_option('wpmp_theme_widget_list_count');
+ foreach($tags as $tag) {
+ if($limit==0) {
+ print "<li><a href='/?archives=tag'>" . __('...more tags', 'wpmp') . "</a>";
+ break;
+ }
+ $limit--;
+ print "<li><a href='" . get_tag_link( $tag->term_id ) . "'>$tag->name</a> ($tag->count)</li>";
+ }
+ print "</ul>" . $after_widget;
+ }
+}
+
+function wpmp_theme_widget_recent_comments($args, $widget_args=1) {
+ ob_start();
+ if (function_exists('wp_widget_recent_comments')) {
+ wp_widget_recent_comments($args);
+ } else {
+ $widget = new WP_Widget_Recent_Comments();
+ $widget->display_callback($args, $widget_args);
+ }
+ $original = ob_get_contents();
+ ob_end_clean();
+ $original = str_ireplace('<ul id="recentcomments"></ul>', '<ul id="recentcomments"><li>' . __('No comments', 'wpmp') . '</li></ul>', $original);
+ $original = str_ireplace("&cpage", "&amp;cpage", $original);
+ print $original;
+}
+function wpmp_theme_widget_calendar($args, $widget_args=1) {
+ ob_start();ob_start(); //funny ob stack inside old widgets
+ if (function_exists('wp_widget_calendar')) {
+ wp_widget_calendar($args);
+ } else {
+ $widget = new WP_Widget_Calendar();
+ $widget->display_callback($args, $widget_args);
+ }
+ $original = ob_get_contents();
+ ob_end_clean();
+ $original = ob_get_contents() . $original;
+ ob_end_clean();
+ if (stripos($original, '<div id="calendar_wrap"></div>')!==false) {
+ return;
+ }
+ preg_match_all("/(^.*)\<caption\>(.*)\<\/caption\>.*\<thead\>(.*)\<\/thead\>.*\<tfoot\>(.*)\<\/tfoot\>.*\<tbody\>(.*)\<\/tbody\>(.*$)/Usi", $original, $parts);
+ print str_replace("<h2>&nbsp;</h2>", "<h2>" . __('Calendar', 'wpmp') . "</h2>", $parts[1][0]) .
+ "<tr><td colspan='7'>" . $parts[2][0] . "</td></tr>" .
+ $parts[3][0] .$parts[5][0] . $parts[4][0] .
+ $parts[6][0];
+}
+
+function wpmp_theme_widget_rss($args, $widget_args=1) {
+ ob_start();
+ if (function_exists('wp_widget_rss')) {
+ wp_widget_rss($args, $widget_args);
+ } else {
+ $widget = new WP_Widget_RSS();
+ $widget->display_callback($args, $widget_args);
+ }
+ $html = ob_get_contents();
+ ob_end_clean();
+ print preg_replace("/\<img.*\>/Usi", "", $html);
+}
+function wpmp_theme_widget_trim_list($html, $more='') {
+ $return = '';
+ preg_match_all("/\<li.*\>(.*)\<\/li/Usi", $html, $parts);
+ for($p = 0; sizeof($parts[1])>0 && $p < get_option('wpmp_theme_widget_list_count'); $p++) {
+ $return .= "<li>" . array_shift($parts[1]) . "</li>";
+ }
+ if(sizeof($parts[1])>0) {
+ $return .= $more;
+ }
+ return $return;
+}
+?>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/functions_persist.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/functions_persist.php
new file mode 100755
index 00000000..55722fa8
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/functions_persist.php
@@ -0,0 +1,194 @@
+<?php
+
+/*
+$Id: functions_persist.php 245582 2010-05-25 22:36:08Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/functions_persist.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+add_action('init', 'wpmp_theme_init');
+function wpmp_theme_init() {
+ foreach(array(
+ 'wpmp_theme_home_link_in_menu'=>'true',
+ 'wpmp_theme_post_summary'=>'teaser',
+ 'wpmp_theme_post_summary_metadata'=>'true',
+ 'wpmp_theme_post_count'=>'5',
+ 'wpmp_theme_teaser_length'=>'50',
+ 'wpmp_theme_widget_list_count'=>'5',
+ 'wpmp_theme_transcoder_remove_media'=>'true',
+ 'wpmp_theme_transcoder_partition_pages'=>'true',
+ 'wpmp_theme_transcoder_shrink_images'=>'true',
+ 'wpmp_theme_transcoder_simplify_styling'=>'true',
+ 'wpmp_theme_nokia_templates'=>'true'
+ ) as $name=>$value) {
+ if (get_option($name)=='') {
+ update_option($name, $value);
+ }
+ }
+ if(get_option('wpmp_theme_post_summary')=='whole') { //deprecated
+ update_option('wpmp_theme_post_summary', 'teaser');
+ }
+}
+
+
+add_action('admin_menu', 'wpmp_theme_admin_menu');
+function wpmp_theme_admin_menu() {
+ add_theme_page(__('Mobile Theme', 'wpmp'), __('Mobile Theme', 'wpmp'), 3, 'wpmp_theme_theme_admin', 'wpmp_theme_theme_admin');
+ add_theme_page(__('Mobile Widgets', 'wpmp'), __('Mobile Widgets', 'wpmp'), 3, 'wpmp_theme_widget_admin', 'wpmp_theme_widget_admin');
+}
+
+function wpmp_theme_theme_admin() {
+ if(sizeof($_POST)>0) {
+ print '<div id="message" class="updated fade"><p><strong>' . wpmp_theme_options_write() . '</strong></p></div>';
+ if(isset($_POST['wpmp_theme_transcoder_clear_cache_now']) && $_POST['wpmp_theme_transcoder_clear_cache_now']=='true') {
+ if(function_exists('wpmp_transcoder_purge_cache') && ($count = wpmp_transcoder_purge_cache())>0) {
+ print '<div id="message" class="updated fade"><p><strong>' . sprintf(__ngettext('One file cleared from image cache', '%d files cleared from image cache', $count, 'wpmp'), $count) . '</strong></p></div>';
+ }
+ }
+ }
+ include_once('wpmp_theme_theme_admin.php');
+}
+function wpmp_theme_widget_admin() {
+ if(sizeof($_POST)>0) {
+ print '<div id="message" class="updated fade"><p><strong>' . wpmp_theme_options_write() . '</strong></p></div>';
+ }
+ include_once('wpmp_theme_widget_admin.php');
+}
+
+function wpmp_theme_options_write() {
+ $message = __('Settings saved.', 'wpmp');
+ foreach(array(
+ 'wpmp_theme_widget'=>false,
+ 'wpmp_theme_home_link_in_menu'=>true,
+ 'wpmp_theme_post_count'=>false,
+ 'wpmp_theme_post_summary'=>false,
+ 'wpmp_theme_post_summary_metadata'=>true,
+ 'wpmp_theme_teaser_length'=>false,
+ 'wpmp_theme_widget_list_count'=>false,
+ 'wpmp_theme_transcoder_remove_media'=>true,
+ 'wpmp_theme_transcoder_partition_pages'=>true,
+ 'wpmp_theme_transcoder_shrink_images'=>true,
+ 'wpmp_theme_transcoder_simplify_styling'=>true,
+ 'wpmp_theme_nokia_templates'=>true,
+ ) as $option=>$checkbox) {
+ if(isset($_POST[$option])){
+ $value = $_POST[$option];
+ if(!is_array($value)) {
+ $value = trim($value);
+ }
+ $value = stripslashes_deep($value);
+ update_option($option, $value);
+ if ($option=='wpmp_theme_widget') {
+ return $message;
+ }
+ } elseif ($checkbox) {
+ update_option($option, 'false');
+ }
+ }
+ if (!is_numeric(get_option('wpmp_theme_post_count'))) {
+ update_option('wpmp_theme_post_count', '5');
+ $message = __('Please provide a valid number of posts that you would like the theme to display.', 'wpmp');
+ }
+ if (!is_numeric(get_option('wpmp_theme_teaser_length'))) {
+ update_option('wpmp_theme_teaser_length', '50');
+ $message = __('Please provide a valid teaser length.', 'wpmp');
+ }
+ if (!is_numeric(get_option('wpmp_theme_widget_list_count'))) {
+ update_option('wpmp_theme_widget_list_count', '5');
+ $message = __('Please provide a valid widget list length.', 'wpmp');
+ }
+ return $message;
+}
+
+function wpmp_theme_option($option, $onchange='') {
+ switch ($option) {
+ case 'wpmp_theme_post_summary':
+ return wpmp_theme_option_dropdown(
+ $option,
+ array(
+ 'none'=>__('Title only', 'wpmp'),
+ 'firstteaser'=>__('Title and teaser for first post, title for the rest', 'wpmp'),
+ 'teaser'=>__('Title and teaser for all posts', 'wpmp'),
+ ),
+ $onchange
+ );
+
+ case 'wpmp_theme_post_count':
+ case 'wpmp_theme_teaser_length':
+ case 'wpmp_theme_widget_list_count':
+ return wpmp_theme_option_text(
+ $option,
+ $onchange
+ );
+
+ case 'wpmp_theme_home_link_in_menu':
+ case 'wpmp_theme_transcoder_remove_media':
+ case 'wpmp_theme_transcoder_partition_pages':
+ case 'wpmp_theme_transcoder_shrink_images':
+ case 'wpmp_theme_transcoder_simplify_styling':
+ case 'wpmp_theme_transcoder_clear_cache_now':
+ case 'wpmp_theme_post_summary_metadata':
+ case 'wpmp_theme_nokia_templates':
+ return wpmp_theme_option_checkbox(
+ $option,
+ $onchange
+ );
+
+ }
+}
+
+function wpmp_theme_option_dropdown($option, $options, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ $dropdown = "<select id='$option' name='$option' $onchange>";
+ foreach($options as $value=>$description) {
+ if(get_option($option)==$value) {
+ $selected = ' selected="true"';
+ } else {
+ $selected = '';
+ }
+ $dropdown .= '<option value="' . attribute_escape($value) . '"' . $selected . '>' . __($description, 'wpmp') . '</option>';
+ }
+ $dropdown .= "</select>";
+ return $dropdown;
+}
+
+function wpmp_theme_option_text($option, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '" onkeyup="' . attribute_escape($onchange) . '"';
+ }
+ $text = '<input type="text" id="' . $option . '" name="' . $option . '" value="' . attribute_escape(get_option($option)) . '" ' . $onchange . '/>';
+ return $text;
+}
+
+function wpmp_theme_option_checkbox($option, $onchange='') {
+ if ($onchange!='') {
+ $onchange = 'onchange="' . attribute_escape($onchange) . '"';
+ }
+ $checkbox = '<input type="checkbox" id="' . $option . '" name="' . $option . '" value="true" ' . (get_option($option)==='true'?'checked="true"':'') . ' ' . $onchange . ' />';
+ return $checkbox;
+}
+
+
+
+?>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/group_detection.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/group_detection.php
new file mode 100644
index 00000000..469ff52f
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/group_detection.php
@@ -0,0 +1,46 @@
+<?php
+
+/*
+$Id: group_detection.php 134485 2009-07-12 17:04:19Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/plugins/wpmp_switcher/lite_detection.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+function group_detection() {
+ $user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);
+ if (
+ strpos($user_agent, 'series60') !== false ||
+ strpos($user_agent, 'maemo') !== false ||
+ strpos($user_agent, 'webkit') !== false
+ ) {
+ return 'nokia_high';
+ }
+ if (strpos($user_agent, 'series40') !== false) {
+ return 'nokia_mid';
+ }
+ if (strpos($user_agent, 'nokia') !== false) {
+ return 'nokia_low';
+ }
+ return '';
+}
+
+?>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/Licence.txt b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/Licence.txt
new file mode 100644
index 00000000..758a7455
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/Licence.txt
@@ -0,0 +1,31 @@
+Copyright © 2009 Nokia Corporation. All rights reserved.
+Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation.
+Java and all Java-based marks are trademarks or registered trademarks of
+Sun Microsystems, Inc. Other product and company names mentioned herein may be
+trademarks or trade names of their respective owners.
+
+
+Subject to the conditions below, you may, without charge:
+
+· Use, copy, modify and/or merge copies of this software and
+ associated documentation files (the “Software”)
+
+· Publish, distribute, sub-license and/or sell new software
+ derived from or incorporating the Software.
+
+
+
+This file, unmodified, shall be included with all copies or substantial portions
+of the Software that are distributed in source code form.
+
+The Software cannot constitute the primary value of any new software derived
+from or incorporating the Software.
+
+Any person dealing with the Software shall not misrepresent the source of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/Release_notes_v1_2.txt b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/Release_notes_v1_2.txt
new file mode 100644
index 00000000..477688f3
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/Release_notes_v1_2.txt
@@ -0,0 +1,98 @@
+
+Nokia Mobile Web Templates for High-end Devices
+
+The Nokia Mobile Web Templates for High-end Devices provide custom, styled and fully tested mobile web components. You can mix and match the components or use the full series to completely customise your mobile website or application. The components are suitable for most S60 3rd Edition and S60 5th Edition devices from Nokia and also are compatible with newer Series 40 WebKit and Maemo devices.
+
+--------------------------------------------------------------------------------
+
+PREREQUISITES
+
+XHTML
+CSS
+JavaScript
+
+-------------------------------------------------------------------------------
+
+IMPORTANT FILES/CLASSES
+
+Template files (in Library):
+buttons.html
+content.html
+form.html
+lists.html
+navigation.html
+table.html
+utility.html
+
+Scripts (in Resources):
+templates.js
+Key functions as noted in documentation.
+
+Styles (in Resources):
+baseStyles.css
+reset.css
+Classes as noted in documentation.
+
+Optional styles (in Tweaks):
+maemo.css
+operamini.css
+S406th.css
+S603rdFP2.css
+S605th.css
+
+Graphics source files:
+Artwork_Fireworks_CS4.png
+Artwork_Illustrator_CS4.ai
+Artwork_Panel_Fireworks_CS4.png
+Artwork_Panel_Illustrator_CS4.ai
+
+-------------------------------------------------------------------------------
+
+REQUIRED CAPABILITIES
+
+none
+
+-------------------------------------------------------------------------------
+
+KNOWN ISSUES
+
+- Class .button-submit is not supported on Maemo devices.
+See accompanying online documentation for full overview of all classes.
+
+- Saving iCal data to a device using the sample provided may not be supported on some devices. Testing on target devices is recommended.See accompanying online documentation for full overview of all classes and JavaScript functions.
+
+--------------------------------------------------------------------------------
+
+RUNNING THE EXAMPLE
+
+Templates can be viewed locally in a desktop browser.
+Begin with Library/index.html
+
+BUILD & INSTALLATION INSTRUCTIONS
+
+See accompanying online documentation for details of JavaScript functions required on each page.
+
+--------------------------------------------------------------------------------
+
+COMPATIBILITY
+
+S60 WebKit touch browser
+S60 WebKit (non-touch) version 525 and later
+S60 WebKit (non-touch) version 413
+Series 40 WebKit
+Maemo (touch)
+
+See accompanying online documentation for clarification of each browser category.
+
+---------------------------------------------------------------------------------
+
+VERSION HISTORY
+
+1.0 First release
+
+1.1 Second release
+- Includes user agent detection for the Nokia N900 and N97 Mini. Also includes an N97 Mini specific style sheet in the 'tweaks' folder.
+- Includes the new 'list-graphical-inline' style.
+- Includes minor revisions to styles and HTML to improve template reuse and flexibility.
+1.2 Third release
+- Removal of user agent detection and tweaks for the Nokia N97 Mini due to device pre-release browser adjustments. \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/comments.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/comments.php
new file mode 100644
index 00000000..86ed7688
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/comments.php
@@ -0,0 +1,42 @@
+<?php
+
+/*
+$Id: header.php 132044 2009-07-05 06:26:08Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/header.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+ if ($comments || $post->comment_status == 'open') {
+ print '<dl id="accordion_comments" class="list-accordion">';
+ print '<script type="text/javascript">addEvent("onload", function() {var accordion_comments = new AccordionList("accordion_comments");});</script>';
+ if ($comments) {
+ print '<dt class="collapsed" id="comments"><span></span>'; comments_number('No comments', '1 comment', '% comments' ); print __(' on this post.', 'wpmp') . '</dt>';
+ print "<dd>"; wpmp_theme_comment_list($comments); print '</dd>';
+ }
+ if ($post->comment_status == 'open') {
+ print '<dt class="collapsed" id="respond"><span></span>' . __('Leave a comment', 'wpmp') . '</dt>';
+ print "<dd>"; wpmp_theme_comment_form($user_ID, $user_identity, $req, $comment_author, $comment_author_url, $id, $post); print '</dd>';
+ }
+ print '</dl>';
+ }
+
+?> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/footer.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/footer.php
new file mode 100644
index 00000000..a50e6c0a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/footer.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+$Id: footer.php 177682 2009-11-28 13:02:13Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/footer.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+<p><?php printf(__("Powered by the <a%s>WordPress Mobile Pack</a>", 'wpmp'), ' href="http://wordpress.org/extend/plugins/wordpress-mobile-pack/"');?> | <?php printf(__("Theme designed by <a%s>Forum Nokia</a>", 'wpmp'), ' href="http://forumnokia.mobi"'); ?></p>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/header.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/header.php
new file mode 100644
index 00000000..fa57b534
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/header.php
@@ -0,0 +1,54 @@
+<?php
+
+/*
+$Id: header.php 132044 2009-07-05 06:26:08Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/header.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head profile="http://gmpg.org/xfn/11">
+ <link href="<?php print wpmp_theme_group_uri(); ?>/styles/reset.css" rel="stylesheet" type="text/css" />
+ <?php if (get_bloginfo('stylesheet_url') != $base_style = wpmp_theme_base_style()) { ?>
+ <link href="<?php print $base_style ?>" rel="stylesheet" type="text/css" />
+ <?php } ?>
+ <link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" />
+ <link href="<?php print wpmp_theme_group_uri(); ?>/styles/baseStyles.css" rel="stylesheet" type="text/css" />
+ <?php if (get_bloginfo('stylesheet_url') != $wpmp_base_style = wpmp_theme_base_style()) { ?>
+ <link href="<?php print $wpmp_base_style ?>.nokia.css" rel="stylesheet" type="text/css" />
+ <?php } ?>
+ <link href="<?php bloginfo('stylesheet_url'); ?>.nokia.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="<?php print wpmp_theme_group_uri(); ?>/scripts/templates.js"></script>
+ <script type="text/javascript">
+ function init() {
+ var myStyleTweaks = new StyleTweaker();
+ myStyleTweaks.add("Series60/5.0", "<?php print wpmp_theme_group_uri(); ?>/styles/tweaks/S605th.css");
+ myStyleTweaks.add("Series60/3.2", "<?php print wpmp_theme_group_uri(); ?>/styles/tweaks/S603rdFP2.css");
+ myStyleTweaks.add("AppleWebKit/420+", "<?php print wpmp_theme_group_uri(); ?>/styles/tweaks/S406th.css");
+ myStyleTweaks.add("N900", "<?php print wpmp_theme_group_uri(); ?>/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Firefox/3.0a1 Tablet browser 0.3.7", "<?php print wpmp_theme_group_uri(); ?>/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Opera Mini/4", "<?php print wpmp_theme_group_uri(); ?>/styles/tweaks/operamini.css");
+ myStyleTweaks.tweak();
+ }
+ addEvent("onload",init);
+ </script> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-30x30-icon.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-30x30-icon.png
new file mode 100644
index 00000000..7d1e5eb4
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-30x30-icon.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-40x40.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-40x40.png
new file mode 100644
index 00000000..71a7a5ce
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-40x40.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-60x60.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-60x60.png
new file mode 100644
index 00000000..39d04802
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-60x60.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-bottom-left.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-bottom-left.png
new file mode 100644
index 00000000..41185309
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-bottom-left.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-bottom-right.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-bottom-right.png
new file mode 100644
index 00000000..b734c1dc
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-bottom-right.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-flat.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-flat.png
new file mode 100644
index 00000000..b4a7854b
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-flat.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-top-left.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-top-left.png
new file mode 100644
index 00000000..fafae969
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-top-left.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-top-right.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-top-right.png
new file mode 100644
index 00000000..30166789
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-box-top-right.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-branding-background.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-branding-background.png
new file mode 100644
index 00000000..b7ae934d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-branding-background.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-form-input-shadow.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-form-input-shadow.png
new file mode 100644
index 00000000..22c20b11
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-form-input-shadow.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-h1-gradient.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-h1-gradient.png
new file mode 100644
index 00000000..b98d16d3
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-h1-gradient.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-h1-shadow.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-h1-shadow.png
new file mode 100644
index 00000000..2188087a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-h1-shadow.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-home.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-home.png
new file mode 100644
index 00000000..a269df25
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-home.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-email.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-email.png
new file mode 100644
index 00000000..ee019c27
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-email.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-external.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-external.png
new file mode 100644
index 00000000..0e5b3fb2
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-external.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-ical.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-ical.png
new file mode 100644
index 00000000..593ed4e3
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-ical.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-sms.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-sms.png
new file mode 100644
index 00000000..87e14263
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-sms.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-tel.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-tel.png
new file mode 100644
index 00000000..1c46a152
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-link-tel.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-logo.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-logo.png
new file mode 100644
index 00000000..a003d5b5
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-logo.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-quote.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-quote.png
new file mode 100644
index 00000000..0ddb3f38
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-quote.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-top.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-top.png
new file mode 100644
index 00000000..4cc66785
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/img-top.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-flat.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-flat.png
new file mode 100644
index 00000000..47c2895e
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-flat.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-rounded-left.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-rounded-left.png
new file mode 100644
index 00000000..19292fa3
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-rounded-left.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-rounded-right.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-rounded-right.png
new file mode 100644
index 00000000..27c6c26d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-button-rounded-right.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-expand-collapse.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-expand-collapse.png
new file mode 100644
index 00000000..081a8803
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-expand-collapse.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-footer.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-footer.png
new file mode 100644
index 00000000..1f84aa9d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-footer.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-list.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-list.png
new file mode 100644
index 00000000..f8914c37
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-list.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-nav-rounded.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-nav-rounded.png
new file mode 100644
index 00000000..0b33252e
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-nav-rounded.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-open.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-open.png
new file mode 100644
index 00000000..6b17d95b
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-open.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-rating.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-rating.png
new file mode 100644
index 00000000..0b83972c
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-rating.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-table-hover.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-table-hover.png
new file mode 100644
index 00000000..a5f8ddb1
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-table-hover.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-toggle-switch.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-toggle-switch.png
new file mode 100644
index 00000000..e3a9d899
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/sprite-toggle-switch.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/vertical-divider.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/vertical-divider.png
new file mode 100644
index 00000000..d6737d8a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/images/vertical-divider.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/index.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/index.php
new file mode 100644
index 00000000..082ff719
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/index.php
@@ -0,0 +1,48 @@
+<?php
+
+/*
+$Id: header.php 179317 2009-12-03 19:55:03Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/header.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+while (have_posts()) {
+ the_post();
+ print '<div class="post" id="post-' . get_the_ID() . '">';
+ if(is_single() || is_page()) {
+ print '<h1>' . get_the_title() . '</h1>';
+ wpmp_theme_post_single();
+ } else {
+ print '<ul class="list"><li><a href="'; the_permalink(); print '" rel="bookmark" title="' . __('Link to', 'wpmp') . ' ' . get_the_title() . '">' . get_the_title() . '</a></li></ul>';
+ wpmp_theme_post_summary();
+ }
+}
+if(!is_single() && !is_page()) {
+ print '<p class="navigation">';
+ next_posts_link(__('Older', 'wpmp'));
+ print ' ';
+ previous_posts_link(__('Newer', 'wpmp'));
+ print '</p>';
+}
+
+
+?> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/scripts/templates.js b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/scripts/templates.js
new file mode 100644
index 00000000..b9940a7e
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/scripts/templates.js
@@ -0,0 +1,328 @@
+/*!
+ * Nokia Mobile Web Templates v0.5
+ * http://forumnokia.com
+ *
+ * Copyright (c) 2009 Forum Nokia
+ *
+ */
+
+
+
+/*
+ * Slideshow(string:id, int:index, boolean:wrap)
+ * usage: mySlideshow = new Slideshow("coming-soon", 0, true);
+ *
+ */
+
+function Slideshow(_id, _index, _wrap) {
+ var slideshow = document.getElementById(_id);
+ var index, wrap, preview, caption, link;
+ var images = new Array();
+ var context = this;
+
+ // if no index was set assume we're starting at the beginning
+ (_index)? index = _index : index = 0;
+
+ // does the slideshow wrap around at the beginning and end?
+ (_wrap)? wrap = _wrap : wrap = false;
+
+ // if the slideshow id isn't found do nothing (false)...
+ (slideshow)?init():false;
+
+ function init() {
+ // find all <img>'s along with the <a class="preview>
+ // and <img /> elements within the slideshow
+ var _images = slideshow.getElementsByTagName("img");
+ for (var i=0; i < _images.length; i++) {
+ var isPreview = _images[i].parentNode.className.search(/preview/)+1;
+ if (isPreview) {
+ // set the preview image reference
+ preview = _images[i];
+ link = _images[i].parentNode;
+ } else {
+ // push all other images into the images array
+ images.push(_images[i]);
+ }
+ }
+ // find the preview <p> element and reference it for caption
+ var _span = slideshow.getElementsByTagName("span");
+ for (var i=0; i < _span.length; i++) {
+ var isPreview = _images[i].parentNode.className.search(/preview/)+1;
+ if (isPreview) {
+ caption = _span[i];
+ }
+ }
+ // find and enable the previous and next controls
+ var _ul = slideshow.getElementsByTagName("ul");
+ for (var i=0; i < _ul.length; i++) {
+ var isControls = _ul[i].className.search(/controls/)+1;
+ if (isControls) {
+ var _a = _ul[i].getElementsByTagName("a");
+ for (var j=0; j < _a.length; j++) {
+ var isPrevious = _a[j].className.search(/previous/)+1;
+ var isNext = _a[j].className.search(/next/)+1;
+ // wire up previous button
+ if (isPrevious) {
+ _a[j].onclick = function() {
+ context.previous();
+ }
+ }
+ // wire up next button
+ if (isNext) {
+ _a[j].onclick = function() {
+ context.next();
+ }
+ }
+ }
+ }
+ }
+ // kick things off with an initial update
+ update();
+ }
+
+ function update() {
+ // tweak index if at start or end based on wrap property
+ (index<0)?((wrap)?index=images.length-1:index=0):false;
+ (index>images.length-1)?((wrap)?index=0:index=images.length-1):false;
+ // update the view
+ preview.setAttribute("src", images[index].getAttribute("src"));
+ caption.innerHTML = images[index].getAttribute("alt");
+ link.setAttribute("href", images[index].parentNode.getAttribute("href"));
+ }
+
+ this.previous = function () {
+ // select the previous image by index and update the view
+ index--;update();
+ }
+
+ this.next = function () {
+ // select the next image by index and update the view
+ index++;update();
+ }
+}
+
+/*
+ * AccordionList(string:id, callback:function)
+ * usage: myAccordianList = new AccordianList(id, callback);
+ * - id 'foo' can also be an array such as ids['foo','bar']
+ * - callback (optional) function is triggered when a <dt> within the list is clicked
+ * and passes a reference to itself to the defined callback function.
+ */
+
+function AccordionList(_id, _callback) {
+ var id = new Array();
+ var callback;
+ (!_isArray(_id))?id.push(_id):id=_id;
+ (typeof _callback=="function")?callback=_callback:callback=function(){};
+
+ for (var x=0;x<id.length;x++) {
+ var dl = document.getElementById(id[x]);
+ var dt = dl.getElementsByTagName("dt");
+ for (var j=0; j < dt.length; j++) {
+ var state = dt[j].getAttribute("class");
+ // no classes defined, add class attribute with value 'collapsed'
+ if (state == null) {
+ dt[j].setAttribute("class", "collapsed");
+ state = dt[j].getAttribute("class");
+ }
+ var expanded = state.search(/expanded/)+1;
+
+ // find corresponding dd element
+ var dd = dt[j];
+ do dd = dd.nextSibling;
+ while (dd && dd.nodeType != 1);
+ (expanded)? dd.style['display'] = "block" : dd.style['display'] = "none" ;
+
+ dt[j].onclick = function() {
+ var dd = this;
+ var state = this.getAttribute("class");
+ var expanded = state.search(/expanded/)+1;
+ var toggle;
+ (expanded) ? toggle = state.replace(/expanded/, "collapsed") : toggle = state.replace(/collapsed/, "expanded") ;
+ this.setAttribute("class", toggle);
+
+ do dd = dd.nextSibling;
+ while (dd && dd.nodeType != 1);
+ (dd.style['display'] == "none")? dd.style['display'] = "block" : dd.style['display'] = "none" ;
+ callback(this);
+ }
+ }
+ }
+}
+
+/*
+ * toggleSwitch()
+ * usage: mySwitch = new toggleSwitch(id, function);
+ * id can also be an array such as ids['foo','bar'…]
+ *
+ */
+
+function ToggleSwitch(_id, _callback) {
+ var id = new Array();
+ var callback;
+ (!_isArray(_id))?id.push(_id):id=_id;
+ (typeof _callback=="function")?callback=_callback:callback=function(){};
+
+ for (var x=0;x<id.length;x++) {
+ var toggle = document.getElementById(id[x]);
+ toggle.style['display'] = "none";
+ // now let's build the toggle switch dynamically...
+ var ol = document.createElement("ol");
+ // set the class based on the state of the toggle (checkbox)
+ var toggleClass = "toggle-switch ";
+ (toggle.checked)?toggleClass += "on":toggleClass += "off";
+ ol.setAttribute("class", toggleClass);
+ // create the <li class="label-on"> element
+ var lion = document.createElement("li");
+ lion.setAttribute("class", "label-on");
+ // create the <li class="label-off"> element
+ var lioff = document.createElement("li");
+ lioff.setAttribute("class", "label-off");
+ // create the 'on' <a> element
+ var aon = document.createElement("a");
+ aon.setAttribute("href", "#on");
+ aon.appendChild(document.createTextNode("on"));
+ // create the 'off' <a> element
+ var aoff = document.createElement("a");
+ aoff.setAttribute("href", "#off");
+ aoff.appendChild(document.createTextNode("off"));
+ // assemble all of the various elements
+ lioff.appendChild(aoff);
+ lion.appendChild(aon);
+ ol.appendChild(lion);
+ ol.appendChild(lioff);
+ // clone and add the original (and hidden) checkbox to the toggle swithc
+ ol.appendChild(toggle.cloneNode(true));
+ // add the click event
+ ol.onclick = function() {
+ var state = this.getAttribute("class");
+ var on = state.search(/on/)+1;
+ var toggle;
+ var checkbox = this.getElementsByTagName("input");
+ if (on) {
+ toggle = state.replace(/on/, "off");
+ checkbox[0].removeAttribute("checked");
+ } else {
+ toggle = state.replace(/off/, "on");
+ checkbox[0].setAttribute("checked", "true");
+ }
+ this.setAttribute("class", toggle);
+ callback(this);
+ }
+ // replace the original 'toggle' element with the new one
+ toggle.parentNode.replaceChild(ol, toggle);
+ }
+}
+
+/*
+ * styleTweaker()
+ * usage: myStyleTweaker = new styleTweaker();
+ * id can also be an array such as ids['foo','bar'…]
+ *
+ */
+
+function StyleTweaker() {
+ this.ua = navigator.userAgent;
+ this.tweaks = new Object();
+}
+
+StyleTweaker.prototype.add = function(_string, _stylesheet) {
+ this.tweaks[_string] = _stylesheet;
+}
+
+StyleTweaker.prototype.remove = function(_term) {
+ for (var _string in this.tweaks) {
+ var exists = false;
+ (_string == _term)?exists=true:false;
+ (this.tweaks[_string])?exists=true:false;
+ (exists)?delete this.tweaks[_string]:false;
+ }
+}
+
+StyleTweaker.prototype.tweak = function() {
+ for (var _string in this.tweaks) {
+ if (this.ua.match(_string)) {
+ loadStylesheet(this.tweaks[_string]);
+ }
+ }
+}
+
+StyleTweaker.prototype.untweak = function() {
+ for (var _string in this.tweaks) {
+ if (this.ua.match(_string)) {
+ removeStylesheet(this.tweaks[_string]);
+ }
+ }
+}
+
+/*
+ * _isArray()
+ * usage: _isArray(object);
+ *
+ */
+function _isArray(x){
+ return ((typeof x == "object") && (x.constructor == Array));
+}
+
+/*
+ * addEvent()
+ * usage: addEvent(event, function);
+ * note: only targets window events!
+ *
+ */
+
+function addEvent(_event, _function) {
+ var _current_event = window[_event];
+ if (typeof window[_event] != 'function') {
+ window[_event] = _function;
+ } else {
+ window[_event] = function() {
+ _current_event();
+ _function();
+ }
+ }
+}
+
+/*
+ * include(file)
+ * usage: include(filename.js);
+ *
+ */
+
+function include(filename) {
+ var head = document.getElementsByTagName("head")[0];
+ var script = document.createElement("script");
+ script.setAttribute("type", "text/javascript");
+ script.setAttribute("src", filename);
+ head.appendChild(script);
+}
+
+/*
+ * loadStylesheet(file)
+ * usage: loadStylesheet(filename.css);
+ *
+ */
+
+function loadStylesheet(filename) {
+ var head = document.getElementsByTagName('head')[0];
+ var link = document.createElement("link");
+ link.setAttribute("rel", "stylesheet");
+ link.setAttribute("type", "text/css");
+ link.setAttribute("href", filename);
+ head.appendChild(link);
+}
+
+/*
+ * removeStylesheet(file)
+ * usage: removeStylesheet(filename.css);
+ *
+ */
+
+function removeStylesheet(filename) {
+ var stylesheets=document.getElementsByTagName("link");
+ for (var i=stylesheets.length; i>=0; i--) {
+ if (stylesheets[i] && stylesheets[i].getAttribute("href")!=null && stylesheets[i].getAttribute("href").indexOf(filename)!=-1) {
+ stylesheets[i].parentNode.removeChild(stylesheets[i]);
+ }
+ }
+} \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/sidebar.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/sidebar.php
new file mode 100755
index 00000000..36a50e19
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/sidebar.php
@@ -0,0 +1,39 @@
+<?php
+
+/*
+$Id: sidebar.php 180811 2009-12-08 06:13:51Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/sidebar.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+global $wp_registered_sidebars;
+foreach($wp_registered_sidebars as $key=>$sidebar) {
+ $wp_registered_sidebars[$key]['before_widget']='';
+ $wp_registered_sidebars[$key]['after_widget']='</dd>';
+ $wp_registered_sidebars[$key]['before_title']='<dt class="collapsed"><span></span>';
+ $wp_registered_sidebars[$key]['after_title']='</dt><dd style="display: none;">';
+}
+
+$before_sidebar = '<dl id="accordion_widgets" class="list-accordion"><script type="text/javascript">addEvent("onload", function() {var accordion_widget = new AccordionList("accordion_widgets");});</script>';
+$after_sidebar = '</dl>';
+
+?>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/baseStyles.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/baseStyles.css
new file mode 100644
index 00000000..e89b97cc
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/baseStyles.css
@@ -0,0 +1,1223 @@
+@charset "UTF-8";
+/* CSS Document */
+/*
+ * DEFAULT STYLES
+ *
+ */
+body {
+ font-size: 100%;
+ color: #333333;
+ font-weight: normal;
+ font-family: sans-serif;
+}
+/*
+ * PAGE CONTAINERS
+ * See documentation for details regarding use of #wrap and #content
+ */
+#header {
+}
+#wrap {
+ width: 100%;
+ overflow: hidden;
+ position: absolute;
+ left: 0;
+ padding: 0;
+}
+#content {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+#footer {
+ background: #434343 url(../images/sprite-footer.png) repeat-x top;
+ padding: .7em 0em;
+ clear: both;
+ height: 3em;
+}
+#footer.ft-large {
+ height: 9em;
+}
+/*
+ * BASIC ELEMENTS
+ * Basic styling of common elements.
+ */
+p {
+ line-height: 125%;
+ margin-top: 0.2em;
+ margin-bottom: 0.8em;
+ clear: both;
+}
+#footer p {
+ color: #FFF;
+ font-size: .8em;
+ margin-left: 10px;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ padding: 0em;
+}
+strong {
+ font-weight: bolder;
+}
+em {
+ font-style: italic;
+}
+/*
+ * LINK STATES
+ *
+ */
+a:link {
+ color:#003399;
+}
+
+a:visited {
+ color:#006600;
+}
+
+a:hover {
+ color:#FF9900;
+}
+
+a:active {
+ color:#990000;
+}
+/*
+ * NATIVE LISTS
+ *
+ */
+ul {
+ list-style: disc;
+ margin-left: 10px;
+ margin-top: 1em;
+ margin-bottom: 1em;
+ padding-left: 10px;
+}
+ul li {
+ margin-top: 0.3em;
+ margin-bottom: 0.3em;
+}
+
+ol {
+ list-style: decimal;
+ margin-left: 10px;
+ margin-top: 1em;
+ padding-left: 10px;
+}
+
+ol ol {
+ margin-top: 0.3em;
+ margin-bottom: 0.3em;
+}
+
+/*
+ * CLEAR
+ *
+ */
+.stack {
+ clear:both;
+}
+/* add this class to a header to remove top and bottom margins */
+.flush {
+ margin-bottom: 0;
+ margin-top: 0;
+}
+/*
+ * HEADERS
+ *
+ */
+ /*designed to be used at the very top of a page*/
+h1.top-aligned {
+ font-size: 1.7em;
+ padding-top: .3em;
+ padding-bottom: .5em;
+ padding-left: 10px;
+ padding-right: 10px;
+ font-weight: bold;
+ background: #F6F6F6 url(../images/img-h1-shadow.png) repeat-x bottom;
+ margin-top: 0em;
+ margin-bottom: .5em;
+ margin-left: -10px;
+ margin-right: -10px;
+}
+/*alternate H1*/
+h1 {
+ font-size: 1.7em;
+ padding-top: .3em;
+ padding-bottom: .3em;
+ padding-left: 10px;
+ padding-right: 10px;
+ font-weight: bold;
+ background: #FFF url(../images/img-h1-gradient.png) repeat-x bottom;
+ border-top: 1px solid #D8D8D8;
+ margin-top: 0.2em;
+ margin-bottom: 0.3em;
+ margin-left: -10px;
+ margin-right: -10px;
+}
+
+h2 {
+ font-size: 1.5em;
+ margin-top: 0.2em;
+ margin-bottom: 0.3em;
+ clear: both;
+ border-bottom: 1px solid #D8D8D8;
+}
+
+
+h3 {
+ font-size: 1.3em;
+ color: #000077;
+ margin-top: 0.2em;
+ margin-bottom: 0.3em;
+ clear: both;
+}
+
+h4 {
+ font-size: 1.3em;
+ color: #219B00;
+ margin-top: 0.2em;
+ margin-bottom: 0.3em;
+ clear: both;
+}
+
+h5 {
+ font-size: 1.2em;
+ background-color: #F6F6F6;
+ border-bottom: 1px solid #D8D8D8;
+ border-top: 1px solid #D8D8D8;
+ padding-left: 10px;
+ padding-top: .3em;
+ padding-bottom: .3em;
+ margin-top: 0.2em;
+ margin-bottom: 0.4em;
+ margin-left: -10px;
+ margin-right: -10px;
+ clear: both;
+}
+/* enables h5 to stack neatly above other items */
+h5.flush {
+ margin-bottom: 0;
+ border-bottom: none;
+}
+h6 {
+ font-size: 1.0em;
+ color: #333333;
+ margin-top: 0.2em;
+ margin-bottom: 0.4em;
+ border-bottom: 1px solid #D8D8D8;
+ clear: both;
+}
+/*
+ * BLOCKQUOTE
+ *
+ */
+blockquote {
+ margin-right: 10px;
+ margin-bottom: 0;
+ margin-top: 0;
+ padding: 1em .5em 1em 2em;
+ background: url(../images/img-quote.png) no-repeat 0em .5em;
+ font-style: italic;
+}
+blockquote p {
+ margin: 0;
+ padding: 0;
+}
+/*
+ * END DEFAULT STYLES
+ *
+ */
+/*
+ * 1. BRANDING AND MARKETING
+ *
+ */
+/*
+ * BRANDING AREA
+ * logo, tagline, background and hyperlink
+ */
+#header div.branding {
+ height: 68px;
+ background: url(../images/img-branding-background.png) repeat-x top;
+ display: block;
+ width: 100%;
+ overflow: hidden;
+}
+#header div.branding img {
+ padding-top: 20px;
+ padding-left: 10px;
+}
+#header div.branding a {
+ width: 100%;
+ height: 68px;
+ display: block;
+ background-image: none;
+ padding-right: none;
+}
+#header div.branding p {
+ text-indent: -5000px;
+}
+/*
+ * ADVERTISMENT CONTAINER
+ *
+ */
+.advertisement {
+ padding:0;
+ margin: 0.5em 0 0.5em 0;
+ width: 100%;
+}
+.advertisement p {
+ border: 1px solid #D8D8D8;
+ padding: 0.4em 0.4em;
+ background-color: #F6F6F6;
+ margin-bottom: 0;
+ margin-top: 0;
+}
+.advertisement span {
+ text-transform: uppercase;
+ padding: 0;
+ float: right;
+ font-size: 0.7em;
+ color: #B0B0B0;
+ padding-bottom: 0.3em;
+}
+/*
+ * 2. LISTS
+ *
+ */
+/*
+ * LIST WITH ICON
+ * 30 x 30 graphic
+ */
+ul.list-graphical {
+ list-style-type: none;
+ padding: 0;
+ margin-top: 0;
+ margin-bottom: .6em;
+ margin-left: -10px;
+ margin-right: -10px;
+ border-bottom: 1px solid #D5D8D8;
+ color: #333333;
+}
+
+ul.list-graphical li {
+ background: #F6F6F6 url(../images/sprite-list.png) repeat-x top;
+ display: block;
+ line-height: 40px;
+}
+
+ul.list-graphical a {
+ display: block;
+ padding-left: 50px;
+ background: transparent url(../images/img-30x30-icon.png) no-repeat 7px top;
+ height: 40px;
+ text-decoration: none;
+}
+ul.list-graphical a:hover {
+ background: transparent url(../images/img-30x30-icon.png) no-repeat 7px bottom;
+ color: #FFFFFF;
+ outline: none;
+}
+
+ul.list-graphical li:hover {
+ background: #82CB20 url(../images/sprite-list.png) repeat-x 0px -50px;
+}
+
+/*
+ * ALTERNATE GRAPHIC
+ * 40 x 40 graphic
+ */
+/*---add this class if using a 40x40 graphic---*/
+ul.list-graphical a.photo {
+ display: block;
+ padding-left: 50px;
+ background: transparent url(../images/img-40x40.png) no-repeat 0px 0px;
+ height: 40px;
+}
+/*
+ * ALTERNATE IMPLEMENTATION
+ * uses inline image rather than CSS-specified image
+ */
+ul.list-graphical-inline {
+ list-style-type: none;
+ padding: 0;
+ margin-top: 0;
+ margin-bottom: .6em;
+ margin-left: -10px;
+ margin-right: -10px;
+ border-bottom: 1px solid #D5D8D8;
+ color: #333333;
+}
+
+ul.list-graphical-inline li {
+ background: #F6F6F6 url(../images/sprite-list.png) repeat-x top;
+ display: block;
+ line-height: 40px;
+}
+
+ul.list-graphical-inline a {
+ display: block;
+ height: 40px;
+ text-decoration: none;
+}
+ul.list-graphical-inline a img {
+ float: left;
+ margin-right: 10px;
+}
+ul.list-graphical-inline a:hover {
+ color: #FFFFFF;
+ outline: none;
+}
+
+ul.list-graphical-inline li:hover {
+ background: #82CB20 url(../images/sprite-list.png) repeat-x 0px -50px;
+}
+/*
+ * SIMPLE STYLED LIST BOX
+ *
+ */
+/*note: line height adjusts height*/
+ul.list {
+ list-style-type: none;
+ padding: 0;
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-left: -10px;
+ margin-right: -10px;
+ border-bottom: 1px solid #D5D8D8;
+ color: #333333;
+}
+ul.list li {
+ background: #F6F6F6 url(../images/sprite-list.png) repeat-x top;
+ line-height: 40px;
+ display: block;
+}
+ul.list a {
+ padding-left: 10px;
+ display: block;
+ height: 40px;
+ background: url(../images/sprite-open.png) no-repeat right top;
+ text-decoration: none;
+}
+ul.list li:hover {
+ background: #82CB20 url(../images/sprite-list.png) repeat-x 0px -50px;
+ color: #FFFFFF;
+}
+
+ul.list a:link, ul.list a:visited {
+ color: #333333;
+}
+ul.list a:hover {
+ color: #FFFFFF;
+ background: url(../images/sprite-open.png) no-repeat right bottom;
+ outline: none;
+}
+ul.list a:active {
+ color: #990000;
+}
+/*
+ * ACCORDION DEFINITION LIST
+ *
+ */
+dl.list-accordion {
+ margin-left: -10px;
+ margin-right: -10px;
+ border-bottom: 1px solid #D5D8D8;
+}
+
+dl.list-accordion dt{
+ padding-left: 10px;
+ line-height: 40px;
+ height: 40px;
+
+}
+/*definition container*/
+dl.list-accordion dd {
+ padding-left: 15px;
+ padding-right: 10px;
+ padding-top: 0.5em;
+ padding-bottom: 0.4em;
+ line-height: normal;
+ background-color: #FFFFF;
+}
+/*definition term*/
+dl.list-accordion dt {
+ background: #F6F6F6 url(../images/sprite-list.png) repeat-x top;
+}
+
+dl.list-accordion dt.expanded {
+ border-bottom: 1px solid #D5D8D8;
+}
+
+dl.list-accordion dt.collapsed {
+ border-bottom: none;
+}
+/*container for expand/collapse icon*/
+dl.list-accordion dt span {
+ width: 14px;
+ height: 14px;
+ margin-top: 12px;
+ margin-right: 0.5em;
+ display: block;
+ float: left;
+}
+/*switches icon when expanded*/
+dl.list-accordion dt.expanded span{
+ background: url(../images/sprite-expand-collapse.png) no-repeat left bottom;
+}
+/*switches icon when collapsed*/
+dl.list-accordion dt.collapsed span{
+ background: url(../images/sprite-expand-collapse.png) no-repeat left top;
+}
+
+dl.list-accordion dt:hover {
+ background: #82CB20 url(../images/sprite-list.png) repeat-x 0px -50px;
+ color: #FFFFFF;
+ cursor: pointer;
+}
+/*content inside of definition container*/
+dl.list-accordion dd p {
+ margin: 0;
+ padding: 0 0 0.4em 0;
+}
+/*
+ * IMAGE GRID
+ *
+ */
+ul.grid {
+ width: 100%;
+ margin: 0 auto;
+}
+
+ul.grid li {
+ display: inline;
+}
+ul.grid li img{
+ border: 1px solid #D8D8D8;
+ padding: .2em .2em;
+ margin-right: .4em;
+ margin-bottom: .4em;
+}
+
+/*
+ * 3. NAVIGATION COMPONENTS
+ *
+ */
+/*
+ * BACK TO TOP
+ *
+ */
+div.top {
+ font-size: .9em;
+ background: #F6F6F6 url(../images/img-top.png) no-repeat 10px center;
+ border-bottom: 1px solid #D8D8D8;
+ border-top: 1px solid #D8D8D8;
+ padding-left: 2.2em;
+ padding-top: .3em;
+ padding-bottom: .3em;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ margin-left: -10px;
+ margin-right: -10px;
+ clear: both;
+}
+
+div.top a {
+ color: #535353;
+ text-decoration: none;
+ width: 100%;
+ display: block;
+}
+/*
+ * HOME
+ *
+ */
+div.home {
+ font-size: .9em;
+ background: #F6F6F6 url(../images/img-home.png) no-repeat 10px center;
+ border-top: 1px solid #D8D8D8;
+ padding-left: 1.5em;
+ padding-top: .3em;
+ padding-bottom: .3em;
+ margin-top: 0.5em;
+ margin-bottom: 0em;
+ margin-left: -10px;
+ margin-right: -10px;
+ clear: both;
+}
+
+div.home a {
+ color: #535353;
+ text-decoration: none;
+ width: 100%;
+ display: block;
+}
+
+/*
+ * BREADCRUMBS
+ *
+ */
+ul.breadcrumbs {
+ margin-left: -10px;
+ margin-right: -10px;
+ padding-top: .5em;
+ padding-bottom: .5em;
+ padding-left: 10px;
+ padding-right: .5em;
+ font-size: 80%;
+ list-style-type: none;
+}
+
+ul.breadcrumbs li {
+ display: inline;
+ line-height: 1.5em;
+}
+
+/*
+ * FOOTER OR ADMIN NAV
+ *
+ */
+ul.nav-footer {
+ display: block;
+ color: #FFF;
+ padding-top: 0em;
+ padding-bottom: .5em;
+ padding-left: 10px;
+ padding-right: .5em;
+ font-size: .85em;
+ height: 2em;
+}
+ul.nav-footer li {
+ display: inline;
+ line-height: 1.5em;
+ float: left;
+}
+ul.nav-footer li a {
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+ border-right: 1px solid #FFF;
+ text-decoration: none;
+}
+ul.nav-footer li.last a {
+ border-right: none;
+ padding-right: 0;
+}
+ul.nav-footer li.first a {
+ padding-left: 0;
+}
+
+ul.nav-footer a {
+ color: #FFF;
+}
+
+/*
+ * NAVIGATION BAR (ROUNDED CORNERS)
+ *
+ */
+ul.nav-horizontal-rounded {
+ padding:0;
+ margin: 0 0 .6em 0;
+ list-style-type: none;
+ width: 100%;
+ height: 40px;
+ float: left;
+}
+/*line height determines vertical text positioning*/
+ul.nav-horizontal-rounded li {
+ float: left;
+ display: block;
+ padding: 0;
+ margin-bottom: 0;
+ line-height: 40px;
+ text-align: center;
+ text-decoration: none;
+ background: #FFF url(../images/sprite-nav-rounded.png) no-repeat -20px 0px;
+}
+
+ul.nav-horizontal-rounded li:hover {
+ background: url(../images/sprite-nav-rounded.png) repeat-x -20px -50px;
+ color: #FFF;
+}
+
+/*height centers text vertically*/
+ul.nav-horizontal-rounded li a {
+ display: block;
+ background: url(../images/vertical-divider.png) repeat-y left center;
+ height: 40px;
+ padding-right: 0px;
+ text-decoration: none;
+}
+ul.nav-horizontal-rounded .first a {
+ background-image: none;
+}
+ul.nav-horizontal-rounded li a:hover {
+ color: #FFF;
+ background-image: none;
+ cursor: pointer;
+ outline: none;
+}
+/*left rounded corner*/
+ul.nav-horizontal-rounded li.first {
+ background: #FFF url(../images/sprite-nav-rounded.png) no-repeat 0px 0px;
+}
+
+ul.nav-horizontal-rounded li.first :hover {
+ background: #92CF1A url(../images/sprite-nav-rounded.png) repeat-x 0px -50px;
+ color: #FFF;
+}
+/*right rounded corner*/
+ul.nav-horizontal-rounded li.last :hover {
+ background: #92CF1A url(../images/sprite-nav-rounded.png) repeat-x right -50px;
+ color: #FFF;
+}
+
+ul.nav-horizontal-rounded li.last {
+ background: #FFF url(../images/sprite-nav-rounded.png) no-repeat right 0px;
+}
+
+/*
+ * SIMPLE NAVIGATION BAR
+ *
+ */
+ul.nav-horizontal-flat {
+ padding: 0;
+ margin: 0 0 0.6em 0;
+ list-style-type: none;
+ width: 100%;
+ height: 40px;
+ float: left;
+ border-top: 1px solid #D8D8D8;
+ border-bottom: 2px solid #D8D8D8;
+ border-left: 1px solid #D8D8D8;
+ border-right: 1px solid #D8D8D8;
+ background: #F6F6F6 url(../images/sprite-list.png) repeat-x 0px 0px;
+}
+
+ul.nav-horizontal-flat li {
+ float: left;
+ display: block;
+ padding: 0;
+ margin: 0;
+ line-height: 40px;
+ text-align: center;
+ background: #F6F6F6 url(../images/sprite-list.png) repeat-x 0px 0px;
+}
+
+ul.nav-horizontal-flat li a {
+ text-decoration: none;
+}
+ul.nav-horizontal-flat li.last {
+ background-image: none;
+ background-color: transparent;
+}
+
+ul.nav-horizontal-flat li:hover {
+ background: #92CF1A url(../images/sprite-list.png) repeat-x 0px -50px;
+ color: #FFF;
+}
+/*divider*/
+/*removed on first item and on hover*/
+ul.nav-horizontal-flat li a {
+ display: block;
+ background: url(../images/vertical-divider.png) repeat-y left center;
+ height: 40px;
+ padding-right: 0px;
+ cursor: pointer;
+}
+ul.nav-horizontal-flat .first a {
+ background-image: none;
+}
+ul.nav-horizontal-flat li a:hover {
+ color: #FFF;
+ background-image: none;
+ outline: none;
+}
+
+/*sets number of navigation bar items*/
+/*add class to li*/
+.four-piece {
+ width: 25%;
+}
+.three-piece {
+ width: 33.3%;
+}
+.two-piece {
+ width: 50%;
+}
+/*
+ * 4. STYLIZED LINKS
+ * includes icon to represent the type of link
+ */
+/*external link*/
+a.external {
+ background: url(../images/img-link-external.png) no-repeat right top;
+ padding-right: 1em;
+}
+/*links to ical data*/
+/*see 'data-ical' in resources*/
+a.ical {
+ background: url(../images/img-link-ical.png) no-repeat right top;
+ padding-right: 1em;
+}
+
+a[href^="mailto:"] {
+ background: url(../images/img-link-email.png) no-repeat right top;
+ padding-right: 1em;
+}
+
+a[href^="tel:"] {
+ background: url(../images/img-link-tel.png) no-repeat right top;
+ padding-right: 1em;
+}
+
+a[href^="sms:"] {
+ background: url(../images/img-link-sms.png) no-repeat right top;
+ padding-right: 1em;
+}
+/*
+ * 5. BUTTONS
+ *
+ */
+/*
+ * STYLED BUTTON
+ *
+ */
+/*change button width to auto for full-width button or customize width*/
+a.button-flat {
+ display: block;
+ line-height: 40px;
+ height: 40px;
+ width: 100px;
+ background: #F6F6F6 url(../images/sprite-button-flat.png) repeat-x 0px 0px;
+ text-align: center;
+ border-bottom: 2px solid #D8D8D8;
+ border-left: 1px solid #D8D8D8;
+ border-right: 1px solid #D8D8D8;
+ border-top: 1px solid #D8D8D8;
+ text-decoration: none;
+ color: #333333;
+ padding: 0 .3em;
+ margin-bottom: 0.5em;
+}
+
+a.button-flat:hover {
+ background: #92CF1A url(../images/sprite-button-flat.png) repeat-x 0px -50px;
+ color: #FFF;
+ outline: none;
+ border-bottom: 2px solid #B5B5B5;
+ border-left: 1px solid #B5B5B5;
+ border-right: 1px solid #B5B5B5;
+ border-top: 1px solid #B5B5B5;
+}
+/*
+ * STYLED BUTTON (ROUNDED CORNERS)
+ *
+ */
+ul.button-rounded {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ float: left;
+}
+ul.button-rounded li {
+ float: left;
+ margin-right: 10px;
+ margin-bottom: 10px;
+ margin-top: 10px;
+ line-height: 40px;
+ background: url(../images/sprite-button-rounded-right.png) no-repeat right top;
+ text-align: center;
+}
+
+ul.button-rounded li:hover {
+ background: url(../images/sprite-button-rounded-right.png) no-repeat right bottom;
+}
+
+ul.button-rounded li a {
+ display: block;
+ padding: 0 1em;
+ height: 40px;
+ background: url(../images/sprite-button-rounded-left.png) no-repeat left top;
+ text-decoration: none;
+ float: left;
+ color: #333333;
+}
+
+ul.button-rounded li a:hover {
+ background: url(../images/sprite-button-rounded-left.png) no-repeat left bottom;
+ color: #FFF;
+ outline: none;
+}
+/*
+ * FORM BUTTON (ROUNDED CORNERS)
+ *
+ */
+button.button-submit {
+ border:0;
+ cursor:pointer;
+ font-weight:bold;
+ font-size: .95em;
+ color: #333333;
+ padding:0 1.5em 0 0;
+ text-align:center;
+ margin: 0.4em 0;
+
+}
+button.button-submit span {
+ position:relative;
+ display:block;
+ white-space:nowrap;
+ padding:0 0 0 1.5em;
+}
+
+button.button-submit {
+ background:url(../images/sprite-button-rounded-right.png) no-repeat right top;
+ height:40px;
+ line-height:40px;
+}
+button.button-submit span {
+ height:40px;
+ line-height:40px;
+ background:url(../images/sprite-button-rounded-left.png) no-repeat left top;
+}
+button.button-submit:hover {
+ background:url(../images/sprite-button-rounded-right.png) no-repeat right bottom;
+ color:#fff;
+}
+button.button-submit:hover span {
+ background:url(../images/sprite-button-rounded-left.png) no-repeat left bottom;
+ color:#fff;
+}
+
+/*
+ * 6. FORMS
+ *
+ */
+fieldset {
+ margin-top: 0;
+}
+legend {
+ font-size: 110%;
+ font-weight: bold;
+ padding-bottom: .5em;
+ color: #000077;
+}
+form {
+ color: #333333;
+}
+form ul {
+ list-style-type: none;
+ margin-bottom: .5em;
+ margin-top: .5em;
+ padding: 0;
+}
+form ul li {
+ margin: 0;
+ padding: 0;
+}
+
+
+form label {
+ font-size: .9em;
+ margin-bottom: .5em;
+ margin-top: .5em;
+}
+
+input[type='text'] {
+ border: 1px solid #D8D8D8;
+ background: #FFF url(../images/img-form-input-shadow.png) repeat-x top;
+ display: block;
+ padding: 0.2em;
+ width: 98%;
+ color: #333333;
+ margin-bottom: 1em;
+}
+
+textarea {
+ border: 1px solid #D8D8D8;
+ background: #FFF url(../images/img-form-input-shadow.png) repeat-x top;
+ display: block;
+ padding: 0.2em;
+ color: #333333;
+ width: 98%;
+ line-height: normal;
+ margin-bottom: .7em;
+}
+
+form ul li input[type='radio'], form ul li input[type='checkbox'] {
+ margin:0.1em 0em;
+ padding: 0;
+}
+
+select {
+ border: 1px solid #D8D8D8;
+ background: #fff;
+ color: #666666;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+ padding-left: 0.5em;
+ margin: 0.2em 0;
+ display: block;
+ width: 98%;
+}
+
+input[type='button'] {
+ border: 1px solid #D8D8D8;
+ background-color: white;
+ padding: 1em 1.3em;
+ color: #666666;
+ margin: 1em 0em;
+}
+
+
+/*
+ * 7. TABLES
+ *
+ */
+table {
+ border: 1px solid #D8D8D8;
+ margin: 0;
+ width: 100%;
+ color: #333333;
+ vertical-align: top;
+}
+
+td {
+ border-bottom: 1px solid #D8D8D8;
+ border-right: 1px solid #D8D8D8;
+ padding-left: .3em;
+ padding-right: .3em;
+ padding-top: .2em;
+ padding-bottom: .2em;
+ line-height: 1.5em;
+}
+tr {
+ height: 1.5em;
+}
+th, tfoot {
+ border-top: 1px solid #FFF;
+ border-left: 1px solid #FFF;
+ background-color: #434343;
+ text-align: left;
+ padding-left: .3em;
+ padding-right: .2em;
+ padding-top: .2em;
+ padding-bottom: .2em;
+ line-height: 1.5em;
+ font-weight: bold;
+ color: #FFF;
+}
+caption {
+ font-style: italic;
+ caption-side: bottom;
+ text-align: left;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+}
+.odd {
+ background: #F6F6F6;
+}
+
+tr:hover {
+ background: #82CB20 url(../images/sprite-table-hover.png) repeat-x top;
+ color: #FFF;
+}
+/*
+ * 8. FLEXIBLE CONTAINERS
+ *
+ */
+/*
+ * SIMPLE FLEXIBLE BOX
+ *
+ */
+.box-flat {
+ background: #FBFBFB url(../images/img-box-flat.png) repeat-x left bottom;
+ margin: 0.2em 0em 0.6em 0em;
+ padding: 1em 1em 0.2em 1em;
+ border-top: 1px solid #D8D8D8;
+ border-bottom: 2px solid #D8D8D8;
+ border-left: 1px solid #D8D8D8;
+ border-right: 1px solid #D8D8D8;
+}
+.box-flat p {
+ padding: 0;
+}
+
+/*
+ * FLEXIBLE BOX (ROUNDED CORNERS)
+ *
+ */
+.box-rounded {
+ background: url(../images/img-box-bottom-left.png) no-repeat left bottom;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+.box-rounded-outer {
+ background: url(../images/img-box-bottom-right.png) no-repeat right bottom;
+ padding-bottom: 10px;
+}
+.box-rounded-inner {
+ background: url(../images/img-box-top-left.png) no-repeat left top;
+}
+.box-rounded h2 {
+ background: url(../images/img-box-top-right.png) no-repeat right top;
+ padding-top: 10px;
+ padding-bottom:5px;
+ margin: 0;
+ font-size: 110%;
+ color: #219B00;
+}
+.box-rounded p {
+ padding:0;
+ margin: 0;
+}
+.box-rounded h2, .box-rounded p {
+ padding-left: 15px;
+ padding-right: 15px;
+ border: none;
+}
+
+/*
+ * 9. UTILITY COMPONENTS
+ * see documentation for details
+ */
+/*
+ * 5-STAR RATING
+ * static only
+ */
+div.rating span{
+ float: right;
+ padding-top: 0.4em;
+}
+div.rating {
+ width: 150px;
+ height: 24px;
+ background: url(../images/sprite-rating.png) no-repeat 0px 0px;
+ margin-bottom: 1em;
+}
+div.stars-0 {
+ background-position: left 0px;
+}
+div.stars-1 {
+ background-position: left -25px;
+}
+div.stars-2 {
+ background-position: left -50px;
+}
+div.stars-3 {
+ background-position: left -75px;
+}
+div.stars-4 {
+ background-position: left -100px;
+}
+div.stars-5 {
+ background-position-y: left -125px;
+}
+/*
+ * \ SWITCH
+ *
+ */
+ol.toggle-switch {
+ background: url(../images/sprite-toggle-switch.png) no-repeat left top;
+ height: 35px;
+ width: 100px;
+ padding: 10px 0 0 0;
+ margin: 0;
+}
+ol.toggle-switch li {
+ display: block;
+ float: left;
+ text-align: center;
+ width: 50%;
+ color: #FFFFFF;
+}
+ol.toggle-switch li a {
+ color: #FFFFFF;
+ text-transform: uppercase;
+ font-weight: bold;
+ text-decoration: none;
+ cursor: pointer;
+}
+ol.toggle-switch li a:hover {
+ outline: none;
+}
+
+ol.toggle-switch.on {
+ background-position: left top;
+}
+ol.toggle-switch.off {
+ background-position: left -50px;
+}
+.off li.label-on {
+ visibility: hidden;
+}
+.on li.label-off {
+ visibility: hidden;
+}
+ul.toggle label {
+ font-weight: bold;
+}
+/*
+ * LIST CONTAINER FOR TOGGLE SWITCH
+ * includes label
+ */
+/*line-height adjusts container height*/
+ul.list-toggle {
+ list-style-type: none;
+ padding: 0;
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-left: -10px;
+ margin-right: -10px;
+ border-bottom: 1px solid #D5D8D8;
+ color: #333333;
+ height: 45px;
+ background: #F6F6F6 url(../images/sprite-list.png) repeat-x top;
+ display: block;
+}
+
+ul.list-toggle label {
+ padding-left: 10px;
+ margin: 15px 0px 0px 0px;
+ float: left;
+ display: block;
+}
+ul.list-toggle ol.toggle-switch {
+ margin:5px 10px 0px 0px;
+ float: right;
+ height: 30px;
+}
+
+/*
+ * SLIDESHOW
+ *
+ */
+.slideshow {
+ width: 100%;
+ text-align: center;
+ margin: 0 auto;
+}
+.slideshow img {
+ border: 1px solid #D8D8D8;
+ padding: .3em .3em;
+ margin-top: 1em;
+ margin-bottom:0;
+}
+.slideshow span {
+ clear: both;
+ width: 190px;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom:0.5em;
+ font-size: 0.9em;
+ padding: .3em 5px;
+}
+.slideshow a {
+ text-decoration: none;
+}
+.slideshow ul.controls {
+ width: 200px;
+ float:none;
+ margin: 0 auto 1em auto;
+}
+ol.data {
+ display: none;
+}
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/reset.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/reset.css
new file mode 100644
index 00000000..19a4894e
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/reset.css
@@ -0,0 +1,48 @@
+@charset "UTF-8";
+/* CSS Document */
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ font-weight: normal;
+ vertical-align: baseline;
+ background: transparent;
+}
+
+a {
+ margin: 0;
+ padding: 0;
+ font-weight: normal;
+}
+
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S406th.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S406th.css
new file mode 100644
index 00000000..4b93b4d0
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S406th.css
@@ -0,0 +1,22 @@
+/*compensates for large font on S40 webkit devices*/
+body {
+ font-size: 90%;
+}
+table {
+ font-size: 80%;
+}
+/*creates 3 x 3 (portrait) grid on 240 px wide devices*/
+ul.grid li img{
+ border: 1px solid #BEC1C3;
+ padding: .15em .15em;
+ margin-right: .1em;
+ margin-left: 0em;
+ margin-bottom: .2em;
+}
+/*optional, may cascade too heavily in certain contexts*/
+ul li, ol li {
+ font-size: 95%;
+}
+ul.nav-horizontal-rounded, ul.nav-horizontal-flat {
+ font-size: 95%;
+}
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S603rdFP2.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S603rdFP2.css
new file mode 100644
index 00000000..c0e12833
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S603rdFP2.css
@@ -0,0 +1,10 @@
+body {
+ font-size: 100%;
+}
+/*creates 3 x 3 (portrait) grid on 240 px wide devices*/
+ul.grid li img{
+ border: 1px solid #BEC1C3;
+ padding: .2em .2em;
+ margin-right: .1em;
+ margin-bottom: .2em;
+} \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S605th.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S605th.css
new file mode 100644
index 00000000..492fd2b2
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/S605th.css
@@ -0,0 +1,8 @@
+/*slight increase in font size on large screen devices*/
+body {
+ font-size: 110%;
+}
+#footer.ft-large {
+ height: 12em;
+}
+
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/maemo.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/maemo.css
new file mode 100644
index 00000000..cb9c1063
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/maemo.css
@@ -0,0 +1,4 @@
+/*adds rounded corners*/
+.box-flat {
+ -moz-border-radius: 10px;
+}
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/operamini.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/operamini.css
new file mode 100644
index 00000000..6c1baf9d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/styles/tweaks/operamini.css
@@ -0,0 +1,9 @@
+/* for Opera Mini 4 */
+/*creates 3 x 3 (portrait) grid on 240 px wide devices*/
+ul.grid li img{
+ border: 1px solid #BEC1C3;
+ padding: .1em .1em;
+ margin-right: .1em;
+ margin-bottom: .2em;
+}
+
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/buttons.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/buttons.html
new file mode 100644
index 00000000..d47db111
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/buttons.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
+"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Buttons</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="../resources/styles/reset.css" rel="stylesheet" type="text/css" />
+ <link href="../resources/styles/baseStyles.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../resources/scripts/templates.js"></script>
+ <script type="text/javascript">
+ function init() {
+ var myStyleTweaks = new StyleTweaker();
+ myStyleTweaks.add("Series60/5.0", "../resources/styles/tweaks/S605th.css");
+ myStyleTweaks.add("Series60/3.2", "../resources/styles/tweaks/S603rdFP2.css");
+ myStyleTweaks.add("AppleWebKit/420+", "../resources/styles/tweaks/S406th.css");
+ myStyleTweaks.add("N900", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Firefox/3.0a1 Tablet browser 0.3.7", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Opera Mini/4", "../resources/styles/tweaks/operamini.css");
+ myStyleTweaks.tweak();
+ }
+ function checkOrientation() {
+ var width = parseInt(screen.width);
+ var height = parseInt(screen.height);
+
+ var landscapeTweaker = new StyleTweaker();
+ landscapeTweaker.add("Series60/5.0", "../resources/styles/tweaks/S605thLandscape.css");
+ landscapeTweaker.add("Series60/3.2", "../resources/styles/tweaks/S603rdFP2Landscape.css");
+
+ if (width > height) {
+ landscapeTweaker.tweak();
+ } else {
+ landscapeTweaker.untweak();
+ }
+ }
+ addEvent("onload",init);
+ addEvent("onresize", checkOrientation);
+ </script>
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ </div>
+ <div id="content">
+ <h1 class="top-aligned">Buttons</h1>
+ <h3>1. Custom button</h3>
+ <a class="button-flat" href="http://forumnokia.mobi">Click Here</a>
+
+ <h3>2. Custom button (rounded corners)</h3>
+ <ul class="button-rounded">
+ <li><a href="http://forumnokia.mobi">Click Here</a></li>
+ <li><a href="http://forumnokia.mobi">Or Click Here</a></li>
+ </ul>
+ <h3>3. Form button (rounded corners)</h3>
+ <button value="submit" class="button-submit"><span>Submit</span></button>
+ <div class="home"><a href="index.html">Home</a></div>
+ </div>
+ <div id="footer">
+ <p>© 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/content.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/content.html
new file mode 100644
index 00000000..a4f32490
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/content.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
+"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Content</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="../resources/styles/reset.css" rel="stylesheet" type="text/css" />
+ <link href="../resources/styles/baseStyles.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../resources/scripts/templates.js" />
+ <script type="text/javascript">
+ function init() {
+ var myStyleTweaks = new StyleTweaker();
+ myStyleTweaks.add("Series60/5.0", "../resources/styles/tweaks/S605th.css");
+ myStyleTweaks.add("Series60/3.2", "../resources/styles/tweaks/S603rdFP2.css");
+ myStyleTweaks.add("AppleWebKit/420+", "../resources/styles/tweaks/S406th.css");
+ myStyleTweaks.add("N900", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Firefox/3.0a1 Tablet browser 0.3.7", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Opera Mini/4", "../resources/styles/tweaks/operamini.css");
+ myStyleTweaks.tweak();
+ }
+ addEvent("onload",init);
+ </script>
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ <div class="branding">
+ <a href="http://nokia.mobi">
+ <img src="../resources/images/img-logo.png" alt="Logo" />
+ </a>
+ <p>Company Logo</p>
+ <p>Company Tagline</p>
+ </div>
+ </div>
+ <div id="content">
+ <h1>H1 Lorem Ipsum</h1>
+ <p><em>Lorem ipsum dolor sit amet, consectetur adipisicing elit enim ad minim venia.</em></p>
+ <h2>H2 Lorem Ipsum</h2>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur <strong>adipisicing</strong> elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+ </p>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
+ <div class="advertisement">
+ <span>Advertisement</span>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
+ </div>
+ <h3>H3 Lorem Ipsum</h3>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore <a href="sms:01234545">SMS</a> aliqua. Ut enim ad <a class="external" href="http://forumnokia.mobi">laboris</a> veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+ </p>
+ <h4>H4 Lorem Ipsum</h4>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut <a href="mailto:info@yourcompany.com?subject=Sample%20subject%20line">email</a> ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+ </p>
+ <h5>H5 Lorem Ipsum</h5>
+ <blockquote><p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p></blockquote>
+ <h6>H6 Lorem Ipsum</h6>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
+ <div class="box-rounded">
+ <div class="box-rounded-inner">
+ <div class="box-rounded-outer">
+ <h2>Lorem</h2>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ad minim veniam, quis nostrud <a class="ical" href="../resources/data-ical.php">lorem <strong>iCal</strong></a> exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
+ </div>
+ </div>
+ </div>
+ <div class="box-flat">
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
+ <p>Lorem ipsum: <a href="tel:123 456 789">+44 123 456 789</a></p>
+ </div>
+ <div class="home"><a href="index.html">Home</a></div>
+ </div>
+ <div id="footer">
+ <p>© 2009 Forum Nokia</p>
+ <div class="stack" />
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/form.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/form.html
new file mode 100644
index 00000000..1aeecda6
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/form.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
+"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Form</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="../resources/styles/reset.css" rel="stylesheet" type="text/css" />
+ <link href="../resources/styles/baseStyles.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../resources/scripts/templates.js"></script>
+ <script type="text/javascript">
+ function init() {
+ var myStyleTweaks = new StyleTweaker();
+ myStyleTweaks.add("Series60/5.0", "../resources/styles/tweaks/S605th.css");
+ myStyleTweaks.add("Series60/3.2", "../resources/styles/tweaks/S603rdFP2.css");
+ myStyleTweaks.add("AppleWebKit/420+", "../resources/styles/tweaks/S406th.css");
+ myStyleTweaks.add("N900", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Firefox/3.0a1 Tablet browser 0.3.7", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Opera Mini/4", "../resources/styles/tweaks/operamini.css");
+ myStyleTweaks.tweak();
+ }
+ addEvent("onload",init);
+ </script>
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ </div>
+ <div id="content">
+ <h1 class="top-aligned">Form</h1>
+ <div class="box-flat">
+ <form id="form1" method="post" action="">
+ <fieldset>
+ <legend>Legend</legend>
+ <label>Label</label>
+ <input type="text" value="Lorem ipsum..." />
+ <label>Label</label>
+ <textarea name="test" cols="20" rows="5">Lorem ipsum...</textarea>
+ <ul>
+ <li>
+ <input id="radio-a" type="radio" name="radio1" value="true" />
+ <label for="radio-a">Label</label>
+ </li>
+ <li>
+ <input id="radio-b" type="radio" name="radio1" value="true" checked="checked" />
+ <label for="radio-b">Label</label>
+ </li>
+ </ul>
+ <ul>
+ <li>
+ <input id="check-a" type="checkbox" name="" value="true" />
+ <label for="check-a">Label</label>
+ </li>
+ <li>
+ <input id="check-b" type="checkbox" name="" value="true" checked="checked" />
+ <label for="check-b">Label</label>
+ </li>
+ </ul>
+ <label for="listMenu">label:</label>
+ <select name="listMenu">
+ <option value="value1">January</option>
+ <option value="value2">February</option>
+ <option value="value3">March</option>
+ <option value="value4">April</option>
+ </select>
+ <!--alternate submit button-->
+ <!--input name="button" type="button" id="button" value="Submit" /-->
+ <button value="submit" class="button-submit"><span>Submit</span></button>
+ </fieldset>
+ </form>
+ </div>
+ <div class="home"><a href="index.html">Home</a></div>
+ </div>
+ <div id="footer">
+ <p>© 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/index.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/index.html
new file mode 100644
index 00000000..fb46bf90
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/index.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
+"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Nokia Mobile Web Templates</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="../resources/styles/reset.css" rel="stylesheet" type="text/css" />
+ <link href="../resources/styles/baseStyles.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../resources/scripts/templates.js" />
+ <script type="text/javascript">
+ function init() {
+ var myStyleTweaks = new StyleTweaker();
+ myStyleTweaks.add("Series60/5.0", "../resources/styles/tweaks/S605th.css");
+ myStyleTweaks.add("Series60/3.2", "../resources/styles/tweaks/S603rdFP2.css");
+ myStyleTweaks.add("AppleWebKit/420+", "../resources/styles/tweaks/S406th.css");
+ myStyleTweaks.add("N900", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Firefox/3.0a1 Tablet browser 0.3.7", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Opera Mini/4", "../resources/styles/tweaks/operamini.css");
+ myStyleTweaks.tweak();
+ }
+ addEvent("onload",init);
+ </script>
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ </div>
+ <div id="content">
+ <h1>Nokia Mobile Web Templates</h1>
+ <h3>Components</h3>
+ <ul class="list">
+ <li><a href="content.html">Content</a></li>
+ <li><a href="form.html">Forms</a></li>
+ <li><a href="lists.html">Lists</a></li>
+ <li><a href="buttons.html">Buttons</a></li>
+ <li><a href="navigation.html">Navigation</a></li>
+ <li><a href="table.html">Tables</a></li>
+ <li><a href="utility.html">Utility</a></li>
+ </ul>
+ </div>
+ <div id="footer" class="ft-large">
+ <p>© 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/lists.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/lists.html
new file mode 100644
index 00000000..065d47ba
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/lists.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
+"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Lists</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="../resources/styles/reset.css" rel="stylesheet" type="text/css" />
+ <link href="../resources/styles/baseStyles.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../resources/scripts/templates.js"></script>
+ <script type="text/javascript">
+ function init() {
+ var myAccordionList = new AccordionList("accordion");
+ var myStyleTweaks = new StyleTweaker();
+ myStyleTweaks.add("Series60/5.0", "../resources/styles/tweaks/S605th.css");
+ myStyleTweaks.add("Series60/3.2", "../resources/styles/tweaks/S603rdFP2.css");
+ myStyleTweaks.add("AppleWebKit/420+", "../resources/styles/tweaks/S406th.css");
+ myStyleTweaks.add("N900", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Firefox/3.0a1 Tablet browser 0.3.7", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Opera Mini/4", "../resources/styles/tweaks/operamini.css");
+ myStyleTweaks.tweak();
+ }
+ addEvent("onload",init);
+ </script>
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ </div>
+ <div id="content">
+ <h1 class="top-aligned">Lists</h1>
+ <h3>1a. List with 30 x 30 (background) image</h3>
+ <ul class="list-graphical stack">
+ <li><a href="http://forumnokia.mobi">Line 1</a></li>
+ <li><a href="http://forumnokia.mobi">Line 2</a></li>
+ </ul>
+ <h3>1b. List with 40 x 40 (background) image</h3>
+ <ul class="list-graphical stack">
+ <li><a class="photo" href="http://forumnokia.mobi">Line 1</a></li>
+ <li><a class="photo" href="http://forumnokia.mobi">Line 2</a></li>
+ </ul>
+ <h3>2. List with 40 x 40 (inline) image</h3>
+ <ul class="list-graphical-inline stack">
+ <li><a href="http://forumnokia.mobi"><img src="../resources/images/img-40x40.png" alt="image" />Line 1</a></li>
+ <li><a href="http://forumnokia.mobi"><img src="../resources/images/img-40x40.png" alt="image" />Line 2</a></li>
+ </ul>
+ <h3>3. Styled list</h3>
+ <ul class="list stack">
+ <li><a href="http://forumnokia.mobi">Line 1</a></li>
+ <li><a href="http://forumnokia.mobi">Line 2</a></li>
+ </ul>
+
+ <h3>4. Unordered list (native)</h3>
+ <ul class="bullet">
+ <li>Line 1</li>
+ <li>Line 2</li>
+ <li>Line 3</li>
+ </ul>
+ <h3>5. Ordered list (native)</h3>
+ <ol>
+ <li>Line 1</li>
+ <li>Line 2
+ <ol>
+ <li>Nested 1</li>
+ <li>Nested 2</li>
+ </ol>
+ </li>
+ <li>Line 3</li>
+ </ol>
+ <h3>6. Accordion (definition) list</h3>
+ <dl id="accordion" class="list-accordion">
+ <dt><span></span>Lorem</dt>
+ <dd><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p></dd>
+ <dt class="collapsed"><span></span>Ipsum</dt>
+ <dd><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p></dd>
+ <dt class="expanded"><span></span>Dolor</dt>
+ <dd><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p></dd>
+ </dl>
+ <h3>7. Grid</h3>
+ <ul class="grid">
+ <li><img src="../resources/images/img-60x60.png" alt="image" /></li>
+ <li><img src="../resources/images/img-60x60.png" alt="image" /></li>
+ <li><img src="../resources/images/img-60x60.png" alt="image" /></li>
+ <li><img src="../resources/images/img-60x60.png" alt="image" /></li>
+ <li><img src="../resources/images/img-60x60.png" alt="image" /></li>
+ <li><img src="../resources/images/img-60x60.png" alt="image" /></li>
+ <li><img src="../resources/images/img-60x60.png" alt="image" /></li>
+ </ul>
+ <div class="home"><a href="index.html">Home</a></div>
+ </div>
+ <div id="footer">
+ <p>© 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/navigation.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/navigation.html
new file mode 100644
index 00000000..24296e9a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/navigation.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
+"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Navigation</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="../resources/styles/reset.css" rel="stylesheet" type="text/css" />
+ <link href="../resources/styles/baseStyles.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../resources/scripts/templates.js"></script>
+ <script type="text/javascript">
+ function init() {
+ var myStyleTweaks = new StyleTweaker();
+ myStyleTweaks.add("Series60/5.0", "../resources/styles/tweaks/S605th.css");
+ myStyleTweaks.add("Series60/3.2", "../resources/styles/tweaks/S603rdFP2.css");
+ myStyleTweaks.add("AppleWebKit/420+", "../resources/styles/tweaks/S406th.css");
+ myStyleTweaks.add("N900", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Firefox/3.0a1 Tablet browser 0.3.7", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Opera Mini/4", "../resources/styles/tweaks/operamini.css");
+ myStyleTweaks.tweak();
+ }
+ function checkOrientation() {
+ var width = parseInt(screen.width);
+ var height = parseInt(screen.height);
+
+ var landscapeTweaker = new StyleTweaker();
+ landscapeTweaker.add("Series60/5.0", "../resources/styles/tweaks/S605thLandscape.css");
+ landscapeTweaker.add("Series60/3.2", "../resources/styles/tweaks/S603rdFP2Landscape.css");
+
+ if (width > height) {
+ landscapeTweaker.tweak();
+ } else {
+ landscapeTweaker.untweak();
+ }
+ }
+ addEvent("onload",init);
+ addEvent("onresize", checkOrientation);
+ </script>
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ </div>
+ <div id="content">
+ <h1 class="top-aligned">Navigation</h1>
+ <h3>1. Breadcrumb</h3>
+ <ul class="breadcrumbs">
+ <li class="first"><a href="http://forumnokia.mobi">Home</a> &gt;</li>
+ <li><a href="http://forumnokia.mobi">Lorem ipsum</a> &gt; </li>
+ <li>Dolor sit amet</li>
+ </ul>
+ <h3>2. Horizontal button bar (2) with rounded corners</h3>
+ <ul class="nav-horizontal-rounded stack">
+ <li class="first two-piece"><a href="http://forumnokia.mobi">Lorem</a></li>
+ <li class="last two-piece"><a href="http://forumnokia.mobi">Ipsum</a></li>
+ </ul>
+ <h3>3. Horizontal button bar (3) with rounded corners</h3>
+ <ul class="nav-horizontal-rounded stack">
+ <li class="first three-piece"><a href="http://forumnokia.mobi">Lorem</a></li>
+ <li class="three-piece"><a href="http://forumnokia.mobi">Ipsum</a></li>
+ <li class="last three-piece"><a href="http://forumnokia.mobi">Dolor</a></li>
+ </ul>
+ <h3>4. Horizontal button bar</h3>
+ <ul class="nav-horizontal-flat stack">
+ <li class="first four-piece"><a href="http://forumnokia.mobi">Lorem</a></li>
+ <li class="four-piece"><a href="http://forumnokia.mobi">Ipsum</a></li>
+ <li class="four-piece"><a href="http://forumnokia.mobi">Dolor</a></li>
+ <li class="last four-piece"><a href="http://forumnokia.mobi">Amet</a></li>
+ </ul>
+ <h3>5. Back to top</h3>
+ <div class="top"><a href="#header">Back to top</a></div>
+ <h3>6. Home</h3>
+ <div class="home"><a href="index.html">Home</a></div>
+ </div>
+ <div id="footer">
+ <ul class="nav-footer">
+ <li class="first"><a href="http://forumnokia.mobi">Lorem</a></li>
+ <li><a href="http://forumnokia.mobi">Ipsum</a></li>
+ <li class="last"><a href="http://forumnokia.mobi">Dolor &amp; Ipsum</a></li>
+ </ul>
+ <p>© 2009 Forum Nokia</p>
+ <div class="stack" />
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/table.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/table.html
new file mode 100644
index 00000000..10715b27
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/table.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
+"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Table</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="../resources/styles/reset.css" rel="stylesheet" type="text/css" />
+ <link href="../resources/styles/baseStyles.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../resources/scripts/templates.js"></script>
+ <script type="text/javascript">
+ function init() {
+ var myStyleTweaks = new StyleTweaker();
+ myStyleTweaks.add("Series60/5.0", "../resources/styles/tweaks/S605th.css");
+ myStyleTweaks.add("Series60/3.2", "../resources/styles/tweaks/S603rdFP2.css");
+ myStyleTweaks.add("AppleWebKit/420+", "../resources/styles/tweaks/S406th.css");
+ myStyleTweaks.add("N900", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Firefox/3.0a1 Tablet browser 0.3.7", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Opera Mini/4", "../resources/styles/tweaks/operamini.css");
+ myStyleTweaks.tweak();
+ }
+ addEvent("onload",init);
+ </script>
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ </div>
+ <div id="content">
+ <h1 class="top-aligned">Tables</h1>
+ <h3>1. Table with top and side header.</h3>
+ <table>
+ <caption>
+ Lorem ipsum dolor.
+ </caption>
+ <tr>
+ <th scope="col">Lorem</th>
+ <th scope="col">Ipsum</th>
+ <th scope="col">Dolor</th>
+ </tr>
+ <tr>
+ <th scope="row">Lorem 1</th>
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ </tr>
+ <tr class="odd">
+ <th scope="row">Lorem 2</th>
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ </tr>
+ <tr>
+ <th scope="row">Lorem 3</th>
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ </tr>
+ <tr class="odd">
+ <th scope="row">Lorem 4</th>
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ </tr>
+ </table>
+ <h3>2. Simple table.</h3>
+ <table>
+ <caption>
+ Lorem ipsum dolor.
+ </caption>
+ <tr>
+ <th scope="col">Lorem</th>
+ <th scope="col">Ipsum</th>
+ <th scope="col">Dolor</th>
+ </tr>
+ <tr>
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ </tr>
+ <tr class="odd">
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ </tr>
+ <tr>
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ </tr>
+ <tr class="odd">
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ <td>Lorem ipisum</td>
+ </tr>
+ </table>
+ <div class="home"><a href="index.html">Home</a></div>
+ </div>
+ <div id="footer">
+ <p>© 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/utility.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/utility.html
new file mode 100644
index 00000000..011b1f8f
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_high/templates/utility.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
+"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Utility Components</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="../resources/styles/reset.css" rel="stylesheet" type="text/css" />
+ <link href="../resources/styles/baseStyles.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../resources/scripts/templates.js"></script>
+ <script type="text/javascript">
+ function init() {
+ var mySlideshow = new Slideshow ("slideshow", 0, true);
+ var myToggle = new ToggleSwitch(["toggler1","toggler2","toggler3"]);
+ var myStyleTweaks = new StyleTweaker();
+ myStyleTweaks.add("Series60/5.0", "../resources/styles/tweaks/S605th.css");
+ myStyleTweaks.add("Series60/3.2", "../resources/styles/tweaks/S603rdFP2.css");
+ myStyleTweaks.add("AppleWebKit/420+", "../resources/styles/tweaks/S406th.css");
+ myStyleTweaks.add("N900", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Firefox/3.0a1 Tablet browser 0.3.7", "../resources/styles/tweaks/maemo.css");
+ myStyleTweaks.add("Opera Mini/4", "../resources/styles/tweaks/operamini.css");
+ myStyleTweaks.tweak();
+ }
+ addEvent("onload",init);
+ </script>
+ <style type="text/css">
+ </style>
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="content">
+
+ <h1 class="top-aligned">Utility components</h1>
+ <h3>1. Slideshow</h3>
+ <div id="slideshow" class="slideshow">
+ <a class="preview">
+ <img src="../resources/images/photos/large/loading.png" alt="loading" />
+ <span></span>
+ </a>
+ <ul class="controls nav-horizontal-rounded stack">
+ <li class="first two-piece"><a class="previous">previous</a></li>
+ <li class="last two-piece"><a class="next">next</a></li>
+ </ul>
+ <ol class="data">
+ <li>
+ <a href="../resources/images/photos/large/image_01.png">
+ <img src="../resources/images/photos/large/image_01.png" alt="image 01" />
+ </a>
+ </li>
+ <li>
+ <a href="../resources/images/photos/large/image_02.png">
+ <img src="../resources/images/photos/large/image_02.png" alt="image 02" />
+ </a>
+ </li>
+ <li>
+ <a href="../resources/images/photos/large/image_03.png">
+ <img src="../resources/images/photos/large/image_03.png" alt="image 03" />
+ </a>
+ </li>
+ <li>
+ <a href="../resources/images/photos/large/image_04.png">
+ <img src="../resources/images/photos/large/image_04.png" alt="image 04" />
+ </a>
+ </li>
+ </ol>
+ </div>
+
+ <h3>2. Toggle</h3>
+ <ul class="list-toggle stack">
+ <li>
+ <ul class="toggle">
+ <li>
+ <label>Label</label>
+ <input id="toggler1" type="checkbox" name="preference" checked="checked" />
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ul class="list-toggle stack">
+ <li>
+ <ul class="toggle">
+ <li>
+ <label>Label</label>
+ <input id="toggler2" type="checkbox" name="preference" checked="checked" />
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <h3>3. Standalone toggle</h3>
+ <ul class="toggle">
+ <li>
+ <label>Label</label>
+ <input id="toggler3" type="checkbox" name="preference" />
+ </li>
+ </ul>
+ <h3>4. 5-star rating</h3>
+ <div class="rating stars-3"><span>3/5</span></div>
+ <div class="home"><a href="index.html">Home</a></div>
+ </div>
+ <div id="footer">
+ <p>© 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/Licence.txt b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/Licence.txt
new file mode 100644
index 00000000..758a7455
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/Licence.txt
@@ -0,0 +1,31 @@
+Copyright © 2009 Nokia Corporation. All rights reserved.
+Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation.
+Java and all Java-based marks are trademarks or registered trademarks of
+Sun Microsystems, Inc. Other product and company names mentioned herein may be
+trademarks or trade names of their respective owners.
+
+
+Subject to the conditions below, you may, without charge:
+
+· Use, copy, modify and/or merge copies of this software and
+ associated documentation files (the “Software”)
+
+· Publish, distribute, sub-license and/or sell new software
+ derived from or incorporating the Software.
+
+
+
+This file, unmodified, shall be included with all copies or substantial portions
+of the Software that are distributed in source code form.
+
+The Software cannot constitute the primary value of any new software derived
+from or incorporating the Software.
+
+Any person dealing with the Software shall not misrepresent the source of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/Release_notes_v1_1.txt b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/Release_notes_v1_1.txt
new file mode 100644
index 00000000..a48f775b
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/Release_notes_v1_1.txt
@@ -0,0 +1,126 @@
+Nokia Mobile Web Templates for Low-End Devices
+
+-------------------------------------------------
+
+Nokia Mobile Web Templates are a series of custom, tested mobile web styles and components. Creative developers can mix and match components as needed or use the full series to completely customise their website or application. This series of templates is primarily intended for low-end devices.
+
+--------------------------------------------------------------------------------
+
+PREREQUISITES
+
+XHTML
+
+Cascading Style Sheets (CSS)
+
+--------------------------------------------------------------------------------
+
+IMPORTANT FILES/CLASSES
+
+Template files (in Library):
+
+content.html
+
+lists.html
+
+form.html
+
+table.html
+
+
+Styles (in Resources):
+
+baseStyles-low.css
+
+reset-low.css
+
+
+
+Classes as noted in online documentation.
+
+--------------------------------------------------------------------------------
+
+REQUIRED CAPABILITIES
+
+None
+
+--------------------------------------------------------------------------------
+
+KNOWN ISSUES
+
+Please see detailed online documentation for issues and suggested solutions.
+
+--------------------------------------------------------------------------------
+
+RUNNING THE EXAMPLE
+
+Templates can be viewed locally in a desktop browser.
+
+Begin with low-end/index.html.
+
+--------------------------------------------------------------------------------
+
+BUILD & INSTALLATION INSTRUCTIONS
+
+See accompanying online documentation for details of classes and usage.
+
+--------------------------------------------------------------------------------
+
+COMPATIBILITY
+
+Low-end templates are optimised for browsers that support the following CSS and XHTML capabilities:
+
+Content
+
+- Basic styling (font weight, font size, colour) of common text elements including p, a, em, strong, and blockquote
+
+- Basic styling of link states
+
+- Ability to apply background colours to headers, IDs, and DIVs
+
+- Basic support for margins and padding
+
+Lists
+
+- Styling of ordered, unordered, and definition lists using native bullets
+
+Tables
+
+- Basic styling of table borders and copy (i.e., font size, colour, font weight)
+
+- Styling of table captions (i.e., font size, font weight, colour)
+
+
+Forms
+
+- Basic styling of input fields (i.e., width)
+
+- Basic support for margins and padding within forms
+
+
+These capabilities can most often be found in the following Nokia devices:
+
+
+- Series 40 2nd Edition (e.g., Nokia 6230i and Nokia 2610 devices)
+
+- S60 2nd Edition, initial release (e.g., Nokia 6600 device)
+
+- S60 2nd Edition, Feature Pack 1
+
+- S60 2nd Edition, FP2 (e.g., Nokia 6680 device)
+
+- S60 2nd Edition, FP3 (e.g., Nokia N70 device)
+
+- Series 40 3rd Edition (e.g., Nokia 6111 device)
+
+The low-end templates can also be used with Opera Mini 4.
+
+Note: Device and browser capabilities will vary. Testing on a range of devices from within these platforms is recommended.
+
+--------------------------------------------------------------------------------
+
+VERSION HISTORY
+
+1.0 First release
+1.1 Second release: Includes minor changes to styles for headers (h1-6), paragraphs, breadcrumbs (ul.breadcrumbs), and lists (ul).
+
+--------------------------------------------------------------------------------
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/footer.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/footer.php
new file mode 100644
index 00000000..a50e6c0a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/footer.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+$Id: footer.php 177682 2009-11-28 13:02:13Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/footer.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+<p><?php printf(__("Powered by the <a%s>WordPress Mobile Pack</a>", 'wpmp'), ' href="http://wordpress.org/extend/plugins/wordpress-mobile-pack/"');?> | <?php printf(__("Theme designed by <a%s>Forum Nokia</a>", 'wpmp'), ' href="http://forumnokia.mobi"'); ?></p>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/header.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/header.php
new file mode 100644
index 00000000..2e87edca
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/header.php
@@ -0,0 +1,40 @@
+<?php
+
+/*
+$Id: header.php 132044 2009-07-05 06:26:08Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/header.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head profile="http://gmpg.org/xfn/11">
+ <link href="<?php print wpmp_theme_group_uri(); ?>/styles/reset-low.css" rel="stylesheet" type="text/css" />
+ <?php if (get_bloginfo('stylesheet_url') != $base_style = wpmp_theme_base_style()) { ?>
+ <link href="<?php print $base_style ?>" rel="stylesheet" type="text/css" />
+ <?php } ?>
+ <link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" />
+ <link href="<?php print wpmp_theme_group_uri(); ?>/styles/baseStyles-low.css" rel="stylesheet" type="text/css" />
+ <?php if (get_bloginfo('stylesheet_url') != $wpmp_base_style = wpmp_theme_base_style()) { ?>
+ <link href="<?php print $wpmp_base_style ?>.nokia.css" rel="stylesheet" type="text/css" />
+ <?php } ?>
+ <link href="<?php bloginfo('stylesheet_url'); ?>.nokia.css" rel="stylesheet" type="text/css" />
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/images/img-logo.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/images/img-logo.png
new file mode 100644
index 00000000..2f9b270a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/images/img-logo.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/images/img-lowend.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/images/img-lowend.png
new file mode 100644
index 00000000..43816f2b
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/images/img-lowend.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/styles/baseStyles-low.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/styles/baseStyles-low.css
new file mode 100644
index 00000000..32de3a0d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/styles/baseStyles-low.css
@@ -0,0 +1,373 @@
+/* CSS Document */
+/*
+ * DEFAULT STYLES
+ *
+ */
+body {
+ color: #333333;
+ font-weight: normal;
+ font-family: sans-serif;
+}
+/*removes horizontal overflow on certain devices*/
+body div#wrap {
+ width: 100%;
+ overflow: hidden;
+ position: absolute;
+ left: 0;
+ padding: 0;
+}
+/*
+ * HEADER
+ *
+ */
+body div#header {
+ height: 36px;
+ background-color: #D8D8D8;
+ border-bottom: 4px solid #44AA33;
+ margin-bottom: .5em;
+}
+/*
+ * FOOTER
+ *
+ */
+body div#footer {
+ background-color: #F6F6F6;
+ border-top: 1px solid #D8D8D8;
+ padding: .7em 0em;
+ clear: both;
+ height: auto;
+ display: block;
+}
+body div#footer ul {
+ margin-left: 20px;
+ padding-left: 0px;
+ margin-bottom: 0;
+ margin-top: 0;
+}
+body div#footer ul li {
+ margin-left: 0;
+ padding-left: 0;
+}
+body div#footer p {
+ margin-left: 5px;
+ margin-top: .3em;
+ padding: 0;
+}
+/*
+ * BASIC ELEMENTS
+ *
+ */
+
+/*body required as early browsers don't understand p by itself */
+body p {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding: 0.2em 0.5em 0.4em 10px;
+}
+
+strong {
+ font-weight: bold;
+}
+em {
+ font-style: normal;
+ font-weight: bold;
+}
+/*
+ * LINK STATES
+ *
+ */
+a:link {
+ color:#003399;
+}
+
+a:visited {
+ color:#006600;
+}
+a:hover {
+ color:#FF9900;
+}
+
+a:active {
+ color:#990000;
+}
+
+/*
+ * HEADERS
+ *
+ */
+body h1 {
+ padding-left: 10px;
+ padding-right: 10px;
+ color: white;
+ background-color: #0033CC;
+ border-top: 1px solid #367CE4;
+ border-bottom: 2px solid #001F80;
+ margin-top: .1em;
+ margin-bottom: .3em;
+ line-height: normal;
+ clear: both;
+}
+
+body h2 {
+ padding-left: 10px;
+ padding-right: 10px;
+ color: white;
+ background-color: #44AA33;
+ border-top: 1px solid #67DD30;
+ border-bottom: 2px solid #378C29;
+ margin-top: 0.1em;
+ margin-bottom: 0.3em;
+ line-height: normal;
+ clear: both;
+}
+
+body h3 {
+ padding-left: 10px;
+ color: #000077;
+ margin-top: 0.1em;
+ margin-bottom: 0.3em;
+}
+
+body h4 {
+ padding-left: 10px;
+ color: #CC0066;
+ margin-bottom: 0.3em;
+ margin-top: 0.1em;
+ font-weight: bold;
+}
+
+body h5 {
+ padding-left: 10px;
+ color: #333333;
+ margin-bottom: 0.2em;
+ margin-top: 0.1em;
+}
+
+body h6 {
+ background-color: #F6F6F6;
+ border-bottom: 1px solid #D8D8D8;
+ border-top: 1px solid #D8D8D8;
+ padding-left: 10px;
+ padding-top: .3em;
+ padding-bottom: .3em;
+ margin-bottom: 0.1em;
+ margin-top: 0.1em;
+}
+/*
+ * IMAGE WITH (OPTIONAL) CAPTION
+ *
+ */
+body img.captioned-image {
+ margin: 0 0 0 2px;
+}
+
+body p.caption-image {
+ font-size: small;
+ margin-top: 0;
+ margin-bottom: 5px;
+ padding-left: 2px;
+}
+/*
+ * BLOCKQUOTE
+ *
+ */
+blockquote {
+ margin: .3em 1em .6em 1em;
+ padding: .6em 0em .3em 0em;
+ border-top: 1px solid #D8D8D8;
+ border-bottom: 1px solid #D8D8D8;
+}
+blockquote p {
+ margin: .0;
+ padding: 0 0 .3em 0;
+ border-bottom: 1px solid #D8D8D8;
+}
+/*
+ * LISTS
+ *
+ */
+/* compensates for smaller Opera Mini margins */
+ol, ul {
+ margin-left: .5em;
+}
+/* compensates for small margins on very early devices */
+ol ol, ul ul {
+ margin-left: .5em;
+}
+dd {
+ margin-left: 1em;
+}
+/*forces native margin*/
+body ul {
+ margin-bottom: 0.4em;
+}
+/*
+ * BREADCRUMBS
+ *
+ */
+body ul.breadcrumbs {
+ padding-top: 0;
+ padding-bottom: .5em;
+ padding-left: 0;
+ padding-right: .5em;
+ font-size: small;
+ list-style-type: none;
+ margin-bottom: 0;
+ margin-top: 0;
+}
+
+body ul.breadcrumbs li {
+ display: inline;
+ line-height: 1.5em;
+}
+/*
+ * FORMS
+ *
+ */
+body fieldset {
+ margin: 0;
+ padding: 0;
+ border: none;
+}
+body form {
+ margin: 0;
+ color: #333333;
+}
+body form label {
+ font-size: .9em;
+ margin-bottom: .5em;
+ margin-top: .5em;
+}
+
+body input[type='text'] {
+ padding: 0.2em;
+ margin-bottom: .5em;
+ display: block;
+}
+
+body textarea {
+ padding: 0.2em;
+ margin-bottom: .7em;
+ display: block;
+}
+
+body form input[type='radio'], body form input[type='checkbox'] {
+ margin:0.1em 0em;
+ padding: 0;
+}
+
+body select {
+ margin-bottom: 0;
+}
+
+body input[type='button'] {
+ padding: 1em 1.3em;
+ color: #666666;
+ margin: 1em 0em;
+}
+
+
+/*
+ * TABLES
+ *
+ */
+body table {
+ border: 1px solid #D8D8D8;
+ margin: 0;
+ width: 100%;
+ color: #333333;
+ font-size: 80%;
+}
+
+body td {
+ padding-left: .3em;
+ padding-right: .3em;
+ padding-top: .2em;
+ padding-bottom: .2em;
+ line-height: 1.5em;
+ border: 1px solid #D8D8D8;
+}
+/*compensates for lack of consistent header support*/
+body td.table-header {
+ color: #0033CC;
+ font-weight: bold;
+ background-color: #F6F6F6;
+}
+body tr {
+ height: 1.5em;
+}
+
+body table td.odd {
+ background-color: #F6F6F6;
+}
+/*caption-side unlikely to be supported*/
+body caption {
+ caption-side: bottom;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+ margin-left: 5px;
+ font-size: small;
+ text-align: left;
+ font-style: normal;
+}
+
+/*
+ * CONTAINER BOXES
+ *
+ */
+body div.box p.box-text {
+ border: 1px solid #D8D8D8;
+ width: 90%;
+ margin: 0.3em auto;
+ padding: 0.4em 0.4em;
+ background-color: #F6F6F6;
+}
+body div.header-box p {
+ border: 1px solid #D8D8D8;
+ width: 90%;
+ margin: 0em auto;
+ padding: 0.4em 0.4em;
+ background-color: #F6F6F6;
+}
+/* 2px border is required to ensure header is flush with the box */
+body div.header-box h3 {
+ border: 2px solid #0033CC;
+ width: 90%;
+ margin: 0em auto;
+ padding: 0.3em 0.3em;
+ background-color: #0033CC;
+ color: white;
+}
+/*
+ * BACK TO TOP/HOME
+ *
+ */
+p.top {
+ font-size: small;
+ background-color: #F6F6F6;
+ border-bottom: 1px solid #D8D8D8;
+ border-top: 1px solid #D8D8D8;
+ padding-top: .3em;
+ padding-bottom: .3em;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ clear: both;
+}
+p.home {
+ font-size: small;
+ background-color: #F6F6F6;
+ border-bottom: 1px solid #D8D8D8;
+ border-top: 1px solid #D8D8D8;
+ padding-top: .3em;
+ padding-bottom: .3em;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ clear: both;
+}
+p.top a, p.home a {
+ color: #333333;
+ text-decoration: none;
+ width: 100%;
+ display: block;
+}
+
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/styles/reset-low.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/styles/reset-low.css
new file mode 100644
index 00000000..c2d85103
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/styles/reset-low.css
@@ -0,0 +1,59 @@
+@charset "UTF-8";
+/* CSS Document */
+
+html, body, div, span, object, blockquote, pre,
+abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center, dl, dt, dd, fieldset, form, label, legend,
+caption, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font-weight: normal;
+ vertical-align: baseline;
+ background: transparent;
+}
+
+p {
+ border: 0;
+ font-size: 100%;
+ font-weight: normal;
+ vertical-align: baseline;
+ background: transparent;
+}
+a {
+ margin: 0;
+ padding: 0;
+ font-weight: normal;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ vertical-align: baseline;
+ background: transparent;
+}
+
+body table {
+ margin: 0;
+ padding: 0;
+ font-size: 100%;
+ font-weight: normal;
+ vertical-align: baseline;
+ background: transparent;
+}
+
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration: line-through;
+}
+
+body table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/content.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/content.html
new file mode 100644
index 00000000..ef32c868
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/content.html
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="resources/styles/reset-low.css" rel="stylesheet" type="text/css" />
+ <link href="resources/styles/baseStyles-low.css" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <div id="wrap">
+ <a id="top"></a>
+ <div id="header">
+ <img src="resources/images/img-logo.png" width="120" height="36" alt="Company Logo" />
+ </div>
+ <div id="content">
+ <h1>H1</h1>
+ <img class="captioned-image" src="resources/images/img-lowend.png" width="120" height="84" alt="Image" />
+ <p class="caption-image">Lorem ipsum caption.</p>
+ <h2>H2</h2>
+ <h3>H3</h3>
+ <h4>H4</h4>
+ <h5>H5</h5>
+ <h6>H6</h6>
+ <p>Paragraph: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et <a href="http://nokia.mobi">dolore</a> magna aliqua. Ut <em>enim ad minim</em> veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
+ <blockquote>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
+ </blockquote>
+ <div class="header-box">
+ <h3>Header</h3>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
+ </div>
+ <div class="box"><p class="box-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p></div>
+ <p>Telephone: <a href="tel:123 456 789">+44 123 456 789</a></p>
+ <p>SMS: <a href="sms:01234545"> 012345</a></p>
+ <p class="top"><a href="#top">Back to top</a></p>
+ <p class="home"><a href="index.html">&lt; Home</a></p>
+ </div>
+ <div id="footer">
+ <ul>
+ <li><a href="http://forumnokia.mobi">Link</a></li>
+ <li><a href="http://nokia.mobi">Link</a></li>
+ </ul>
+ <p>&copy; 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/form.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/form.html
new file mode 100644
index 00000000..f564d5bb
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/form.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Forms</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="resources/styles/reset-low.css" rel="stylesheet" type="text/css" />
+ <link href="resources/styles/baseStyles-low.css" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ <img src="resources/images/img-logo.png" width="120" height="36" alt="Company Logo" />
+ </div>
+ <div id="content">
+ <h1>Form</h1>
+ <form action="">
+ <fieldset>
+ <label>Label</label><input type="text" value="Enter text..." />
+ <textarea name="test" cols="20" rows="5">Enter text...</textarea>
+ <input name="radio1" type="radio" value="true" /><label>radio 1</label>
+ <br />
+ <input name="radio2" type="radio" value="true" checked="checked" /><label>radio 2</label>
+ <br />
+ <input name="checkbox1" type="checkbox" value="true" /><label>checkbox 1</label>
+ <br />
+ <input name="checkbox2" type="checkbox" value="true" checked="checked" /><label>checkbox 2</label>
+ <br />
+ <select name="listMenu">
+ <option value="value1">value1</option>
+ <option value="value2">value2</option>
+ <option value="value3">value3</option>
+ <option value="value4">value4</option>
+ </select>
+ <br />
+ <input type="submit" name="test" id="test" value="Submit" />
+ </fieldset>
+ </form>
+ <p class="home"><a href="index.html">&lt; Home</a></p>
+ </div>
+ <div id="footer">
+ <p>&copy; 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/index.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/index.html
new file mode 100644
index 00000000..7e20596f
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/index.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Nokia Mobile Web Templates for Low-end Devices</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="resources/styles/reset-low.css" rel="stylesheet" type="text/css" />
+ <link href="resources/styles/baseStyles-low.css" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="content">
+ <h2>Nokia Mobile Web Templates for Low-end Devices</h2>
+ <ul>
+ <li><a href="content.html">Content</a></li>
+ <li><a href="lists.html">Lists</a></li>
+ <li><a href="form.html">Forms</a></li>
+ <li><a href="table.html">Tables</a></li>
+ </ul>
+ </div>
+ <div id="footer">
+ <p>&copy; 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/lists.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/lists.html
new file mode 100644
index 00000000..420ec052
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/lists.html
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Lists</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="resources/styles/reset-low.css" rel="stylesheet" type="text/css" />
+ <link href="resources/styles/baseStyles-low.css" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ <img src="resources/images/img-logo.png" width="120" height="36" alt="Company Logo" />
+ </div>
+ <div id="content">
+ <h1>Lists</h1>
+ <ul class="breadcrumbs">
+ <li class="first"><a href="http://nokia.mobi">Home</a> &gt;</li>
+ <li><a href="http://forumnokia.mobi">Lorem ipsum</a> &gt; </li>
+ <li>Dolor amet</li>
+ </ul>
+ <h2>Unordered list</h2>
+ <p>Regular paragraph content.</p>
+ <ul>
+ <li><a href="http://forumnokia.mobi">Line 1</a></li>
+ <li><a href="http://nokia.mobi">Line 2</a></li>
+ <li><a href="http://forumnokia.mobi">Line 3</a></li>
+ </ul>
+ <h2>Ordered list</h2>
+ <p>Regular paragraph content.</p>
+ <ol>
+ <li><a href="http://nokia.mobi">Line 1</a></li>
+ <li><a href="http://forumnokia.mobi">Line 2</a></li>
+ <li><a href="http://nokia.mobi">Line 3</a></li>
+ </ol>
+ <h2>Definition list</h2>
+ <dl>
+ <dt>Term 1</dt>
+ <dd>Definition 1</dd>
+ <dt>Term 2</dt>
+ <dd>Definition 2</dd>
+ </dl>
+ <p class="home"><a href="index.html">&lt; Home</a></p>
+ </div>
+ <div id="footer">
+ <p>&copy; 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/table.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/table.html
new file mode 100644
index 00000000..b015b830
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_low/templates/table.html
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Tables</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="resources/styles/reset-low.css" rel="stylesheet" type="text/css" />
+ <link href="resources/styles/baseStyles-low.css" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ <img src="resources/images/img-logo.png" width="120" height="36" alt="Company Logo" />
+ </div>
+ <div id="content">
+ <h1>Table</h1>
+ <table width="100%" border="1">
+ <caption>
+ This is a caption
+ </caption>
+ <tr>
+ <td class="table-header">Header</td>
+ <td class="table-header">Header</td>
+ </tr>
+ <tr>
+ <td>Content</td>
+ <td>Some content</td>
+ </tr>
+ <tr>
+ <td class="odd">Content</td>
+ <td class="odd">Some content</td>
+ </tr>
+ <tr>
+ <td scope="row">Content</td>
+ <td>Some content</td>
+ </tr>
+ </table>
+ <p class="home"><a href="index.html">&lt; Home</a></p>
+ </div>
+ <div id="footer">
+ <p>&copy; 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/Licence.txt b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/Licence.txt
new file mode 100644
index 00000000..758a7455
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/Licence.txt
@@ -0,0 +1,31 @@
+Copyright © 2009 Nokia Corporation. All rights reserved.
+Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation.
+Java and all Java-based marks are trademarks or registered trademarks of
+Sun Microsystems, Inc. Other product and company names mentioned herein may be
+trademarks or trade names of their respective owners.
+
+
+Subject to the conditions below, you may, without charge:
+
+· Use, copy, modify and/or merge copies of this software and
+ associated documentation files (the “Software”)
+
+· Publish, distribute, sub-license and/or sell new software
+ derived from or incorporating the Software.
+
+
+
+This file, unmodified, shall be included with all copies or substantial portions
+of the Software that are distributed in source code form.
+
+The Software cannot constitute the primary value of any new software derived
+from or incorporating the Software.
+
+Any person dealing with the Software shall not misrepresent the source of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/Release_notes_v1_1.txt b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/Release_notes_v1_1.txt
new file mode 100644
index 00000000..8619d781
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/Release_notes_v1_1.txt
@@ -0,0 +1,151 @@
+Nokia Mobile Web Templates for Mid-Range Devices
+
+-------------------------------------------------
+
+Nokia Mobile Web Templates are a series of custom, tested mobile web styles and components. Creative developers can mix and match components as needed or use the full series to completely customise their website or application. This series of templates is primarily intended for mid-range devices.
+
+--------------------------------------------------------------------------------
+
+PREREQUISITES
+
+XHTML
+
+Cascading Style Sheets (CSS)
+
+--------------------------------------------------------------------------------
+
+IMPORTANT FILES/CLASSES
+
+Template files (in Library):
+
+content.html
+
+lists.html
+
+form.html
+
+table.html
+
+
+Styles (in Resources):
+
+baseStyles-mid.css
+
+reset-mid.css
+
+
+Classes as noted in online documentation.
+
+
+Graphics source files:
+
+Artwork_Fireworks_CS4.png
+
+Artwork_Illustrator_CS4.ai
+
+--------------------------------------------------------------------------------
+
+REQUIRED CAPABILITIES
+
+None
+
+--------------------------------------------------------------------------------
+
+KNOWN ISSUES
+
+Please see detailed online documentation for issues and suggested solutions.
+
+--------------------------------------------------------------------------------
+
+RUNNING THE EXAMPLE
+
+Templates can be viewed locally in a desktop browser.
+
+Begin with mid-range/index.html.
+
+--------------------------------------------------------------------------------
+
+BUILD & INSTALLATION INSTRUCTIONS
+
+See accompanying online documentation for details of classes and usage.
+
+--------------------------------------------------------------------------------
+
+COMPATIBILITY
+
+Midrange templates are optimised for browsers that support the following CSS and XHTML capabilities:
+
+Content
+
+- Basic styling (font weight, font size, colour) of common text elements including p, a, em, strong, and blockquote
+
+- Basic styling of link states
+
+- Ability to apply background colours or images to headers, IDs, and DIVs
+
+- Good support for margins, padding, and background image positioning
+
+
+Lists
+
+- Styling of ordered, unordered, and definition lists using native bullets
+
+
+Tables
+
+- Styling of table borders and copy (i.e., font size, colour, font weight)
+
+- Styling of table headers (i.e., font size, font weight, background colour)
+
+- Styling of table captions (i.e., font size, font weight, colour)
+
+
+Forms
+
+- Basic styling of input fields (i.e., width, border, background image)
+
+- Basic support for margins and padding within forms
+
+
+These capabilities can most often be found in the following Nokia devices:
+
+- Series 40 3rd Edition, initial release
+
+- Series 40 3rd Edition, Feature Pack 1 (e.g., Nokia 6131 and Nokia 6233 devices)
+
+- Series 40 3rd Edition, FP2 (e.g., Nokia 5300 and Nokia 7373 devices)
+
+- Series 40 5th Edition Lite
+
+- Series 40 5th Edition, FP1 (e.g., Nokia 5310 XpressMusic, Nokia 6500 classic, Nokia 6600 fold, and Nokia 7900 Prism devices)
+
+- Series 40 5th Edition, FP1 Lite (e.g., Nokia 5000 device)
+
+- Series 40 6th Edition, non-WebKit devices
+
+Note: Device and browser capabilities will vary. Testing on a range of devices from within these platforms is recommended.
+
+--------------------------------------------------------------------------------
+
+VERSION HISTORY
+
+1.0 First release
+1.1 Second release: Includes minor changes to styles for headers (h1-6), paragraphs, breadcrumbs (ul.breadcrumbs), and lists (ul).
+
+--------------------------------------------------------------------------------
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/footer.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/footer.php
new file mode 100644
index 00000000..a50e6c0a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/footer.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+$Id: footer.php 177682 2009-11-28 13:02:13Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/footer.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+<p><?php printf(__("Powered by the <a%s>WordPress Mobile Pack</a>", 'wpmp'), ' href="http://wordpress.org/extend/plugins/wordpress-mobile-pack/"');?> | <?php printf(__("Theme designed by <a%s>Forum Nokia</a>", 'wpmp'), ' href="http://forumnokia.mobi"'); ?></p>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/header.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/header.php
new file mode 100644
index 00000000..031bbb15
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/header.php
@@ -0,0 +1,40 @@
+<?php
+
+/*
+$Id: header.php 132044 2009-07-05 06:26:08Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/header.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head profile="http://gmpg.org/xfn/11">
+ <link href="<?php print wpmp_theme_group_uri(); ?>/styles/reset-mid.css" rel="stylesheet" type="text/css" />
+ <?php if (get_bloginfo('stylesheet_url') != $base_style = wpmp_theme_base_style()) { ?>
+ <link href="<?php print $base_style ?>" rel="stylesheet" type="text/css" />
+ <?php } ?>
+ <link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" />
+ <link href="<?php print wpmp_theme_group_uri(); ?>/styles/baseStyles-mid.css" rel="stylesheet" type="text/css" />
+ <?php if (get_bloginfo('stylesheet_url') != $wpmp_base_style = wpmp_theme_base_style()) { ?>
+ <link href="<?php print $wpmp_base_style ?>.nokia.css" rel="stylesheet" type="text/css" />
+ <?php } ?>
+ <link href="<?php bloginfo('stylesheet_url'); ?>.nokia.css" rel="stylesheet" type="text/css" />
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-form-input-shadow.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-form-input-shadow.png
new file mode 100644
index 00000000..1a1148e7
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-form-input-shadow.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-home.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-home.png
new file mode 100644
index 00000000..f17735a6
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-home.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-logo.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-logo.png
new file mode 100644
index 00000000..2f9b270a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-logo.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-midrange.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-midrange.png
new file mode 100644
index 00000000..c14b6c17
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-midrange.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-top.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-top.png
new file mode 100644
index 00000000..f6899f70
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/img-top.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-footer.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-footer.png
new file mode 100644
index 00000000..afb69cd8
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-footer.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-h1.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-h1.png
new file mode 100644
index 00000000..25f18536
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-h1.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-h2.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-h2.png
new file mode 100644
index 00000000..12020b46
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-h2.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-header.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-header.png
new file mode 100644
index 00000000..c69554b7
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/images/sprite-header.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/styles/baseStyles-mid.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/styles/baseStyles-mid.css
new file mode 100644
index 00000000..4bee1c26
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/styles/baseStyles-mid.css
@@ -0,0 +1,385 @@
+/* CSS Document */
+/*
+ * DEFAULT STYLES
+ *
+ */
+body {
+ color: #333333;
+ font-weight: normal;
+ font-family: sans-serif;
+}
+/*removes horizontal overflow on certain devices*/
+body div#wrap {
+ width: 100%;
+ overflow: hidden;
+ position: absolute;
+ left: 0;
+ padding: 0;
+}
+/*
+ * HEADER
+ *
+ */
+body div#header {
+ height: 36px;
+ background: #D8D8D8 url(../images/sprite-header.png) repeat-x top;
+ margin-bottom: .5em;
+}
+/*
+ * FOOTER
+ *
+ */
+body div#footer {
+ background: #F6F6F6 url(../images/sprite-footer.png) repeat-x top;
+ padding: .7em 0em;
+ clear: both;
+ height: auto;
+ display: block;
+}
+
+body div#footer ul {
+ margin-left: 20px;
+ padding-left: 0px;
+ margin-bottom: 0;
+ margin-top: 0;
+}
+body div#footer ul li {
+ margin-left: 0;
+ padding-left: 0;
+}
+
+body div#footer p {
+ margin-left: 5px;
+ margin-top: .3em;
+ padding: 0;
+}
+/*
+ * BASIC ELEMENTS
+ *
+ */
+
+/*body required as early browsers don't understand p by itself */
+body p {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding: 0.2em 0.5em 0.4em 10px;
+}
+
+strong {
+ font-weight: bold;
+}
+em {
+ font-style: italic;
+}
+/*
+ * LINK STATES
+ *
+ */
+a:link {
+ color:#003399;
+}
+
+a:visited {
+ color:#006600;
+}
+
+a:hover {
+ color:#FF9900;
+}
+
+a:active {
+ color:#990000;
+}
+/*
+ * HEADERS
+ *
+ */
+body h1 {
+ padding-left: 10px;
+ padding-right: 10px;
+ color: white;
+ background: #0038E1 url(../images/sprite-h1.png) repeat-x bottom;
+ border-top: 1px solid #0081CA;
+ margin-top: .1em;
+ margin-bottom: .3em;
+ line-height: normal;
+ clear: both;
+}
+
+body h2 {
+ padding-left: 10px;
+ padding-right: 10px;
+ color: white;
+ background: #55B02B url(../images/sprite-h2.png) repeat-x bottom;
+ border-top: 1px solid #67DD30;
+ margin-top: 0.1em;
+ margin-bottom: 0.3em;
+ line-height: normal;
+ clear: both;
+}
+
+body h3 {
+ padding-left: 10px;
+ color: #000077;
+ margin-top: 0.1em;
+ margin-bottom: 0.3em;
+}
+
+body h4 {
+ padding-left: 10px;
+ color: #CC0066;
+ margin-bottom: 0.3em;
+ margin-top: 0.1em;
+ font-weight: bold;
+}
+
+body h5 {
+ padding-left: 10px;
+ color: #333333;
+ margin-bottom: 0.2em;
+ margin-top: 0.1em;
+}
+
+body h6 {
+ background-color: #F6F6F6;
+ border-bottom: 1px solid #D8D8D8;
+ border-top: 1px solid #D8D8D8;
+ padding-left: 10px;
+ padding-top: .3em;
+ padding-bottom: .3em;
+ margin-bottom: 0.1em;
+ margin-top: 0.1em;
+}
+/*
+ * IMAGE WITH BORDER AND (OPTIONAL) CAPTION
+ *
+ */
+body img.image-border {
+ margin: 0 0 0 4px;
+ border: 1px solid #333333;
+ padding: 4px;
+}
+
+body p.caption-image {
+ font-size: small;
+ margin-top: 0;
+ padding-left: 4px;
+ padding-top: .3em;
+}
+/*
+ * BLOCKQUOTE
+ *
+ */
+blockquote {
+ margin: .3em 1em .6em 1em;
+ padding: .6em 0em;
+ font-style: italic;
+ border-top: 1px solid #D8D8D8;
+ border-bottom: 1px solid #D8D8D8;
+}
+blockquote p {
+ margin: .0;
+ padding: 0 0 .3em 0;
+ border-bottom: 1px solid #D8D8D8;
+}
+/*
+ * LISTS
+ *
+ */
+/* compensates for smaller Opera Mini margins */
+ol, ul, dl {
+ margin-left: .5em;
+}
+/* compensates for small margins on very early devices */
+ol ol, ul ul, dt dd {
+ margin-left: .5em;
+}
+dd {
+ margin-left: 1em;
+}
+/*forces native margin*/
+body ul {
+ margin-bottom: 0.4em;
+}
+/*
+ * BREADCRUMBS
+ *
+ */
+body ul.breadcrumbs {
+ padding-top: 0;
+ padding-bottom: .5em;
+ padding-left: 0;
+ padding-right: .5em;
+ font-size: small;
+ list-style-type: none;
+ margin-bottom: 0;
+ margin-top: 0;
+}
+
+body ul.breadcrumbs li {
+ display: inline;
+ line-height: 1.5em;
+}
+/*
+ * FORMS
+ *
+ */
+body fieldset {
+ margin: 0;
+ padding: 0;
+ border: none;
+}
+
+body form {
+ margin: 0;
+ color: #333333;
+}
+
+body form label {
+ font-size: .9em;
+ margin-bottom: .5em;
+ margin-top: .5em;
+}
+
+body input[type='text'] {
+ border: 1px solid #D8D8D8;
+ background: #FFF url(../images/img-form-input-shadow.png) repeat-x top;
+ display: block;
+ padding: 0.2em;
+ margin-bottom:.5em;
+}
+
+body textarea {
+ border: 1px solid #D8D8D8;
+ background: #FFF url(../images/img-form-input-shadow.png) repeat-x top;
+ display: block;
+ padding: 0.2em;
+ margin-bottom: .7em;
+}
+
+body form input[type='radio'], body form input[type='checkbox'] {
+ margin:0.1em 0em;
+ padding: 0;
+}
+
+body select {
+ margin-bottom: 0;
+}
+
+body input[type='button'] {
+ padding: 1em 1.3em;
+ color: #666666;
+ margin: 1em 0em;
+}
+/*
+ * TABLE
+ *
+ */
+body table {
+ border: 1px solid #D8D8D8;
+ margin: 0;
+ width: 100%;
+ color: #333333;
+ font-size: 90%;
+}
+
+body td {
+ padding-left: .3em;
+ padding-right: .3em;
+ padding-top: .2em;
+ padding-bottom: .2em;
+ line-height: 1.5em;
+ border: 1px solid #D8D8D8;
+}
+body tr {
+ height: 1.5em;
+}
+body th, tfoot {
+ text-align: left;
+ padding-left: .3em;
+ padding-right: .2em;
+ padding-top: .2em;
+ padding-bottom: .2em;
+ font-weight: bold;
+ border: 1px solid #D8D8D8;
+ color: #0033CC;
+ background-color: #F6F6F6;
+}
+body caption {
+ caption-side: bottom;
+ text-align: left;
+ font-style: normal;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+ font-size: small;
+ margin-left: 5px;
+}
+body table td.odd {
+ background-color: #F6F6F6;
+}
+/*
+ * CONTAINER BOXES
+ *
+ */
+body div.box p.box-text {
+ border: 1px solid #D8D8D8;
+ width: 90%;
+ margin: 0.3em auto;
+ padding: 0.4em 0.4em;
+ background-color: #F6F6F6;
+}
+body div.header-box p {
+ border: 1px solid #D8D8D8;
+ width: 90%;
+ margin: 0em auto;
+ padding: 0.4em 0.4em;
+ background-color: #F6F6F6;
+}
+/* 2px border is required to ensure header is flush with the box */
+body div.header-box h3 {
+ border: 2px solid #0033CC;
+ width: 90%;
+ margin: 0em auto;
+ padding: 0.3em 0.3em;
+ background-color: #0033CC;
+ color: white;
+}
+/*
+ * BACK TO TOP/HOME
+ *
+ */
+p.top {
+ font-size: small;
+ background: #F6F6F6 url(../images/img-top.png) no-repeat 0.5em center;
+ border-bottom: 1px solid #D8D8D8;
+ border-top: 1px solid #D8D8D8;
+ padding-top: .3em;
+ padding-bottom: .3em;
+ padding-left: .5em;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ clear: both;
+}
+p.home {
+ font-size: small;
+ background: #F6F6F6 url(../images/img-home.png) no-repeat 0.5em center;
+ border-bottom: 1px solid #D8D8D8;
+ border-top: 1px solid #D8D8D8;
+ padding-top: .3em;
+ padding-bottom: .3em;
+ padding-left: .5em;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ clear: both;
+}
+
+p.top a, p.home a {
+ color: #333333;
+ text-decoration: none;
+ width: 100%;
+ display: block;
+ padding-left: 1em;
+}
+
+
+
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/styles/reset-mid.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/styles/reset-mid.css
new file mode 100644
index 00000000..6abcdb2d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/styles/reset-mid.css
@@ -0,0 +1,65 @@
+@charset "UTF-8";
+/* CSS Document */
+
+html, body, div, span, object, blockquote, pre,
+abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center, dl, dt, dd, fieldset, form, label, legend,
+caption, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font-weight: normal;
+ vertical-align: baseline;
+ background: transparent;
+}
+
+p {
+ border: 0;
+ font-size: 100%;
+ font-weight: normal;
+ vertical-align: baseline;
+ background: transparent;
+}
+a {
+ margin: 0;
+ padding: 0;
+ font-weight: normal;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ vertical-align: baseline;
+ background: transparent;
+}
+
+body {
+ line-height: inherit;
+}
+
+body table {
+ margin: 0;
+ padding: 0;
+ font-size: 100%;
+ font-weight: normal;
+ vertical-align: baseline;
+ background: transparent;
+}
+
+/* remember to highlight inserts somehow! */
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration: line-through;
+}
+
+/* tables still need 'cellspacing="0"' in the markup */
+body table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/content.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/content.html
new file mode 100644
index 00000000..9b1411ee
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/content.html
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="resources/styles/reset-mid.css" rel="stylesheet" type="text/css" />
+ <link href="resources/styles/baseStyles-mid.css" rel="stylesheet" type="text/css" />
+ <style type="text/css">
+ </style>
+ </head>
+ <body>
+ <div id="wrap">
+ <a id="top"></a>
+ <div id="header">
+ <img src="resources/images/img-logo.png" width="120" height="36" alt="Company Logo" />
+ </div>
+ <div id="content">
+ <h1>H1</h1>
+ <img class="image-border" src="resources/images/img-midrange.png" width="162" height="114" alt="Image" />
+ <p class="caption-image">Lorem ipsum caption.</p>
+ <h2>H2</h2>
+ <h3>H3</h3>
+ <h4>H4</h4>
+ <h5>H5</h5>
+ <h6>H6</h6>
+ <p>Paragraph: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et <a href="http://nokia.mobi">dolore</a> magna aliqua. Ut <em>enim ad minim</em> veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
+ <blockquote>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
+ </blockquote>
+ <div class="header-box">
+ <h3>Header</h3>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
+ </div>
+ <div class="box">
+ <p class="box-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
+ </div>
+ <p>Telephone: <a href="tel:123456789">+44123456789</a></p>
+ <p>SMS: <a href="sms:01234545">012345</a></p>
+ <p class="top"><a href="#top">Back to top</a></p>
+ <p class="home"><a href="index.html">Home</a></p>
+ </div>
+ <div id="footer">
+ <ul>
+ <li><a href="http://forumnokia.mobi">Link</a></li>
+ <li><a href="http://nokia.mobi">Link</a></li>
+ </ul>
+ <p>&copy; 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/form.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/form.html
new file mode 100644
index 00000000..9cc98f29
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/form.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Forms</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="resources/styles/reset-mid.css" rel="stylesheet" type="text/css" />
+ <link href="resources/styles/baseStyles-mid.css" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ <img src="resources/images/img-logo.png" width="120" height="36" alt="Company Logo" />
+ </div>
+ <div id="content">
+ <h1>Form</h1>
+ <form action="">
+ <fieldset>
+ <label>Label</label><input type="text" value="Enter text..." />
+ <textarea name="test" cols="20" rows="5">Enter text...</textarea>
+ <input name="radio1" type="radio" value="true" /><label>radio 1</label>
+ <br />
+ <input name="radio2" type="radio" value="true" checked="checked" /><label>radio 2</label>
+ <br />
+ <input name="checkbox1" type="checkbox" value="true" /><label>checkbox 1</label>
+ <br />
+ <input name="checkbox2" type="checkbox" value="true" checked="checked" /><label>checkbox 2</label>
+ <br />
+ <select name="listMenu">
+ <option value="value1">value1</option>
+ <option value="value2">value2</option>
+ <option value="value3">value3</option>
+ <option value="value4">value4</option>
+ </select>
+ <br />
+ <input type="submit" name="test" id="test" value="Submit" />
+ </fieldset>
+ </form>
+ <p class="home"><a href="index.html">Home</a></p>
+ </div>
+ <div id="footer">
+ <p>&copy; 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/index.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/index.html
new file mode 100644
index 00000000..d3eb5576
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/index.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Nokia Mobile Web Templates for Mid-range Devices</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="resources/styles/reset-mid.css" rel="stylesheet" type="text/css" />
+ <link href="resources/styles/baseStyles-mid.css" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="content">
+ <h2>Nokia Mobile Web Templates for Mid-range Devices</h2>
+ <ul>
+ <li><a href="content.html">Content</a></li>
+ <li><a href="lists.html">Lists</a></li>
+ <li><a href="form.html">Forms</a></li>
+ <li><a href="table.html">Tables</a></li>
+ </ul>
+ </div>
+ <div id="footer">
+ <p>&copy; 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/lists.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/lists.html
new file mode 100644
index 00000000..9cda319b
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/lists.html
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Lists</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="resources/styles/reset-mid.css" rel="stylesheet" type="text/css" />
+ <link href="resources/styles/baseStyles-mid.css" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ <img src="resources/images/img-logo.png" width="120" height="36" alt="Company Logo" />
+ </div>
+ <div id="content">
+ <h1>Lists</h1>
+ <ul class="breadcrumbs">
+ <li class="first"><a href="http://nokia.mobi">Home</a> &gt;</li>
+ <li><a href="http://nokia.mobi">Lorem ipsum</a> &gt; </li>
+ <li>Dolor amet</li>
+ </ul>
+ <h2>Unordered list</h2>
+ <p>Regular paragraph content.</p>
+ <ul>
+ <li><a href="http://forumnokia.mobi">Line 1</a></li>
+ <li><a href="http://nokia.mobi">Line 2</a></li>
+ <li><a href="http://forumnokia.mobi">Line 3</a></li>
+ </ul>
+ <h2>Ordered list</h2>
+ <p>Regular paragraph content.</p>
+ <ol>
+ <li><a href="http://nokia.mobi">Line 1</a></li>
+ <li><a href="http://forumnokia.mobi">Line 2</a></li>
+ <li><a href="http://nokia.mobi">Line 3</a></li>
+ </ol>
+ <h2>Definition list</h2>
+ <dl>
+ <dt>Term 1</dt>
+ <dd>Definition 1</dd>
+ <dt>Term 2</dt>
+ <dd>Definition 2</dd>
+ </dl>
+ <p class="home"><a href="index.html">Home</a></p>
+ </div>
+ <div id="footer">
+ <p>&copy; 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/table.html b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/table.html
new file mode 100644
index 00000000..f005484d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/groups/nokia_mid/templates/table.html
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
+"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Tables</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link href="resources/styles/reset-mid.css" rel="stylesheet" type="text/css" />
+ <link href="resources/styles/baseStyles-mid.css" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <div id="wrap">
+ <div id="header">
+ <img src="resources/images/img-logo.png" width="120" height="36" alt="Company Logo" />
+ </div>
+ <div id="content">
+ <h1>Table</h1>
+ <table>
+ <caption>
+ This is a caption
+ </caption>
+ <tr>
+ <th scope="col">Header</th>
+ <th scope="col">Header</th>
+ </tr>
+ <tr>
+ <th scope="row">Row 1</th>
+ <td>Some content</td>
+ </tr>
+ <tr>
+ <th scope="row">Row 2</th>
+ <td class="odd">Some content</td>
+ </tr>
+ <tr>
+ <th scope="row">Row 3</th>
+ <td>Some content</td>
+ </tr>
+ </table>
+ <p class="home"><a href="index.html">Home</a></p>
+ </div>
+ <div id="footer">
+ <p>&copy; 2009 Forum Nokia</p>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/header.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/header.php
new file mode 100755
index 00000000..33b1fee7
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/header.php
@@ -0,0 +1,81 @@
+<?php
+
+/*
+$Id: header.php 250849 2010-06-11 05:51:54Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/header.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+header('Content-Type: text/html; charset=' . get_bloginfo('charset'));
+header('Vary: user-agent, accept');
+header('Cache-Control: no-cache, no-transform');
+
+print '<?xml version="1.0" encoding="UTF-8"?>';
+
+if (file_exists($wpmp_include = wpmp_theme_group_file('header.php'))) {
+ include_once($wpmp_include);
+} else {
+ ?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head profile="http://gmpg.org/xfn/11">
+ <?php if (get_bloginfo('stylesheet_url') != wpmp_theme_base_style()) { ?>
+ <link href="<?php print wpmp_theme_base_style() ?>" rel="stylesheet" type="text/css" />
+ <?php } ?>
+ <link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" />
+ <link href="<?php print get_theme_root_uri(); ?>/mobile_pack_base/style_structure.css" rel="stylesheet" type="text/css" />
+ <?php
+}
+?>
+
+ <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
+ <title><?php bloginfo('name'); ?> <?php if ( is_single() ) { print '&#187; ' . __('Blog Archive', 'wpmp'); } ?><?php wp_title('&#187;'); ?></title>
+ <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
+ <link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
+ <link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />
+ <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
+ <?php wp_head(); ?>
+ </head>
+ <body class="<?php if($wpmp_theme_group = wpmp_theme_group()) {print $wpmp_theme_group;} else {print 'base';} ?>"> <div id="wrap">
+ <div id="header" style='height:auto'>
+ <p><a href="<?php echo get_option('home'); ?>/"><strong><?php bloginfo('name'); ?></strong></a></p>
+ <p><?php bloginfo('description'); ?></p>
+ </div>
+ <div id="menu">
+ <?php
+ global $wpmp_theme_menu_location;
+ if (function_exists('wp_nav_menu') && $wpmp_theme_menu_location) {
+ wp_nav_menu(array(
+ 'theme_location'=>$wpmp_theme_menu_location,
+ 'menu_class'=>'breadcrumbs'
+ ));
+ } else {
+ ?>
+ <ul class="breadcrumbs">
+ <?php if (get_option('wpmp_theme_home_link_in_menu')=='true') {?>
+ <li class="<?php if (is_home()) { ?>current_page_item<?php } else { ?>page_item<?php } ?>"><a href="<?php bloginfo('url'); ?>/" title="<?php __('Home', 'wpmp'); ?>"><?php __('Home', 'wpmp'); ?></a></li>
+ <?php } ?>
+ <?php wp_list_pages('title_li=&depth=1'); ?>
+ </ul>
+ <?php
+ }
+ ?>
+ </div> \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/dahs.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/dahs.png
new file mode 100644
index 00000000..2e060403
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/dahs.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/high.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/high.png
new file mode 100644
index 00000000..61463908
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/high.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/radial.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/radial.png
new file mode 100644
index 00000000..5866a94e
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/radial.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/shad.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/shad.png
new file mode 100644
index 00000000..557dcbcc
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/img/shad.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/index.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/index.php
new file mode 100755
index 00000000..133be2db
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/index.php
@@ -0,0 +1,182 @@
+<?php
+
+/*
+$Id: index.php 237580 2010-05-04 23:32:07Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/index.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+get_header();
+
+$wpmp_title = '';
+$wpmp_archives = false;
+$wpmp_not_found = false;
+if (isset($_GET['archives']) && ($archives = $_GET['archives'])!='') {
+ $wpmp_title = __("Blog archives", 'wpmp');
+ $wpmp_archives = true;
+} elseif (have_posts()) {
+ $post = $posts[0];
+ if (is_search()) {
+ $wpmp_title = __("Search results", 'wpmp');
+ } elseif (is_tag()) {
+ $wpmp_title = sprintf(__("Archive for the '%s' tag", 'wpmp'), single_tag_title('', false));
+ } elseif (is_category()) {
+ $wpmp_title = sprintf(__("Archive for the '%s'", 'wpmp'), single_cat_title('', false));
+ } elseif (is_day()) {
+ $wpmp_title = sprintf(__("Archive for %s", 'wpmp'), get_the_time('F jS, Y'));
+ } elseif (is_month()) {
+ $wpmp_title = sprintf(__("Archive for %s", 'wpmp'), get_the_time('F, Y'));
+ } elseif (is_year()) {
+ $wpmp_title = sprintf(__("Archive for %s", 'wpmp'), get_the_time('Y'));
+ } elseif (is_author()) {
+ $wpmp_title = __("Author archive", 'wpmp');
+ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) {
+ $wpmp_title = __("Blog archives", 'wpmp');
+ } elseif (!is_single() && !is_page()) {
+ $wpmp_title = __("Recent posts", 'wpmp');
+ }
+} else {
+ $wpmp_title = __("Page not found", 'wpmp');
+ $wpmp_not_found = true;
+}
+
+
+print "<div id='wrapper'><div id='content'>";
+if ($wpmp_title!='') {
+ print "<h1>$wpmp_title</h1>";
+}
+
+
+if ($wpmp_not_found) {
+ print "<p>" . __("Use the menu to navigate the site, or search for a keyword:", 'wpmp') . "</p>";
+ include (TEMPLATEPATH . "/searchform.php");
+
+} elseif ($wpmp_archives) {
+ if ($archives=='category') {
+ print "<h2>" . __("Archives by category", 'wpmp') . "</h2>";
+ $links = array();
+ foreach(get_categories() as $category) {
+ $links[] = "<a href='" . get_category_link( $category->term_id ) . "'>$category->name</a>";
+ }
+ $links = implode(', ', $links);
+ } elseif ($archives=='tag') {
+ print "<h2>" . __("Archives by tag", 'wpmp') . "</h2>";
+ $links = array();
+ foreach(get_tags() as $tag) {
+ $links[] = "<a href='" . get_tag_link( $tag->term_id ) . "'>$tag->name</a> ($tag->count)";
+ }
+ $links = implode(', ', $links);
+ } elseif ($archives=='week' || $archives=='month' || $archives=='year') {
+ print "<h2>" . sprintf(__("Archives by %s", 'wpmp'), $archives) . "</h2>";
+ $links = " ";
+ wp_get_archives(array('type'=>$archives.'ly', 'show_post_count'=>true));
+ }
+ if($links) {
+ print "<p>$links</p>";
+ } else {
+ print "<p>" . __("No archives found. Use the menu to navigate the site, or search for a keyword:", 'wpmp') . "</p>";
+ include (TEMPLATEPATH . "/searchform.php");
+ }
+
+} else {
+
+ global $more;
+ $more=(is_single() || is_page())?1:0;
+
+ if (file_exists($wpmp_include = wpmp_theme_group_file('index.php'))) {
+ include_once($wpmp_include);
+ } else {
+
+ while (have_posts()) {
+ the_post();
+ print '<div class="post" id="post-' . get_the_ID() . '">';
+ if(is_single() || is_page()) {
+ print '<h1>' . get_the_title() . '</h1>';
+ wpmp_theme_post_single();
+ } else {
+ print '<h2><a href="'; the_permalink(); print '" rel="bookmark">' . get_the_title() . '</a></h2>';
+ wpmp_theme_post_summary();
+ }
+ }
+ if(!is_single() && !is_page()) {
+ print '<p class="navigation">';
+ next_posts_link(__('Older', 'wpmp'));
+ print ' ';
+ previous_posts_link(__('Newer', 'wpmp'));
+ print '</p>';
+ }
+
+ }
+}
+
+function wpmp_theme_post_single() {
+ wpmp_theme_post(true);
+ print '<p class="metadata">'; previous_post_link(__('Previous post:', 'wpmp') . ' %link'); print '<br />'; next_post_link(__('Next post:', 'wpmp') . ' %link'); print '</p>';
+ if(!function_exists('wpmp_transcoder_is_last_page') || wpmp_transcoder_is_last_page()) {
+ global $post;
+ if (!$post->comment_status=='open') {
+ print '<p class="metadata">' . __('Comments are closed for this post.', 'wpmp') . '</p>';
+ print '</div>';
+ } else {
+ print '</div>';
+ comments_template();
+ }
+ }
+}
+
+function wpmp_theme_post_summary() {
+ wpmp_theme_post();
+ print '</div>';
+}
+
+function wpmp_theme_post($single = false) {
+ global $wpmp_summary_first;
+ if (!isset($wpmp_summary_first)) {
+ $wpmp_summary_first=true;
+ }
+ $summary = get_option('wpmp_theme_post_summary');
+ $metadata = get_option('wpmp_theme_post_summary_metadata')=='true';
+ if ($single || $metadata) {
+ print '<p class="metadata">'. get_the_time('F jS, Y') . ' by ' . get_the_author() . '</p>';
+ }
+ if ($single || ($summary!='none' && ($summary!='firstteaser' || $wpmp_summary_first))) {
+ print '<div class="entry">';
+ the_content(__('Read more', 'wpmp'));
+ print '</div>';
+ $wpmp_summary_first = false;
+ }
+ if ($single || $metadata) {
+ print '<p class="metadata">' . __('Posted in ', 'wpmp');
+ the_category(', ');
+ edit_post_link('Edit', ' | ', '');
+ print ' | ';
+ comments_popup_link('No comments', '1 comment', '% comments');
+ print '</p>';
+ }
+}
+
+?>
+
+ </div>
+ <?php get_sidebar(); ?>
+</div>
+<?php get_footer(); ?>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/links.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/links.php
new file mode 100755
index 00000000..dbc2883d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/links.php
@@ -0,0 +1,42 @@
+<?php
+
+/*
+$Id: links.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/links.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+get_header();
+
+?>
+<div id="wrapper">
+ <div id="content">
+ <div class="post">
+ <h2>Links:</h2>
+ <ul>
+ <?php get_links_list(); ?>
+ </ul>
+ </div>
+ </div>
+ <?php get_sidebar(); ?>
+</div>
+<?php get_footer(); ?>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/screenshot.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/screenshot.png
new file mode 100755
index 00000000..f08dd9c3
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/screenshot.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/searchform.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/searchform.php
new file mode 100755
index 00000000..4a6637c5
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/searchform.php
@@ -0,0 +1,35 @@
+<?php
+
+/*
+$Id: searchform.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/searchform.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?>
+
+<form method="get" id="searchform" action="<?php print get_option('home'); ?>/">
+ <div>
+ <input type="search" value="<?php echo wp_specialchars($s, 1); ?>" name="s" id="s" placeholder="Search" results="0" />
+ <input class='button' type="submit" id="searchsubmit" value="<?php _e('Search', 'wpmp'); ?>" />
+ </div>
+</form>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/sidebar.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/sidebar.php
new file mode 100755
index 00000000..bf1f931e
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/sidebar.php
@@ -0,0 +1,58 @@
+<?php
+
+/*
+$Id: sidebar.php 250849 2010-06-11 05:51:54Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/sidebar.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+
+if (file_exists($wpmp_include = wpmp_theme_group_file('sidebar.php'))) {
+ include_once($wpmp_include);
+} else {
+ $before_sidebar = '<ul>';
+ $after_sidebar = '</ul>';
+}
+
+print '<div id="sidebar">';
+ob_start();
+ob_start();
+
+$sidebars_widgets=get_option('sidebars_widgets');
+if (is_array($sidebars_widgets)) {
+ foreach($sidebars_widgets as $index=>$widgets) {
+ if ($index!='wp_inactive_widgets') {
+ dynamic_sidebar($index);
+ }
+ }
+}
+
+$list = ob_get_contents();
+ob_end_clean();
+$list = ob_get_contents() . $list; //ob stack funny stuff in old widgets
+ob_end_clean();
+if ($list) {
+ print $before_sidebar . $list . $after_sidebar;
+}
+print '</div>';
+
+?>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/style.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/style.css
new file mode 100755
index 00000000..093df6ea
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/style.css
@@ -0,0 +1,80 @@
+/*
+$Id: style.css 567923 2012-07-05 18:10:01Z jamesgpearce $
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/style.css $
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+This file is part of the WordPress Mobile Pack, licensed under the Apache License, Version 2.0. Consult server-side files for license.
+*/
+
+/*
+Theme Name: WordPress Mobile (base)
+Theme URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: The base theme of the WordPress Mobile Pack. It is designed to be used by mobile browsers - but also to be extended by other themes. Tested with WordPress 2.5, 2.6 and 2.7.
+Version: 1.2.5
+Author: ribot, Forum Nokia & James Pearce
+Author URI: http://ribot.co.uk
+*/
+
+/*
+PALETTE
+-------
+*/
+
+
+/* DARKEST */
+a:hover {
+ color:#111111;
+}
+body {
+ background:#111111;
+}
+
+
+/* VERY DARK */
+body, h2 a {
+ color:#333333;
+}
+.button, #submit, #header, #footer {
+ background-color:#333333
+}
+input, textarea {
+ border-color:#333333;
+}
+
+
+/* DARK */
+a, a:visited, #sidebar ul h2, li.current_page_item a {
+ color:#444444;
+}
+
+
+/* MID */
+div.dateicon, p.metadata {
+ color:#8C8F6C;
+}
+
+
+/* LIGHT MID */
+#menu, #sidebar ul h2, h1, div.post, ol.commentlist, #commentform {
+ border-color:#DDDFD9;
+}
+
+
+/* LIGHT */
+#menu, #sidebar ul h2 {
+ background-color:#EFF1EA;
+}
+
+
+/* VERY LIGHT */
+#wrap {
+ background:#F2F4ED;
+}
+
+
+/* LIGHTEST */
+#header, #header a, #header a:hover, #header h2, #footer a, #footer a:hover, #footer, #submit, .button {
+ color:#FFFFFF;
+}
+.navigation, h3, div.post, #footer {
+ border-top-color:#FFFFFF;
+}
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/style.css.nokia.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/style.css.nokia.css
new file mode 100644
index 00000000..55b09b5a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/style.css.nokia.css
@@ -0,0 +1,185 @@
+/*
+$Id: style.css 156906 2009-09-22 07:35:03Z jamesgpearce $
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/style.css $
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+This file is part of the WordPress Mobile Pack, licensed under the Apache License, Version 2.0. Consult server-side files for license.
+*/
+
+/* MINOR OVERRIDES */
+body.nokia_high div#header {
+ font-size:0.8em;
+}
+body.nokia_low div#footer p,
+body.nokia_mid div#footer p {
+ margin-left:10px;
+}
+body div#header, body div#footer {
+ height:auto!important;
+ padding:0.7em 0;
+}
+body div#header p{
+ margin-bottom:0em!important;
+ padding-bottom:0em!important;
+ margin-top:0em!important;
+}
+body.nokia_high div#header {
+ padding-left:10px;
+}
+body.nokia_high ul.breadcrumbs {
+ margin:0px;
+}
+body.nokia_mid div#header, body.nokia_mid div#footer, body.nokia_mid h1, body.nokia_mid h2,
+body.nokia_high h1 {
+ background-image: url(img/radial.png);
+ background-position:top;
+ background-repeat:repeat-x;
+}
+body.nokia_high div#header,
+body.nokia_high div#menu {
+ background-image: url(img/radial.png);
+ background-position:0 -16px;
+ background-repeat:repeat-x;
+}
+body.nokia_high div#footer {
+ background-image: url(img/dahs.png);
+ background-position:top;
+ background-repeat:repeat-x;
+}
+#sidebar ul {
+ list-style-type:none;
+ margin-left:0;
+ padding:10px;
+}
+h1 {
+ margin-top:0;
+}
+body.nokia_low h1, body.nokia_mid h1 {
+ padding-top:0.2em;
+}
+ul.list li, dl.list-accordion dt {
+ white-space:nowrap;
+ background-image: url(img/radial.png);
+ background-position:top;
+ background-repeat:repeat-x;
+}
+ul.list li:hover, dl.list-accordion dt:hover {
+ background-image: url(img/dahs.png);
+ background-position:top;
+}
+body.nokia_high #sidebar {
+ margin-left:10px;
+ margin-right:10px;
+}
+
+body.nokia_high input.button {
+ border:0;
+ cursor:pointer;
+ font-weight:bold;
+ font-size: .95em;
+ padding:0 1.5em;
+ text-align:center;
+ margin: 0.4em 0;
+ background-image: url(img/radial.png);
+ background-position:0 -16px;
+ background-repeat:repeat-x;
+ height:40px;
+ line-height:40px;
+}
+input[type='search'] {
+ border: 1px solid #D8D8D8;
+ background: #FFF url(groups/nokia_high/images/img-form-input-shadow.png) repeat-x top;
+ display: block;
+ padding: 0.2em;
+ width: 98%;
+ color: #333333;
+ margin-bottom: 1em;
+}
+body.base #wrap,
+body.nokia_low #wrap,
+body.nokia_mid #wrap
+{
+ max-width:480px;
+ margin:0 auto;
+ position:relative;
+}
+body.nokia_high p.metadata {
+ font-size:0.8em;
+}
+
+#wpmp_analytics {
+ display:none!important;
+}
+#wpmp_analytics img {
+ display:none!important;
+ padding:0em!important;
+ margin:0em!important;
+}
+
+
+/* PALETTE */
+
+/* DARKEST */
+body.nokia_low h1, body.nokia_low h2,
+body.nokia_mid h1, body.nokia_mid h2 {
+ border-bottom-color: #111111;
+}
+
+/* VERY DARK */
+body.nokia_low h1, body.nokia_low h2, body.nokia_low div.header-box h3,
+body.nokia_mid h1, body.nokia_mid h2, body.nokia_mid div.header-box h3,
+body.nokia_high div#header, body.nokia_high div#footer {
+ background-color: #333333!important;
+}
+body div.header-box h3 {
+ border-color: #333333;
+}
+a:link, body td.table-header,
+body h3, body h4, body h5, body form, body table, a:visited, a:hover, a:active {
+ color: #333333;
+}
+body.nokia_low div#header, body.nokia_low div#header a,
+body.nokia_mid div#header, body.nokia_mid div#header a,
+body.nokia_low div#footer, body.nokia_low div#footer a,
+body.nokia_mid div#footer, body.nokia_mid div#footer a,
+body input[type='button'] {
+ color: #333333;
+}
+
+/* DARK */
+ul.list li:hover, dl.list-accordion dt:hover {
+ background-color:#444444;
+}
+
+body div#header {
+ border-bottom-color: #444444;
+}
+body.nokia_low h1, body.nokia_low h2,
+body.nokia_mid h1, body.nokia_mid h2 {
+ border-top-color: #444444;
+}
+
+/* LIGHT MID */
+body.nokia_high h1,
+body div#header,
+body.nokia_low div#footer, body.nokia_mid div#footer,
+ul.list li, dl.list-accordion dt {
+ background-color: #DDDFD9;
+}
+body div#footer,
+body h6, blockquote, blockquote p, body table, body td, body div.header-box p, body div.box p.box-text,
+body input[type='text'], body input[type='search'], body textarea {
+ border-color: #DDDFD9;
+}
+
+/* VERY LIGHT */
+div#menu, body h6, body td.table-header, body table td.odd, body div.box p.box-text, body div.header-box p {
+ background-color: #F2F4ED;
+}
+
+/* LIGHTEST */
+body.nokia_low h1, body.nokia_low h2, body.nokia_low div.header-box h3,
+body.nokia_low h1 a, body.nokia_low h2 a, body.nokia_low div.header-box h3 a,
+body.nokia_mid h1, body.nokia_mid h2, body.nokia_mid div.header-box h3,
+body.nokia_mid h1 a, body.nokia_mid h2 a, body.nokia_mid div.header-box h3 a {
+ color: #FFFFFF!important;
+} \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/style_structure.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/style_structure.css
new file mode 100644
index 00000000..9c5edb29
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/style_structure.css
@@ -0,0 +1,239 @@
+/*
+$Id: style.css 156906 2009-09-22 07:35:03Z jamesgpearce $
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/style.css $
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+This file is part of the WordPress Mobile Pack, licensed under the Apache License, Version 2.0. Consult server-side files for license.
+*/
+
+/*
+IMAGES
+------
+*/
+
+#header {
+ background-image:url("img/shad.png");
+ background-repeat:repeat-x;
+ background-position:bottom;
+}
+#footer {
+ background-image:url("img/dahs.png");
+ background-repeat:repeat-x;
+ background-position:top;
+}
+#menu, #sidebar ul h2 {
+ background-image:url("img/high.png");
+ background-repeat:repeat-x;
+ background-position:top;
+}
+
+
+/*
+LAYOUT
+------
+*/
+
+* {
+ margin:0;
+ padding:0;
+}
+
+body {
+ font-family:arial, verdana, sans-serif;
+ font-size:medium;
+}
+
+img {
+ border:none;
+ padding:0.2em;
+}
+
+
+a, a:hover, a:visited {
+ text-decoration:underline
+}
+
+li.current_page_item a {
+ text-decoration:none;
+}
+
+ul {
+ list-style-type:none;
+}
+
+h2 {
+ font-size:x-large;
+ font-weight:bold;
+}
+
+h3 {
+ font-weight:normal;
+ font-size:large;
+ border-top-width:1px;
+ border-top-style:solid;
+ padding-top:0.5em;
+}
+
+abbr, acronym {
+ border-bottom:none;
+}
+
+p, blockquote {
+ padding-top:0.2em;
+ padding-bottom:0.2em;
+}
+
+blockquote {
+ padding-left:1em;
+}
+
+input, textarea {
+ font-family:verdana, arial, sans-serif;
+ font-size:medium;
+ margin:0.2em;
+ border-width:1px;
+ border-style:solid;
+ width:16em;
+ padding:0.2em;
+}
+
+input[type="checkbox"], input.button {
+ width:auto;
+}
+
+label {
+ font-size:0.8em;
+}
+
+#wrap {
+ max-width:480px;
+ margin:0 auto;
+}
+
+#header, #menu, #content {
+ padding:0.5em;
+}
+
+#content {
+ padding-top:0;
+}
+
+#header {
+ text-align:left;
+}
+
+#header h1 {
+ font-size:large;
+}
+
+#header h2 {
+ font-size:0.8em;
+}
+
+#menu ul li {
+ display:inline;
+ padding-right:0.5em;
+ font-size:0.8em;
+}
+
+#menu, #sidebar ul h2 {
+ border-width:1px;
+ border-style:solid;
+}
+
+#sidebar {
+ font-size:0.8em;
+}
+
+#sidebar ul h2 {
+ font-size:1.25em;
+ padding:0.2em 0.5em;
+ margin-top:1em;
+}
+
+#sidebar ul ul, #sidebar ul div {
+ padding:0.2em 0.8em 0.5em;
+}
+
+#sidebar ul ul ul {
+ padding-left:1em;
+}
+
+#footer {
+ font-size:0.8em;
+ padding:0.5em;
+ text-align:left;
+ margin-top:1.2em;
+ border-top-width:1px;
+ border-top-style:solid;
+}
+
+div.dateicon, p.metadata {
+ font-size:0.8em;
+}
+
+.entry {
+ padding:0.2em 0;
+}
+
+h1 {
+ border-bottom-width:1px;
+ border-bottom-style:solid;
+}
+
+div.post {
+ padding-top:0.5em;
+ padding-bottom:0.5em;
+ border-top-width:1px;
+ border-top-style:solid;
+ border-bottom-width:1px;
+ border-bottom-style:solid;
+}
+
+.navigation {
+ padding-top:0.5em;
+ border-top-width:1px;
+ border-top-style:solid;
+}
+
+div.post:first-child {
+ border-top:none;
+}
+
+div.post ul, div.post ol {
+ padding:1em 2em;
+}
+
+div.post ul {
+ list-style-type:square;
+}
+
+ol.commentlist {
+ list-style-type:none;
+ border-bottom-width:1px;
+ border-bottom-style:solid;
+}
+
+ol.commentlist li {
+ padding:0.5em 0 0.5em 1em;
+}
+
+#commentform {
+ padding:0.5em 0 0.5em 1em;
+ border-bottom-width:1px;
+ border-bottom-style:solid;
+}
+
+#submit {
+ width:auto;
+ padding:0.2em;
+}
+
+#wpmp_analytics {
+ display:none!important;
+}
+#wpmp_analytics img {
+ display:none!important;
+ padding:0em!important;
+ margin:0em!important;
+}
+
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/wpmp_theme_theme_admin.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/wpmp_theme_theme_admin.php
new file mode 100755
index 00000000..ff3d057a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/wpmp_theme_theme_admin.php
@@ -0,0 +1,153 @@
+<?php
+
+/*
+$Id: wpmp_theme_theme_admin.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/wpmp_theme_theme_admin.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?><div class="wrap">
+ <h2>
+ <?php _e('Mobile Theme', 'wpmp') ?>
+ <p style='font-size:small;font-style:italic;margin:0'>
+ <?php _e('Part of the WordPress Mobile Pack', 'wpmp'); ?>
+ </p>
+ </h2>
+ <p>
+ <?php printf(__('<strong>Select the mobile theme itself on the <a%s>switcher settings</a> page.</strong> The page below allows you to further configure its behaviour.', 'wpmp'), ' href="themes.php?page=wpmp_switcher_admin"'); ?>
+ </p>
+ <form method="post" action="">
+ <table class="form-table">
+ <tr>
+ <th><?php _e('Enable Nokia templates', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_theme_option('wpmp_theme_nokia_templates'); ?>
+ <br />
+ <?php _e('Check this to provide additional optimisations for users of Nokia handsets. It also enables a rich theme for WebKit-based mobile browsers, such as the Apple iPhone and Palm Pre.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr>
+ <th><?php _e('Check mobile status', 'wpmp'); ?></th>
+ <td>
+ <a style='font-weight:bold;font-size:13px' target='_blank' href='http://ready.mobi/results.jsp?uri=<?php print urlencode(get_option('home')); ?>'>Launch ready.mobi</a>
+ <br />
+ <?php _e('Click this link to check that the front page of your site is ready for mobile users. NB: this will only work for externally-visible sites.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr>
+ <th><?php _e('Show home link in menu', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_theme_option('wpmp_theme_home_link_in_menu'); ?>
+ <br />
+ <?php _e("Unselect this if you are using a dedicated page for the blog home. It prevents 'Home' appearing twice in the menu.", 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr>
+ <th><?php _e('Number of posts', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_theme_option('wpmp_theme_post_count'); ?>
+ <br />
+ <?php _e('This constrains the length of a list of posts (such as on the home page or in an archive). Consider the consequences these settings may have on page size for limited mobile devices.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr>
+ <th><?php _e('Lists of posts show', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_theme_option('wpmp_theme_post_summary', 'wpmpThemeSummary()'); ?>
+ <br />
+ <?php print wpmp_theme_option('wpmp_theme_post_summary_metadata'); ?> <strong><?php _e("Display metadata for posts (author, tags, etc)", 'wpmp'); ?></strong>
+ <br />
+ <?php _e('These settings apply when your site is displaying a list of posts.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr class='wpmp_teaser'>
+ <th><?php _e('Teaser length', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_theme_option('wpmp_theme_teaser_length'); ?>
+ <br />
+ <?php _e("The mobile theme will display teasers of this length (or use each post's 'more' break, if present - whichever is shorter).", 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr>
+ <th><?php _e('Number of widget items', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_theme_option('wpmp_theme_widget_list_count'); ?>
+ <br />
+ <?php _e("For 3 standard widgets 'Archives', 'Categories', and 'Tag cloud' (which are often lengthy), this will shorten their number of items to the given length. Where necessary, a link will be provided to the full list.", 'wpmp'); ?>
+ </td>
+ </tr>
+ <?php if(function_exists('wpmp_transcoder_purge_cache')) { ?>
+ <tr>
+ <th><?php _e('Remove media', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_theme_option('wpmp_theme_transcoder_remove_media'); ?>
+ <br />
+ <?php _e('This will remove interactivity and media elements (such as script, Flash, movies, and embedded frames) from your posts and pages.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr>
+ <th><?php _e('Partition large pages', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_theme_option('wpmp_theme_transcoder_partition_pages'); ?>
+ <br />
+ <?php _e('This will break large blog posts or pages into smaller pieces more suitable for mobile devices.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr>
+ <th><?php _e('Shrink images', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_theme_option('wpmp_theme_transcoder_shrink_images'); ?>
+ <br />
+ <?php _e('This will shrink large images within posts or pages to fit on smaller screens.', 'wpmp'); ?>
+ <br /><br />
+ <?php print wpmp_theme_option('wpmp_theme_transcoder_clear_cache_now'); ?> <strong><?php _e("Clear cache now", 'wpmp'); ?></strong>
+ <br />
+ <?php _e('Size-adjusted images are cached locally for performance. If an existing original image has changed, you may need to clear this cache to have it update for mobile users.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <tr>
+ <th><?php _e('Simplify styling', 'wpmp'); ?></th>
+ <td>
+ <?php print wpmp_theme_option('wpmp_theme_transcoder_simplify_styling'); ?>
+ <br />
+ <?php _e('This will remove styling elements from your posts and pages to ensure mobile compatibility.', 'wpmp'); ?>
+ </td>
+ </tr>
+ <?php } ?>
+ </table>
+
+ <p class="submit">
+ <input type="submit" name="Submit" value="<?php _e('Save Changes', 'wpmp'); ?>" />
+ </p>
+ </form>
+</div>
+
+<script>
+ var wpmp_pale = 0.3;
+ var wpmp_speed = 'slow';
+ function wpmpThemeSummary(speed) {
+ if (speed==null) {speed=wpmp_speed;}
+ var value = jQuery("#wpmp_theme_post_summary").val();
+ jQuery(".wpmp_teaser").children().fadeTo(speed, value.indexOf("teaser")>-1 ? 1 : wpmp_pale);
+ }
+ wpmpThemeSummary(-1);
+</script>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_base/wpmp_theme_widget_admin.php b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/wpmp_theme_widget_admin.php
new file mode 100755
index 00000000..55d4770a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_base/wpmp_theme_widget_admin.php
@@ -0,0 +1,106 @@
+<?php
+
+/*
+$Id: wpmp_theme_widget_admin.php 195195 2010-01-19 04:11:37Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/wpmp_theme_widget_admin.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+?><div class="wrap">
+ <h2>
+ <?php _e('Mobile Widgets', 'wpmp') ?>
+ <p style='font-size:small;font-style:italic;margin:0'>
+ <?php _e('Part of the WordPress Mobile Pack', 'wpmp'); ?>
+ </p>
+ </h2>
+ <form method="post" action="">
+ <input type='hidden' name='wpmp_theme_widget[]' value='-' />
+ <?php global $wp_registered_sidebars, $wp_registered_widgets; ?>
+ <?php $enabled = get_option('wpmp_theme_widget'); ?>
+ <?php $sidebar_widgets = wp_get_sidebars_widgets(); ?>
+ <p><?php printf(__("Use this page to select which of your <a%s>currently visible widgets</a> will appear for your mobile users.", 'wpmp'), " href='/wp-admin/widgets.php'"); ?></p>
+ <?php foreach($sidebar_widgets as $sidebar=>$widgets) { ?>
+ <?php if ($sidebar!='wp_inactive_widgets') { ?>
+ <h3>
+ <?php print $wp_registered_sidebars[$sidebar]['name']; ?>
+ </h3>
+ <p>
+ <?php printf(__('Select which of the <a%s>widgets enabled for this sidebar</a> will show on the mobile theme:', 'wpmp'), " target='_blank' href='/wp-admin/widgets.php?sidebar=" . urlencode($sidebar) . "'"); ?>
+ </p>
+ <table class="form-table">
+ <?php
+ $mobile_widgets = array();
+ $non_mobile_widgets = array();
+ foreach($widgets as $widget) {
+ if(strpos(strtolower($wp_registered_widgets[$widget]['name']), 'mobile')!==false &&
+ strpos(strtolower($wp_registered_widgets[$widget]['name']), 'barcode')===false) {
+ $mobile_widgets[] = $widget;
+ } else {
+ $non_mobile_widgets[] = $widget;
+ }
+ }
+ $widgets = array_merge($mobile_widgets, $non_mobile_widgets);
+ ?>
+ <?php foreach($widgets as $widget) { ?>
+ <?php if ($name = $wp_registered_widgets[$widget]['name']) { ?>
+ <tr>
+ <th><?php print $name; ?></th>
+ <td>
+ <input type='checkbox'
+ class='wpmp_theme_widget'
+ name='wpmp_theme_widget[]'
+ value='<?php print attribute_escape($widget); ?>'
+ onchange='wpmpThemeWidget(this)'
+ <?php if (is_array($enabled) && array_search($widget, $enabled)!==false) { print "checked='true'"; } ?>
+ />
+ </td>
+ </tr>
+ <?php } ?>
+ <?php } ?>
+ </table>
+ <?php } ?>
+ <?php } ?>
+ <p class="submit">
+ <input type="submit" name="Submit" value="<?php _e('Save Changes', 'wpmp'); ?>" />
+ </p>
+ </form>
+</div>
+
+<script>
+ var wpmp_pale = 0.3;
+ var wpmp_speed = 'slow';
+ function wpmpThemeWidgets(speed) {
+ widgets = jQuery(".wpmp_theme_widget").get();
+ for(widget in widgets) {
+ wpmpThemeWidget(widgets[widget], speed);
+ }
+ }
+ function wpmpThemeWidget(widget, speed) {
+ if (speed==null) {speed=wpmp_speed;}
+ if(widget.checked) {
+ jQuery(widget).parent().siblings().fadeTo(speed, 1);
+ } else {
+ jQuery(widget).parent().siblings().fadeTo(speed, wpmp_pale);
+ }
+ }
+ wpmpThemeWidgets(-1);
+</script>
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_blue/screenshot.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_blue/screenshot.png
new file mode 100755
index 00000000..6f945078
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_blue/screenshot.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_blue/style.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_blue/style.css
new file mode 100755
index 00000000..3b311d6a
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_blue/style.css
@@ -0,0 +1,33 @@
+/*
+$Id: style.css 567923 2012-07-05 18:10:01Z jamesgpearce $
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_blue/style.css $
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+This file is part of the WordPress Mobile Pack, licensed under the Apache License, Version 2.0. Consult server-side files for license.
+*/
+
+/*
+Theme Name: WordPress Mobile (blue)
+Theme URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: A tinted version of base theme of the WordPress Mobile Pack. It is designed to be used by mobile browsers.
+Version: 1.2.5
+Author: ribot, Forum Nokia & James Pearce
+Author URI: http://ribot.co.uk
+Template: mobile_pack_base
+
+@import "../mobile_pack_base/style.css";
+^ Deprecated and replaced by an additional <link> in the markup.
+
+*/
+
+/* VERY DARK */
+.button, #submit, #header, #footer {
+ background-color:#003366
+}
+input, textarea {
+ border-color:#003366;
+}
+
+/* DARK */
+a, a:visited {
+ color:#4488DD;
+}
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_blue/style.css.nokia.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_blue/style.css.nokia.css
new file mode 100644
index 00000000..c2552e6e
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_blue/style.css.nokia.css
@@ -0,0 +1,54 @@
+/*
+$Id: style.css 156906 2009-09-22 07:35:03Z jamesgpearce $
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/style.css $
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+This file is part of the WordPress Mobile Pack, licensed under the Apache License, Version 2.0. Consult server-side files for license.
+*/
+
+/* VERY DARK */
+body.nokia_low h1, body.nokia_low h2, body.nokia_low div.header-box h3,
+body.nokia_mid h1, body.nokia_mid h2, body.nokia_mid div.header-box h3,
+body.nokia_high div#header, body.nokia_high div#footer {
+ background-color: #003366!important;
+}
+body div.header-box h3 {
+ border-color: #003366;
+}
+a:link, body td.table-header,
+body h3, body h4, body h5, body form, body table, a:visited, a:hover, a:active {
+ color: #003366;
+}
+body.nokia_low div#header, body.nokia_low div#header a,
+body.nokia_mid div#header, body.nokia_mid div#header a,
+body.nokia_low div#footer, body.nokia_low div#footer a,
+body.nokia_mid div#footer, body.nokia_mid div#footer a,
+body input[type='button'] {
+ color: #003366;
+}
+
+/* DARK */
+ul.list li:hover, dl.list-accordion dt:hover {
+ background-color:#5C7C9D;
+}
+
+body div#header {
+ border-bottom-color: #5C7C9D;
+}
+body.nokia_low h1, body.nokia_low h2,
+body.nokia_mid h1, body.nokia_mid h2 {
+ border-top-color: #5C7C9D;
+}
+
+/* LIGHT MID */
+
+body.nokia_high h1,
+body div#header,
+body.nokia_low div#footer, body.nokia_mid div#footer,
+ul.list li, dl.list-accordion dt {
+ background-color: #819AB3;
+}
+body div#footer,
+body h6, blockquote, blockquote p, body table, body td, body div.header-box p, body div.box p.box-text,
+body input[type='text'], body input[type='search'], body textarea {
+ border-color: #819AB3;
+} \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_green/screenshot.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_green/screenshot.png
new file mode 100755
index 00000000..dfa96bde
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_green/screenshot.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_green/style.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_green/style.css
new file mode 100755
index 00000000..60b6593d
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_green/style.css
@@ -0,0 +1,33 @@
+/*
+$Id: style.css 567923 2012-07-05 18:10:01Z jamesgpearce $
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_green/style.css $
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+This file is part of the WordPress Mobile Pack, licensed under the Apache License, Version 2.0. Consult server-side files for license.
+*/
+
+/*
+Theme Name: WordPress Mobile (green)
+Theme URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: A tinted version of base theme of the WordPress Mobile Pack. It is designed to be used by mobile browsers.
+Version: 1.2.5
+Author: ribot, Forum Nokia & James Pearce
+Author URI: http://ribot.co.uk
+Template: mobile_pack_base
+
+@import "../mobile_pack_base/style.css";
+^ Deprecated and replaced by an additional <link> in the markup.
+
+*/
+
+/* VERY DARK */
+.button, #submit, #header, #footer {
+ background-color:#6E811F;
+}
+input, textarea {
+ border-color:#6E811F;
+}
+
+/* DARK */
+a, a:visited {
+ color:#9EBF28;
+}
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_green/style.css.nokia.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_green/style.css.nokia.css
new file mode 100644
index 00000000..94a697e5
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_green/style.css.nokia.css
@@ -0,0 +1,54 @@
+/*
+$Id: style.css 156906 2009-09-22 07:35:03Z jamesgpearce $
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/style.css $
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+This file is part of the WordPress Mobile Pack, licensed under the Apache License, Version 2.0. Consult server-side files for license.
+*/
+
+/* VERY DARK */
+body.nokia_low h1, body.nokia_low h2, body.nokia_low div.header-box h3,
+body.nokia_mid h1, body.nokia_mid h2, body.nokia_mid div.header-box h3,
+body.nokia_high div#header, body.nokia_high div#footer {
+ background-color: #6E811F!important;
+}
+body div.header-box h3 {
+ border-color: #6E811F;
+}
+a:link, body td.table-header,
+body h3, body h4, body h5, body form, body table, a:visited, a:hover, a:active {
+ color: #6E811F;
+}
+body.nokia_low div#header, body.nokia_low div#header a,
+body.nokia_mid div#header, body.nokia_mid div#header a,
+body.nokia_low div#footer, body.nokia_low div#footer a,
+body.nokia_mid div#footer, body.nokia_mid div#footer a,
+body input[type='button'] {
+ color: #6E811F;
+}
+
+/* DARK */
+ul.list li:hover, dl.list-accordion dt:hover {
+ background-color:#8D9C50;
+}
+
+body div#header {
+ border-bottom-color: #8D9C50;
+}
+body.nokia_low h1, body.nokia_low h2,
+body.nokia_mid h1, body.nokia_mid h2 {
+ border-top-color: #8D9C50;
+}
+
+/* LIGHT MID */
+
+body.nokia_high h1,
+body div#header,
+body.nokia_low div#footer, body.nokia_mid div#footer,
+ul.list li, dl.list-accordion dt {
+ background-color: #A2AE6F;
+}
+body div#footer,
+body h6, blockquote, blockquote p, body table, body td, body div.header-box p, body div.box p.box-text,
+body input[type='text'], body input[type='search'], body textarea {
+ border-color: #A2AE6F;
+} \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_red/screenshot.png b/plugins/wordpress-mobile-pack/themes/mobile_pack_red/screenshot.png
new file mode 100755
index 00000000..06d49783
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_red/screenshot.png
Binary files differ
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_red/style.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_red/style.css
new file mode 100755
index 00000000..c2c54ade
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_red/style.css
@@ -0,0 +1,33 @@
+/*
+$Id: style.css 567923 2012-07-05 18:10:01Z jamesgpearce $
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_red/style.css $
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+This file is part of the WordPress Mobile Pack, licensed under the Apache License, Version 2.0. Consult server-side files for license.
+*/
+
+/*
+Theme Name: WordPress Mobile (red)
+Theme URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: A tinted version of base theme of the WordPress Mobile Pack. It is designed to be used by mobile browsers.
+Version: 1.2.5
+Author: ribot, Forum Nokia & James Pearce
+Author URI: http://ribot.co.uk
+Template: mobile_pack_base
+
+@import "../mobile_pack_base/style.css";
+^ Deprecated and replaced by an additional <link> in the markup.
+
+*/
+
+/* VERY DARK */
+.button, #submit, #header, #footer {
+ background-color:#CC0033;
+}
+input, textarea {
+ border-color:#CC0033;
+}
+
+/* DARK */
+a, a:visited {
+ color:#FF0066;
+}
diff --git a/plugins/wordpress-mobile-pack/themes/mobile_pack_red/style.css.nokia.css b/plugins/wordpress-mobile-pack/themes/mobile_pack_red/style.css.nokia.css
new file mode 100644
index 00000000..5640f009
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/themes/mobile_pack_red/style.css.nokia.css
@@ -0,0 +1,54 @@
+/*
+$Id: style.css 156906 2009-09-22 07:35:03Z jamesgpearce $
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/themes/mobile_pack_base/style.css $
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+This file is part of the WordPress Mobile Pack, licensed under the Apache License, Version 2.0. Consult server-side files for license.
+*/
+
+/* VERY DARK */
+body.nokia_low h1, body.nokia_low h2, body.nokia_low div.header-box h3,
+body.nokia_mid h1, body.nokia_mid h2, body.nokia_mid div.header-box h3,
+body.nokia_high div#header, body.nokia_high div#footer {
+ background-color: #CC0033!important;
+}
+body div.header-box h3 {
+ border-color: #CC0033;
+}
+a:link, body td.table-header,
+body h3, body h4, body h5, body form, body table, a:visited, a:hover, a:active {
+ color: #CC0033;
+}
+body.nokia_low div#header, body.nokia_low div#header a,
+body.nokia_mid div#header, body.nokia_mid div#header a,
+body.nokia_low div#footer, body.nokia_low div#footer a,
+body.nokia_mid div#footer, body.nokia_mid div#footer a,
+body input[type='button'] {
+ color: #CC0033;
+}
+
+/* DARK */
+ul.list li:hover, dl.list-accordion dt:hover {
+ background-color:#DE5C7C;
+}
+
+body div#header {
+ border-bottom-color: #DE5C7C;
+}
+body.nokia_low h1, body.nokia_low h2,
+body.nokia_mid h1, body.nokia_mid h2 {
+ border-top-color: #DE5C7C;
+}
+
+/* LIGHT MID */
+
+body.nokia_high h1,
+body div#header,
+body.nokia_low div#footer, body.nokia_mid div#footer,
+ul.list li, dl.list-accordion dt {
+ background-color: #E5819A;
+}
+body div#footer,
+body h6, blockquote, blockquote p, body table, body td, body div.header-box p, body div.box p.box-text,
+body input[type='text'], body input[type='search'], body textarea {
+ border-color: #E5819A;
+} \ No newline at end of file
diff --git a/plugins/wordpress-mobile-pack/wordpress-mobile-pack.php b/plugins/wordpress-mobile-pack/wordpress-mobile-pack.php
new file mode 100755
index 00000000..d5d99efd
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/wordpress-mobile-pack.php
@@ -0,0 +1,275 @@
+<?php
+
+/*
+$Id: wordpress-mobile-pack.php 567923 2012-07-05 18:10:01Z jamesgpearce $
+
+$URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/wordpress-mobile-pack.php $
+
+Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain Limited, ribot, Forum Nokia
+
+Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+This file is part of the WordPress Mobile Pack.
+
+The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with the
+License.
+
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+*/
+
+/*
+Plugin Name: WordPress Mobile Pack
+Plugin URI: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+Description: <strong>The WordPress Mobile Pack is a complete toolkit to help mobilize your WordPress site and blog.</strong> It includes a <a href='themes.php?page=wpmp_switcher_admin'>mobile switcher</a>, <a href='themes.php?page=wpmp_theme_widget_admin'>filtered widgets</a>, and content adaptation for mobile device characteristics. Activating this plugin will also install a selection of mobile <a href='themes.php?page=wpmp_theme_theme_admin'>themes</a> by <a href='http://ribot.co.uk'>ribot</a>, a top UK mobile design team, and Forum Nokia. These adapt to different families of devices, such as Nokia and WebKit browsers (including Android, iPhone and Palm). If <a href='options-general.php?page=wpmp_mpexo_admin'>enabled</a>, your site will be listed on <a href='http://www.mpexo.com'>mpexo</a>, a directory of mobile-friendly blogs. Also check out <a href='http://wordpress.org/extend/plugins/wordpress-mobile-pack/' target='_blank'>the documentation</a> and <a href='http://www.wordpress.org/tags/wordpress-mobile-pack' target='_blank'>the forums</a>. If you like the plugin, please rate us on the <a href='http://wordpress.org/extend/plugins/wordpress-mobile-pack/'>WordPress directory</a>. And if you don't, let us know how we can improve it!
+Version: 1.2.5
+Author: James Pearce & friends
+Author URI: http://www.assembla.com/spaces/wordpress-mobile-pack
+*/
+
+define('WPMP_VERSION', '1.2.5');
+
+// you could disable sub-plugins here
+global $wpmp_plugins;
+$wpmp_plugins = array(
+ "wpmp_switcher",
+ "wpmp_barcode",
+ "wpmp_ads",
+ "wpmp_deviceatlas",
+ "wpmp_transcoder",
+ "wpmp_analytics",
+ "wpmp_mpexo",
+);
+
+// Pre-2.6 compatibility
+if (!defined('WP_CONTENT_URL')) {
+ define('WP_CONTENT_URL', get_option('siteurl' . '/wp-content'));
+}
+if (!defined('WP_CONTENT_DIR')) {
+ define('WP_CONTENT_DIR', ABSPATH . 'wp-content');
+}
+if (!defined('WP_PLUGIN_URL')) {
+ define('WP_PLUGIN_URL', WP_CONTENT_URL. '/plugins');
+}
+if (!defined('WP_PLUGIN_DIR')) {
+ define('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins');
+}
+
+if(!$warning=get_option('wpmp_warning')) {
+ foreach($wpmp_plugins as $wpmp_plugin) {
+ if (file_exists($wpmp_plugin_file = dirname(__FILE__) . "/plugins/$wpmp_plugin/$wpmp_plugin.php")) {
+ include_once($wpmp_plugin_file);
+ }
+ }
+}
+
+register_activation_hook('wordpress-mobile-pack/wordpress-mobile-pack.php', 'wordpress_mobile_pack_activate');
+register_deactivation_hook('wordpress-mobile-pack/wordpress-mobile-pack.php', 'wordpress_mobile_pack_deactivate');
+
+add_action('init', 'wordpress_mobile_pack_init');
+add_action('admin_notices', 'wordpress_mobile_pack_admin_notices');
+add_action('admin_menu', 'wordpress_mobile_pack_admin_menu');
+add_action('send_headers', 'wordpress_mobile_pack_send_headers');
+add_filter('get_the_generator_xhtml', 'wordpress_mobile_pack_generator');
+add_filter('get_the_generator_html', 'wordpress_mobile_pack_generator');
+
+add_filter('plugin_action_links', 'wordpress_mobile_pack_plugin_action_links', 10, 3);
+
+
+function wordpress_mobile_pack_init() {
+ $plugin_dir = basename(dirname(__FILE__));
+ load_plugin_textdomain('wpmp', 'wp-content/plugins/wordpress-mobile-pack', 'wordpress-mobile-pack');
+}
+
+
+function wordpress_mobile_pack_send_headers($wp) {
+ @header("X-Mobilized-By: WordPress Mobile Pack " . WPMP_VERSION);
+}
+function wordpress_mobile_pack_generator($generator) {
+ return '<meta name="generator" content="WordPress ' . get_bloginfo( 'version' ) . ', fitted with the WordPress Mobile Pack ' . WPMP_VERSION . '" />';
+}
+
+
+function wordpress_mobile_pack_plugin_action_links($action_links, $plugin_file, $plugin_info) {
+ $this_file = basename(__FILE__);
+ if(substr($plugin_file, -strlen($this_file))==$this_file) {
+ $new_action_links = array(
+ "<a href='themes.php?page=wpmp_switcher_admin'>Switcher</a>",
+ "<a href='themes.php?page=wpmp_theme_theme_admin'>Themes</a> ",
+ "<br /><a href='themes.php?page=wpmp_theme_widget_admin'>Widgets</a>",
+ "<a href='edit.php?page=wpmp_analytics_admin'>Analytics</a> ",
+ "<br /><a href='options-general.php?page=wpmp_mpexo_admin'>mpexo</a>",
+ );
+ foreach($action_links as $action_link) {
+ if (stripos($action_link, '>Edit<')===false) {
+ if (stripos($action_link, '>Deactivate<')!==false) {
+ #$new_action_links[] = '<br />' . $action_link;
+ $new_action_links[] = $action_link;
+ } else {
+ $new_action_links[] = $action_link;
+ }
+ }
+ }
+ return $new_action_links;
+ }
+ return $action_links;
+}
+
+function wordpress_mobile_pack_admin_notices() {
+ if($warning=get_option('wpmp_warning')) {
+ print "<div class='error'><p><strong style='color:#770000'>";
+ print __("Critical WordPress Mobile Pack Issue", 'wpmp');
+ print "</strong></p><p>$warning</p><p><small>(";
+ print __('Deactivate and re-activate the WordPress Mobile Pack once resolved.', 'wpmp');
+ print ")</small></p></div>";
+ }
+ if($flash=get_option('wpmp_flash')) {
+ print "<div class='error'><p><strong style='color:#770000'>";
+ print __('Important WordPress Mobile Pack Notice', 'wpmp');
+ print "</strong></p><p>$flash</p></div>";
+ update_option('wpmp_flash', '');
+ }
+}
+
+function wordpress_mobile_pack_admin_menu() {
+ if (isset($_POST['wordpress_mobile_pack_force_copy_theme'])){ //user has forced theme upgrade
+ update_option('wpmp_warning', '');
+ update_option('wpmp_flash', '');
+ wordpress_mobile_pack_directory_copy_themes(dirname(__FILE__) . "/themes", get_theme_root(), false);
+ wp_redirect('plugins.php');
+ #$redirect = explode("?", $_SERVER['REQUEST_URI']);
+ #wp_redirect($redirect[0]);
+ }
+}
+
+function wordpress_mobile_pack_activate() {
+ update_option('wpmp_warning', '');
+ update_option('wpmp_flash', '');
+ if (wordpress_mobile_pack_readiness_audit()) {
+ wordpress_mobile_pack_directory_copy_themes(dirname(__FILE__) . "/themes", get_theme_root());
+ wordpress_mobile_pack_hook('activate');
+ }
+}
+
+function wordpress_mobile_pack_readiness_audit() {
+ $ready = true;
+ $why_not = array();
+
+ if (version_compare(PHP_VERSION, '6.0.0', '>=')) {
+ $ready = false;
+ $why_not[] = '<strong>' . __('PHP version not supported.', 'wpmp') . '</strong> ' . sprintf(__('PHP versions 6 and greater are not yet supported by this plugin, and you have version %s', 'wpmp'), PHP_VERSION);
+ }
+
+ $cache_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . 'wpmp_transcoder' . DIRECTORY_SEPARATOR . 'c';
+ $cache_does = '';
+ if (!file_exists($cache_dir)) {
+ $cache_does = __("That directory does not exist.", 'wpmp');
+ } elseif (!is_writable($cache_dir)) {
+ $cache_does = __("That directory is not writable.", 'wpmp');
+ } elseif (!is_executable($cache_dir) && DIRECTORY_SEPARATOR=='/') {
+ $cache_does = __("That directory is not executable.", 'wpmp');
+ }
+ if($cache_does!='') {
+ $ready = false;
+ $why_not[] = sprintf(__('<strong>Not able to cache images</strong> to %s.', 'wpmp'), $cache_dir) . ' ' . $cache_does . ' ' . __('Please ensure that the web server has write- and execute-access to it.', 'wpmp');
+ }
+
+ $theme_dir = str_replace('/', DIRECTORY_SEPARATOR, get_theme_root());
+ $theme_does = '';
+ if (!file_exists($theme_dir)) {
+ $theme_does = __("That directory does not exist.", 'wpmp');
+ } elseif (!is_writable($theme_dir)) {
+ $theme_does = __("That directory is not writable.", 'wpmp');
+ } elseif (!is_executable($theme_dir) && DIRECTORY_SEPARATOR=='/') {
+ $theme_does = __("That directory is not executable.", 'wpmp');
+ }
+ if($theme_does!='') {
+ $ready = false;
+ $why_not[] = sprintf(__('<strong>Not able to install theme files</strong> to %s.', 'wpmp'), $theme_dir) . ' ' . $theme_does . ' ' . __('Please ensure that the web server has write- and execute-access to it.', 'wpmp');
+ }
+
+ if (!$ready) {
+ update_option('wpmp_warning', join("<hr />", $why_not));
+ }
+ return $ready;
+}
+
+
+function wordpress_mobile_pack_directory_copy_themes($source_dir, $destination_dir, $benign=true) {
+ if(file_exists($destination_dir)) {
+ $dir_does = '';
+ if (!is_writable($destination_dir)) {
+ $dir_does = "That directory is not writable.";
+ } elseif (!is_executable($destination_dir) && DIRECTORY_SEPARATOR=='/') {
+ $dir_does = "That directory is not executable.";
+ }
+ if($dir_does!='') {
+ update_option('wpmp_warning', sprintf(__('<strong>Could not install theme files</strong> to ', 'wpmp'), $destination_dir) . ' ' . $dir_does . ' ' . __('Please ensure that the web server has write- and execute-access to it.', 'wpmp'));
+ return;
+ }
+ } elseif (!is_dir($destination_dir)) {
+ if ($destination_dir[0] != ".") {
+ mkdir($destination_dir);
+ }
+ }
+
+ $dir_handle = opendir($source_dir);
+ while($source_file = readdir($dir_handle)) {
+ if ($source_file[0] == ".") {
+ continue;
+ }
+ if (file_exists($destination_child = "$destination_dir/$source_file") && $benign) {
+ update_option('wpmp_flash',
+ __("<strong>Existing Mobile Pack theme files were found</strong>, but they were not overwritten by the plugin activation.", 'wpmp') .
+ "</p><p>" .
+ sprintf(__("You are advised to upgrade your Mobile Pack theme files to version %s", 'wpmp'), WPMP_VERSION) .
+ "</p><p>" .
+ __("(<strong>NB</strong>: take precautions if you have manually edited any existing Mobile Pack theme files - your changes will now need to be re-applied.)", 'wpmp') .
+ "</p><br /><form method='post' action='" . $_SERVER['REQUEST_URI'] . "'>".
+ "<input type='submit' name='wordpress_mobile_pack_force_copy_theme' value='" .
+ __('Yes, please - upgrade all my themes for me (recommended)', 'wpmp') .
+ "' />&nbsp;&nbsp;".
+ "<input type='submit' value='" .
+ __('No, thanks - leave my themes as they are', 'wpmp') .
+ "' />".
+ "</form><p>");
+ continue;
+ }
+ if (is_dir($source_child = "$source_dir/$source_file")) {
+ wordpress_mobile_pack_directory_copy_themes($source_child, $destination_child, $benign);
+ continue;
+ }
+
+ if (file_exists($destination_child) && !is_writable($destination_child)) {
+ update_option('wpmp_warning', sprintf(__('<strong>Could not install file</strong> to %s.', 'wpmp'), $destination_child) . ' ' . __('Please ensure that the web server has write- access to that file.', 'wpmp'));
+ continue;
+ }
+ copy($source_child, $destination_child);
+ }
+ closedir($dir_handle);
+}
+
+function wordpress_mobile_pack_deactivate() {
+ wordpress_mobile_pack_hook('deactivate');
+}
+
+function wordpress_mobile_pack_hook($action) {
+ global $wpmp_plugins;
+ foreach($wpmp_plugins as $wpmp_plugin) {
+ if (function_exists($function = $wpmp_plugin . "_" . $action)) {
+ call_user_func($function);
+ }
+ }
+}
+
+
+
+
+?>
diff --git a/plugins/wordpress-mobile-pack/wordpress-mobile-pack.pot b/plugins/wordpress-mobile-pack/wordpress-mobile-pack.pot
new file mode 100644
index 00000000..68f71704
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/wordpress-mobile-pack.pot
@@ -0,0 +1,1453 @@
+# For translation of the WordPress Mobile Pack v1.2.0
+
+# $Id: wordpress-mobile-pack.php 188277 2009-12-30 21:30:27Z jamesgpearce $
+# $URL: http://plugins.svn.wordpress.org/wordpress-mobile-pack/trunk/wordpress-mobile-pack.php $
+
+# Copyright (c) 2009 James Pearce & friends, portions mTLD Top Level Domain
+# Limited, ribot, Forum Nokia
+# Online support: http://wordpress.org/extend/plugins/wordpress-mobile-pack/
+
+# This file is part of the WordPress Mobile Pack.
+# The WordPress Mobile Pack is Licensed under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with the
+# License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: WordPress Mobile Pack \n"
+"Report-Msgid-Bugs-To: http://wordpress.org/tag/wordpress-mobile-pack\n"
+"POT-Creation-Date: 2009-12-31 07:17+0000\n"
+"PO-Revision-Date: 2009-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: plugins/wpmp_ads/wpmp_ads.php:41 plugins/wpmp_ads/wpmp_ads.php:44
+msgid "Mobile Ads"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads.php:42
+msgid "Displays AdMob or Google mobile ads"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads.php:49 plugins/wpmp_ads/wpmp_ads.php:73
+msgid "Mobile ads"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads.php:128 plugins/wpmp_mpexo/wpmp_mpexo.php:583
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:593 plugins/wpmp_mpexo/wpmp_mpexo.php:604
+msgid "None"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads.php:129
+msgid "AdMob"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads.php:130
+msgid "Google (single ad)"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads.php:131
+msgid "Google (double ads)"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads_widget_admin.php:31
+#: plugins/wpmp_barcode/wpmp_barcode_widget_admin.php:31
+msgid "Title:"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads_widget_admin.php:35
+msgid "Provider:"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads_widget_admin.php:39
+msgid "Publisher ID:"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads_widget_admin.php:42
+msgid ""
+"Examples: a14948dbe57548e (for AdMob) or pub-2709587966093607 (for Google)"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads_widget_admin.php:45
+#, php-format
+msgid ""
+"This widget should only be used on mobile themes. If you are using a theme "
+"from, or derived from, the WordPress Mobile Pack, you will need to enable "
+"this widget <a%s>here</a>."
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads_widget_admin.php:49
+msgid ""
+"Attempt to automatically disable for desktop themes (when switcher is "
+"running)"
+msgstr ""
+
+#: plugins/wpmp_ads/wpmp_ads_widget_admin.php:52
+msgid ""
+"Note also that this widget will be completely hidden if no ads are returned "
+"from the provider you have selected."
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode.php:41
+#: plugins/wpmp_barcode/wpmp_barcode.php:44
+msgid "Mobile Barcode"
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode.php:42
+msgid "A 2D-barcode used for navigating to a mobile URL"
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode.php:48
+#: plugins/wpmp_barcode/wpmp_barcode.php:70
+msgid "Our mobile site"
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode.php:89
+#, php-format
+msgid ""
+"This is a 2D-barcode containing the address of our <a%s>mobile site</a>."
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode.php:90
+msgid ""
+"If your mobile has a barcode reader, simply snap this bar code with the "
+"camera and launch the site."
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode.php:95
+msgid ""
+"Many companies provide barcode readers that you can install on your mobile, "
+"and all of the following are compatible with this format:"
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode_widget_admin.php:35
+msgid "Link:"
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode_widget_admin.php:37
+msgid ""
+"If you leave this blank, the URL in the barcode will be dynamic, and will be "
+"the mobile equivalent of the actual page the user is on."
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode_widget_admin.php:40
+msgid "Size:"
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode_widget_admin.php:46
+msgid "Show explanation"
+msgstr ""
+
+#: plugins/wpmp_barcode/wpmp_barcode_widget_admin.php:50
+msgid "Show list of readers"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:152
+msgid "A widget to show mpexo links for this blog"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:523
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:33
+msgid "mpexo"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:531
+msgid "This site is proudly listed as a mobile blog on mpexo."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:571
+#: plugins/wpmp_switcher/wpmp_switcher.php:530
+#: themes/mobile_pack_base/functions_persist.php:87
+msgid "Settings saved."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:573
+msgid ""
+"<strong>Communications error:</strong> these settings have been saved "
+"locally and will be transmitted to mpexo when resubmitted."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:584
+msgid "Tagline"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:585
+msgid "Custom"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:594
+msgid "Tags only"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:595
+msgid "Categories only"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:596
+msgid "Tags and Categories"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:605
+msgid "Posts only"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:606
+msgid "Pages only"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo.php:607
+msgid "Posts and Pages"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:35
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:34
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:32
+#: themes/mobile_pack_base/wpmp_theme_widget_admin.php:32
+msgid "Part of the WordPress Mobile Pack"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:38
+#, php-format
+msgid ""
+"<a%s>mpexo</a> is an online directory of mobile sites built using the "
+"WordPress Mobile Pack."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:39
+msgid ""
+"Using the settings below, you can easily, and automatically, get your own "
+"site listed on mpexo. It's a safe and easy way to drive traffic to the "
+"mobile version of your site."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:40
+msgid "This feature is currently in beta."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:40
+msgid ""
+"It is therefore disabled by default, but will be <em>enabled</em> by default "
+"in the forthcoming v2.0 of the WordPress Mobile Pack. Please provide "
+"feedback in the meantime."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:44
+msgid "List my site on mpexo"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:48
+msgid ""
+"Publish summary information about your site to the mpexo server. This makes "
+"it easier for mobile users to find it."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:53
+msgid "Site description"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:57
+#, php-format
+msgid ""
+"mpexo can display a description of your blog. This can be the tagline in "
+"your <a%s>general settings</a>, or some custom text."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:63
+msgid "Custom description"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:67
+msgid "Use this custom description instead of the blog's tagline."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:71
+msgid "Publish classification"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:75
+msgid ""
+"mpexo can display your site's tags and categories, helping readers discover "
+"the topics you cover."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:79
+msgid "Publish content titles"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:83
+msgid ""
+"mpexo can display the titles of your posts and pages so readers can see "
+"teasers of your recent content."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:87
+msgid "Gather mobile popularity"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:91
+msgid ""
+"This will gather an aggregated summary of your site's popularity amongst "
+"mobile users. This data is never published on a per-site basis: it is merely "
+"used to order blogs by popularity."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:95
+msgid "Gather diagnostics"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:99
+msgid ""
+"This gathers non-sensitive details regarding your Mobile Pack configuration. "
+"This is never published: it is merely used to diagnose issues you may have "
+"with your site."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:103
+msgid "Register email address"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:107
+msgid ""
+"This registers your email address so we can contact you regarding updates to "
+"mpexo and the Mobile Pack. This is never published or shared: unchecking "
+"this box will unsubscribe you from any mailings."
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_admin.php:112
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:110
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:139
+#: themes/mobile_pack_base/wpmp_theme_widget_admin.php:83
+msgid "Save Changes"
+msgstr ""
+
+#: plugins/wpmp_mpexo/wpmp_mpexo_widget_admin.php:31
+msgid "There are currently no settings for this widget"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/desktop_interstitial.php:30
+#: plugins/wpmp_switcher/pages/desktop_interstitial.php:35
+#: plugins/wpmp_switcher/pages/mobile_interstitial.php:29
+msgid "Select site"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/desktop_interstitial.php:36
+msgid ""
+"You've requested the mobile site, but you appear to have a desktop browser."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/desktop_interstitial.php:37
+msgid "Revert to the desktop site"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/desktop_interstitial.php:38
+msgid "Continue to our mobile site"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile.php:116
+#: themes/mobile_pack_base/footer.php:36
+#: themes/mobile_pack_base/groups/nokia_high/footer.php:30
+#: themes/mobile_pack_base/groups/nokia_low/footer.php:30
+#: themes/mobile_pack_base/groups/nokia_mid/footer.php:30
+#, php-format
+msgid "Powered by the <a%s>WordPress Mobile Pack</a>"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile.php:116
+#: themes/mobile_pack_base/footer.php:36
+#, php-format
+msgid "Theme designed by <a%s>ribot</a>"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:39
+msgid "Overview"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:40
+msgid "New post"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:41
+msgid "Edit post"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:42
+msgid "Comments"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:43
+#: themes/mobile_pack_base/comments.php:105
+msgid "Comment"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:44
+msgid "Switcher"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:45
+msgid "Settings"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:48
+#: plugins/wpmp_switcher/pages/mobile_admin.php:50
+msgid "Log out"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:82
+#, php-format
+msgid "You have one post"
+msgid_plural "You have %d posts"
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:84
+#, php-format
+msgid "and one page"
+msgid_plural "and %d pages"
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:85
+msgid "contained within"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:86
+#, php-format
+msgid "one category"
+msgid_plural "%d categories"
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:87
+msgid "and"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:88
+#, php-format
+msgid "one tag"
+msgid_plural "%d tags"
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:93
+#, php-format
+msgid "You have one comment to moderate"
+msgid_plural "You have %d comments to moderate"
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:94
+msgid "Select an admin page:"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:107
+#, php-format
+msgid "...or <a%s>return to the site</a>"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:108
+msgid ""
+"A subset of the full WordPress administration is available through this "
+"mobile interface."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:113
+msgid "Sorry! Permission denied..."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:114
+msgid "Only 'administrator' users can use the mobile admin panel."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:115
+msgid "Login as a different user"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:115
+msgid "or"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:115
+msgid "return to the site"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:125
+#: plugins/wpmp_switcher/pages/mobile_admin.php:240
+#: plugins/wpmp_switcher/pages/mobile_admin.php:290
+msgid "Your changes have been applied."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:131
+msgid "That post does not exist, but you may write a new one."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:152
+msgid "Title"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:155
+msgid "Status"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:157
+#: plugins/wpmp_switcher/pages/mobile_admin.php:419
+msgid "Published"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:158
+#: plugins/wpmp_switcher/pages/mobile_admin.php:425
+msgid "Unpublished"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:159
+#: plugins/wpmp_switcher/pages/mobile_admin.php:423
+msgid "Pending Review"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:162
+msgid "Content"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:169
+#: plugins/wpmp_switcher/pages/mobile_admin.php:260
+#: plugins/wpmp_switcher/pages/mobile_admin.php:366
+msgid "Apply"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:170
+msgid ""
+"You can use HTML tags to format your post. Use &lt;!--more--&gt; to indicate "
+"the end of the teaser."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:180
+msgid "Select a post to edit:"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:193
+msgid "There are no posts to edit."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:200
+msgid "This site has no comments awaiting moderation."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:204
+msgid "There are at least 5 comments awaiting moderation:"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:241
+msgid "Continue."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:245
+msgid "Change the mobile switcher mode:"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:248
+#: plugins/wpmp_switcher/wpmp_switcher.php:592
+msgid "Disabled"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:249
+#: plugins/wpmp_switcher/wpmp_switcher.php:593
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:65
+msgid "Browser detection"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:250
+#: plugins/wpmp_switcher/wpmp_switcher.php:594
+msgid "Domain mapping"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:251
+#: plugins/wpmp_switcher/wpmp_switcher.php:595
+msgid "BOTH: browser detection and domain mapping"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:262
+msgid ""
+"NB: Changing the switcher mode may return you to the desktop version of the "
+"admin pages. Be cautious if you are using a mobile device."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:276
+msgid "Approve"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:277
+msgid "Delete"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:278
+msgid "Spam"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:279
+#, php-format
+msgid "<strong>%1$s</strong> on %2$s|comment_title ON post_title"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:332
+#: plugins/wpmp_transcoder/wpmp_transcoder.php:88
+msgid "Previous page"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:335
+#: plugins/wpmp_transcoder/wpmp_transcoder.php:91
+msgid "Next page"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:344
+msgid "NB: Some complex options cannot be edited in this mobile interface."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:351
+#: plugins/wpmp_switcher/pages/mobile_admin.php:357
+msgid "That option is not editable."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:368
+msgid ""
+"For options that are usually a checkbox, use 1 for 'on', and 0 for 'off'"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:421
+msgid "Scheduled"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_admin.php:435
+msgid "You may only originate this action from the admin pages"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_interstitial.php:32
+msgid ""
+"You've requested the desktop site, but you appear to have a mobile browser."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_interstitial.php:33
+msgid "Revert to the mobile site"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_interstitial.php:34
+msgid "Continue to our desktop site"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:28
+#: plugins/wpmp_switcher/pages/mobile_login.php:35
+#: plugins/wpmp_switcher/pages/mobile_login.php:131
+msgid "Login"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:123
+#, php-format
+msgid ""
+"<strong>ERROR</strong>: Cookies are blocked or not supported by your "
+"browser. You must <a%s>enable cookies</a> to use WordPress."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:125
+msgid "You are now logged out."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:126
+msgid "User registration is currently not allowed."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:127
+msgid "Check your e-mail for the confirmation link."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:128
+msgid "Check your e-mail for your new password."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:129
+msgid "Registration complete. Please check your e-mail."
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:137
+msgid "Username"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:141
+msgid "Password"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:145
+msgid "Remember Me"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:147
+msgid "Log In"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:156
+msgid "Are you lost?"
+msgstr ""
+
+#: plugins/wpmp_switcher/pages/mobile_login.php:156
+#, php-format
+msgid "Back to %s"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:60
+msgid "Mobile Switcher Link"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:61
+msgid ""
+"A link that allows users to toggle between desktop and mobile sites (when a "
+"switcher mode is enabled)"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:104
+msgid "Switch site"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:107
+#: plugins/wpmp_switcher/wpmp_switcher.php:205
+msgid "Switch to our desktop site"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:110
+#: plugins/wpmp_switcher/wpmp_switcher.php:208
+msgid "Switch to our mobile site"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:186
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:32
+msgid "Mobile Switcher"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:193
+msgid "Hit counter reset."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:280
+#, php-format
+msgid "one desktop hit"
+msgid_plural "%d desktop hits"
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:282
+#, php-format
+msgid "one mobile hit"
+msgid_plural "%d mobile hits"
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:285
+#, php-format
+msgid "%d%% of your traffic is currently from mobile users."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:286
+#, php-format
+msgid "You've had %1$s and %2$s in the last %3$s."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:293
+msgid "trillion"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:296
+msgid "billion"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:299
+msgid "million"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:307
+msgid "seconds"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:309
+msgid "years"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:312
+msgid "months"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:315
+msgid "weeks"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:318
+msgid "days"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:321
+msgid "hours"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:324
+msgid "minutes"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:563
+msgid ""
+"You must provide clean domain names without any leading or trailing syntax. "
+"We fixed them for you."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:575
+msgid ""
+"You must provide both desktop and mobile domains. Switching has been "
+"disabled."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:579
+msgid ""
+"You must provide both desktop and mobile domains. Switching has been changed "
+"to browser detection only."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:604
+msgid "User-agent prefixes"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:606
+msgid "SIMPLE: User-agent prefixes"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher.php:607
+msgid "ADVANCED: DeviceAtlas recognition"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:40
+msgid "Mobile activity"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:44
+msgid "Reset counter"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:48
+msgid "Switcher mode"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:52
+msgid ""
+"The switcher can detect whether the user is using a mobile device or has "
+"requested a mobile domain. It will switch theme accordingly."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:56
+msgid "Mobile theme"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:60
+msgid ""
+"The theme that will be sent to a mobile user. Desktop users will receive "
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:69
+msgid "Desktop domains"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:73
+msgid "Use comma-separated domain names. eg:"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:75
+msgid ""
+"Desktop users who mistakenly access a mobile domain will be given the option "
+"to return to the first domain in this list."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:77
+msgid ""
+"This is also the domain used for switching when 'browser detection' is used, "
+"and in that case should be your site's primary domain."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:81
+msgid "Mobile domains"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:85
+msgid "Use comma-separated domain fragments. eg:"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:88
+msgid ""
+"<br /><strong style='color:#770000'>Warning</strong>: your primary desktop "
+"and mobile domains are the same. The switcher will default to 'browser "
+"detection' mode unless one is changed."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:92
+msgid ""
+"Mobile users who mistakenly access a desktop domain will be given the option "
+"to return to the first domain in this list."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:94
+msgid ""
+"<b>NB</b>: The plugin does not <i>create</i> these domains. You must be sure "
+"their DNS entries already resolve and are served by this web server."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:98
+msgid "Footer links"
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:102
+msgid ""
+"Places a link in the theme footer to allow users to override the detection."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:103
+msgid "You can also enable the widget that contains this link."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:104
+msgid ""
+"Both the footer link and the widget will only appear when a switcher mode is "
+"enabled."
+msgstr ""
+
+#: plugins/wpmp_switcher/wpmp_switcher_admin.php:105
+msgid ""
+"Regardless of this setting, the switcher link will always appear on the "
+"mobile admin pages."
+msgstr ""
+
+#: plugins/wpmp_transcoder/wpmp_transcoder.php:39
+#, php-format
+msgid "<strong>Transcoder will not be able to cache images</strong> to %s."
+msgstr ""
+
+#: plugins/wpmp_transcoder/wpmp_transcoder.php:39
+msgid "Please ensure that the web server has write-access to that directory."
+msgstr ""
+
+#: plugins/wpmp_transcoder/wpmp_transcoder.php:86
+#, php-format
+msgid "Page %1$d of %2$d"
+msgstr ""
+
+#: themes/mobile_pack_base/archives.php:34
+msgid "Archives by Month:"
+msgstr ""
+
+#: themes/mobile_pack_base/archives.php:40
+msgid "Archives by Subject:"
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:33
+msgid "This post is password protected. Enter the password to view comments."
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:42
+#: themes/mobile_pack_base/groups/nokia_high/comments.php:31
+msgid " on this post."
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:46
+#: themes/mobile_pack_base/groups/nokia_high/comments.php:35
+msgid "Leave a comment"
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:63
+msgid "Your comment is awaiting moderation."
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:79
+#, php-format
+msgid "You must be <a%s>logged in</a> to post a comment."
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:85
+msgid "Logged in as"
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:86
+msgid "Logout"
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:89
+msgid "Name"
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:89
+msgid "(required)"
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:94
+msgid "Mail"
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:94
+msgid "required, but "
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:94
+msgid "not published"
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:99
+msgid "Website"
+msgstr ""
+
+#: themes/mobile_pack_base/comments.php:110
+msgid "Submit comment"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:112
+#: themes/mobile_pack_base/functions.php:114
+#: themes/mobile_pack_base/functions.php:119
+#: themes/mobile_pack_base/index.php:163
+msgid "Read more"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:141
+msgid "Search Site"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:150
+msgid "Archives"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:156
+msgid "...more months"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:160
+msgid "No archives"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:174
+msgid "Categories"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:180
+msgid "...more categories"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:187
+msgid "Tags"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:194
+msgid "...more tags"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:214
+msgid "No comments"
+msgstr ""
+
+#: themes/mobile_pack_base/functions.php:234
+msgid "Calendar"
+msgstr ""
+
+#: themes/mobile_pack_base/functions_persist.php:64
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:30
+msgid "Mobile Theme"
+msgstr ""
+
+#: themes/mobile_pack_base/functions_persist.php:65
+#: themes/mobile_pack_base/wpmp_theme_widget_admin.php:30
+msgid "Mobile Widgets"
+msgstr ""
+
+#: themes/mobile_pack_base/functions_persist.php:73
+#, php-format
+msgid "One file cleared from image cache"
+msgid_plural "%d files cleared from image cache"
+msgstr[0] ""
+msgstr[1] ""
+
+#: themes/mobile_pack_base/functions_persist.php:118
+msgid ""
+"Please provide a valid number of posts that you would like the theme to "
+"display."
+msgstr ""
+
+#: themes/mobile_pack_base/functions_persist.php:122
+msgid "Please provide a valid teaser length."
+msgstr ""
+
+#: themes/mobile_pack_base/functions_persist.php:126
+msgid "Please provide a valid widget list length."
+msgstr ""
+
+#: themes/mobile_pack_base/functions_persist.php:137
+msgid "Title only"
+msgstr ""
+
+#: themes/mobile_pack_base/functions_persist.php:138
+msgid "Title and teaser for first post, title for the rest"
+msgstr ""
+
+#: themes/mobile_pack_base/functions_persist.php:139
+msgid "Title and teaser for all posts"
+msgstr ""
+
+#: themes/mobile_pack_base/groups/nokia_high/footer.php:30
+#: themes/mobile_pack_base/groups/nokia_low/footer.php:30
+#: themes/mobile_pack_base/groups/nokia_mid/footer.php:30
+#, php-format
+msgid "Theme designed by <a%s>Forum Nokia</a>"
+msgstr ""
+
+#: themes/mobile_pack_base/groups/nokia_high/index.php:35
+msgid "Link to"
+msgstr ""
+
+#: themes/mobile_pack_base/groups/nokia_high/index.php:41
+#: themes/mobile_pack_base/index.php:122
+msgid "Older"
+msgstr ""
+
+#: themes/mobile_pack_base/groups/nokia_high/index.php:43
+#: themes/mobile_pack_base/index.php:124
+msgid "Newer"
+msgstr ""
+
+#: themes/mobile_pack_base/header.php:50
+msgid "Blog Archive"
+msgstr ""
+
+#: themes/mobile_pack_base/header.php:66
+msgid "Home"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:34 themes/mobile_pack_base/index.php:53
+msgid "Blog archives"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:39
+msgid "Search results"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:41
+#, php-format
+msgid "Archive for the '%s' tag"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:43
+#, php-format
+msgid "Archive for the '%s'"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:45 themes/mobile_pack_base/index.php:47
+#: themes/mobile_pack_base/index.php:49
+#, php-format
+msgid "Archive for %s"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:51
+msgid "Author archive"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:55
+msgid "Recent posts"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:58
+msgid "Page not found"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:70
+msgid "Use the menu to navigate the site, or search for a keyword:"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:75
+msgid "Archives by category"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:82
+msgid "Archives by tag"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:89
+#, php-format
+msgid "Archives by %s"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:96
+msgid ""
+"No archives found. Use the menu to navigate the site, or search for a "
+"keyword:"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:133
+msgid "Previous post:"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:133
+msgid "Next post:"
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:137
+msgid "Comments are closed for this post."
+msgstr ""
+
+#: themes/mobile_pack_base/index.php:168
+msgid "Posted in "
+msgstr ""
+
+#: themes/mobile_pack_base/searchform.php:33
+msgid "Search"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:36
+#, php-format
+msgid ""
+"<strong>Select the mobile theme itself on the <a%s>switcher settings</a> "
+"page.</strong> The page below allows you to further configure its behaviour."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:41
+msgid "Enable Nokia templates"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:45
+msgid ""
+"Check this to provide additional optimisations for users of Nokia handsets. "
+"It also enables a rich theme for WebKit-based mobile browsers, such as the "
+"Apple iPhone and Palm Pre."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:49
+msgid "Check mobile status"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:53
+msgid ""
+"Click this link to check that the front page of your site is ready for "
+"mobile users. NB: this will only work for externally-visible sites."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:57
+msgid "Show home link in menu"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:61
+msgid ""
+"Unselect this if you are using a dedicated page for the blog home. It "
+"prevents 'Home' appearing twice in the menu."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:65
+msgid "Number of posts"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:69
+msgid ""
+"This constrains the length of a list of posts (such as on the home page or "
+"in an archive). Consider the consequences these settings may have on page "
+"size for limited mobile devices."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:73
+msgid "Lists of posts show"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:77
+msgid "Display metadata for posts (author, tags, etc)"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:79
+msgid "These settings apply when your site is displaying a list of posts."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:83
+msgid "Teaser length"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:87
+msgid ""
+"The mobile theme will display teasers of this length (or use each post's "
+"'more' break, if present - whichever is shorter)."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:91
+msgid "Number of widget items"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:95
+msgid ""
+"For 3 standard widgets 'Archives', 'Categories', and 'Tag cloud' (which are "
+"often lengthy), this will shorten their number of items to the given length. "
+"Where necessary, a link will be provided to the full list."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:100
+msgid "Remove media"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:104
+msgid ""
+"This will remove interactivity and media elements (such as script, Flash, "
+"movies, and embedded frames) from your posts and pages."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:108
+msgid "Partition large pages"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:112
+msgid ""
+"This will break large blog posts or pages into smaller pieces more suitable "
+"for mobile devices."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:116
+msgid "Shrink images"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:120
+msgid ""
+"This will shrink large images within posts or pages to fit on smaller "
+"screens."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:122
+msgid "Clear cache now"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:124
+msgid ""
+"Size-adjusted images are cached locally for performance. If an existing "
+"original image has changed, you may need to clear this cache to have it "
+"update for mobile users."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:128
+msgid "Simplify styling"
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_theme_admin.php:132
+msgid ""
+"This will remove styling elements from your posts and pages to ensure mobile "
+"compatibility."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_widget_admin.php:40
+#, php-format
+msgid ""
+"Use this page to select which of your <a%s>currently visible widgets</a> "
+"will appear for your mobile users."
+msgstr ""
+
+#: themes/mobile_pack_base/wpmp_theme_widget_admin.php:47
+#, php-format
+msgid ""
+"Select which of the <a%s>widgets enabled for this sidebar</a> will show on "
+"the mobile theme:"
+msgstr ""
+
+#: wordpress-mobile-pack.php:111
+msgid "Critical WordPress Mobile Pack Issue"
+msgstr ""
+
+#: wordpress-mobile-pack.php:113
+msgid "Deactivate and re-activate the WordPress Mobile Pack once resolved."
+msgstr ""
+
+#: wordpress-mobile-pack.php:118
+msgid "Important WordPress Mobile Pack Notice"
+msgstr ""
+
+#: wordpress-mobile-pack.php:150
+msgid "PHP version not supported."
+msgstr ""
+
+#: wordpress-mobile-pack.php:150
+#, php-format
+msgid ""
+"PHP versions 6 and greater are not yet supported by this plugin, and you "
+"have version %s"
+msgstr ""
+
+#: wordpress-mobile-pack.php:156 wordpress-mobile-pack.php:170
+msgid "That directory does not exist."
+msgstr ""
+
+#: wordpress-mobile-pack.php:158 wordpress-mobile-pack.php:172
+msgid "That directory is not writable."
+msgstr ""
+
+#: wordpress-mobile-pack.php:160 wordpress-mobile-pack.php:174
+msgid "That directory is not executable."
+msgstr ""
+
+#: wordpress-mobile-pack.php:164
+#, php-format
+msgid "<strong>Not able to cache images</strong> to %s."
+msgstr ""
+
+#: wordpress-mobile-pack.php:164 wordpress-mobile-pack.php:178
+#: wordpress-mobile-pack.php:197
+msgid "Please ensure that the web server has write- and execute-access to it."
+msgstr ""
+
+#: wordpress-mobile-pack.php:178
+#, php-format
+msgid "<strong>Not able to install theme files</strong> to %s."
+msgstr ""
+
+#: wordpress-mobile-pack.php:197
+msgid "<strong>Could not install theme files</strong> to "
+msgstr ""
+
+#: wordpress-mobile-pack.php:213
+msgid ""
+"<strong>Existing Mobile Pack theme files were found</strong>, but they were "
+"not overwritten by the plugin activation."
+msgstr ""
+
+#: wordpress-mobile-pack.php:215
+#, php-format
+msgid "You are advised to upgrade your Mobile Pack theme files to version %s"
+msgstr ""
+
+#: wordpress-mobile-pack.php:217
+msgid ""
+"(<strong>NB</strong>: take precautions if you have manually edited any "
+"existing Mobile Pack theme files - your changes will now need to be re-"
+"applied.)"
+msgstr ""
+
+#: wordpress-mobile-pack.php:220
+msgid "Yes please - I&apos;ll upgrade all my themes"
+msgstr ""
+
+#: wordpress-mobile-pack.php:223
+msgid "No thanks - I&apos;ll leave my themes as they are"
+msgstr ""
+
+#: wordpress-mobile-pack.php:234
+#, php-format
+msgid "<strong>Could not install file</strong> to %s."
+msgstr ""
+
+#: wordpress-mobile-pack.php:234
+msgid "Please ensure that the web server has write- access to that file."
+msgstr ""
+
+#. Plugin Name of an extension
+msgid "WordPress Mobile Pack"
+msgstr ""
+
+#. Plugin URI of an extension
+msgid "http://wordpress.org/extend/plugins/wordpress-mobile-pack/"
+msgstr ""
diff --git a/plugins/wordpress-mobile-pack/wordpress_mobile_pack.php b/plugins/wordpress-mobile-pack/wordpress_mobile_pack.php
new file mode 100755
index 00000000..78915383
--- /dev/null
+++ b/plugins/wordpress-mobile-pack/wordpress_mobile_pack.php
@@ -0,0 +1,5 @@
+<?php
+ //This empty file is for legacy compatibility.
+ //The plugin is found in the neighbouring file wordpress-mobile-pack.php.
+ //And in fact, you should even be able to delete this file now.
+?>