WPtouch - Version 3.5.4

Version Description

Download this release

Release Info

Developer bravenewcode
Plugin Icon 128x128 WPtouch
Version 3.5.4
Comparing to
See all releases

Code changes from version 3.4.10 to 3.5.4

Files changed (44) hide show
  1. admin/css/wptouch-admin-3.css +15 -159
  2. admin/js/wptouch-admin-3.js +30 -3
  3. admin/settings/html/checklist.php +25 -0
  4. admin/settings/html/theme-browser-ajax.php +2 -0
  5. admin/settings/html/theme-browser-item.php +11 -4
  6. admin/settings/html/theme-browser.php +8 -0
  7. admin/settings/include/checklist.php +12 -0
  8. core/admin-ajax.php +1 -1
  9. core/admin-backup-restore.php +22 -4
  10. core/admin-page-templates.php +4 -3
  11. core/admin-render.php +1 -1
  12. core/admin-themes.php +1 -2
  13. core/bncid.php +5 -3
  14. core/class-bncapi.php +4 -2
  15. core/class-wptouch-pro.php +38 -12
  16. core/config.php +9 -2
  17. core/theme.php +1 -1
  18. include/js/wptouch.js +4 -4
  19. lang/wptouch-pro-sk_SK.pot +2335 -0
  20. lang/wptouch.pot +114 -89
  21. readme.txt +34 -19
  22. themes/bauhaus/default/search.php +1 -1
  23. themes/bauhaus/default/style.css +5 -0
  24. themes/foundation/default/header.php +1 -4
  25. themes/foundation/default/home-template.php +3 -4
  26. themes/foundation/default/one-comment.php +10 -2
  27. themes/foundation/default/page.php +1 -1
  28. themes/foundation/default/search.php +1 -1
  29. themes/foundation/default/style.css +7 -1
  30. themes/foundation/modules/base/base.js +3 -5
  31. themes/foundation/modules/fastclick/fastclick.js +745 -758
  32. themes/foundation/modules/fastclick/fastclick.min.js +1 -1
  33. themes/foundation/modules/google-fonts/google-fonts.php +1 -1
  34. themes/foundation/modules/hammer/hammer.fakemultitouch.js +0 -101
  35. themes/foundation/modules/hammer/hammer.min.js +2 -8
  36. themes/foundation/modules/hammer/hammer.php +2 -10
  37. themes/foundation/modules/hammer/wptouch.hammer.js +8 -0
  38. themes/foundation/modules/pushit/pushit.css +1 -1
  39. themes/foundation/modules/pushit/pushit.js +55 -29
  40. themes/foundation/modules/tappable/wptouch.tappable.js +1 -1
  41. themes/foundation/modules/webapp/webapp.php +38 -1
  42. themes/foundation/readme.txt +1 -1
  43. themes/foundation/root-functions.php +25 -25
  44. wptouch.php +2 -2
admin/css/wptouch-admin-3.css CHANGED
@@ -1,4 +1,8 @@
1
- /* @override http://wptp3.local.com/wp-content/plugins/wptouch-pro-3/admin/css/wptouch-admin-3.css?ver=3.4.4 */
 
 
 
 
2
 
3
  /* @group General */
4
 
@@ -83,7 +87,7 @@
83
  font-weight: bold;
84
  font-size: 9px;
85
  display: inline-block;
86
- overflow: hidden;
87
  background-color: #369;
88
  }
89
 
@@ -942,102 +946,12 @@ input#preview.disabled {
942
  float: right;
943
  }
944
 
945
- /* @group Free */
946
-
947
  .wptouch-free #touchboard-left {
948
  margin-right: 265px;
949
  overflow: hidden;
950
  text-align: center;
951
- background-color: #f9f9fa;
952
- }
953
-
954
-
955
- .wptouch-free #touchboard-left .phones img {
956
- padding-top: 10px;
957
- width: auto;
958
- max-width: 90%;
959
- margin-left: 5%;
960
- margin-right: 5%;
961
- }
962
-
963
- .wptouch-free #touchboard-left .hero-text {
964
- padding-bottom: 40px;
965
  }
966
 
967
- .wptouch-free #touchboard-left .hero-text h1 {
968
- font-weight: 200;
969
- font-style: normal;
970
- font-size: 400%;
971
- margin: 0;
972
- padding: 0;
973
- line-height: 1.4em;
974
- letter-spacing: -2px;
975
- color: #565656;
976
- }
977
-
978
- .wptouch-free #touchboard-left .hero-text h2 {
979
- color: #888;
980
- font-weight: 100;
981
- font-style: normal;
982
- font-size: 140%;
983
- padding: 0;
984
- }
985
-
986
- .wptouch-free #touchboard-left .hero-text h2 em {
987
- font-weight: bold;
988
- }
989
-
990
- .wptouch-free #touchboard-left .hero-text h4 {
991
- font-weight: 200;
992
- font-style: normal;
993
- font-size: 14px;
994
- color: #888;
995
- margin: 15px 0;
996
- line-height: 1em;
997
- }
998
-
999
- .wptouch-free #touchboard-left .flex-item h5 {
1000
- font-weight: 200;
1001
- font-size: 18px;
1002
- line-height: 1.2em;
1003
- }
1004
-
1005
- .wptouch-free .flex-container {
1006
- display: -webkit-flex;
1007
- display: -moz-flex;
1008
- display: flex;
1009
- -webkit-flex-flow: row wrap;
1010
- -moz-flex-flow: row wrap;
1011
- flex-flow: row wrap;
1012
- border-top: 1px dashed #cad2d5;
1013
- background-color: rgba(255,255,255,.9);
1014
- padding-bottom: 20px;
1015
- padding-top: 20px;
1016
- }
1017
-
1018
- .wptouch-free .flex-item {
1019
- -webkit-flex: 1 0 20%;
1020
- -moz-flex: 1 0 20%;
1021
- flex: 1 0 20%;
1022
- text-align: left;
1023
- margin-right: 15px;
1024
- margin-left: 15px;
1025
- padding: 30px 0 0;
1026
- }
1027
-
1028
- .wptouch-free .flex-item i {
1029
- color: #abb9c6;
1030
- line-height: .5em;
1031
- font-size: 4.5em;
1032
- }
1033
-
1034
- .wptouch-free .flex-item p {
1035
- line-height: 1.4em;
1036
- color: #565e63;
1037
- font-size: 1.1em;
1038
- }
1039
- /* @end */
1040
-
1041
  /* @group Right Side */
1042
 
1043
  /* @group Quick Links */
@@ -2233,6 +2147,9 @@ textarea#homepage_message {
2233
  .cloud-browser .cloud .view {
2234
  display: none;
2235
  }
 
 
 
2236
 
2237
  /* @end */
2238
 
@@ -2545,7 +2462,7 @@ textarea#homepage_message {
2545
 
2546
  /* @group Coffee */
2547
 
2548
- .admin-color-coffee #wptouch-settings-area h2.logo-title,.admin-color-coffee #wptouch-settings-area .wptouch-section h3,
2549
  .admin-color-coffee #wptouch-settings-area #license-area-left h3 {
2550
  color: #46403C;
2551
  }
@@ -2554,7 +2471,7 @@ textarea#homepage_message {
2554
  color: #9EA476;
2555
  }
2556
 
2557
- .admin-color-coffee #wptouch-settings-area #wptouch-admin-menu a.active,
2558
  .admin-color-coffee #wptouch-settings-area .advanced {
2559
  background-color: #59524C;
2560
  }
@@ -2571,7 +2488,7 @@ textarea#homepage_message {
2571
 
2572
  /* @group Ectoplasm */
2573
 
2574
- .admin-color-ectoplasm #wptouch-settings-area h2.logo-title,.admin-color-ectoplasm #wptouch-settings-area .wptouch-section h3,
2575
  .admin-color-ectoplasm #wptouch-settings-area #license-area-left h3 {
2576
  color: #413256;
2577
  }
@@ -2596,7 +2513,7 @@ textarea#homepage_message {
2596
 
2597
  /* @group Midnight */
2598
 
2599
- .admin-color-midnight #wptouch-settings-area h2.logo-title,.admin-color-midnight #wptouch-settings-area .wptouch-section h3,
2600
  .admin-color-midnight #wptouch-settings-area #license-area-left h3 {
2601
  color: #25282b;
2602
  }
@@ -2621,7 +2538,7 @@ textarea#homepage_message {
2621
 
2622
  /* @group Midnight */
2623
 
2624
- .admin-color-ocean #wptouch-settings-area h2.logo-title,.admin-color-ocean #wptouch-settings-area .wptouch-section h3,
2625
  .admin-color-ocean #wptouch-settings-area #license-area-left h3 {
2626
  color: #637c83;
2627
  }
@@ -2646,7 +2563,7 @@ textarea#homepage_message {
2646
 
2647
  /* @group Sunrise */
2648
 
2649
- .admin-color-sunrise #wptouch-settings-area h2.logo-title,.admin-color-sunrise #wptouch-settings-area .wptouch-section h3,
2650
  .admin-color-sunrise #wptouch-settings-area #license-area-left h3 {
2651
  color: #b23d3b;
2652
  }
@@ -2670,60 +2587,6 @@ textarea#homepage_message {
2670
  /* @end */
2671
 
2672
 
2673
- /* @end */
2674
-
2675
- /* @group Upgrade */
2676
-
2677
- #upgrade-area {
2678
- margin-left: -22px;
2679
- margin-right: -20px;
2680
- text-align: center;
2681
- }
2682
-
2683
- #upgrade-area img {
2684
- max-width: 95%;
2685
- }
2686
-
2687
- #upgrade-area h1 {
2688
- font-size: 5em;
2689
- font-weight: 300;
2690
- letter-spacing: -2px;
2691
- margin-bottom: 20px;
2692
- }
2693
-
2694
- #upgrade-area h2 {
2695
- color: #7b7b7b;
2696
- margin-bottom: 25px;
2697
- }
2698
-
2699
- #upgrade-area img.upgrade-button {
2700
- margin-bottom: 30px;
2701
- }
2702
-
2703
- #upgrade-area h1 span {
2704
- font-weight: 600;
2705
- }
2706
-
2707
- #upgrade-area h5 {
2708
- font-weight: bold;
2709
- font-size: 1.2em;
2710
- }
2711
-
2712
- #upgrade-area .flex-item {
2713
- -webkit-flex: 1 0 15%;
2714
- -moz-flex: 1 0 15%;
2715
- flex: 1 0 15%;
2716
- text-align: left;
2717
- margin-right: 30px;
2718
- margin-left: 30px;
2719
- padding: 0;
2720
- }
2721
-
2722
- #upgrade-area .flex-container {
2723
- margin-bottom: -100px;
2724
- padding-bottom: 100px;
2725
- }
2726
-
2727
  /* @end */
2728
 
2729
  @media all and (max-width: 700px) {
@@ -2731,13 +2594,6 @@ textarea#homepage_message {
2731
  font-size: 20px;
2732
  }
2733
 
2734
- #upgrade-area .flex-item {
2735
- -webkit-flex: 1 0 90%;
2736
- -moz-flex: 1 0 90%;
2737
- flex: 1 0 90%;
2738
- text-align: center;
2739
- }
2740
-
2741
  .dropdown, #wptouch-settings-content .overview-right-wrap {
2742
  display: none;
2743
  }
1
+ /* @override
2
+ http://wptp3.local.com/wp-content/plugins/wptouch-pro-3/admin/css/wptouch-admin-3.css?ver=3.4.4
3
+ https://wptp3.local.com/wp-content/plugins/wptouch-pro-3/admin/css/wptouch-admin-3.css?ver=3.4.9
4
+ http://wptp3.local.com/wp-content/plugins/wptouch-pro-3/admin/css/wptouch-admin-3.css?ver=3.5
5
+ */
6
 
7
  /* @group General */
8
 
87
  font-weight: bold;
88
  font-size: 9px;
89
  display: inline-block;
90
+ overflow: hidden;
91
  background-color: #369;
92
  }
93
 
946
  float: right;
947
  }
948
 
 
 
949
  .wptouch-free #touchboard-left {
950
  margin-right: 265px;
951
  overflow: hidden;
952
  text-align: center;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
953
  }
954
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
955
  /* @group Right Side */
956
 
957
  /* @group Quick Links */
2147
  .cloud-browser .cloud .view {
2148
  display: none;
2149
  }
2150
+ .cloud-browser .cloud .view.webkit {
2151
+ display: block;
2152
+ }
2153
 
2154
  /* @end */
2155
 
2462
 
2463
  /* @group Coffee */
2464
 
2465
+ .admin-color-coffee #wptouch-settings-area h2.logo-title,.admin-color-coffee #wptouch-settings-area .wptouch-section h3,
2466
  .admin-color-coffee #wptouch-settings-area #license-area-left h3 {
2467
  color: #46403C;
2468
  }
2471
  color: #9EA476;
2472
  }
2473
 
2474
+ .admin-color-coffee #wptouch-settings-area #wptouch-admin-menu a.active,
2475
  .admin-color-coffee #wptouch-settings-area .advanced {
2476
  background-color: #59524C;
2477
  }
2488
 
2489
  /* @group Ectoplasm */
2490
 
2491
+ .admin-color-ectoplasm #wptouch-settings-area h2.logo-title,.admin-color-ectoplasm #wptouch-settings-area .wptouch-section h3,
2492
  .admin-color-ectoplasm #wptouch-settings-area #license-area-left h3 {
2493
  color: #413256;
2494
  }
2513
 
2514
  /* @group Midnight */
2515
 
2516
+ .admin-color-midnight #wptouch-settings-area h2.logo-title,.admin-color-midnight #wptouch-settings-area .wptouch-section h3,
2517
  .admin-color-midnight #wptouch-settings-area #license-area-left h3 {
2518
  color: #25282b;
2519
  }
2538
 
2539
  /* @group Midnight */
2540
 
2541
+ .admin-color-ocean #wptouch-settings-area h2.logo-title,.admin-color-ocean #wptouch-settings-area .wptouch-section h3,
2542
  .admin-color-ocean #wptouch-settings-area #license-area-left h3 {
2543
  color: #637c83;
2544
  }
2563
 
2564
  /* @group Sunrise */
2565
 
2566
+ .admin-color-sunrise #wptouch-settings-area h2.logo-title,.admin-color-sunrise #wptouch-settings-area .wptouch-section h3,
2567
  .admin-color-sunrise #wptouch-settings-area #license-area-left h3 {
2568
  color: #b23d3b;
2569
  }
2587
  /* @end */
2588
 
2589
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2590
  /* @end */
2591
 
2592
  @media all and (max-width: 700px) {
2594
  font-size: 20px;
2595
  }
2596
 
 
 
 
 
 
 
 
2597
  .dropdown, #wptouch-settings-content .overview-right-wrap {
2598
  display: none;
2599
  }
admin/js/wptouch-admin-3.js CHANGED
@@ -394,7 +394,7 @@ function wptouchHandleMenuArea(){
394
  // Handle "Check All"
395
 
396
  jQuery( '#menu-set-options' ).on( 'click', 'a.check-all', function( e ) {
397
- menuEnable.find( 'input' ).each( function() {
398
  // Check all items that *aren't* checked already
399
  if ( !jQuery( this ).is( ':checked' ) ) {
400
  jQuery( this ).click();
@@ -404,7 +404,7 @@ function wptouchHandleMenuArea(){
404
 
405
  // Now handle "Check None"
406
  }).on( 'click', 'a.check-none', function( e ) {
407
- menuEnable.find( 'input' ).each( function() {
408
  // Check all items that *are* checked already
409
  if ( jQuery( this ).is( ':checked' ) ) {
410
  jQuery( this ).trigger( 'click' );
@@ -840,7 +840,7 @@ var wptouchPreviewWindow;
840
  // The Preview Pop-Up Window
841
  function wptouchPreviewWindow(){
842
 
843
- var previewEl = jQuery( 'input#preview' );
844
 
845
  if ( wptouchIsWebKit() ) {
846
  previewEl.on( 'click', function( e ) {
@@ -1067,6 +1067,9 @@ function wptouchLoadThemes() {
1067
  } else {
1068
  themesDiv.find( '.load' ).parent().replaceWith( result );
1069
 
 
 
 
1070
  jQuery( '#setup-themes-browser' ).on( 'click', 'a.download, a.upgrade', function( e ) {
1071
  var pressedButton = jQuery( this );
1072
  var installURL = jQuery( this ).attr( 'data-url' );
@@ -1153,6 +1156,28 @@ function wptouchAdminHandleGeneral() {
1153
  wptouchCheckToggle( '#show_wptouch_in_footer', '#setting-add_referral_code' );
1154
  }
1155
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1156
  function wptouchShowProItems() {
1157
  jQuery( '.wptouch-free #foundation-page-webapp' ).find( 'div, li' ).show();
1158
  jQuery( '.wptouch-free #foundation-page-webapp div.progress' ).hide();
@@ -1192,6 +1217,8 @@ function wptouchAdminReady() {
1192
  wptouchLoadThemes();
1193
  wptouchLoadAddons();
1194
 
 
 
1195
  wptouchShowProItems();
1196
  }
1197
 
394
  // Handle "Check All"
395
 
396
  jQuery( '#menu-set-options' ).on( 'click', 'a.check-all', function( e ) {
397
+ jQuery( '.menu-item-list:visible' ).find( 'input' ).each( function() {
398
  // Check all items that *aren't* checked already
399
  if ( !jQuery( this ).is( ':checked' ) ) {
400
  jQuery( this ).click();
404
 
405
  // Now handle "Check None"
406
  }).on( 'click', 'a.check-none', function( e ) {
407
+ jQuery( '.menu-item-list:visible' ).find( 'input' ).each( function() {
408
  // Check all items that *are* checked already
409
  if ( jQuery( this ).is( ':checked' ) ) {
410
  jQuery( this ).trigger( 'click' );
840
  // The Preview Pop-Up Window
841
  function wptouchPreviewWindow(){
842
 
843
+ var previewEl = jQuery( '.preview-button' );
844
 
845
  if ( wptouchIsWebKit() ) {
846
  previewEl.on( 'click', function( e ) {
1067
  } else {
1068
  themesDiv.find( '.load' ).parent().replaceWith( result );
1069
 
1070
+ wptouchPreviewWindow();
1071
+ wptouchHandleThemePreview();
1072
+
1073
  jQuery( '#setup-themes-browser' ).on( 'click', 'a.download, a.upgrade', function( e ) {
1074
  var pressedButton = jQuery( this );
1075
  var installURL = jQuery( this ).attr( 'data-url' );
1156
  wptouchCheckToggle( '#show_wptouch_in_footer', '#setting-add_referral_code' );
1157
  }
1158
 
1159
+ function wptouchHandleThemePreview() {
1160
+ function triggerPreview( targetImage ) {
1161
+ jQuery( '#' + targetImage.attr( 'id' ) + '-preview' ).trigger( 'click' );
1162
+ }
1163
+
1164
+ if ( wptouchIsWebKit() ) {
1165
+ jQuery( '#setup-themes-browser .view' ).addClass( 'webkit' ).text( WPtouchCustom.open_theme_demo );
1166
+ jQuery( '#setup-themes-browser' ).find( '.image-wrapper' ).on( 'click', 'img' , function( e ) {
1167
+ e.preventDefault();
1168
+ e.stopImmediatePropagation();
1169
+ triggerPreview( jQuery( this ) );
1170
+ });
1171
+
1172
+ jQuery( '#setup-themes-browser' ).find( '.image-wrapper' ).on( 'click', '.view' , function( e ) {
1173
+ e.preventDefault();
1174
+ e.stopImmediatePropagation();
1175
+ triggerPreview( jQuery( this ).siblings( 'img' ).first() );
1176
+ });
1177
+
1178
+ }
1179
+ }
1180
+
1181
  function wptouchShowProItems() {
1182
  jQuery( '.wptouch-free #foundation-page-webapp' ).find( 'div, li' ).show();
1183
  jQuery( '.wptouch-free #foundation-page-webapp div.progress' ).hide();
1217
  wptouchLoadThemes();
1218
  wptouchLoadAddons();
1219
 
1220
+ wptouchHandleThemePreview();
1221
+
1222
  wptouchShowProItems();
1223
  }
1224
 
admin/settings/html/checklist.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="check-group">
2
+
3
+ <label class="checklist" for="<?php wptouch_admin_the_setting_name(); ?>">
4
+ <?php if ( wptouch_get_locale() == 'fr_FR' ) { ?>
5
+ <?php wptouch_admin_the_setting_desc(); ?> :
6
+ <?php } else { ?>
7
+ <?php wptouch_admin_the_setting_desc(); ?>:
8
+ <?php } ?>
9
+ </label>
10
+ <?php if ( wptouch_admin_setting_has_tooltip() ) { ?>
11
+ <i class="wptouch-tooltip icon-info-sign" title="<?php wptouch_admin_the_setting_tooltip(); ?>"></i>
12
+ <?php } ?>
13
+ <?php if ( wptouch_admin_get_setting_level() == WPTOUCH_SETTING_ADVANCED ) { ?> <span class="advanced"><?php _e( 'Advanced', 'wptouch-pro' ); ?></span><?php } ?>
14
+ <?php if ( wptouch_admin_is_setting_new() ) { ?>
15
+ <span class="new"><?php _e( 'New', 'wptouch-pro' ); ?></span>
16
+ <?php } ?>
17
+ <?php include( WPTOUCH_DIR . '/include/html/pro.php' ); ?>
18
+
19
+ <?php while ( wptouch_admin_has_list_options() ) { ?>
20
+ <?php wptouch_admin_the_list_option(); ?>
21
+
22
+ <p><input type="checkbox" id="<?php wptouch_admin_the_setting_name(); ?>-<?php wptouch_admin_the_list_option_key(); ?>" name="<?php wptouch_admin_the_encoded_setting_name(); ?>[]" value="<?php wptouch_admin_the_list_option_key(); ?>"<?php if ( wptouch_admin_is_checklist_option_selected() ) echo " checked"; ?>> <label for="<?php wptouch_admin_the_setting_name(); ?>-<?php wptouch_admin_the_list_option_key(); ?>"><?php wptouch_admin_the_list_option_desc(); ?></label></p>
23
+ <?php } ?>
24
+ <input type="hidden" name="checklist-<?php wptouch_admin_the_setting_name(); ?>" value="1">
25
+ </div>
admin/settings/html/theme-browser-ajax.php CHANGED
@@ -3,6 +3,8 @@
3
 
4
  <?php wptouch_rewind_themes(); ?>
5
 
 
 
6
  <?php while ( wptouch_has_themes( true ) ) { ?>
7
  <?php wptouch_the_theme(); ?>
8
  <?php if ( wptouch_is_theme_in_cloud() ) { ?>
3
 
4
  <?php wptouch_rewind_themes(); ?>
5
 
6
+ <?php $cloud_themes = wptouch_get_available_cloud_themes(); ?>
7
+
8
  <?php while ( wptouch_has_themes( true ) ) { ?>
9
  <?php wptouch_the_theme(); ?>
10
  <?php if ( wptouch_is_theme_in_cloud() ) { ?>
admin/settings/html/theme-browser-item.php CHANGED
@@ -1,13 +1,20 @@
1
  <li class="<?php wptouch_the_theme_classes(); ?>">
2
  <?php if ( wptouch_get_theme_screenshot() ) { ?>
3
  <div class="image-wrapper">
 
 
 
4
  <?php if ( wptouch_is_theme_in_cloud() ) { ?>
5
- <img src="<?php wptouch_the_theme_screenshot(); ?>" alt="<?php wptouch_the_theme_title(); ?>" />
6
- <span class="view"><?php _e( 'Click to view screenshots', 'wptouch-pro' ); ?></span>
 
 
7
  <?php } else { ?>
8
  <a href="#" data-toggle="modal" data-target="#modal-<?php echo wptouch_convert_to_class_name( wptouch_get_theme_title() ); ?>">
9
- <img src="<?php wptouch_the_theme_screenshot(); ?>" alt="<?php wptouch_the_theme_title(); ?>" />
10
- <span class="view"><?php _e( 'Click to view screenshots', 'wptouch-pro' ); ?></span>
 
 
11
  </a>
12
  <?php } ?>
13
 
1
  <li class="<?php wptouch_the_theme_classes(); ?>">
2
  <?php if ( wptouch_get_theme_screenshot() ) { ?>
3
  <div class="image-wrapper">
4
+ <?php if ( isset( $cloud_themes[ wptouch_convert_to_class_name( wptouch_get_theme_title() ) ] ) && wptouch_get_theme_title() != 'Scaffold' ) { ?>
5
+ <input type="hidden" id="<?php echo wptouch_convert_to_class_name( wptouch_get_theme_title() ); ?>-preview" class="preview-button" data-url="http://demo.wptouch.com/<?php echo wptouch_convert_to_class_name( wptouch_get_theme_title() ); ?>?wptouch_preview_theme=enabled" value="Preview" />
6
+ <?php } ?>
7
  <?php if ( wptouch_is_theme_in_cloud() ) { ?>
8
+ <img src="<?php wptouch_the_theme_screenshot(); ?>" alt="<?php wptouch_the_theme_title(); ?>" id="<?php echo wptouch_convert_to_class_name( wptouch_get_theme_title() ); ?>" />
9
+ <?php if ( isset( $cloud_themes[ wptouch_convert_to_class_name( wptouch_get_theme_title() ) ] ) && wptouch_get_theme_title() != 'Scaffold' ) { ?>
10
+ <span class="view"><?php _e( 'Click to view screenshots', 'wptouch-pro' ); ?></span>
11
+ <?php } ?>
12
  <?php } else { ?>
13
  <a href="#" data-toggle="modal" data-target="#modal-<?php echo wptouch_convert_to_class_name( wptouch_get_theme_title() ); ?>">
14
+ <img src="<?php wptouch_the_theme_screenshot(); ?>" alt="<?php wptouch_the_theme_title(); ?>" id="<?php echo wptouch_convert_to_class_name( wptouch_get_theme_title() ); ?>" />
15
+ <?php if ( isset( $cloud_themes[ wptouch_convert_to_class_name( wptouch_get_theme_title() ) ] ) && wptouch_get_theme_title() != 'Scaffold' ) { ?>
16
+ <span class="view"><?php _e( 'Click to view screenshots', 'wptouch-pro' ); ?></span>
17
+ <?php } ?>
18
  </a>
19
  <?php } ?>
20
 
admin/settings/html/theme-browser.php CHANGED
@@ -1,6 +1,14 @@
1
  <?php if ( !wptouch_can_cloud_install( true ) ) { ?>
2
  <div class="cloud-update-issue"><i class="icon-cloud"></i> <?php echo sprintf( __( 'Your server configuration is preventing WPtouch Pro from installing and updating from the Cloud. %sPlease visit %sthis article%s to follow the steps to enable Cloud install, or you can manually download and install into the wptouch-data/%s directory.', 'wptouch-pro' ), '<br />', '<a href="http://www.wptouch.com/support/knowledgebase/themes-or-extensions-cannot-be-downloaded/">', '</a>', 'extensions' ); ?></div>
3
  <?php } ?>
 
 
 
 
 
 
 
 
4
  <ul class="cloud-browser">
5
  <?php while ( wptouch_has_themes( true ) ) { ?>
6
  <?php wptouch_the_theme(); ?>
1
  <?php if ( !wptouch_can_cloud_install( true ) ) { ?>
2
  <div class="cloud-update-issue"><i class="icon-cloud"></i> <?php echo sprintf( __( 'Your server configuration is preventing WPtouch Pro from installing and updating from the Cloud. %sPlease visit %sthis article%s to follow the steps to enable Cloud install, or you can manually download and install into the wptouch-data/%s directory.', 'wptouch-pro' ), '<br />', '<a href="http://www.wptouch.com/support/knowledgebase/themes-or-extensions-cannot-be-downloaded/">', '</a>', 'extensions' ); ?></div>
3
  <?php } ?>
4
+
5
+ <?php
6
+ $cloud_themes = wptouch_get_available_cloud_themes();
7
+ foreach ( $cloud_themes as $theme => $details ) {
8
+ $cloud_themes[ $theme ] = $theme;
9
+ }
10
+ ?>
11
+
12
  <ul class="cloud-browser">
13
  <?php while ( wptouch_has_themes( true ) ) { ?>
14
  <?php wptouch_the_theme(); ?>
admin/settings/include/checklist.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once( 'list.php' );
4
+
5
+ function wptouch_admin_is_checklist_option_selected() {
6
+ global $_primed_setting;
7
+
8
+ $settings = wptouch_get_settings( $_primed_setting->domain, false );
9
+ $setting_name = $_primed_setting->name;
10
+
11
+ return ( isset( $settings->$setting_name ) && ( in_array( wptouch_admin_get_list_option_key() , $settings->$setting_name ) ) );
12
+ }
core/admin-ajax.php CHANGED
@@ -135,7 +135,7 @@ function wptouch_admin_handle_ajax( $wptouch_pro, $ajax_action ) {
135
  if ( defined( 'WPTOUCH_IS_FREE' ) ) {
136
  $content = wp_remote_get( 'http://wptouch-pro-3.s3.amazonaws.com/WPtouchBoard/free/page.xhtml' );
137
  } else {
138
- $content = wp_remote_get( 'http://wptouch-pro-3.s3.amazonaws.com/WPtouchBoard/pro/3.4/page.xhtml' );
139
  }
140
 
141
  if ( !is_wp_error( $content ) ) {
135
  if ( defined( 'WPTOUCH_IS_FREE' ) ) {
136
  $content = wp_remote_get( 'http://wptouch-pro-3.s3.amazonaws.com/WPtouchBoard/free/page.xhtml' );
137
  } else {
138
+ $content = wp_remote_get( 'http://wptouch-pro-3.s3.amazonaws.com/WPtouchBoard/pro/3.5/page.xhtml' );
139
  }
140
 
141
  if ( !is_wp_error( $content ) ) {
core/admin-backup-restore.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- function wptouch_prune_backup_files( $amount = 30 ) {
4
  require_once( WPTOUCH_DIR . '/core/file-operations.php' );
5
 
6
  $all_files = wptouch_get_files_in_directory( WPTOUCH_BACKUP_DIRECTORY, '.txt' );
@@ -33,20 +33,38 @@ function wptouch_backup_settings() {
33
 
34
  foreach( $backup_domains as $domain ) {
35
  $settings_notused = wptouch_get_settings( $domain );
36
- $settings = $wptouch_pro->settings_objects[ $domain ];
37
 
38
- if ( isset( $settings->domain) ) {
39
  unset( $settings->domain );
40
  }
41
 
42
  $settings_to_save[ $domain ] = apply_filters( 'wptouch_backup_settings', $settings, $domain );
43
  }
44
 
 
 
 
 
 
 
 
 
 
 
 
45
  ksort( $settings_to_save );
46
 
47
  $backup_string = base64_encode( gzcompress( serialize( $settings_to_save ), 9 ) );
48
 
49
- $backup_base_name = 'wptouch-backup-' . date( 'Ymd-His') . '.txt';
 
 
 
 
 
 
 
50
  $backup_file_name = WPTOUCH_BACKUP_DIRECTORY . '/' . $backup_base_name;
51
  $backup_file = fopen( $backup_file_name, 'w+t' );
52
  if ( $backup_file ) {
1
  <?php
2
 
3
+ function wptouch_prune_backup_files( $amount = 2 ) {
4
  require_once( WPTOUCH_DIR . '/core/file-operations.php' );
5
 
6
  $all_files = wptouch_get_files_in_directory( WPTOUCH_BACKUP_DIRECTORY, '.txt' );
33
 
34
  foreach( $backup_domains as $domain ) {
35
  $settings_notused = wptouch_get_settings( $domain );
36
+ $settings = clone $wptouch_pro->settings_objects[ $domain ];
37
 
38
+ if ( isset( $settings->domain ) ) {
39
  unset( $settings->domain );
40
  }
41
 
42
  $settings_to_save[ $domain ] = apply_filters( 'wptouch_backup_settings', $settings, $domain );
43
  }
44
 
45
+
46
+ if ( isset( $settings_to_save[ 'bncid' ] ) ) {
47
+ if ( isset( $settings_to_save[ 'bncid' ]->wptouch_license_key ) ) {
48
+ //unset( $settings_to_save[ 'bncid' ]->wptouch_license_key );
49
+ }
50
+
51
+ if ( isset( $settings_to_save[ 'bncid' ]->bncid ) ) {
52
+ //unset( $settings_to_save[ 'bncid' ]->bncid );
53
+ }
54
+ }
55
+
56
  ksort( $settings_to_save );
57
 
58
  $backup_string = base64_encode( gzcompress( serialize( $settings_to_save ), 9 ) );
59
 
60
+ $unique_key = '';
61
+ if ( isset( $bnc_settings->license_key ) ) {
62
+ $unique_key = $bnc_settings->license;
63
+ } else if ( defined( 'AUTH_KEY' ) ) {
64
+ $unique_key = AUTH_KEY;
65
+ }
66
+
67
+ $backup_base_name = 'wptouch-backup-' . md5( $unique_key ) . '-' . date( 'Ymd-His') . '.txt';
68
  $backup_file_name = WPTOUCH_BACKUP_DIRECTORY . '/' . $backup_base_name;
69
  $backup_file = fopen( $backup_file_name, 'w+t' );
70
  if ( $backup_file ) {
core/admin-page-templates.php CHANGED
@@ -1,7 +1,8 @@
1
  <?php
2
-
3
- add_action( 'add_meta_boxes', 'wptouch_page_template_init' );
4
- add_action( 'save_post', 'wptouch_page_template_save' );
 
5
 
6
  function wptouch_get_page_template( $post_id ) {
7
  return get_post_meta( $post_id, '_mobile_page_template', true );
1
  <?php
2
+ if ( !defined( 'WPTOUCH_IS_FREE' ) ) {
3
+ add_action( 'add_meta_boxes', 'wptouch_page_template_init' );
4
+ add_action( 'save_post', 'wptouch_page_template_save' );
5
+ }
6
 
7
  function wptouch_get_page_template( $post_id ) {
8
  return get_post_meta( $post_id, '_mobile_page_template', true );
core/admin-render.php CHANGED
@@ -25,7 +25,7 @@
25
  <?php _e( 'Your WPtouch Pro license has expired. Renew now at a discount to continue receiving product updates and support.', 'wptouch-pro' ); ?>
26
  <a href="http://www.wptouch.com/renew/?utm_campaign=renew-in-product&utm_medium=web&utm_source=wptouch" target="_blank" class="btn btn-small btn-warning"><?php _e( 'Renew Now', 'wptouch-pro' ); ?></a>
27
  </div>
28
- </div>
29
  <?php } else { ?>
30
  <?php if ( wptouch_should_show_license_nag() && $_GET['page'] != 'wptouch-admin-license' ) { ?>
31
  <div class="alert-wrap">
25
  <?php _e( 'Your WPtouch Pro license has expired. Renew now at a discount to continue receiving product updates and support.', 'wptouch-pro' ); ?>
26
  <a href="http://www.wptouch.com/renew/?utm_campaign=renew-in-product&utm_medium=web&utm_source=wptouch" target="_blank" class="btn btn-small btn-warning"><?php _e( 'Renew Now', 'wptouch-pro' ); ?></a>
27
  </div>
28
+ </div>
29
  <?php } else { ?>
30
  <?php if ( wptouch_should_show_license_nag() && $_GET['page'] != 'wptouch-admin-license' ) { ?>
31
  <div class="alert-wrap">
core/admin-themes.php CHANGED
@@ -192,7 +192,7 @@ function wptouch_get_theme_location() {
192
  }
193
 
194
  function wptouch_get_theme_url() {
195
- echo WP_CONTENT_URL . wptouch_get_theme_location();
196
  }
197
 
198
  function wptouch_the_theme_url() {
@@ -374,7 +374,6 @@ function wptouch_is_first_theme_preview_image() {
374
 
375
  function wptouch_get_theme_preview_url() {
376
  global $wptouch_theme_preview_item;
377
-
378
  return wptouch_check_url_ssl( wptouch_get_theme_url() . '/preview/' . $wptouch_theme_preview_item );
379
  }
380
 
192
  }
193
 
194
  function wptouch_get_theme_url() {
195
+ return WP_CONTENT_URL . wptouch_get_theme_location();
196
  }
197
 
198
  function wptouch_the_theme_url() {
374
 
375
  function wptouch_get_theme_preview_url() {
376
  global $wptouch_theme_preview_item;
 
377
  return wptouch_check_url_ssl( wptouch_get_theme_url() . '/preview/' . $wptouch_theme_preview_item );
378
  }
379
 
core/bncid.php CHANGED
@@ -44,6 +44,10 @@ function wptouch_check_api() {
44
 
45
  $current_time = time();
46
  if ( $current_time > $bnc_settings->next_update_check_time ) {
 
 
 
 
47
  $result = $wptouch_pro->bnc_api->check_api();
48
 
49
  if ( isset( $result[ 'has_valid_license' ] ) ) {
@@ -81,9 +85,7 @@ function wptouch_check_api() {
81
  }
82
  }
83
 
84
- // Update next check time
85
- $bnc_settings->next_update_check_time = $current_time + WPTOUCH_API_CHECK_INTERVAL;
86
- $bnc_settings->save();
87
  }
88
 
89
  // We've changed license states here, so clear our theme and add-on transients
44
 
45
  $current_time = time();
46
  if ( $current_time > $bnc_settings->next_update_check_time ) {
47
+ // Update next check time
48
+ $bnc_settings->next_update_check_time = $current_time + WPTOUCH_API_CHECK_INTERVAL;
49
+ $bnc_settings->save();
50
+
51
  $result = $wptouch_pro->bnc_api->check_api();
52
 
53
  if ( isset( $result[ 'has_valid_license' ] ) ) {
85
  }
86
  }
87
 
88
+ $bnc_settings->save();
 
 
89
  }
90
 
91
  // We've changed license states here, so clear our theme and add-on transients
core/class-bncapi.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
 
3
- define( 'BNC_API_VERSION', '3.9' );
4
  define( 'BNC_API_URL', 'http://api.wptouch.com/v/' . BNC_API_VERSION );
5
- define( 'BNC_API_TIMEOUT', 10 );
6
 
7
  require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
8
 
@@ -74,6 +74,8 @@ class BNCAPI {
74
  );
75
 
76
  $this->attempts++;
 
 
77
  $raw_response = wp_remote_request( $url, $options );
78
  if ( !is_wp_error( $raw_response ) ) {
79
  if ( $raw_response['response']['code'] == 200 ) {
1
  <?php
2
 
3
+ define( 'BNC_API_VERSION', '4.0' );
4
  define( 'BNC_API_URL', 'http://api.wptouch.com/v/' . BNC_API_VERSION );
5
+ define( 'BNC_API_TIMEOUT', 30 );
6
 
7
  require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
8
 
74
  );
75
 
76
  $this->attempts++;
77
+
78
+ WPTOUCH_DEBUG( WPTOUCH_INFO, 'Attempting to connect to URL: ' . $url );
79
  $raw_response = wp_remote_request( $url, $options );
80
  if ( !is_wp_error( $raw_response ) ) {
81
  if ( $raw_response['response']['code'] == 200 ) {
core/class-wptouch-pro.php CHANGED
@@ -170,6 +170,9 @@ class WPtouchProThree {
170
  add_action( 'wptouch_ajax_desktop_switch', array( &$this, 'handle_desktop_switch_ajax' ) );
171
 
172
  require_once( WPTOUCH_DIR . '/core/cloud-migrate.php' );
 
 
 
173
  }
174
 
175
  // Set up debug log
@@ -203,8 +206,6 @@ class WPtouchProThree {
203
  // This is where the main user-agent matching happens to determine module or non-mobile
204
  $this->analyze_user_agent_string();
205
 
206
- $this->set_cache_cookie();
207
-
208
  // We have a mobile device, so WPtouch Pro could potentially cache it or allow another app to cache
209
  if ( $this->is_mobile_device ) {
210
  WPTOUCH_DEBUG( WPTOUCH_INFO, 'User is viewing on a MOBILE device' );
@@ -595,7 +596,8 @@ class WPtouchProThree {
595
  'cloud_download_fail' => __( 'The item failed to download for this reason: %reason%', 'wptouch-pro' ),
596
  'remove_license' => __( 'You are about to reset your license information. Proceed?', 'wptouch-pro' ),
597
  'upload_complete' => __( 'Upload Complete!', 'wptouch-pro' ),
598
- 'upload_invalid' => __( 'Upload Failed: Not a valid image.', 'wptouch-pro' )
 
599
  );
600
 
601
  wp_enqueue_script( 'jquery-plugins', WPTOUCH_URL . '/admin/js/wptouch-admin-plugins.js', 'jquery', md5( WPTOUCH_VERSION ) );
@@ -691,14 +693,6 @@ class WPtouchProThree {
691
  $this->redirect_to_page( $this->get['redirect'] );
692
  }
693
 
694
- // Mobile support is only for clients, not the admin
695
- if ( is_admin() && !isset( $this->post[ 'wptouch_switch_location' ] ) ) {
696
- $this->is_mobile_device = false;
697
- $this->showing_mobile_theme = false;
698
-
699
- return;
700
- }
701
-
702
  $settings = $this->get_settings();
703
 
704
  // Settings are reloaded inside this function since themes can augment the user-agent data
@@ -731,11 +725,37 @@ class WPtouchProThree {
731
  // Filter to programmatically disable WPtouch Pro on a certain page
732
  $this->showing_mobile_theme = apply_filters( 'wptouch_should_show_mobile_theme', $this->showing_mobile_theme );
733
 
 
 
 
 
 
 
 
 
 
 
 
 
734
  if ( !$this->showing_mobile_theme ) {
735
  if ( $settings->switch_link_method == 'automatic' || $settings->switch_link_method == 'ajax' ) {
736
  add_action( 'wp_footer', array( &$this, 'show_desktop_switch_link' ) );
737
  }
738
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
739
  }
740
 
741
  function setup_mobile_theme_for_viewing() {
@@ -768,6 +788,8 @@ class WPtouchProThree {
768
  add_filter( 'stylesheet_directory', array( &$this, 'get_stylesheet_directory' ) );
769
  add_filter( 'stylesheet_directory_uri', array( &$this, 'get_stylesheet_directory_uri' ) );
770
 
 
 
771
  add_action( 'template_redirect', array( &$this, 'intercept_template' ), 1 );
772
 
773
  add_action( 'wptouch_pre_head', array( &$this, 'setup_theme_styles' ) );
@@ -2428,6 +2450,10 @@ class WPtouchProThree {
2428
  die;
2429
  }
2430
 
 
 
 
 
2431
  function handle_desktop_footer() {
2432
  if ( !is_feed() ) {
2433
  if ( defined( 'WPTOUCH_IS_FREE' ) ) {
@@ -2523,7 +2549,7 @@ class WPtouchProThree {
2523
  require_once( WPTOUCH_DIR . '/core/admin-settings.php' );
2524
  wptouch_settings_process( $this );
2525
 
2526
- //$this->delete_theme_add_on_cache();
2527
 
2528
  $new_settings = wptouch_get_settings();
2529
 
170
  add_action( 'wptouch_ajax_desktop_switch', array( &$this, 'handle_desktop_switch_ajax' ) );
171
 
172
  require_once( WPTOUCH_DIR . '/core/cloud-migrate.php' );
173
+
174
+ } else {
175
+ add_action( 'wp', array( &$this, 'set_cache_cookie' ) );
176
  }
177
 
178
  // Set up debug log
206
  // This is where the main user-agent matching happens to determine module or non-mobile
207
  $this->analyze_user_agent_string();
208
 
 
 
209
  // We have a mobile device, so WPtouch Pro could potentially cache it or allow another app to cache
210
  if ( $this->is_mobile_device ) {
211
  WPTOUCH_DEBUG( WPTOUCH_INFO, 'User is viewing on a MOBILE device' );
596
  'cloud_download_fail' => __( 'The item failed to download for this reason: %reason%', 'wptouch-pro' ),
597
  'remove_license' => __( 'You are about to reset your license information. Proceed?', 'wptouch-pro' ),
598
  'upload_complete' => __( 'Upload Complete!', 'wptouch-pro' ),
599
+ 'upload_invalid' => __( 'Upload Failed: Not a valid image.', 'wptouch-pro' ),
600
+ 'open_theme_demo' => __( 'Click to view theme demo', 'wptouch-pro' ),
601
  );
602
 
603
  wp_enqueue_script( 'jquery-plugins', WPTOUCH_URL . '/admin/js/wptouch-admin-plugins.js', 'jquery', md5( WPTOUCH_VERSION ) );
693
  $this->redirect_to_page( $this->get['redirect'] );
694
  }
695
 
 
 
 
 
 
 
 
 
696
  $settings = $this->get_settings();
697
 
698
  // Settings are reloaded inside this function since themes can augment the user-agent data
725
  // Filter to programmatically disable WPtouch Pro on a certain page
726
  $this->showing_mobile_theme = apply_filters( 'wptouch_should_show_mobile_theme', $this->showing_mobile_theme );
727
 
728
+ // Mobile support is only for clients, not the admin
729
+ $force_mobile_ajax = false;
730
+ if ( apply_filters( 'wptouch_force_mobile_ajax', false ) && $this->is_mobile_device && $this->showing_mobile_theme ) {
731
+ $force_mobile_ajax = true;
732
+ }
733
+
734
+ if ( is_admin() && !$force_mobile_ajax && !isset( $this->post[ 'wptouch_switch_location' ] ) ) {
735
+ $this->is_mobile_device = false;
736
+ $this->showing_mobile_theme = false;
737
+ return;
738
+ }
739
+
740
  if ( !$this->showing_mobile_theme ) {
741
  if ( $settings->switch_link_method == 'automatic' || $settings->switch_link_method == 'ajax' ) {
742
  add_action( 'wp_footer', array( &$this, 'show_desktop_switch_link' ) );
743
  }
744
  }
745
+
746
+ add_filter( 'response_modify_cache_key', array( &$this, 'modify_response_key' ) );
747
+ }
748
+
749
+ function modify_response_key( $current_key ) {
750
+ if ( $this->is_mobile_device ) {
751
+ if ( $this->showing_mobile_theme ) {
752
+ return md5( $current_key . 'MobileOnMobile' );
753
+ } else {
754
+ return md5( $current_key . 'DesktopOnMobile' );
755
+ }
756
+ } else {
757
+ return $current_key;
758
+ }
759
  }
760
 
761
  function setup_mobile_theme_for_viewing() {
788
  add_filter( 'stylesheet_directory', array( &$this, 'get_stylesheet_directory' ) );
789
  add_filter( 'stylesheet_directory_uri', array( &$this, 'get_stylesheet_directory_uri' ) );
790
 
791
+ add_filter( 'wp_get_attachment_url', array( &$this, 'https_for_ssl' ) );
792
+
793
  add_action( 'template_redirect', array( &$this, 'intercept_template' ), 1 );
794
 
795
  add_action( 'wptouch_pre_head', array( &$this, 'setup_theme_styles' ) );
2450
  die;
2451
  }
2452
 
2453
+ function https_for_ssl( $content ) {
2454
+ return wptouch_check_url_ssl( $content );
2455
+ }
2456
+
2457
  function handle_desktop_footer() {
2458
  if ( !is_feed() ) {
2459
  if ( defined( 'WPTOUCH_IS_FREE' ) ) {
2549
  require_once( WPTOUCH_DIR . '/core/admin-settings.php' );
2550
  wptouch_settings_process( $this );
2551
 
2552
+ $this->delete_theme_add_on_cache();
2553
 
2554
  $new_settings = wptouch_get_settings();
2555
 
core/config.php CHANGED
@@ -34,6 +34,7 @@ define( 'WPTOUCH_COOKIE', 'wptouch-pro-view' );
34
  define( 'WPTOUCH_CACHE_COOKIE', 'wptouch-pro-cache-state' );
35
 
36
  function wptouch_check_url_ssl( $ssl_string ) {
 
37
  if ( isset( $_SERVER['HTTPS'] ) && ( $_SERVER['HTTPS'] === "on" ) ) {
38
  return str_replace( 'http://', 'https://', $ssl_string );
39
  } else {
@@ -86,8 +87,14 @@ define( 'WPTOUCH_PRO_README_FILE', 'http://www.wptouch.com/wptouch-pro-3/readme.
86
 
87
  define( 'ADDON_SETTING_DOMAIN', 'addons' );
88
 
89
- define( 'WPTOUCH_API_GENERAL_CACHE_TIME', 3600 );
90
- define( 'WPTOUCH_API_CHECK_INTERVAL', 600 );
91
  define( 'WPTOUCH_THEME_ADDON_TRANSIENT_TIME', 600 );
92
 
 
 
 
 
 
 
93
  require_once( 'mobile-user-agents.php' );
34
  define( 'WPTOUCH_CACHE_COOKIE', 'wptouch-pro-cache-state' );
35
 
36
  function wptouch_check_url_ssl( $ssl_string ) {
37
+
38
  if ( isset( $_SERVER['HTTPS'] ) && ( $_SERVER['HTTPS'] === "on" ) ) {
39
  return str_replace( 'http://', 'https://', $ssl_string );
40
  } else {
87
 
88
  define( 'ADDON_SETTING_DOMAIN', 'addons' );
89
 
90
+ define( 'WPTOUCH_API_GENERAL_CACHE_TIME', 1800 );
91
+
92
  define( 'WPTOUCH_THEME_ADDON_TRANSIENT_TIME', 600 );
93
 
94
+ if ( defined( 'WPTOUCH_IS_FREE' ) ) {
95
+ define( 'WPTOUCH_API_CHECK_INTERVAL', 43200 );
96
+ } else {
97
+ define( 'WPTOUCH_API_CHECK_INTERVAL', 1500 );
98
+ }
99
+
100
  require_once( 'mobile-user-agents.php' );
core/theme.php CHANGED
@@ -403,7 +403,7 @@ function wptouch_use_jquery_2() {
403
  $settings = wptouch_get_settings();
404
  if ( $settings->use_jquery_2 == true && !is_admin() ) {
405
  wp_deregister_script( 'jquery' );
406
- wp_register_script( 'jquery', 'http://code.jquery.com/jquery-2.1.1.min.js', false, '2.1.1', 1 );
407
  wp_enqueue_script( 'jquery' );
408
  }
409
  }
403
  $settings = wptouch_get_settings();
404
  if ( $settings->use_jquery_2 == true && !is_admin() ) {
405
  wp_deregister_script( 'jquery' );
406
+ wp_register_script( 'jquery', '//code.jquery.com/jquery-2.1.1.min.js', false, '2.1.1', 1 );
407
  wp_enqueue_script( 'jquery' );
408
  }
409
  }
include/js/wptouch.js CHANGED
@@ -1,14 +1,14 @@
1
  /* WPtouch Basic Client-side Ajax Routines */
2
- function WPtouchAjax( actionName, actionParams, callback ) {
3
  var ajaxData = {
4
  action: "wptouch_client_ajax",
5
  wptouch_action: actionName,
6
  wptouch_nonce: WPtouch.security_nonce
7
  };
8
-
9
  for ( name in actionParams ) { ajaxData[name] = actionParams[name]; }
10
 
11
  jQuery.post( WPtouch.ajaxurl, ajaxData, function( result ) {
12
- callback( result );
13
- });
14
  }
1
  /* WPtouch Basic Client-side Ajax Routines */
2
+ function WPtouchAjax( actionName, actionParams, callback ) {
3
  var ajaxData = {
4
  action: "wptouch_client_ajax",
5
  wptouch_action: actionName,
6
  wptouch_nonce: WPtouch.security_nonce
7
  };
8
+
9
  for ( name in actionParams ) { ajaxData[name] = actionParams[name]; }
10
 
11
  jQuery.post( WPtouch.ajaxurl, ajaxData, function( result ) {
12
+ callback( result );
13
+ });
14
  }
lang/wptouch-pro-sk_SK.pot ADDED
@@ -0,0 +1,2335 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2014 WPtouch Mobile Plugin
2
+ # This file is distributed under the same license as the WPtouch Mobile Plugin package.
3
+ # Translators:
4
+ # Michal Vittek <miso.par1c@gmail.com>, 2014
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: WPtouch Mobile Plugin\n"
8
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/wptouch\n"
9
+ "POT-Creation-Date: 2014-08-27 19:55:06+00:00\n"
10
+ "PO-Revision-Date: 2014-09-05 09:52+0100\n"
11
+ "Last-Translator: Michal Vittek <michal.vittek@wp.sk>\n"
12
+ "Language-Team: Slovak (http://www.transifex.com/projects/p/wptouch-mobile-"
13
+ "plugin/language/sk/)\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Language: sk\n"
18
+ "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
19
+ "X-Generator: Poedit 1.6.7\n"
20
+
21
+ #: admin/html/help.php:1
22
+ msgid "WPtouch Help & Account Links"
23
+ msgstr "Pomoc s WPtouch a Odkazy účtov"
24
+
25
+ #: admin/html/help.php:3
26
+ msgid "Support Forums"
27
+ msgstr "Fóra podpory"
28
+
29
+ #: admin/html/help.php:4
30
+ msgid "Documentation"
31
+ msgstr "Dokumentácia"
32
+
33
+ #: admin/html/help.php:5
34
+ msgid "Account & Downloads"
35
+ msgstr "Účty a stiahnutia"
36
+
37
+ #: admin/html/help.php:6
38
+ msgid "BraveNewCode on Twitter"
39
+ msgstr "BraveNewCode na Twitteri"
40
+
41
+ #: admin/html/help.php:7
42
+ msgid "Plugin Licensing Terms"
43
+ msgstr "Licenčné podmienky modulu"
44
+
45
+ #: admin/html/notification-center.php:6
46
+ msgid "What's in WPtouch Pro?"
47
+ msgstr "Čo obsahuje WPtouch Pro?"
48
+
49
+ #: admin/html/notification-center.php:10
50
+ msgid "Notifications"
51
+ msgstr "Oznámenia"
52
+
53
+ #: admin/html/notification-content.php:20
54
+ msgid "No notifications"
55
+ msgstr "Žiadne oznámenia"
56
+
57
+ #: admin/html/plugin-area.php:9
58
+ msgid ""
59
+ "A new product version (%s) is available. %sRenew your license%s to download "
60
+ "this update and receive additional product support."
61
+ msgstr ""
62
+ "Je dostupný nová verzia produktu (%s). Pre získanie aktualizácie a popdory, "
63
+ "prosím %sobnovte si licenciu%s."
64
+
65
+ #: admin/html/plugin-area.php:11
66
+ msgid ""
67
+ "A new product version (%s) is available. Please %sactivate your license%s, "
68
+ "or %spurchase a new license%s to enable updates and full product support."
69
+ msgstr ""
70
+ "Je dostupný nová verzia produktu (%s). Pre získanie aktualizácie a popdory, "
71
+ "prosím %saktivujte si licenciu%s alebo %ssi ju zakúpte%s."
72
+
73
+ #: admin/pages/custom/wptouch-admin-license.php:9
74
+ msgid "License Details"
75
+ msgstr "Licenčné podrobnosti"
76
+
77
+ #: admin/pages/custom/wptouch-admin-license.php:11
78
+ msgid "Note"
79
+ msgstr "Poznámka"
80
+
81
+ #: admin/pages/custom/wptouch-admin-license.php:12
82
+ msgid "Once you activate, this page will be hidden."
83
+ msgstr "Táto stránka bude po aktivácii modulu schovaná."
84
+
85
+ #: admin/pages/custom/wptouch-admin-license.php:15
86
+ msgid "It will only reappear if you reset your WPtouch Pro settings."
87
+ msgstr "Znova sa zobrazí, iba ak obnovíte základné nastavenia WPtouch Pro."
88
+
89
+ #: admin/pages/custom/wptouch-admin-license.php:18
90
+ msgid "Account E-Mail Address"
91
+ msgstr "Emailová adresa účtu"
92
+
93
+ #: admin/pages/custom/wptouch-admin-license.php:19
94
+ msgid "Product License Key"
95
+ msgstr "Licenčný kľúč produktu"
96
+
97
+ #: admin/pages/custom/wptouch-admin-license.php:23
98
+ msgid "Renew License"
99
+ msgstr "Obnoviť licenciu"
100
+
101
+ #: admin/pages/custom/wptouch-admin-license.php:25
102
+ #: admin/settings/html/extension-browser-item.php:89
103
+ #: admin/settings/html/theme-browser-item.php:129
104
+ msgid "Activate"
105
+ msgstr "Aktivovať"
106
+
107
+ #: admin/pages/custom/wptouch-admin-license.php:28
108
+ msgid "Clear License"
109
+ msgstr "Vymazať licenciu"
110
+
111
+ #: admin/pages/custom/wptouch-admin-license.php:39
112
+ msgid "Success."
113
+ msgstr "Úspech."
114
+
115
+ #: admin/pages/custom/wptouch-admin-license.php:40
116
+ msgid "Activation Complete. Enjoy WPtouch Pro!"
117
+ msgstr "Aktivácia kompletná. Užite si WPtouch Pro!"
118
+
119
+ #: admin/pages/custom/wptouch-admin-license.php:44
120
+ msgid "E-mail address or license key rejected"
121
+ msgstr "Bol odmietnutý email alebo licenčný kľúč"
122
+
123
+ #: admin/pages/custom/wptouch-admin-license.php:45
124
+ msgid ""
125
+ "The wptouch.com server rejected your E-Mail address and/or License Key. "
126
+ "Please check they are correct and try again."
127
+ msgstr ""
128
+ "wptouch.com odmietol váš email alebo licenčný kľúč. Prosím skontrolujte ich "
129
+ "a skúste to znova."
130
+
131
+ #: admin/pages/custom/wptouch-admin-license.php:49
132
+ msgid "Your license has expired."
133
+ msgstr "Vaša licencia vypršala"
134
+
135
+ #: admin/pages/custom/wptouch-admin-license.php:50
136
+ msgid ""
137
+ "%sRenew your license%s to continue to receive product updates and support."
138
+ msgstr "Prepokračovanie podpory a aktualizácii si%sobnovte vašu licenciu%s."
139
+
140
+ #: admin/pages/custom/wptouch-admin-license.php:54
141
+ msgid "No licenses remaining."
142
+ msgstr "Nezostáva žiadna licencia"
143
+
144
+ #: admin/pages/custom/wptouch-admin-license.php:55
145
+ msgid "You have used all your activations. What do you want to do?"
146
+ msgstr "Použili ste všetky aktivácie. Čo chcete robiť?"
147
+
148
+ #: admin/pages/custom/wptouch-admin-license.php:56
149
+ msgid "Upgrade My License"
150
+ msgstr "Zmeniť licenciu"
151
+
152
+ #: admin/pages/custom/wptouch-admin-license.php:57
153
+ msgid "Contact support for assistance"
154
+ msgstr "Kontaktovať podporu"
155
+
156
+ #: admin/pages/custom/wptouch-admin-license.php:61
157
+ msgid "The server is unavailable."
158
+ msgstr "Server nie je dostupný."
159
+
160
+ #: admin/pages/custom/wptouch-admin-license.php:62
161
+ msgid "The wptouch.com server currently cannot authorize your License."
162
+ msgstr "Server wptouch.com práve nemôže overiť vašu licenciu."
163
+
164
+ #: admin/pages/custom/wptouch-admin-license.php:63
165
+ msgid "Please %scontact us%s and let us know about it."
166
+ msgstr "Prosím %skontaktujte nás%s."
167
+
168
+ #: admin/pages/wptouch-admin-general-settings.php:3 core/admin-menu.php:17
169
+ #: themes/foundation/root-functions.php:10
170
+ msgid "General"
171
+ msgstr "Hlavné"
172
+
173
+ #: admin/pages/wptouch-admin-general-settings.php:4
174
+ msgid "Compatibility"
175
+ msgstr "Kompatibilita"
176
+
177
+ #: admin/pages/wptouch-admin-general-settings.php:10
178
+ msgid "Auto-detect"
179
+ msgstr "Zistiť automaticky"
180
+
181
+ #: admin/pages/wptouch-admin-general-settings.php:47
182
+ msgid "WPtouch Pro site title"
183
+ msgstr "Názov stránky WPtouch Pro"
184
+
185
+ #: admin/pages/wptouch-admin-general-settings.php:48
186
+ msgid ""
187
+ "If the title of your site is long, you can shorten it for display within "
188
+ "WPtouch Pro themes."
189
+ msgstr "Ak je názov stránky príliš dlhý, môžete ho skrátiť vo WPtouch Pro téme"
190
+
191
+ #: admin/pages/wptouch-admin-general-settings.php:55
192
+ msgid "Display %sPowered by WPtouch Pro%s in footer"
193
+ msgstr "Zobraziť v pätičke %sPoháňa WPtouch Pro%s"
194
+
195
+ #: admin/pages/wptouch-admin-general-settings.php:66
196
+ msgid "Use my WPtouch Pro referral code to earn commission"
197
+ msgstr "Použiť affiliate kód WPtouch Pro"
198
+
199
+ #: admin/pages/wptouch-admin-general-settings.php:67
200
+ msgid ""
201
+ "Licensed users of WPtouch Pro can earn a commission for each sale they "
202
+ "generate from their mobile website"
203
+ msgstr ""
204
+ "Licencovaný používatelia WPtouch Pro získavajú odmeny za každý predaj "
205
+ "pomocou ich mobilnej stránky."
206
+
207
+ #: admin/pages/wptouch-admin-general-settings.php:75
208
+ msgid "Site Title & Byline"
209
+ msgstr "Názov stránky a slogan"
210
+
211
+ #: admin/pages/wptouch-admin-general-settings.php:84
212
+ msgid "Regionalization"
213
+ msgstr "Regionalizácia"
214
+
215
+ #: admin/pages/wptouch-admin-general-settings.php:90
216
+ msgid "Language"
217
+ msgstr "Jazyk"
218
+
219
+ #: admin/pages/wptouch-admin-general-settings.php:91
220
+ msgid ""
221
+ "The WPtouch Pro admin panel &amp; supported themes will be shown in this "
222
+ "locale."
223
+ msgstr ""
224
+ "Podporované témy administračného panela WPtouch Pro budú zobrazené v tomto "
225
+ "jazyku."
226
+
227
+ #: admin/pages/wptouch-admin-general-settings.php:99
228
+ msgid "Translate administration panel text"
229
+ msgstr "Preložiť text administračného panela"
230
+
231
+ #: admin/pages/wptouch-admin-general-settings.php:110
232
+ msgid "Display Mode"
233
+ msgstr "Mód zobrazenia"
234
+
235
+ #: admin/pages/wptouch-admin-general-settings.php:116
236
+ msgid "Theme Display"
237
+ msgstr "Zobrazenie témy"
238
+
239
+ #: admin/pages/wptouch-admin-general-settings.php:121
240
+ msgid "Normal (active for all mobile visitors)"
241
+ msgstr "Normálne (aktívna pre všetkých návštevníkov s mobilnými zariadeniami)"
242
+
243
+ #: admin/pages/wptouch-admin-general-settings.php:122
244
+ msgid "Preview (active only for logged-in site administrators)"
245
+ msgstr "Náhľad (aktívna iba pre administrátorov s mobilnými zariadeniami)"
246
+
247
+ #: admin/pages/wptouch-admin-general-settings.php:123
248
+ msgid "Disabled (mobile theme will never show)"
249
+ msgstr "Vypnuté (mobilná téma nie je zobrazovaná)"
250
+
251
+ #: admin/pages/wptouch-admin-general-settings.php:132
252
+ msgid "Landing Page"
253
+ msgstr "Landing page"
254
+
255
+ #: admin/pages/wptouch-admin-general-settings.php:138
256
+ msgid "WPtouch Pro landing page"
257
+ msgstr "Landing page WPtouch Pro"
258
+
259
+ #: admin/pages/wptouch-admin-general-settings.php:143
260
+ msgid "Default (same as WordPress)"
261
+ msgstr "Základná (zhodná s WordPress)"
262
+
263
+ #: admin/pages/wptouch-admin-general-settings.php:144
264
+ msgid "Select from WordPress pages"
265
+ msgstr "Vyberte zo stránok WordPress"
266
+
267
+ #: admin/pages/wptouch-admin-general-settings.php:145
268
+ msgctxt "Refers to a custom landing page"
269
+ msgid "Custom"
270
+ msgstr "Vlastná"
271
+
272
+ #: admin/pages/wptouch-admin-general-settings.php:152
273
+ msgid "Custom Slug or URL"
274
+ msgstr "Vlastný slug alebo URL adresa"
275
+
276
+ #: admin/pages/wptouch-admin-general-settings.php:153
277
+ msgid "Enter a Slug (i.e. \"/home\") or a full URL path"
278
+ msgstr "Zadajte slug (napr. \"/home\") alebo celú URL adresu"
279
+
280
+ #: admin/pages/wptouch-admin-general-settings.php:163
281
+ msgid "Desktop / Mobile Switching"
282
+ msgstr "Prepnutie zobrazenia normálne/mobilné"
283
+
284
+ #: admin/pages/wptouch-admin-general-settings.php:169
285
+ msgid "1st time visitors see desktop theme"
286
+ msgstr "Návštevník prvý krát uvidí normálnu tému"
287
+
288
+ #: admin/pages/wptouch-admin-general-settings.php:170
289
+ msgid "Your regular theme will be shown to 1st time mobile visitors."
290
+ msgstr "Normálna téma bude zobrazená prvý krát aj mobilným používateľom."
291
+
292
+ #: admin/pages/wptouch-admin-general-settings.php:177
293
+ msgid "Show switch link in mobile view"
294
+ msgstr "Zobrazte odkaz na prepnutie do mobilného zobrazenia"
295
+
296
+ #: admin/pages/wptouch-admin-general-settings.php:178
297
+ msgid ""
298
+ "Will show toggle buttons in the theme's footer allowing users to switch to "
299
+ "your desktop theme. Is not shown in Web-App Mode."
300
+ msgstr ""
301
+ "Zobrazí tlačidlá v pätičke na prepnutie mobilnej témy. Nebudú zobrazené v "
302
+ "móde Web-App."
303
+
304
+ #: admin/pages/wptouch-admin-general-settings.php:185
305
+ msgid "Choose the target for the mobile switch link"
306
+ msgstr "Vyberte cielový odkaz prepínača na mobilnú tému"
307
+
308
+ #: admin/pages/wptouch-admin-general-settings.php:190
309
+ msgid "Current page"
310
+ msgstr "Aktuálna stránka"
311
+
312
+ #: admin/pages/wptouch-admin-general-settings.php:191
313
+ msgid "Home page"
314
+ msgstr "Domáca stránka"
315
+
316
+ #: admin/pages/wptouch-admin-general-settings.php:197
317
+ msgid "Desktop theme switch buttons"
318
+ msgstr "Tlačidlá na prepnutie normálnej témy"
319
+
320
+ #: admin/pages/wptouch-admin-general-settings.php:198
321
+ msgid ""
322
+ "Allows visitors to switch from your desktop theme to your mobile theme. You "
323
+ "can also customize the placement of Switch buttons by placing the "
324
+ "wptouch_desktop_switch_link() template tag somewhere in your desktop theme."
325
+ msgstr ""
326
+ "Dovolí návštevníkom z normálnou témou si prezrieť mobilnú tému. Tiež si "
327
+ "môžete upraviť umiestnenie prepínacích tlačidiel. Zobrazia sa tam kde "
328
+ "vložíte kód:wptouch_desktop_switch_link() "
329
+
330
+ #: admin/pages/wptouch-admin-general-settings.php:202
331
+ msgid "Automatically inserted inline"
332
+ msgstr "Automatické vloženie do riadku"
333
+
334
+ #: admin/pages/wptouch-admin-general-settings.php:203
335
+ msgid "Automatically inserted with AJAX (better for caching)"
336
+ msgstr "Automaticky vložené pomocou AJAX (pre lepšie ukladanie do medzipamäti)"
337
+
338
+ #: admin/pages/wptouch-admin-general-settings.php:204
339
+ msgid "Template tag"
340
+ msgstr "Šablóna značky"
341
+
342
+ #: admin/pages/wptouch-admin-general-settings.php:213
343
+ msgid "Custom Code"
344
+ msgstr "Vlastný kód"
345
+
346
+ #: admin/pages/wptouch-admin-general-settings.php:219
347
+ msgid "HTML, JavaScript, statistics or custom code"
348
+ msgstr "HTML, JavaScript, štatistiky a iné vlastné kódy"
349
+
350
+ #: admin/pages/wptouch-admin-general-settings.php:220
351
+ msgid "Enter any custom code here to be output in the theme footer."
352
+ msgstr "Zadajte vlastný kód, ktorý sa má nachádzať v pätičke stránky."
353
+
354
+ #: admin/pages/wptouch-admin-general-settings.php:230
355
+ msgid "Custom Stylesheet"
356
+ msgstr "CSS"
357
+
358
+ #: admin/pages/wptouch-admin-general-settings.php:236
359
+ msgid "URL to a custom CSS file to load"
360
+ msgstr "URL adresa na nahranie vlastného CSS súbora"
361
+
362
+ #: admin/pages/wptouch-admin-general-settings.php:237
363
+ msgid "Useful if you have specific compatibility CSS you need to add."
364
+ msgstr "Zadajte ak potrebujete pridať spätnú kompatibilitu s CSS."
365
+
366
+ #: admin/pages/wptouch-admin-general-settings.php:247
367
+ msgid "Shortcodes"
368
+ msgstr "Krátke kódy"
369
+
370
+ #: admin/pages/wptouch-admin-general-settings.php:253
371
+ msgid "Remove these shortcodes when WPtouch Pro is active"
372
+ msgstr "Ak je aktívne WPtouch Pro, tieto krátke kódy sa odstránia"
373
+
374
+ #: admin/pages/wptouch-admin-general-settings.php:254
375
+ msgid "Enter a comma separated list of shortcodes to remove."
376
+ msgstr "Zadajte zoznam krátkych kódov, oddelených čiarkou."
377
+
378
+ #: admin/pages/wptouch-admin-general-settings.php:264
379
+ msgid "Ignored URLs"
380
+ msgstr "Ignorované URL adresy"
381
+
382
+ #: admin/pages/wptouch-admin-general-settings.php:270
383
+ msgid "Do not load WPtouch Pro on these URLs/Pages"
384
+ msgstr "Nenahrávať WPtouch Pro na týchto URL odkazoch/stránkach"
385
+
386
+ #: admin/pages/wptouch-admin-general-settings.php:271
387
+ msgid ""
388
+ "Each permalink URL fragment should be on its own line and relative, e.g. \"/"
389
+ "about\" or \"/products/store\""
390
+ msgstr ""
391
+ "Každý trvalý odkaz by mal byť na vlastnom riadku a mal by byť relatívny. "
392
+ "Napr. \"/kontakt\" or \"/produkty/obchod\""
393
+
394
+ #: admin/pages/wptouch-admin-general-settings.php:281
395
+ msgid "Desktop Theme"
396
+ msgstr "Normálna téma"
397
+
398
+ #: admin/pages/wptouch-admin-general-settings.php:287
399
+ msgid "Try to include desktop theme functions.php file"
400
+ msgstr "Pokúste sa zahrnúť normálnu tému do súboru functions.php"
401
+
402
+ #: admin/pages/wptouch-admin-general-settings.php:288
403
+ msgid ""
404
+ "This may be required for desktop themes with unique features that are not "
405
+ "showing when WPtouch Pro is active."
406
+ msgstr ""
407
+ "Toto je potrebné ak sa niektoré vlastnosti témy nezobrazujú po aktivácii "
408
+ "WPtouch Pro."
409
+
410
+ #: admin/pages/wptouch-admin-general-settings.php:295
411
+ msgid "Method to load file"
412
+ msgstr "Metóda nahrania do súboru"
413
+
414
+ #: admin/pages/wptouch-admin-general-settings.php:300
415
+ msgid "Include file directly"
416
+ msgstr "Zahrnúť súbor priamo"
417
+
418
+ #: admin/pages/wptouch-admin-general-settings.php:301
419
+ msgid "Translate and create new files"
420
+ msgstr "Preložiť a vytvoriť nové súbory"
421
+
422
+ #: admin/pages/wptouch-admin-general-settings.php:310
423
+ msgid "Custom User-Agents"
424
+ msgstr "Vlastné User-Agents"
425
+
426
+ #: admin/pages/wptouch-admin-general-settings.php:316
427
+ msgid "User-agents (line separated)"
428
+ msgstr "User-agents (oddelené riadkami)"
429
+
430
+ #: admin/pages/wptouch-admin-general-settings.php:317
431
+ msgid ""
432
+ "Adding additional user-agents will force WPtouch Pro to be active for "
433
+ "matching browsers."
434
+ msgstr ""
435
+ "Pridanie dodatočných user-agent aktivuje WPtouch Pro pre podporované "
436
+ "prehliadače,"
437
+
438
+ #: admin/pages/wptouch-admin-general-settings.php:331
439
+ msgid "Backup &amp; Import"
440
+ msgstr "Záloha a Import"
441
+
442
+ #: admin/pages/wptouch-admin-general-settings.php:337
443
+ msgid "Automatically backup settings to the %s folder"
444
+ msgstr "Automaticky zálohovať nastavenia súboru %s"
445
+
446
+ #: admin/pages/wptouch-admin-general-settings.php:339
447
+ msgid "WPtouch Pro backups your settings each time they are saved."
448
+ msgstr "WPtouch Pro zálohuje zmenu nastavení po každom uložení."
449
+
450
+ #: admin/pages/wptouch-admin-general-settings.php:352
451
+ msgid "Tools &amp; Debug"
452
+ msgstr "Nastavenia a ladenie chýb"
453
+
454
+ #: admin/pages/wptouch-admin-general-settings.php:358
455
+ msgid ""
456
+ "Use jQuery 2.x in themes (faster for mobile devices) instead of WordPress' "
457
+ "version"
458
+ msgstr ""
459
+ "V témach použiť jQuery 2.x miesto verize WordPress (je rýchlejsšia pre "
460
+ "mobilné zariadenia)"
461
+
462
+ #: admin/pages/wptouch-admin-general-settings.php:359
463
+ msgid ""
464
+ "jQuery 2.x is significantly smaller and faster than previous jQuery versions "
465
+ "- may cause problems with other plugins, use carefully."
466
+ msgstr ""
467
+ "jQuery 2.x je významne rýchlejšia než predchádzajúce verzie jQuery - môže "
468
+ "však spôsobovať problémy s inými modulmi."
469
+
470
+ #: admin/pages/wptouch-admin-general-settings.php:366
471
+ msgid "Show load times and query counts in the footer"
472
+ msgstr "Zobraziť v pätičke čas načítavania a počet query"
473
+
474
+ #: admin/pages/wptouch-admin-general-settings.php:367
475
+ msgid "Helps you find slow pages/posts on your site."
476
+ msgstr "Pomáha nájsť pomalé stránky/články na vašej stránke."
477
+
478
+ #: admin/pages/wptouch-admin-general-settings.php:374
479
+ msgid "Enable debug log"
480
+ msgstr "Povoliť záznam módu ladenia chýb"
481
+
482
+ #: admin/pages/wptouch-admin-general-settings.php:375
483
+ msgid "Creates a debug file to help diagnose installation issues."
484
+ msgstr "Vytvorí súbor ladenia chýb pri problémoch s inštaláciou."
485
+
486
+ #: admin/pages/wptouch-admin-general-settings.php:386
487
+ msgid "WordPress Plugins"
488
+ msgstr "Moduly WordPress"
489
+
490
+ #: admin/pages/wptouch-admin-general-settings.php:399
491
+ msgid "Admin Mode"
492
+ msgstr "Administrátorský mód"
493
+
494
+ #: admin/pages/wptouch-admin-general-settings.php:405
495
+ msgid "Admin panel settings shown"
496
+ msgstr "Sú zobrazené nastavenia administrátorského panela"
497
+
498
+ #: admin/pages/wptouch-admin-general-settings.php:410
499
+ msgid "Default"
500
+ msgstr "Základné"
501
+
502
+ #: admin/pages/wptouch-admin-general-settings.php:411
503
+ #: admin/settings/html/button.php:5 admin/settings/html/checkbox.php:6
504
+ #: admin/settings/html/custom-latest-posts.php:4
505
+ #: admin/settings/html/list.php:16 admin/settings/html/numeric.php:12
506
+ #: admin/settings/html/post_type.php:13 admin/settings/html/radiolist.php:13
507
+ #: admin/settings/html/text.php:8 admin/settings/html/textarea.php:9
508
+ msgid "Advanced"
509
+ msgstr "Pokročilé"
510
+
511
+ #: admin/pages/wptouch-admin-menus.php:3
512
+ msgid "Theme Menus"
513
+ msgstr "Menu témy"
514
+
515
+ #: admin/pages/wptouch-admin-menus.php:4
516
+ msgid "Menu Setup"
517
+ msgstr "Nastavenie menu"
518
+
519
+ #: admin/pages/wptouch-admin-menus.php:5
520
+ msgid "Icon Upload & Sets"
521
+ msgstr "Nahranie ikoniek a sady ikoniek"
522
+
523
+ #: admin/pages/wptouch-admin-menus.php:22
524
+ msgid "WordPress Pages"
525
+ msgstr "Stránky WordPress"
526
+
527
+ #: admin/pages/wptouch-admin-menus.php:28
528
+ #: admin/settings/html/icon_menu_area.php:6
529
+ #: themes/foundation/modules/advertising/advertising.php:29
530
+ #: themes/foundation/modules/media/media.php:59
531
+ msgid "None"
532
+ msgstr "Žiadne"
533
+
534
+ #: admin/pages/wptouch-admin-menus.php:66
535
+ msgid "Menu Options"
536
+ msgstr "Nastavenia menu"
537
+
538
+ #: admin/pages/wptouch-admin-menus.php:72
539
+ msgid "Enable parent items as links"
540
+ msgstr "Povoliť nadradené položky ako odkazy"
541
+
542
+ #: admin/pages/wptouch-admin-menus.php:73
543
+ msgid "If disabled, parent menu items will only toggle child items."
544
+ msgstr "Ak je vypnuté menu nadradených položiek zobrazí iba odvodené položky."
545
+
546
+ #: admin/pages/wptouch-admin-menus.php:80
547
+ msgid "Use menu icons"
548
+ msgstr "Použiť ikonky menu"
549
+
550
+ #: admin/pages/wptouch-admin-menus.php:104
551
+ msgid "Icon Upload"
552
+ msgstr "Nahranie ikoniek"
553
+
554
+ #: admin/pages/wptouch-admin-menus.php:117
555
+ msgid "Uploaded Icons"
556
+ msgstr "Nahrané ikonky"
557
+
558
+ #: admin/pages/wptouch-admin-menus.php:130
559
+ msgid "Icon Sets"
560
+ msgstr "Sady ikoniek"
561
+
562
+ #: admin/pages/wptouch-admin-themes-and-addons.php:3
563
+ msgid "Themes"
564
+ msgstr "Témy"
565
+
566
+ #: admin/pages/wptouch-admin-themes-and-addons.php:4
567
+ msgid "Extensions"
568
+ msgstr "Rozšírenia"
569
+
570
+ #: admin/pages/wptouch-admin-touchboard.php:3 core/admin-menu.php:35
571
+ #: core/admin-menu.php:39
572
+ msgid "What's New"
573
+ msgstr "Čo je nové"
574
+
575
+ #: admin/settings/html/backup.php:1
576
+ msgid "Download Backup File"
577
+ msgstr "Stiahnuť súbor s zálohami"
578
+
579
+ #: admin/settings/html/backup.php:2
580
+ msgid "Restore Backup File"
581
+ msgstr "Obnoviť súbor s zálohami"
582
+
583
+ #: admin/settings/html/button.php:6 admin/settings/html/checkbox.php:7
584
+ #: admin/settings/html/custom-latest-posts.php:8
585
+ #: admin/settings/html/list.php:20 admin/settings/html/numeric.php:16
586
+ #: admin/settings/html/post_type.php:14 admin/settings/html/radiolist.php:15
587
+ #: admin/settings/html/text.php:9 admin/settings/html/textarea.php:10
588
+ msgid "New"
589
+ msgstr "Nové"
590
+
591
+ #: admin/settings/html/color.php:6
592
+ msgid "Undo"
593
+ msgstr "Späť"
594
+
595
+ #: admin/settings/html/color.php:7
596
+ msgid "Desktop theme colors"
597
+ msgstr "Farby normálnej témy"
598
+
599
+ #: admin/settings/html/color.php:7
600
+ msgid "Palette"
601
+ msgstr "Paleta"
602
+
603
+ #: admin/settings/html/custom-latest-posts.php:1
604
+ msgid "Custom latest posts page"
605
+ msgstr "Vlastná stránka posledných príspevkov"
606
+
607
+ #: admin/settings/html/custom_icon_management.php:3
608
+ msgid "No icons have been uploaded yet"
609
+ msgstr "Neboli nahrané žiadne ikonky"
610
+
611
+ #: admin/settings/html/custom_icon_management.php:12
612
+ #: admin/settings/html/image-upload.php:13
613
+ #: admin/settings/html/theme-browser-item.php:137
614
+ msgid "Delete"
615
+ msgstr "Vymazať"
616
+
617
+ #: admin/settings/html/custom_icon_upload.php:3
618
+ msgid "Upload Icon"
619
+ msgstr "Nahrať ikonu"
620
+
621
+ #: admin/settings/html/custom_icon_upload.php:4
622
+ #: admin/settings/html/image-upload.php:15
623
+ msgid "Upload Complete!"
624
+ msgstr "Nahranie hotové!"
625
+
626
+ #: admin/settings/html/custom_icon_upload.php:9
627
+ msgid "Ready to upload"
628
+ msgstr "Pripravený na nahranie"
629
+
630
+ #: admin/settings/html/debuginfo.php:12
631
+ msgid "View Debug File"
632
+ msgstr "Zobraziť súbor módu ladenia chýb"
633
+
634
+ #: admin/settings/html/debuginfo.php:16 admin/settings/html/debuginfo.php:18
635
+ msgid "Your Server Configuration"
636
+ msgstr "Nastavenia vášho servera"
637
+
638
+ #: admin/settings/html/extension-browser-item.php:37
639
+ #: admin/settings/html/theme-browser-item.php:49
640
+ msgid "Updating..."
641
+ msgstr "Aktualizujem..."
642
+
643
+ #: admin/settings/html/extension-browser-item.php:37
644
+ msgid "Upgrade to %s"
645
+ msgstr "Aktualizovať na %s"
646
+
647
+ #: admin/settings/html/extension-browser-item.php:39
648
+ #: admin/settings/html/theme-browser-item.php:54
649
+ msgid "Download %s Update"
650
+ msgstr "Stiahnuť aktualizáciu %s"
651
+
652
+ #: admin/settings/html/extension-browser-item.php:47
653
+ #: admin/settings/html/installed_icon_sets_ajax.php:8
654
+ #: admin/settings/html/installed_icon_sets_ajax.php:20
655
+ #: admin/settings/html/theme-browser-item.php:68
656
+ msgid "by %s"
657
+ msgstr "od %s"
658
+
659
+ #: admin/settings/html/extension-browser-item.php:53
660
+ msgid "Extension location: %s"
661
+ msgstr "Umiestenie rozšírení: %s"
662
+
663
+ #: admin/settings/html/extension-browser-item.php:54
664
+ #: admin/settings/html/theme-browser-item.php:76
665
+ msgid "Relative to your WordPress wp-content directory."
666
+ msgstr "Relatívna k adresáru wp-content"
667
+
668
+ #: admin/settings/html/extension-browser-item.php:63
669
+ #: admin/settings/html/theme-browser-item.php:88
670
+ msgid "Available in WPtouch Pro"
671
+ msgstr "Dostupné vo WPtouch Pro"
672
+
673
+ #: admin/settings/html/extension-browser-item.php:67
674
+ #: admin/settings/html/theme-browser-item.php:92
675
+ msgid "More Info"
676
+ msgstr "Viac informácií"
677
+
678
+ #: admin/settings/html/extension-browser-item.php:70
679
+ #: admin/settings/html/theme-browser-item.php:96
680
+ msgid "Upgrade License"
681
+ msgstr "Zakúpiť licenciu"
682
+
683
+ #: admin/settings/html/extension-browser-item.php:72
684
+ #: admin/settings/html/theme-browser-item.php:98
685
+ msgid "Get License"
686
+ msgstr "Získať licenciu"
687
+
688
+ #: admin/settings/html/extension-browser-item.php:80
689
+ #: admin/settings/html/theme-browser-item.php:111
690
+ msgid "Downloading..."
691
+ msgstr "Sťahujem..."
692
+
693
+ #: admin/settings/html/extension-browser-item.php:80
694
+ #: admin/settings/html/installed_icon_sets_ajax.php:21
695
+ #: admin/settings/html/theme-browser-item.php:112
696
+ msgid "Install"
697
+ msgstr "Inštalovať"
698
+
699
+ #: admin/settings/html/extension-browser-item.php:82
700
+ #: admin/settings/html/theme-browser-item.php:115
701
+ msgid "Download"
702
+ msgstr "Stiahnuť"
703
+
704
+ #: admin/settings/html/extension-browser-item.php:92
705
+ #: admin/settings/html/theme-browser-item.php:125
706
+ msgid "Setup"
707
+ msgstr "Nastavenie"
708
+
709
+ #: admin/settings/html/extension-browser-item.php:93
710
+ msgid "Deactivate"
711
+ msgstr "Deaktivovať"
712
+
713
+ #: admin/settings/html/extension-browser.php:2
714
+ #: admin/settings/html/theme-browser.php:2
715
+ msgid ""
716
+ "Your server configuration is preventing WPtouch Pro from installing and "
717
+ "updating from the Cloud. %sPlease visit %sthis article%s to follow the steps "
718
+ "to enable Cloud install, or you can manually download and install into the "
719
+ "wptouch-data/%s directory."
720
+ msgstr ""
721
+ "Vaše nastavenie servera bráni inštalácii a aktualizácii z cloudu. %sProsím "
722
+ "navštívte %stento článok%s a povolte cloud inštaláciu. Tiež si môžete súbory "
723
+ "nahrať rovno do adresára wptouch-data/%s "
724
+
725
+ #: admin/settings/html/extension-browser.php:13
726
+ msgid "Loading Cloud Extensions"
727
+ msgstr "Nahrávam cloudové rozšírenia"
728
+
729
+ #: admin/settings/html/icon_menu_area.php:5
730
+ msgid "Check All"
731
+ msgstr "Označiť všetky"
732
+
733
+ #: admin/settings/html/icon_menu_area.php:7
734
+ msgid "Reset"
735
+ msgstr "Obnoviť základné"
736
+
737
+ #: admin/settings/html/icon_menu_area.php:9
738
+ msgid "Menu"
739
+ msgstr "Menu"
740
+
741
+ #: admin/settings/html/icon_menu_area.php:31
742
+ msgid "Active menus used in this theme."
743
+ msgstr "V tejto téme je použité aktívne menu."
744
+
745
+ #: admin/settings/html/icon_menu_area.php:35
746
+ msgid "Show/Hide"
747
+ msgstr "Zobraziť/schovať"
748
+
749
+ #: admin/settings/html/icon_menu_area.php:36
750
+ msgid "Menu Item"
751
+ msgstr "Položka menu"
752
+
753
+ #: admin/settings/html/icon_menu_area.php:56
754
+ msgid "Icon Set"
755
+ msgstr "Sada ikoniek"
756
+
757
+ #: admin/settings/html/icon_menu_area.php:66
758
+ msgid "Drag icons to associate them with menu items"
759
+ msgstr "Pre priradenie ikoniek k menu ich presunte potiahnutím"
760
+
761
+ #: admin/settings/html/icon_menu_area.php:91
762
+ msgid "You don't have any custom icons yet."
763
+ msgstr "Zatiaľ nemáte žiadne vlastné ikonky."
764
+
765
+ #: admin/settings/html/icon_menu_area.php:106
766
+ msgid "Default Icon"
767
+ msgstr "Základná ikonka"
768
+
769
+ #: admin/settings/html/icon_menu_area.php:107
770
+ msgid "applies to all unset icons"
771
+ msgstr "bude použitá na všetky nenastavené ikonky"
772
+
773
+ #: admin/settings/html/icon_menu_area.php:115
774
+ msgid "Trash"
775
+ msgstr "Kôš"
776
+
777
+ #: admin/settings/html/icon_menu_area.php:116
778
+ msgid "drag icon here to reset"
779
+ msgstr "pre obnovenie potiahnite ikonku sem"
780
+
781
+ #: admin/settings/html/image-upload.php:11
782
+ msgid "Upload"
783
+ msgstr "Nahrať"
784
+
785
+ #: admin/settings/html/installed_icon_sets.php:2
786
+ msgid "Gathering information about available icon sets..."
787
+ msgstr "Získavam informácie o dostupných sadách ikoniek..."
788
+
789
+ #: admin/settings/html/installed_icon_sets.php:4 core/notifications.php:215
790
+ msgid ""
791
+ "The %s%s%s directory is not currently writable. %sPlease fix this issue to "
792
+ "enable installation of additional icon sets."
793
+ msgstr ""
794
+ "Nieje zapisovateľná adresa %s%s%s. %s Prosím opravte oprávnenia pre "
795
+ "inštaláciu dodatočných ikoniek."
796
+
797
+ #: admin/settings/html/installed_icon_sets_ajax.php:4
798
+ #: core/class-wptouch-pro.php:1574 core/class-wptouch-pro.php:1575
799
+ #: core/config.php:53
800
+ msgid "Custom Icons"
801
+ msgstr "Vlastné ikonky"
802
+
803
+ #: admin/settings/html/installed_icon_sets_ajax.php:9
804
+ #: admin/settings/html/installed_icon_sets_ajax.php:22
805
+ msgid "Installed"
806
+ msgstr "Nainštalované"
807
+
808
+ #: admin/settings/html/installed_icon_sets_ajax.php:21
809
+ msgid "Installing..."
810
+ msgstr "Inštalujem..."
811
+
812
+ #: admin/settings/html/installed_icon_sets_ajax.php:23
813
+ msgid "Unable to Install"
814
+ msgstr "Nie je možné nainštalovať"
815
+
816
+ #: admin/settings/html/list.php:24
817
+ msgid "Pro"
818
+ msgstr "Pro"
819
+
820
+ #: admin/settings/html/plugin-compat-ajax.php:11
821
+ #: themes/foundation/modules/custom-posts/custom-posts.php:153
822
+ msgid "Enable %s"
823
+ msgstr "Povoliť %s"
824
+
825
+ #: admin/settings/html/plugin-compat-ajax.php:12
826
+ msgid ""
827
+ "When unchecked, %s will be disabled for users viewing your WPtouch Pro theme."
828
+ msgstr "Ak nie je označené, používateľom WPtouch Pro bude vypnuté %s."
829
+
830
+ #: admin/settings/html/plugin-compat-ajax.php:20
831
+ msgid "No plugins to disable."
832
+ msgstr "Žiadne moduly na vypnutie"
833
+
834
+ #: admin/settings/html/plugin-compat.php:1
835
+ msgid "Choose which plugins to include in your mobile theme"
836
+ msgstr "Vyberte, ktoré moduly chcete použiť v téme pre mobilné zariadenia."
837
+
838
+ #: admin/settings/html/plugin-compat.php:7
839
+ msgid "Your active plugin list is refreshing"
840
+ msgstr "Zoznam aktívnych modulov sa obnovuje"
841
+
842
+ #: admin/settings/html/redirect.php:17
843
+ msgid "WordPress Page"
844
+ msgstr "Stránka WordPress"
845
+
846
+ #: admin/settings/html/restore.php:2
847
+ msgid ""
848
+ "Please paste your encoded settings below and save to restore your settings."
849
+ msgstr "Pre obnovenie nastavení, sem prilepte vaše kódované nastavenia."
850
+
851
+ #: admin/settings/html/theme-browser-item.php:6
852
+ #: admin/settings/html/theme-browser-item.php:10
853
+ msgid "Click to view screenshots"
854
+ msgstr "Pre zobrazenie obrázkov kliknite"
855
+
856
+ #: admin/settings/html/theme-browser-item.php:51
857
+ msgid "Update to %s"
858
+ msgstr "Aktualizovať na %s"
859
+
860
+ #: admin/settings/html/theme-browser-item.php:63
861
+ msgid "This theme supports %s devices"
862
+ msgstr "Táto téma podporuje %s zariadenia"
863
+
864
+ #: admin/settings/html/theme-browser-item.php:75
865
+ msgid "Theme location: %s"
866
+ msgstr "Umiestnenie témy: %s"
867
+
868
+ #: admin/settings/html/theme-browser-item.php:103
869
+ msgid "Buy Now"
870
+ msgstr "Kúpiť"
871
+
872
+ #: admin/settings/html/theme-browser-item.php:133
873
+ msgid "Copy"
874
+ msgstr "Skopírovať"
875
+
876
+ #: admin/settings/html/theme-browser.php:14
877
+ msgid "Loading Cloud Themes"
878
+ msgstr "Nahrávam témy v cloude"
879
+
880
+ #: admin/settings/html/touchboard.php:6
881
+ msgid "Quick Links"
882
+ msgstr "Rýchle odkazy"
883
+
884
+ #: admin/settings/html/touchboard.php:8
885
+ msgid "What's New Changelog"
886
+ msgstr "Záznam zmien"
887
+
888
+ #: admin/settings/html/touchboard.php:10
889
+ msgid "Look at Pro Themes"
890
+ msgstr "Prezrite si Pro témy"
891
+
892
+ #: admin/settings/html/touchboard.php:11
893
+ msgid "Look at Pro Extensions"
894
+ msgstr "Prezrite si Pro rozširenia"
895
+
896
+ #: admin/settings/html/touchboard.php:12
897
+ msgid "Look at Pro Features"
898
+ msgstr "Prezrite si vlastnosti Pro"
899
+
900
+ #: admin/settings/html/touchboard.php:14
901
+ msgid "Product Support"
902
+ msgstr "Podpora produktu"
903
+
904
+ #: admin/settings/html/touchboard.php:16
905
+ msgid "Product Knowledgebase"
906
+ msgstr "Znalostná databáza produktu"
907
+
908
+ #: admin/settings/html/touchboard.php:17
909
+ msgid "Manage Account"
910
+ msgstr "Správa účtu"
911
+
912
+ #: admin/settings/html/touchboard.php:18
913
+ msgid "Manage License"
914
+ msgstr "Správa licencie"
915
+
916
+ #: admin/settings/html/touchboard.php:20
917
+ msgid "WPtouch User Guide"
918
+ msgstr "Manuál pre WPtouch"
919
+
920
+ #: admin/settings/html/touchboard.php:27
921
+ msgid "WPtouch News"
922
+ msgstr "Novinky WPtouch"
923
+
924
+ #: admin/settings/html/touchboard.php:28
925
+ msgid "Read More"
926
+ msgstr "Čítať viac"
927
+
928
+ #: admin/settings/html/touchboard.php:46
929
+ msgid "%s Change Log"
930
+ msgstr "Záznam zmien %s"
931
+
932
+ #: admin/settings/html/user-agent-list.php:4
933
+ #: admin/settings/html/user-agent-list.php:6
934
+ msgid ""
935
+ "WPtouch Pro will be active when any of the following user-agents or user-"
936
+ "agent combinations are matched"
937
+ msgstr ""
938
+ "WPtouch Pro bude aktívny iba ak niektorý z user-agents alebo ich kombinácia "
939
+ "bude splnená."
940
+
941
+ #: admin/settings/include/custom-latest-posts.php:14
942
+ msgid "None (Use WordPress Settings)"
943
+ msgstr "Žiadne (Použiť nastavenia WordPress)"
944
+
945
+ #: core/addon-theme-installer.php:161
946
+ msgid "No server support for directly downloading new Cloud packages."
947
+ msgstr "Server nepodporuje sťahovanie balíčkov priamo z Cloudu."
948
+
949
+ #: core/addon-theme-installer.php:166
950
+ msgid ""
951
+ "Unable to write to directory %s. Try relaxing permissions to allow writing "
952
+ "to this location."
953
+ msgstr ""
954
+ "Nie je možné zapisovať do adresára %s. Zmente oprávnenia pre tento adresár."
955
+
956
+ #: core/addon-theme-installer.php:171
957
+ msgid "No server support for unzipping files."
958
+ msgstr "Server nepodporuje .zip súbory."
959
+
960
+ #: core/addon-theme-installer.php:181
961
+ msgid "Unable to download the Cloud package."
962
+ msgstr "Nie je možné stiahnuť balíček z cloudu."
963
+
964
+ #: core/admin-ajax.php:191
965
+ msgid "Version %s"
966
+ msgstr "Verzia %s"
967
+
968
+ #: core/admin-ajax.php:197
969
+ msgid ""
970
+ "There is a temporary issue retrieving the change-log. Please try again "
971
+ "later."
972
+ msgstr ""
973
+ "Nastala dočasná chyba pri načítaní záznamu zmien. Prosím skúste ho získať "
974
+ "neskôr."
975
+
976
+ #: core/admin-menu.php:40
977
+ msgid "Core Settings"
978
+ msgstr "Nastavenia jadra"
979
+
980
+ #: core/admin-menu.php:41
981
+ msgid "Themes & Extensions"
982
+ msgstr "Témy a rozšírenia"
983
+
984
+ #: core/admin-menu.php:42
985
+ msgid "Theme Settings"
986
+ msgstr "Nastavenia témy"
987
+
988
+ #: core/admin-menu.php:42
989
+ msgid "%s Settings"
990
+ msgstr "Nastavenia %s"
991
+
992
+ #: core/admin-menu.php:47
993
+ msgid "Extension Settings"
994
+ msgstr "Nastavenia rošírení"
995
+
996
+ #: core/admin-menu.php:52 core/admin-menu.php:54
997
+ msgid "Menus"
998
+ msgstr "Menu"
999
+
1000
+ #: core/admin-menu.php:60
1001
+ msgid "License"
1002
+ msgstr "Licencia"
1003
+
1004
+ #: core/admin-menu.php:65
1005
+ msgid "Upgrade to Pro"
1006
+ msgstr "Kúpiť Pro verziu"
1007
+
1008
+ #: core/admin-page-templates.php:16
1009
+ msgid "Mobile Page Template"
1010
+ msgstr "Šablóna stránky pre mobilné zariadenia"
1011
+
1012
+ #: core/admin-render.php:25
1013
+ msgid ""
1014
+ "Your WPtouch Pro license has expired. Renew now at a discount to continue "
1015
+ "receiving product updates and support."
1016
+ msgstr ""
1017
+ "Vypršala vaša WPtouch Pro licencia. Aby ste obdržali aktualizácie a "
1018
+ "podporu, musíte si ju obnoviť."
1019
+
1020
+ #: core/admin-render.php:26
1021
+ msgid "Renew Now"
1022
+ msgstr "Obnoviť"
1023
+
1024
+ #: core/admin-render.php:33
1025
+ msgid "This copy of %s is currently unlicensed!"
1026
+ msgstr "Táto kópia %s je bez licencie!"
1027
+
1028
+ #: core/admin-render.php:35
1029
+ msgid "Add a license %s"
1030
+ msgstr "Pridať licenciu %s"
1031
+
1032
+ #: core/admin-render.php:90
1033
+ msgid "Save Changes"
1034
+ msgstr "Uložiť zmeny"
1035
+
1036
+ #: core/admin-render.php:91
1037
+ msgid "Preview Theme"
1038
+ msgstr "Náhľad témy"
1039
+
1040
+ #: core/admin-render.php:92
1041
+ msgid "Reset Settings"
1042
+ msgstr "Obnoviť nastavenia"
1043
+
1044
+ #: core/class-wptouch-pro.php:353
1045
+ msgid ""
1046
+ "Automatic theme migration from uploads/wptouch-data directory failed. Please "
1047
+ "manually move these files to wp-content/wptouch-data, or %scontact support%s "
1048
+ "to address this issue."
1049
+ msgstr ""
1050
+ "Zlyhal automatický presun z uploads/wptouch-data. Prosím presuňte tieto "
1051
+ "súbory manuálne alebo %skontaktujte podporu%s."
1052
+
1053
+ #: core/class-wptouch-pro.php:373
1054
+ msgid ""
1055
+ "We were unable to install your WPtouch theme from the Cloud. Please visit "
1056
+ "%sthis article%s for more information."
1057
+ msgstr ""
1058
+ "Nie sme schopí nainštalovat WPtouch Pro tému cloudu. Pre viac informácií "
1059
+ "prosím navštívte %stento článok%s."
1060
+
1061
+ #: core/class-wptouch-pro.php:377
1062
+ msgid ""
1063
+ "Your server setup is preventing WPtouch from installing your active theme "
1064
+ "from the Cloud. Please visit %sthis article%s for more information on how to "
1065
+ "fix it."
1066
+ msgstr ""
1067
+ "Vaše nastavenie servera bráni inštalácii a aktualizácii z cloudu. Prosím "
1068
+ "navštívte %stento článok%s pre vyriešenie problému."
1069
+
1070
+ #: core/class-wptouch-pro.php:589
1071
+ msgid "Unsupported Browser"
1072
+ msgstr "Nepodporovaný prehliadač"
1073
+
1074
+ #: core/class-wptouch-pro.php:590
1075
+ msgid "Theme Preview requires Chrome or Safari."
1076
+ msgstr "Náhľad témy vyžaduje prehliadač Chrome alebo Safari."
1077
+
1078
+ #: core/class-wptouch-pro.php:591
1079
+ msgid ""
1080
+ "This will reset all WPtouch Pro settings.\n"
1081
+ "Are you sure?"
1082
+ msgstr ""
1083
+ "Toto obnoví základné nastavenia WPtouch Pro.\n"
1084
+ "Ste si istí?"
1085
+
1086
+ #: core/class-wptouch-pro.php:592
1087
+ msgid ""
1088
+ "This will reset all WPtouch Pro menu and icon settings.\n"
1089
+ "Are you sure?"
1090
+ msgstr ""
1091
+ "Toto obnoví základné nastavenia menu a ikoniek v WPtouch Pro.\n"
1092
+ "Ste si istí?"
1093
+
1094
+ #: core/class-wptouch-pro.php:593
1095
+ msgid "Offline"
1096
+ msgstr "Offline"
1097
+
1098
+ #: core/class-wptouch-pro.php:594
1099
+ msgid ""
1100
+ "You appear to be offline. Connect to the internet to see available "
1101
+ "BraveNewCloud items."
1102
+ msgstr ""
1103
+ "Asi ste offline. Pripojte sa na internet a prezrite si nové položky "
1104
+ "BraveNewCloud."
1105
+
1106
+ #: core/class-wptouch-pro.php:595
1107
+ msgid "The item failed to download for this reason: %reason%"
1108
+ msgstr "Stiahnutie položky zlyhalo z dôvodu: %reason%"
1109
+
1110
+ #: core/class-wptouch-pro.php:596
1111
+ msgid "You are about to reset your license information. Proceed?"
1112
+ msgstr "Chystáte sa obnoviť na predvolené licenčné údaje. Pokračovať?"
1113
+
1114
+ #: core/class-wptouch-pro.php:1145
1115
+ #: themes/foundation/modules/webapp/webapp.php:12
1116
+ msgid "Settings"
1117
+ msgstr "Nastavenia"
1118
+
1119
+ #: core/class-wptouch-pro.php:1181
1120
+ msgid "%s Changelog"
1121
+ msgstr "Záznam zmien %s"
1122
+
1123
+ #: core/class-wptouch-pro.php:2355
1124
+ msgid "Directory Problem"
1125
+ msgstr "Problém adresára"
1126
+
1127
+ #: core/class-wptouch-pro.php:2356
1128
+ msgid "One or more required directories could not be created"
1129
+ msgstr "Nie je možné vytvoriť jeden alebo viac adresárov"
1130
+
1131
+ #: core/globals.php:192
1132
+ msgid "smartphone"
1133
+ msgstr "smartfón"
1134
+
1135
+ #: core/globals.php:194
1136
+ msgid "tablet"
1137
+ msgstr "tablet"
1138
+
1139
+ #: core/notifications.php:124
1140
+ msgid "Preview Mode Enabled"
1141
+ msgstr "Mód náhľadu zapnutý"
1142
+
1143
+ #: core/notifications.php:125
1144
+ msgid ""
1145
+ "Only logged-in admins can see the mobile theme right now. You can change "
1146
+ "this at any time in %sCore Settings%s under %sDisplay Mode%s."
1147
+ msgstr ""
1148
+ "Teraz mobilnú tému môžu vidieť iba prihlásení používatelia. Toto nastavenie "
1149
+ "môžete kedykoľvek zmeniť v %snastaveniach jadra%s v %sMóde zobrazenia%s."
1150
+
1151
+ #: core/notifications.php:133
1152
+ msgid "Theme Presentation Disabled"
1153
+ msgstr "Vypnutá prezentácia témy"
1154
+
1155
+ #: core/notifications.php:134
1156
+ msgid ""
1157
+ "No one can see the mobile theme right now. You can change this at any time "
1158
+ "in %sCore Settings%s under %sDisplay Mode%s."
1159
+ msgstr ""
1160
+ "Teraz nikto nevidí mobilnú tému. Toto nastavenie môžete kedykoľvek zmeniť v "
1161
+ "%snastaveniach jadra%s v %sMóde zobrazenia%s."
1162
+
1163
+ #: core/notifications.php:145
1164
+ msgid "WPtouch Pro prefers pretty permalinks to be enabled within WordPress."
1165
+ msgstr "WPtouch Pto preferuje zvolené pekné trvalé odkazy WordPress."
1166
+
1167
+ #: core/notifications.php:155
1168
+ msgid "WPtouch Pro will not work fully in safe mode."
1169
+ msgstr "WPtouch Pro nepracuje správne v safe móde."
1170
+
1171
+ #: core/notifications.php:165 core/notifications.php:175
1172
+ #: core/notifications.php:185
1173
+ msgid ""
1174
+ "Extra configuration is required. The plugin must be configured to exclude "
1175
+ "the user agents that WPtouch Pro uses."
1176
+ msgstr ""
1177
+ "Je vyžadované extra nastavenie. Modul musí byť nastavený pre vynechanie user "
1178
+ "agents ktoré používa WPtouch Pro."
1179
+
1180
+ #: core/notifications.php:195
1181
+ msgid ""
1182
+ "Extra configuration is required. Add paths to your active WPtouch Pro theme "
1183
+ "CSS and Javascript files as files to ignore in WPMinify."
1184
+ msgstr ""
1185
+ "Vyžaduje sa extra nastavenie. Pridajte cestu do aktívych súborov témy "
1186
+ "WPtouch Pro CSS a Javascript ako súbory na ignorovanie WPMinify."
1187
+
1188
+ #: core/notifications.php:205
1189
+ msgid ""
1190
+ "This plugin may not work correctly in WPtouch Pro, and should be disabled in "
1191
+ "the Plugin Compatibility section."
1192
+ msgstr ""
1193
+ "Tento modul pravdepodobne nebude správne pracovať s WPtouch Pro. Mal by byť "
1194
+ "zakázaný v sekcii kompatibility modulov."
1195
+
1196
+ #: core/notifications.php:214
1197
+ msgid "Icon Installation Issue"
1198
+ msgstr "Problém s inštaláciou ikoniek"
1199
+
1200
+ #: include/add-ons/wordtwit-pro.php:179
1201
+ #: themes/foundation/modules/twitter/twitter.php:42
1202
+ msgid "%d second ago"
1203
+ msgid_plural "%d seconds ago"
1204
+ msgstr[0] "pred %d sekundou"
1205
+ msgstr[1] "pred %d sekundami"
1206
+ msgstr[2] "pred %d sekundami"
1207
+
1208
+ #: include/add-ons/wordtwit-pro.php:182
1209
+ #: themes/foundation/modules/twitter/twitter.php:45
1210
+ msgid "%d minute ago"
1211
+ msgid_plural "%d minutes ago"
1212
+ msgstr[0] "pred %d minútou"
1213
+ msgstr[1] "pred %d minútami"
1214
+ msgstr[2] "pred %d minútami"
1215
+
1216
+ #: include/add-ons/wordtwit-pro.php:185
1217
+ #: themes/foundation/modules/twitter/twitter.php:48
1218
+ msgid "%d hour ago"
1219
+ msgid_plural "%d hours ago"
1220
+ msgstr[0] "pred %d hodinou"
1221
+ msgstr[1] "pred %d hodinami"
1222
+ msgstr[2] "pred %d hodinami"
1223
+
1224
+ #: include/add-ons/wordtwit-pro.php:188
1225
+ #: themes/foundation/modules/twitter/twitter.php:51
1226
+ msgid "%d day ago"
1227
+ msgid_plural "%d days ago"
1228
+ msgstr[0] "pred %d dňom"
1229
+ msgstr[1] "pred %d dňami"
1230
+ msgstr[2] "pred %d dňami"
1231
+
1232
+ #: include/html/desktop-switch.php:2
1233
+ msgid "Desktop Version"
1234
+ msgstr "Normálna verzia"
1235
+
1236
+ #: include/html/desktop-switch.php:2
1237
+ msgid "Switch To Mobile Version"
1238
+ msgstr "Prepnúť na verziu pre mobilné zariadenia"
1239
+
1240
+ #: include/html/footer.php:8
1241
+ msgid "Powered by %s%s%s"
1242
+ msgstr "Poháňa %s%s%s"
1243
+
1244
+ #: include/html/footer.php:10
1245
+ msgid "Powered by<br/>%s%s%s"
1246
+ msgstr "Poháňa<br/>%s%s%s"
1247
+
1248
+ #: include/html/load-times.php:2
1249
+ msgid "%d queries in %0.1f ms"
1250
+ msgstr "%d žiadaní za %0.1f ms"
1251
+
1252
+ #: include/html/page-template.php:8
1253
+ msgid "Default Template"
1254
+ msgstr "Základná šablóna"
1255
+
1256
+ #: include/html/pro.php:1
1257
+ msgid "Go Pro"
1258
+ msgstr "Kúpiť Pro verziu"
1259
+
1260
+ #: themes/bauhaus/default/header-bottom.php:13
1261
+ #: themes/bauhaus/default/header-bottom.php:15
1262
+ msgid "Logout"
1263
+ msgstr "Odhlásiť sa"
1264
+
1265
+ #: themes/bauhaus/default/header-bottom.php:48
1266
+ msgid "Search this website"
1267
+ msgstr "Hľadať na tejto stránke"
1268
+
1269
+ #: themes/bauhaus/default/header-bottom.php:49
1270
+ msgid "Search"
1271
+ msgstr "Hľadať"
1272
+
1273
+ #: themes/bauhaus/default/nav-bar.php:6
1274
+ #: themes/foundation/default/nav-bar.php:6
1275
+ msgid "previous post"
1276
+ msgstr "predchádzajúci článok"
1277
+
1278
+ #: themes/bauhaus/default/nav-bar.php:13
1279
+ #: themes/foundation/default/nav-bar.php:12
1280
+ msgid "next post"
1281
+ msgstr "ďalší článok"
1282
+
1283
+ #: themes/bauhaus/default/post-loop.php:22
1284
+ msgid "by"
1285
+ msgstr "od"
1286
+
1287
+ #: themes/bauhaus/default/related-posts.php:4
1288
+ #: themes/foundation/default/related-posts.php:4
1289
+ msgid "Related"
1290
+ msgstr "Odporúčané"
1291
+
1292
+ #: themes/bauhaus/default/search.php:6 themes/foundation/default/search.php:6
1293
+ msgid "You searched for \"%s\""
1294
+ msgstr "Hľadali ste \"%s\""
1295
+
1296
+ #: themes/bauhaus/default/search.php:14
1297
+ msgid "Show %s Results"
1298
+ msgstr "Zobraziť výsledky %s"
1299
+
1300
+ #: themes/bauhaus/default/search.php:38
1301
+ msgid "No results found"
1302
+ msgstr "Nič sa nenašlo"
1303
+
1304
+ #: themes/bauhaus/default/search.php:46
1305
+ #: themes/foundation/default/search.php:43
1306
+ msgid "Load more %s results"
1307
+ msgstr "Načítať viac výsledkov %s"
1308
+
1309
+ #: themes/bauhaus/default/single.php:16
1310
+ msgid "no comments"
1311
+ msgstr "bez komentárov"
1312
+
1313
+ #: themes/bauhaus/default/single.php:16
1314
+ msgid "1 comment"
1315
+ msgstr "1 komentár"
1316
+
1317
+ #: themes/bauhaus/default/single.php:16
1318
+ msgid "% comments"
1319
+ msgstr "počet komentárov: %"
1320
+
1321
+ #: themes/bauhaus/default/single.php:36
1322
+ msgid "Categories"
1323
+ msgstr "Kategórie"
1324
+
1325
+ #: themes/bauhaus/default/single.php:39
1326
+ msgid "Tags"
1327
+ msgstr "Značky"
1328
+
1329
+ #: themes/bauhaus/root-functions.php:126
1330
+ msgid "Header Menu"
1331
+ msgstr "Menu v hlavičke"
1332
+
1333
+ #: themes/bauhaus/root-functions.php:128
1334
+ msgid "Choose a menu"
1335
+ msgstr "Vyberte menu"
1336
+
1337
+ #: themes/bauhaus/root-functions.php:129
1338
+ msgid "Main menu selection"
1339
+ msgstr "Hlavný výber menu"
1340
+
1341
+ #: themes/bauhaus/root-functions.php:136
1342
+ msgid "Theme background"
1343
+ msgstr "Pozadie témy"
1344
+
1345
+ #: themes/bauhaus/root-functions.php:137
1346
+ msgid "Header & Menu"
1347
+ msgstr "Hlavička a menu"
1348
+
1349
+ #: themes/bauhaus/root-functions.php:138
1350
+ msgid "Links"
1351
+ msgstr "Odkazy"
1352
+
1353
+ #: themes/bauhaus/root-functions.php:139
1354
+ msgid "Post/Page Headers"
1355
+ msgstr "Hlavičky článkov/stránok"
1356
+
1357
+ #: themes/bauhaus/root-functions.php:255
1358
+ msgid "Theme Shapes"
1359
+ msgstr "Tvary témy"
1360
+
1361
+ #: themes/bauhaus/root-functions.php:261
1362
+ msgid "Theme shape style"
1363
+ msgstr "Štýl tvaru témy"
1364
+
1365
+ #: themes/bauhaus/root-functions.php:262
1366
+ msgid "Bauhaus will use this shape style throughout its appearance"
1367
+ msgstr "Bauhaus použije tento štýl vo svojom vzhľade"
1368
+
1369
+ #: themes/bauhaus/root-functions.php:266
1370
+ msgid "Circles"
1371
+ msgstr "Kruhy"
1372
+
1373
+ #: themes/bauhaus/root-functions.php:267
1374
+ msgid "Rounded squares"
1375
+ msgstr "Zaoblené rohy"
1376
+
1377
+ #: themes/bauhaus/root-functions.php:277
1378
+ msgid "Menu Style"
1379
+ msgstr "Štýl menu"
1380
+
1381
+ #: themes/bauhaus/root-functions.php:283
1382
+ msgid "Menu animation style"
1383
+ msgstr "Štýl animácie menu"
1384
+
1385
+ #: themes/bauhaus/root-functions.php:284
1386
+ msgid "Bauhaus can show your menu off-canvas or in a drop-down."
1387
+ msgstr "Bauhaus zobrazí menu bez štýlu alebo v rozbaľovacom menu."
1388
+
1389
+ #: themes/bauhaus/root-functions.php:288
1390
+ msgid "Off-canvas"
1391
+ msgstr "Bez štýlu"
1392
+
1393
+ #: themes/bauhaus/root-functions.php:289
1394
+ msgid "Drop-down"
1395
+ msgstr "Rozbaľovacie menu"
1396
+
1397
+ #: themes/bauhaus/root-functions.php:307
1398
+ msgid "Post thumbnails"
1399
+ msgstr "Zobraziť náhľady"
1400
+
1401
+ #: themes/bauhaus/root-functions.php:312
1402
+ msgid "No thumbnails"
1403
+ msgstr "Bez náhľadov"
1404
+
1405
+ #: themes/bauhaus/root-functions.php:313
1406
+ msgid "Blog listing only"
1407
+ msgstr "Iba položky blogu"
1408
+
1409
+ #: themes/bauhaus/root-functions.php:314
1410
+ msgid "Blog listing, single posts"
1411
+ msgstr "Položky blogu, jednotlivé články"
1412
+
1413
+ #: themes/bauhaus/root-functions.php:315
1414
+ msgid "Blog listing, single posts & pages"
1415
+ msgstr "Položky blogu, jednotlivé články a stránky"
1416
+
1417
+ #: themes/bauhaus/root-functions.php:316
1418
+ msgid "All (blog, single, pages, search & archive)"
1419
+ msgstr "Všetko (blog, stránky, vyhľadávanie a archívy)"
1420
+
1421
+ #: themes/bauhaus/root-functions.php:324
1422
+ msgid "Thumbnail Selection"
1423
+ msgstr "Výber náhľadov"
1424
+
1425
+ #: themes/bauhaus/root-functions.php:329
1426
+ msgid "Post featured image"
1427
+ msgstr "Zobraziť odporúčaný obrázok"
1428
+
1429
+ #: themes/bauhaus/root-functions.php:330
1430
+ msgid "Post custom field"
1431
+ msgstr "Vlastné pole článku"
1432
+
1433
+ #: themes/bauhaus/root-functions.php:338
1434
+ msgid "Thumbnail custom field name"
1435
+ msgstr "Názov pola vlastného náhľadu"
1436
+
1437
+ #: themes/bauhaus/root-functions.php:349
1438
+ msgid "Show post categories and tags"
1439
+ msgstr "Zobraziť kategórie a značky"
1440
+
1441
+ #: themes/bauhaus/root-functions.php:360
1442
+ msgid "Show post date"
1443
+ msgstr "Zobraziť dátum článku"
1444
+
1445
+ #: themes/bauhaus/root-functions.php:371
1446
+ msgid "Show post author"
1447
+ msgstr "Zobraziť autora článku"
1448
+
1449
+ #: themes/bauhaus/root-functions.php:382
1450
+ msgid "Show comment bubbles on posts"
1451
+ msgstr "Zobraziť bubliny komentárov na príspevkoch"
1452
+
1453
+ #: themes/bauhaus/root-functions.php:393
1454
+ msgid "Show search in header"
1455
+ msgstr "Zobraziť vyhľadávanie v hlavičke"
1456
+
1457
+ #: themes/bauhaus/root-functions.php:394
1458
+ msgid "Adds Search capability in the site header."
1459
+ msgstr "Pridá vyhľadávanie do hlavičky stránky."
1460
+
1461
+ #: themes/bauhaus/root-functions.php:404
1462
+ msgid "Use infinite scrolling for blog"
1463
+ msgstr "Použiť blog alebo nekonečné posúvanie"
1464
+
1465
+ #: themes/foundation/default/404.php:6
1466
+ msgid "404 Not Found"
1467
+ msgstr "404 stránka nenájdená"
1468
+
1469
+ #: themes/foundation/default/404.php:8
1470
+ msgid "The post or page you requested is no longer available."
1471
+ msgstr "Stránka alebo príspevok, ktorý hľadáte už neexistuje."
1472
+
1473
+ #: themes/foundation/default/attachment.php:43
1474
+ msgid "&laquo; previous in gallery"
1475
+ msgstr "&laquo; predchádzajúci"
1476
+
1477
+ #: themes/foundation/default/attachment.php:45
1478
+ msgid "next in gallery &raquo;"
1479
+ msgstr "nasledujúci &raquo;"
1480
+
1481
+ #: themes/foundation/default/comments.php:10
1482
+ msgid "no responses"
1483
+ msgstr "bez odpovedí"
1484
+
1485
+ #: themes/foundation/default/comments.php:10
1486
+ msgid "1 response"
1487
+ msgstr "1 odpvoeď"
1488
+
1489
+ #: themes/foundation/default/comments.php:10
1490
+ msgid "% responses"
1491
+ msgstr "odpovedí %"
1492
+
1493
+ #: themes/foundation/default/comments.php:20
1494
+ #: themes/foundation/default/comments.php:26
1495
+ msgid "Load More Comments&hellip;"
1496
+ msgstr "Načítať viac komentárov"
1497
+
1498
+ #: themes/foundation/default/comments.php:38
1499
+ msgid "Comments are closed"
1500
+ msgstr "Komentáre nie sú povolené"
1501
+
1502
+ #: themes/foundation/default/comments.php:48
1503
+ msgid "Cancel"
1504
+ msgstr "Zrušiť"
1505
+
1506
+ #: themes/foundation/default/comments.php:51
1507
+ msgid "Leave a Reply"
1508
+ msgstr "Odpovedať"
1509
+
1510
+ #: themes/foundation/default/comments.php:51
1511
+ msgid "Leave a Reply to %s"
1512
+ msgstr "Odpovedať na %s"
1513
+
1514
+ #: themes/foundation/default/comments.php:54
1515
+ msgid "You must be %slogged in%s to post a comment."
1516
+ msgstr "Aby ste mohli komentovať, musíte byť %sprihlásený%s."
1517
+
1518
+ #: themes/foundation/default/comments.php:61
1519
+ msgid "Logged in as"
1520
+ msgstr "Prihlásený ako"
1521
+
1522
+ #: themes/foundation/default/comments.php:61
1523
+ msgid "Log out"
1524
+ msgstr "Odhlásiť"
1525
+
1526
+ #: themes/foundation/default/comments.php:65
1527
+ msgid "Name"
1528
+ msgstr "Meno"
1529
+
1530
+ #: themes/foundation/default/comments.php:67
1531
+ #: themes/foundation/modules/social-links/social-links.php:94
1532
+ msgid "E-Mail"
1533
+ msgstr "E-Mail"
1534
+
1535
+ #: themes/foundation/default/comments.php:69
1536
+ msgid "Website"
1537
+ msgstr "Webstránka"
1538
+
1539
+ #: themes/foundation/default/comments.php:77
1540
+ msgid "Publish"
1541
+ msgstr "Publikovať"
1542
+
1543
+ #: themes/foundation/default/footer.php:10
1544
+ msgid "Back to top"
1545
+ msgstr "Späť na začiatok"
1546
+
1547
+ #: themes/foundation/default/formerror.php:6
1548
+ msgid "Comment Error"
1549
+ msgstr "Chyba komentárov"
1550
+
1551
+ #: themes/foundation/default/formerror.php:8
1552
+ msgid "Please enter all fields correctly to post a comment."
1553
+ msgstr "Pre odoslanie komentára, vyplnte všetky polia."
1554
+
1555
+ #: themes/foundation/default/formerror.php:9
1556
+ msgid "Go back"
1557
+ msgstr "Ísť späť"
1558
+
1559
+ #: themes/foundation/default/index.php:33
1560
+ msgid "newer posts"
1561
+ msgstr "novšie články"
1562
+
1563
+ #: themes/foundation/default/index.php:33
1564
+ msgid "older posts"
1565
+ msgstr "staršie články"
1566
+
1567
+ #: themes/foundation/default/one-comment.php:12
1568
+ msgid "Your comment is awaiting moderation"
1569
+ msgstr "Váš komentár čaká na schválenie"
1570
+
1571
+ #: themes/foundation/default/search.php:16
1572
+ msgid "%s results"
1573
+ msgstr "počet výsledkov: %s"
1574
+
1575
+ #: themes/foundation/default/search.php:34
1576
+ msgid "No search results found"
1577
+ msgstr "Nič sa nenašlo"
1578
+
1579
+ #: themes/foundation/default/single.php:13
1580
+ msgid "By"
1581
+ msgstr "Od"
1582
+
1583
+ #: themes/foundation/default/switch-link.php:8
1584
+ msgid "mobile"
1585
+ msgstr "mobilná"
1586
+
1587
+ #: themes/foundation/default/switch-link.php:9
1588
+ msgid "desktop"
1589
+ msgstr "normálna"
1590
+
1591
+ #: themes/foundation/modules/advertising/advertising.php:18
1592
+ msgid "Service"
1593
+ msgstr "Služba"
1594
+
1595
+ #: themes/foundation/modules/advertising/advertising.php:24
1596
+ msgid "Choose a service"
1597
+ msgstr "Vyberte službu"
1598
+
1599
+ #: themes/foundation/modules/advertising/advertising.php:30
1600
+ msgid "Google Adsense"
1601
+ msgstr "Google Adsense"
1602
+
1603
+ #: themes/foundation/modules/advertising/advertising.php:31
1604
+ msgctxt "Refers to a custom advertising service"
1605
+ msgid "Custom"
1606
+ msgstr "Vlastná"
1607
+
1608
+ #: themes/foundation/modules/advertising/advertising.php:41
1609
+ msgid "Google AdSense"
1610
+ msgstr "Google AdSense"
1611
+
1612
+ #: themes/foundation/modules/advertising/advertising.php:44
1613
+ msgid "Publisher ID"
1614
+ msgstr "Publisher ID"
1615
+
1616
+ #: themes/foundation/modules/advertising/advertising.php:45
1617
+ msgid "Slot ID"
1618
+ msgstr "Slot ID"
1619
+
1620
+ #: themes/foundation/modules/advertising/advertising.php:49
1621
+ msgid "Code Type"
1622
+ msgstr "Typ kódu"
1623
+
1624
+ #: themes/foundation/modules/advertising/advertising.php:61
1625
+ msgid "Custom Ads"
1626
+ msgstr "Vlastné reklamy"
1627
+
1628
+ #: themes/foundation/modules/advertising/advertising.php:64
1629
+ msgid "Mobile advertising script"
1630
+ msgstr "Mobilný reklamný skript"
1631
+
1632
+ #: themes/foundation/modules/advertising/advertising.php:73
1633
+ msgid "Ad Presentation"
1634
+ msgstr "Prezentácia reklamy"
1635
+
1636
+ #: themes/foundation/modules/advertising/advertising.php:79
1637
+ msgid "Theme location"
1638
+ msgstr "Umiestnenie témy"
1639
+
1640
+ #: themes/foundation/modules/advertising/advertising.php:84
1641
+ msgid "In the header"
1642
+ msgstr "V hlavičke"
1643
+
1644
+ #: themes/foundation/modules/advertising/advertising.php:85
1645
+ msgid "Above the page content"
1646
+ msgstr "Nad obsahom stránky"
1647
+
1648
+ #: themes/foundation/modules/advertising/advertising.php:86
1649
+ msgid "Below the page content"
1650
+ msgstr "Pod obsahom stránky"
1651
+
1652
+ #: themes/foundation/modules/advertising/advertising.php:96
1653
+ msgid "Active Pages"
1654
+ msgstr "Aktívne stránky"
1655
+
1656
+ #: themes/foundation/modules/advertising/advertising.php:99
1657
+ msgid "Blog listings"
1658
+ msgstr "Položky blogu"
1659
+
1660
+ #: themes/foundation/modules/advertising/advertising.php:100
1661
+ msgid "Single posts"
1662
+ msgstr "Články"
1663
+
1664
+ #: themes/foundation/modules/advertising/advertising.php:101
1665
+ msgid "Static pages"
1666
+ msgstr "Statické stránky"
1667
+
1668
+ #: themes/foundation/modules/advertising/advertising.php:102
1669
+ msgid "Taxonomy"
1670
+ msgstr "Taxonómia"
1671
+
1672
+ #: themes/foundation/modules/advertising/advertising.php:103
1673
+ msgid "Search results"
1674
+ msgstr "Výsledky vyhľadávania"
1675
+
1676
+ #: themes/foundation/modules/base/base.php:69
1677
+ msgid "Loading"
1678
+ msgstr "Načítavanie"
1679
+
1680
+ #: themes/foundation/modules/base/preview-bar.php:2
1681
+ msgid "Theme Preview"
1682
+ msgstr "Náhľad témy"
1683
+
1684
+ #: themes/foundation/modules/base/preview-bar.php:3
1685
+ msgid "Reload"
1686
+ msgstr "Znova nahrať"
1687
+
1688
+ #: themes/foundation/modules/custom-posts/custom-posts.php:165
1689
+ msgid "Custom Post Support"
1690
+ msgstr "Podpora vlastných článkov"
1691
+
1692
+ #: themes/foundation/modules/custom-posts/custom-posts.php:171
1693
+ msgid "Enable custom post-type support"
1694
+ msgstr "Povoliť podporu vlastného typu článkov"
1695
+
1696
+ #: themes/foundation/modules/custom-posts/custom-posts.php:179
1697
+ msgid "Show custom post taxonomy"
1698
+ msgstr "Zobraziť vlastnú taxonómiu článkov"
1699
+
1700
+ #: themes/foundation/modules/custom-posts/custom-posts.php:191
1701
+ msgid "Custom Post Types"
1702
+ msgstr "Vlastné typy príspevkov"
1703
+
1704
+ #: themes/foundation/modules/featured/featured.php:265
1705
+ msgid "Featured Slider"
1706
+ msgstr "Náhľad prezentačných"
1707
+
1708
+ #: themes/foundation/modules/featured/featured.php:271
1709
+ msgid "Enable featured slider"
1710
+ msgstr "Povoliť slider prezentačných"
1711
+
1712
+ #: themes/foundation/modules/featured/featured.php:272
1713
+ msgid "Requires at least 2 entries to contain featured images"
1714
+ msgstr "Vyžaduje najmenej 2 položky s prezentačnými obrázkami"
1715
+
1716
+ #: themes/foundation/modules/featured/featured.php:279
1717
+ msgid "Maximum number of posts"
1718
+ msgstr "Maximálny počet článkov"
1719
+
1720
+ #: themes/foundation/modules/featured/featured.php:284
1721
+ msgid "3 posts"
1722
+ msgstr "3 články"
1723
+
1724
+ #: themes/foundation/modules/featured/featured.php:285
1725
+ msgid "5 posts"
1726
+ msgstr "5 článkov"
1727
+
1728
+ #: themes/foundation/modules/featured/featured.php:286
1729
+ msgid "10 posts"
1730
+ msgstr "10 článkov"
1731
+
1732
+ #: themes/foundation/modules/featured/featured.php:292
1733
+ msgid "Automatically slide"
1734
+ msgstr "Automatický posuv"
1735
+
1736
+ #: themes/foundation/modules/featured/featured.php:300
1737
+ msgid "Continuously slide"
1738
+ msgstr "Kontinuálny posuv"
1739
+
1740
+ #: themes/foundation/modules/featured/featured.php:308
1741
+ msgid "Grayscale images (CSS 3 effect)"
1742
+ msgstr "Čiernobiele obrázky (CSS3 efekt)"
1743
+
1744
+ #: themes/foundation/modules/featured/featured.php:309
1745
+ msgid ""
1746
+ "Featured slider images will be in grayscale for devices that support CSS "
1747
+ "filters."
1748
+ msgstr ""
1749
+ "Prezentačné obrázky na zariadeniach, ktoré podporujú CSS filtre, budú "
1750
+ "čiernobiele."
1751
+
1752
+ #: themes/foundation/modules/featured/featured.php:324
1753
+ msgid "Featured slider posts also show in listings"
1754
+ msgstr "Slider prezentačných zobraziť aj medzi položkami"
1755
+
1756
+ #: themes/foundation/modules/featured/featured.php:332
1757
+ msgid "Slide transition speed"
1758
+ msgstr "Rýchlosť posuvu"
1759
+
1760
+ #: themes/foundation/modules/featured/featured.php:337
1761
+ msgid "Slow"
1762
+ msgstr "Pomalá"
1763
+
1764
+ #: themes/foundation/modules/featured/featured.php:338
1765
+ msgid "Normal"
1766
+ msgstr "Normálna"
1767
+
1768
+ #: themes/foundation/modules/featured/featured.php:339
1769
+ msgid "Fast"
1770
+ msgstr "Rýchla"
1771
+
1772
+ #: themes/foundation/modules/featured/featured.php:350
1773
+ msgid "Show latest posts"
1774
+ msgstr "Zobraziť posledné články"
1775
+
1776
+ #: themes/foundation/modules/featured/featured.php:351
1777
+ msgid "Show posts from a specific tag"
1778
+ msgstr "Zobraziť články konkrétnej značky"
1779
+
1780
+ #: themes/foundation/modules/featured/featured.php:352
1781
+ msgid "Show posts from a specific category"
1782
+ msgstr "Zobraziť články konkrétnej kategórie"
1783
+
1784
+ #: themes/foundation/modules/featured/featured.php:353
1785
+ msgid "Show only specific posts or pages"
1786
+ msgstr "Zobraziť iba určité články a stránky"
1787
+
1788
+ #: themes/foundation/modules/featured/featured.php:359
1789
+ msgid "Only this tag"
1790
+ msgstr "Iba táto značka"
1791
+
1792
+ #: themes/foundation/modules/featured/featured.php:360
1793
+ #: themes/foundation/modules/featured/featured.php:369
1794
+ msgid "Enter the tag/category slug name"
1795
+ msgstr "Zadajte názov kategórie/značky"
1796
+
1797
+ #: themes/foundation/modules/featured/featured.php:368
1798
+ msgid "Only this category"
1799
+ msgstr "Iba táto kategória"
1800
+
1801
+ #: themes/foundation/modules/featured/featured.php:377
1802
+ msgid "Comma-separated list of post/page IDs"
1803
+ msgstr "Zoznam OD čísiel článkov/stránok oddelených čiarkou"
1804
+
1805
+ #: themes/foundation/modules/google-fonts/google-fonts.php:10
1806
+ msgid "Browser Fonts"
1807
+ msgstr "Prehliadač písma"
1808
+
1809
+ #: themes/foundation/modules/google-fonts/google-fonts.php:18
1810
+ msgid "Typography"
1811
+ msgstr "Typografia"
1812
+
1813
+ #: themes/foundation/modules/google-fonts/google-fonts.php:24
1814
+ msgid "Font style"
1815
+ msgstr "Štýl písma"
1816
+
1817
+ #: themes/foundation/modules/google-fonts/google-fonts.php:25
1818
+ msgid ""
1819
+ "Choose a Google font pairing designed for this theme, or default browser "
1820
+ "fonts."
1821
+ msgstr ""
1822
+ "Vyberte typ písma Google sediaci k tejto téme, aleo základý typ písma "
1823
+ "prehliadačov."
1824
+
1825
+ #: themes/foundation/modules/login/login-html.php:7
1826
+ msgid "Remember Me"
1827
+ msgstr "Zapamätať si ma"
1828
+
1829
+ #: themes/foundation/modules/login/login-html.php:9
1830
+ msgid "Log In"
1831
+ msgstr "Prihlásiť sa"
1832
+
1833
+ #: themes/foundation/modules/login/login-html.php:20
1834
+ msgid "Login"
1835
+ msgstr "Prihlásiť sa"
1836
+
1837
+ #: themes/foundation/modules/login/login-html.php:29
1838
+ msgid "Sign-up"
1839
+ msgstr "Registrácia"
1840
+
1841
+ #: themes/foundation/modules/login/login-html.php:30
1842
+ msgid "Lost password?"
1843
+ msgstr "Zabudli ste heslo?"
1844
+
1845
+ #: themes/foundation/modules/login/login.php:22
1846
+ msgid "Account Username"
1847
+ msgstr "Používateľské meno účtu"
1848
+
1849
+ #: themes/foundation/modules/login/login.php:23
1850
+ msgid "Account Password"
1851
+ msgstr "Heslo účtu"
1852
+
1853
+ #: themes/foundation/modules/login/login.php:32
1854
+ msgid "Login Form"
1855
+ msgstr "Prihlasovací formulár"
1856
+
1857
+ #: themes/foundation/modules/login/login.php:38
1858
+ msgid "Use fly-in login form"
1859
+ msgstr "Použiť pohyblivý formulár"
1860
+
1861
+ #: themes/foundation/modules/login/login.php:39
1862
+ msgid ""
1863
+ "Will add login links and allow mobile visitors to login to your website from "
1864
+ "mobile devices"
1865
+ msgstr "Pridá odkazy, umožní tak sa prihlásiť používateľom mobilnej témy"
1866
+
1867
+ #: themes/foundation/modules/login/login.php:46
1868
+ msgid "Show \"Sign-up\" and \"Lost Password?\" links"
1869
+ msgstr "Zobraziť odkazy \"Registrácia\" a \"Zabudli ste heslo?\""
1870
+
1871
+ #: themes/foundation/modules/media/media.php:48
1872
+ msgid "Video Handling"
1873
+ msgstr "Správanie videa"
1874
+
1875
+ #: themes/foundation/modules/media/media.php:60
1876
+ msgid "CSS only (HTML5 videos)"
1877
+ msgstr "Iba CSS (HTML5 videá)"
1878
+
1879
+ #: themes/foundation/modules/media/media.php:61
1880
+ msgid "FitVids Method"
1881
+ msgstr "FitVids"
1882
+
1883
+ #: themes/foundation/modules/media/media.php:62
1884
+ msgid "Fluid-Width Method"
1885
+ msgstr "Fluid-Width"
1886
+
1887
+ #: themes/foundation/modules/related-posts/related-posts.php:9
1888
+ msgid "Related Posts"
1889
+ msgstr "Súvisiace príspevky"
1890
+
1891
+ #: themes/foundation/modules/related-posts/related-posts.php:15
1892
+ msgid "Enable display of related content on single posts"
1893
+ msgstr "Povoliť zobrazenie súvisiaceho obsahu v článkoch"
1894
+
1895
+ #: themes/foundation/modules/related-posts/related-posts.php:23
1896
+ msgid "Maximum number of related posts to show"
1897
+ msgstr "Maximálny počet zobrazených súvisiacich článkov"
1898
+
1899
+ #: themes/foundation/modules/sharing/sharing-html.php:2
1900
+ msgid "Share"
1901
+ msgstr "Zdielať"
1902
+
1903
+ #: themes/foundation/modules/sharing/sharing-html.php:3
1904
+ msgid "Tweet"
1905
+ msgstr "Tweet"
1906
+
1907
+ #: themes/foundation/modules/sharing/sharing-html.php:5
1908
+ msgid "Mail"
1909
+ msgstr "Mail"
1910
+
1911
+ #: themes/foundation/modules/sharing/sharing.php:94
1912
+ msgid "Sharing"
1913
+ msgstr "Zdielanie"
1914
+
1915
+ #: themes/foundation/modules/sharing/sharing.php:100
1916
+ msgid "Show sharing links"
1917
+ msgstr "Zobraziť odkazy na zdielanie"
1918
+
1919
+ #: themes/foundation/modules/sharing/sharing.php:101
1920
+ msgid "Will show Facebook, Twitter, Google+ and Email buttons on single posts."
1921
+ msgstr "Zobrazí tlačidlá Facebook, Twitter, Google+ a Emailu"
1922
+
1923
+ #: themes/foundation/modules/sharing/sharing.php:108
1924
+ msgid "Show sharing links on pages"
1925
+ msgstr "Zobraziť odkazy zdieľania na stránkach"
1926
+
1927
+ #: themes/foundation/modules/sharing/sharing.php:109
1928
+ msgid ""
1929
+ "Will show Facebook, Twitter, Google+ and Email buttons on pages as well as "
1930
+ "single posts."
1931
+ msgstr "Zobrazí tlačidlá Facebook, Twitter, Google+ a Emailu"
1932
+
1933
+ #: themes/foundation/modules/sharing/sharing.php:116
1934
+ msgid "Sharing links location"
1935
+ msgstr "Odkazy zdielania polohy"
1936
+
1937
+ #: themes/foundation/modules/sharing/sharing.php:121
1938
+ msgid "Above post content"
1939
+ msgstr "Nad obsahom článku"
1940
+
1941
+ #: themes/foundation/modules/sharing/sharing.php:122
1942
+ msgid "Below post content"
1943
+ msgstr "Pod obsahom článku"
1944
+
1945
+ #: themes/foundation/modules/sharing/sharing.php:128
1946
+ msgid "Color scheme"
1947
+ msgstr "Farebná schéma"
1948
+
1949
+ #: themes/foundation/modules/sharing/sharing.php:133
1950
+ msgid "Theme colors"
1951
+ msgstr "Farby témy"
1952
+
1953
+ #: themes/foundation/modules/sharing/sharing.php:134
1954
+ msgid "Social network colors"
1955
+ msgstr "Farby sociálnych sietí"
1956
+
1957
+ #: themes/foundation/modules/social-links/social-links.php:8
1958
+ msgid "Footer Social Links"
1959
+ msgstr "Odkazy na sociálne siete v pätičke"
1960
+
1961
+ #: themes/foundation/modules/social-links/social-links.php:23
1962
+ msgid "Full URL to your Facebook page"
1963
+ msgstr "Celá URL adresa vašej Facebook stránky"
1964
+
1965
+ #: themes/foundation/modules/social-links/social-links.php:31
1966
+ msgid "Full URL to your Twitter profile"
1967
+ msgstr "Celá URL adresa vašeho Twitter profilu"
1968
+
1969
+ #: themes/foundation/modules/social-links/social-links.php:39
1970
+ msgid "Full URL to your Google+ profile"
1971
+ msgstr "Celá URL adresa vašeho Google+ profilu"
1972
+
1973
+ #: themes/foundation/modules/social-links/social-links.php:47
1974
+ msgid "Full URL to your Instagram profile"
1975
+ msgstr "Celá URL adresa vašeho Instagram profilu"
1976
+
1977
+ #: themes/foundation/modules/social-links/social-links.php:54
1978
+ msgid "Tumblr"
1979
+ msgstr "Tumblr"
1980
+
1981
+ #: themes/foundation/modules/social-links/social-links.php:55
1982
+ msgid "Full URL to your Tumblr profile"
1983
+ msgstr "Celá URL adresa vašeho Tumblr profilu"
1984
+
1985
+ #: themes/foundation/modules/social-links/social-links.php:63
1986
+ msgid "Full URL to your Pinterest page"
1987
+ msgstr "Celá URL adresa vašeho Pinterest profilu"
1988
+
1989
+ #: themes/foundation/modules/social-links/social-links.php:71
1990
+ msgid "Full URL to your Vimeo page"
1991
+ msgstr "Celá URL adresa vašeho Vimeo profilu"
1992
+
1993
+ #: themes/foundation/modules/social-links/social-links.php:79
1994
+ msgid "Full URL to your %s profile"
1995
+ msgstr "Celá URL adresa vašeho %s profilu"
1996
+
1997
+ #: themes/foundation/modules/social-links/social-links.php:86
1998
+ msgid "LinkedIn"
1999
+ msgstr "LinkedIn"
2000
+
2001
+ #: themes/foundation/modules/social-links/social-links.php:87
2002
+ msgid "Full URL to your LinkedIn profile"
2003
+ msgstr "Celá URL adresa vašeho LinkedIn profilu"
2004
+
2005
+ #: themes/foundation/modules/social-links/social-links.php:95
2006
+ msgid "E-Mail address"
2007
+ msgstr "E-Mailová adresa"
2008
+
2009
+ #: themes/foundation/modules/social-links/social-links.php:103
2010
+ msgid "Full URL to your RSS feed"
2011
+ msgstr "Celá URL adresa vašeho RSS"
2012
+
2013
+ #: themes/foundation/modules/tablets/tablets.php:35
2014
+ msgid "iPad"
2015
+ msgstr "iPad"
2016
+
2017
+ #: themes/foundation/modules/tablets/tablets.php:41
2018
+ #: themes/foundation/modules/webapp/webapp.php:73
2019
+ #: themes/foundation/modules/webapp/webapp.php:91
2020
+ #: themes/foundation/modules/webapp/webapp.php:109
2021
+ #: themes/foundation/modules/webapp/webapp.php:128
2022
+ #: themes/foundation/modules/webapp/webapp.php:136
2023
+ #: themes/foundation/modules/webapp/webapp.php:154
2024
+ #: themes/foundation/modules/webapp/webapp.php:162
2025
+ #: themes/foundation/root-functions.php:428
2026
+ #: themes/foundation/root-functions.php:446
2027
+ msgid "%d by %d pixels (PNG)"
2028
+ msgstr "%d na %d pixelov (PNG)"
2029
+
2030
+ #: themes/foundation/modules/twitter/twitter.php:66
2031
+ msgid "Disabled"
2032
+ msgstr "Nepovolené"
2033
+
2034
+ #: themes/foundation/modules/twitter/twitter.php:81
2035
+ msgid "Twitter account to use for Tweet display"
2036
+ msgstr "Twitter účet pre zobrazenie Tweetov"
2037
+
2038
+ #: themes/foundation/modules/webapp/webapp.php:15
2039
+ msgid "Enable iOS Web-App Mode"
2040
+ msgstr "Povoliť iOS Web-App mód"
2041
+
2042
+ #: themes/foundation/modules/webapp/webapp.php:19
2043
+ msgid "Enable persistence"
2044
+ msgstr "Povoliť podržanie"
2045
+
2046
+ #: themes/foundation/modules/webapp/webapp.php:20
2047
+ msgid "Loads the last visited URL for visitors on open."
2048
+ msgstr "Načíta návštevníkom ich poslednú navštívenú stránku."
2049
+
2050
+ #: themes/foundation/modules/webapp/webapp.php:27
2051
+ msgid "URLs to ignore in Web-App Mode"
2052
+ msgstr "URL adresy ignorujúce Web-App mód"
2053
+
2054
+ #: themes/foundation/modules/webapp/webapp.php:40
2055
+ msgid "Notice Message"
2056
+ msgstr "Oznamovacia správa"
2057
+
2058
+ #: themes/foundation/modules/webapp/webapp.php:43
2059
+ msgid ""
2060
+ "Show a notice message for iPhone, iPod touch & iPad visitors about my Web-App"
2061
+ msgstr ""
2062
+ "Zobraziť oznamovaciu správu používateľom iPhone, iPod touch a iPad o mojej "
2063
+ "Web-App"
2064
+
2065
+ #: themes/foundation/modules/webapp/webapp.php:43
2066
+ msgid ""
2067
+ "WPtouch shows a notice bubble on 1st visit letting users know about your Web-"
2068
+ "App enabled website on iOS devices."
2069
+ msgstr "WPtouch zobrazí oznam návštevníkom pri 1. návšteve z iOS zariadenia"
2070
+
2071
+ #: themes/foundation/modules/webapp/webapp.php:44
2072
+ msgid "Notice message contents"
2073
+ msgstr "Obsah oznamovacej správy"
2074
+
2075
+ #: themes/foundation/modules/webapp/webapp.php:44
2076
+ msgid ""
2077
+ "[device] and [icon] are dynamic and used to determine the device and iOS "
2078
+ "version. Do not remove these from your message."
2079
+ msgstr ""
2080
+ "[device] a [icon] sú dynamicky používané pre určenie zariadenia a verzie "
2081
+ "iOS. Neodstraňujte ich zo správy."
2082
+
2083
+ #: themes/foundation/modules/webapp/webapp.php:48
2084
+ msgid "the notice message will be shown again for visitors"
2085
+ msgstr "oznam bude znova zobrazený návštevníkom"
2086
+
2087
+ #: themes/foundation/modules/webapp/webapp.php:53
2088
+ msgid "1 day until"
2089
+ msgstr "po 1 dni"
2090
+
2091
+ #: themes/foundation/modules/webapp/webapp.php:54
2092
+ msgid "7 days until"
2093
+ msgstr "po 7 dňoch"
2094
+
2095
+ #: themes/foundation/modules/webapp/webapp.php:55
2096
+ msgid "1 month until"
2097
+ msgstr "po 1 mesiaci"
2098
+
2099
+ #: themes/foundation/modules/webapp/webapp.php:56
2100
+ msgid "Every time"
2101
+ msgstr "Vždy"
2102
+
2103
+ #: themes/foundation/modules/webapp/webapp.php:67
2104
+ msgid "iPhone Startup Screen"
2105
+ msgstr "Úvodná obrazovka iPhone"
2106
+
2107
+ #: themes/foundation/modules/webapp/webapp.php:85
2108
+ msgid "Retina iPhone Startup Screen"
2109
+ msgstr "Úvodná obrazovka Retina iPhone"
2110
+
2111
+ #: themes/foundation/modules/webapp/webapp.php:103
2112
+ msgid "iPhone 5 Startup Screen"
2113
+ msgstr "Úvodná obrazovka iPhone 5"
2114
+
2115
+ #: themes/foundation/modules/webapp/webapp.php:122
2116
+ msgid "iPad Mini and iPad Startup Screens"
2117
+ msgstr "Úvodná obrazovka iPad Mini a iPad"
2118
+
2119
+ #: themes/foundation/modules/webapp/webapp.php:148
2120
+ msgid "Retina iPad Startup Screens"
2121
+ msgstr "Úvodná obrazovka Retina iPad"
2122
+
2123
+ #: themes/foundation/root-functions.php:11
2124
+ msgid "Branding"
2125
+ msgstr "Branding"
2126
+
2127
+ #: themes/foundation/root-functions.php:12
2128
+ msgid "Media Handling"
2129
+ msgstr "Správa médií"
2130
+
2131
+ #: themes/foundation/root-functions.php:13
2132
+ msgid "Web-App Mode"
2133
+ msgstr "Web-App Mód"
2134
+
2135
+ #: themes/foundation/root-functions.php:14
2136
+ msgid "Bookmark Icons"
2137
+ msgstr "Ikonky záložky"
2138
+
2139
+ #: themes/foundation/root-functions.php:15
2140
+ msgid "Advertising"
2141
+ msgstr "Reklama"
2142
+
2143
+ #: themes/foundation/root-functions.php:16
2144
+ msgid "Custom Content"
2145
+ msgstr "Vlastný obsah"
2146
+
2147
+ #: themes/foundation/root-functions.php:49
2148
+ msgid "Language: "
2149
+ msgstr "Jazyk:"
2150
+
2151
+ #: themes/foundation/root-functions.php:139
2152
+ msgid ""
2153
+ "Install this Web-App on your [device]: tap [icon] then \"Add to Home Screen\""
2154
+ msgstr ""
2155
+ "Nainštalujte si Web-App na vašom [device]: kliknite na [icon] a potom "
2156
+ "\"Pridať na domácu obrazovku\""
2157
+
2158
+ #: themes/foundation/root-functions.php:342
2159
+ msgid "Number of posts in post listings"
2160
+ msgstr "Počet článkov v zozname"
2161
+
2162
+ #: themes/foundation/root-functions.php:343
2163
+ msgid ""
2164
+ "Overrides the WordPress Reading settings for \"Blog pages show at most\""
2165
+ msgstr ""
2166
+ "Obchádza nastavenie čítania WordPress pre \"Najčastejšie zobrazované stránky "
2167
+ "blogu\""
2168
+
2169
+ #: themes/foundation/root-functions.php:350
2170
+ msgid "Excluded categories"
2171
+ msgstr "Vynechať kategórie"
2172
+
2173
+ #: themes/foundation/root-functions.php:351
2174
+ msgid "Comma separated by category name"
2175
+ msgstr "Kategórie oddeľujte čiarkami"
2176
+
2177
+ #: themes/foundation/root-functions.php:358
2178
+ msgid "Excluded tags"
2179
+ msgstr "Vynechané nzačky"
2180
+
2181
+ #: themes/foundation/root-functions.php:359
2182
+ msgid "Comma separated by tag name"
2183
+ msgstr "Značky oddeľujte čiarkami"
2184
+
2185
+ #: themes/foundation/root-functions.php:369
2186
+ msgid "Blog"
2187
+ msgstr "Blog"
2188
+
2189
+ #: themes/foundation/root-functions.php:380
2190
+ msgid "Show comments on pages"
2191
+ msgstr "Zobraziť komentáre na stránkach"
2192
+
2193
+ #: themes/foundation/root-functions.php:381
2194
+ msgid "Overrides the WordPress settings for showing comments on pages."
2195
+ msgstr "Obíde nastavenie WordPress o zobrazení komentárov"
2196
+
2197
+ #: themes/foundation/root-functions.php:391
2198
+ #: themes/foundation/root-functions.php:1136
2199
+ msgid "Pages"
2200
+ msgstr "Stránky"
2201
+
2202
+ #: themes/foundation/root-functions.php:404
2203
+ msgid "Icon Title"
2204
+ msgstr "Nadpis ikonky"
2205
+
2206
+ #: themes/foundation/root-functions.php:410
2207
+ msgid "Icon title"
2208
+ msgstr "Nadpis ikonky"
2209
+
2210
+ #: themes/foundation/root-functions.php:411
2211
+ msgid "When visitors bookmark your website, this will be the title shown."
2212
+ msgstr "Keď si návštevník uloží vašu stránku, tento názov bude mať uložený."
2213
+
2214
+ #: themes/foundation/root-functions.php:422
2215
+ msgid "Android"
2216
+ msgstr "Android"
2217
+
2218
+ #: themes/foundation/root-functions.php:440
2219
+ msgid "iPhone & iPod touch"
2220
+ msgstr "iPhone a iPod touch"
2221
+
2222
+ #: themes/foundation/root-functions.php:476
2223
+ msgid "Theme Colors"
2224
+ msgstr "Farby témy"
2225
+
2226
+ #: themes/foundation/root-functions.php:488
2227
+ msgid "(Scaled by themes to fit logo areas as needed)"
2228
+ msgstr "(Škálované témou podľa rozmerov pre logo)"
2229
+
2230
+ #: themes/foundation/root-functions.php:499
2231
+ msgid "Site Logo"
2232
+ msgstr "Logo stránky"
2233
+
2234
+ #: themes/foundation/root-functions.php:508
2235
+ msgid "Smart App Banner"
2236
+ msgstr "Baner Smart App"
2237
+
2238
+ #: themes/foundation/root-functions.php:514
2239
+ msgid "Enter your app's %sApp Store ID%s"
2240
+ msgstr "Zadajte vaše %sID z App Store%s"
2241
+
2242
+ #: themes/foundation/root-functions.php:515
2243
+ msgid ""
2244
+ "Your app's unique identifier. Find your ID from the iTunes Link Maker: "
2245
+ "Search for your app. In the link it provides, your app ID is the nine-digit "
2246
+ "number in between id and ?mt. For example Angry Birds's ID is 343200656."
2247
+ msgstr ""
2248
+ "Unikátny identifikátor vašej aplikácie. Nájdete ho v Tvorcovi liniek iTunes. "
2249
+ "Nájdite vašu aplikáciu, v jej odkaze sa nachádza 9 miestne číslo medzi id a ?"
2250
+ "mt, Napríklad ID Angry Birds je 343200656."
2251
+
2252
+ #: themes/foundation/root-functions.php:527
2253
+ msgid "Theme Footer"
2254
+ msgstr "Pätička témy"
2255
+
2256
+ #: themes/foundation/root-functions.php:530
2257
+ msgid "Custom footer content (HTML is allowed)"
2258
+ msgstr "Vlastný obsah do pätičky (je povolené HTML)"
2259
+
2260
+ #: themes/foundation/root-functions.php:530
2261
+ msgid ""
2262
+ "You can add custom footer content that will be displayed below the switch "
2263
+ "link."
2264
+ msgstr "Môžete zadať vlastný obsah pod odkaz na prepnutie stránky."
2265
+
2266
+ #: themes/foundation/root-functions.php:916
2267
+ msgid "search results for '%s'"
2268
+ msgstr "Výsledky vyhľadávania pre '%s'"
2269
+
2270
+ #: themes/foundation/root-functions.php:918
2271
+ msgid "%sCategories &rsaquo;%s %s"
2272
+ msgstr "%sKategórie &rsaquo;%s %s"
2273
+
2274
+ #: themes/foundation/root-functions.php:920
2275
+ msgid "Tags &rsaquo; %s"
2276
+ msgstr "Značky &rsaquo; %s"
2277
+
2278
+ #: themes/foundation/root-functions.php:922
2279
+ #: themes/foundation/root-functions.php:924
2280
+ #: themes/foundation/root-functions.php:926
2281
+ msgid "Archives &rsaquo; %s"
2282
+ msgstr "Archív &rsaquo; %s"
2283
+
2284
+ #: themes/foundation/root-functions.php:941
2285
+ msgid "Load more from this category"
2286
+ msgstr "Načítať viac z tejto kategórie"
2287
+
2288
+ #: themes/foundation/root-functions.php:943
2289
+ msgid "Load more tagged like this"
2290
+ msgstr "Načítať viac s rovnakou značkou"
2291
+
2292
+ #: themes/foundation/root-functions.php:945
2293
+ msgid "Load more from this day"
2294
+ msgstr "Načítať viac z tohto dňa"
2295
+
2296
+ #: themes/foundation/root-functions.php:947
2297
+ msgid "Load more from this month"
2298
+ msgstr "Načítať viac z tohto mesiaca"
2299
+
2300
+ #: themes/foundation/root-functions.php:949
2301
+ msgid "Load more from this year"
2302
+ msgstr "Načítať viac z tohto roku"
2303
+
2304
+ #: themes/foundation/root-functions.php:951
2305
+ msgid "Load more in this section"
2306
+ msgstr "Načítať viac z tohto výberu"
2307
+
2308
+ #: themes/foundation/root-functions.php:953
2309
+ msgid "Load more entries"
2310
+ msgstr "Načítať viac položiek"
2311
+
2312
+ #: themes/foundation/root-functions.php:1085
2313
+ msgid "Post"
2314
+ msgstr "Článok"
2315
+
2316
+ #: themes/foundation/root-functions.php:1087
2317
+ msgid "Page"
2318
+ msgstr "Stránka"
2319
+
2320
+ #. Plugin Name of the plugin/theme
2321
+ msgid "WPtouch Mobile Plugin"
2322
+ msgstr "Modul WPtouch Mobile"
2323
+
2324
+ #. Plugin URI of the plugin/theme
2325
+ #. Author URI of the plugin/theme
2326
+ msgid "http://www.wptouch.com/"
2327
+ msgstr "http://www.wptouch.com/"
2328
+
2329
+ #. Description of the plugin/theme
2330
+ msgid "Create a slick mobile WordPress website with just a few clicks"
2331
+ msgstr "Vytvorí mobilnú verziu WordPress stránky pár kliknutiami"
2332
+
2333
+ #. Author of the plugin/theme
2334
+ msgid "BraveNewCode Inc."
2335
+ msgstr "BraveNewCode Inc."
lang/wptouch.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the WPtouch Mobile Plugin package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WPtouch Mobile Plugin 3.4.10\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/wptouch\n"
7
- "POT-Creation-Date: 2014-09-23 14:14:27+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -90,7 +90,7 @@ msgstr ""
90
 
91
  #: admin/pages/custom/wptouch-admin-license.php:25
92
  #: admin/settings/html/extension-browser-item.php:89
93
- #: admin/settings/html/theme-browser-item.php:129
94
  msgid "Activate"
95
  msgstr ""
96
 
@@ -470,6 +470,7 @@ msgstr ""
470
 
471
  #: admin/pages/wptouch-admin-general-settings.php:411
472
  #: admin/settings/html/button.php:5 admin/settings/html/checkbox.php:6
 
473
  #: admin/settings/html/custom-latest-posts.php:4
474
  #: admin/settings/html/list.php:16 admin/settings/html/numeric.php:12
475
  #: admin/settings/html/post_type.php:13 admin/settings/html/radiolist.php:13
@@ -550,6 +551,7 @@ msgid "Restore Backup File"
550
  msgstr ""
551
 
552
  #: admin/settings/html/button.php:6 admin/settings/html/checkbox.php:7
 
553
  #: admin/settings/html/custom-latest-posts.php:8
554
  #: admin/settings/html/list.php:20 admin/settings/html/numeric.php:16
555
  #: admin/settings/html/post_type.php:14 admin/settings/html/radiolist.php:15
@@ -579,7 +581,7 @@ msgstr ""
579
 
580
  #: admin/settings/html/custom_icon_management.php:12
581
  #: admin/settings/html/image-upload.php:13
582
- #: admin/settings/html/theme-browser-item.php:137
583
  msgid "Delete"
584
  msgstr ""
585
 
@@ -588,7 +590,7 @@ msgid "Upload Icon"
588
  msgstr ""
589
 
590
  #: admin/settings/html/custom_icon_upload.php:4
591
- #: admin/settings/html/image-upload.php:15 core/class-wptouch-pro.php:597
592
  msgid "Upload Complete!"
593
  msgstr ""
594
 
@@ -605,7 +607,7 @@ msgid "Your Server Configuration"
605
  msgstr ""
606
 
607
  #: admin/settings/html/extension-browser-item.php:37
608
- #: admin/settings/html/theme-browser-item.php:49
609
  msgid "Updating..."
610
  msgstr ""
611
 
@@ -614,14 +616,14 @@ msgid "Upgrade to %s"
614
  msgstr ""
615
 
616
  #: admin/settings/html/extension-browser-item.php:39
617
- #: admin/settings/html/theme-browser-item.php:54
618
  msgid "Download %s Update"
619
  msgstr ""
620
 
621
  #: admin/settings/html/extension-browser-item.php:47
622
  #: admin/settings/html/installed_icon_sets_ajax.php:8
623
  #: admin/settings/html/installed_icon_sets_ajax.php:20
624
- #: admin/settings/html/theme-browser-item.php:68
625
  msgid "by %s"
626
  msgstr ""
627
 
@@ -630,48 +632,48 @@ msgid "Extension location: %s"
630
  msgstr ""
631
 
632
  #: admin/settings/html/extension-browser-item.php:54
633
- #: admin/settings/html/theme-browser-item.php:76
634
  msgid "Relative to your WordPress wp-content directory."
635
  msgstr ""
636
 
637
  #: admin/settings/html/extension-browser-item.php:63
638
- #: admin/settings/html/theme-browser-item.php:88
639
  msgid "Available in WPtouch Pro"
640
  msgstr ""
641
 
642
  #: admin/settings/html/extension-browser-item.php:67
643
- #: admin/settings/html/theme-browser-item.php:92
644
  msgid "More Info"
645
  msgstr ""
646
 
647
  #: admin/settings/html/extension-browser-item.php:70
648
- #: admin/settings/html/theme-browser-item.php:96
649
  msgid "Upgrade License"
650
  msgstr ""
651
 
652
  #: admin/settings/html/extension-browser-item.php:72
653
- #: admin/settings/html/theme-browser-item.php:98
654
  msgid "Get License"
655
  msgstr ""
656
 
657
  #: admin/settings/html/extension-browser-item.php:80
658
- #: admin/settings/html/theme-browser-item.php:111
659
  msgid "Downloading..."
660
  msgstr ""
661
 
662
  #: admin/settings/html/extension-browser-item.php:80
663
  #: admin/settings/html/installed_icon_sets_ajax.php:21
664
- #: admin/settings/html/theme-browser-item.php:112
665
  msgid "Install"
666
  msgstr ""
667
 
668
  #: admin/settings/html/extension-browser-item.php:82
669
- #: admin/settings/html/theme-browser-item.php:115
670
  msgid "Download"
671
  msgstr ""
672
 
673
  #: admin/settings/html/extension-browser-item.php:92
674
- #: admin/settings/html/theme-browser-item.php:125
675
  msgid "Setup"
676
  msgstr ""
677
 
@@ -759,8 +761,8 @@ msgid ""
759
  msgstr ""
760
 
761
  #: admin/settings/html/installed_icon_sets_ajax.php:4
762
- #: core/class-wptouch-pro.php:1574 core/class-wptouch-pro.php:1575
763
- #: core/config.php:53
764
  msgid "Custom Icons"
765
  msgstr ""
766
 
@@ -812,32 +814,32 @@ msgid ""
812
  "Please paste your encoded settings below and save to restore your settings."
813
  msgstr ""
814
 
815
- #: admin/settings/html/theme-browser-item.php:6
816
  #: admin/settings/html/theme-browser-item.php:10
 
817
  msgid "Click to view screenshots"
818
  msgstr ""
819
 
820
- #: admin/settings/html/theme-browser-item.php:51
821
  msgid "Update to %s"
822
  msgstr ""
823
 
824
- #: admin/settings/html/theme-browser-item.php:63
825
  msgid "This theme supports %s devices"
826
  msgstr ""
827
 
828
- #: admin/settings/html/theme-browser-item.php:75
829
  msgid "Theme location: %s"
830
  msgstr ""
831
 
832
- #: admin/settings/html/theme-browser-item.php:103
833
  msgid "Buy Now"
834
  msgstr ""
835
 
836
- #: admin/settings/html/theme-browser-item.php:133
837
  msgid "Copy"
838
  msgstr ""
839
 
840
- #: admin/settings/html/theme-browser.php:14
841
  msgid "Loading Cloud Themes"
842
  msgstr ""
843
 
@@ -964,7 +966,7 @@ msgstr ""
964
  msgid "Upgrade to Pro"
965
  msgstr ""
966
 
967
- #: core/admin-page-templates.php:16
968
  msgid "Mobile Page Template"
969
  msgstr ""
970
 
@@ -998,82 +1000,86 @@ msgstr ""
998
  msgid "Reset Settings"
999
  msgstr ""
1000
 
1001
- #: core/class-wptouch-pro.php:353
1002
  msgid ""
1003
  "Automatic theme migration from uploads/wptouch-data directory failed. Please "
1004
  "manually move these files to wp-content/wptouch-data, or %scontact support%s "
1005
  "to address this issue."
1006
  msgstr ""
1007
 
1008
- #: core/class-wptouch-pro.php:373
1009
  msgid ""
1010
  "We were unable to install your WPtouch theme from the Cloud. Please visit %"
1011
  "sthis article%s for more information."
1012
  msgstr ""
1013
 
1014
- #: core/class-wptouch-pro.php:377
1015
  msgid ""
1016
  "Your server setup is preventing WPtouch from installing your active theme "
1017
  "from the Cloud. Please visit %sthis article%s for more information on how to "
1018
  "fix it."
1019
  msgstr ""
1020
 
1021
- #: core/class-wptouch-pro.php:589
1022
  msgid "Unsupported Browser"
1023
  msgstr ""
1024
 
1025
- #: core/class-wptouch-pro.php:590
1026
  msgid "Theme Preview requires Chrome or Safari."
1027
  msgstr ""
1028
 
1029
- #: core/class-wptouch-pro.php:591
1030
  msgid ""
1031
  "This will reset all WPtouch Pro settings.\n"
1032
  "Are you sure?"
1033
  msgstr ""
1034
 
1035
- #: core/class-wptouch-pro.php:592
1036
  msgid ""
1037
  "This will reset all WPtouch Pro menu and icon settings.\n"
1038
  "Are you sure?"
1039
  msgstr ""
1040
 
1041
- #: core/class-wptouch-pro.php:593
1042
  msgid "Offline"
1043
  msgstr ""
1044
 
1045
- #: core/class-wptouch-pro.php:594
1046
  msgid ""
1047
  "You appear to be offline. Connect to the internet to see available "
1048
  "BraveNewCloud items."
1049
  msgstr ""
1050
 
1051
- #: core/class-wptouch-pro.php:595
1052
  msgid "The item failed to download for this reason: %reason%"
1053
  msgstr ""
1054
 
1055
- #: core/class-wptouch-pro.php:596
1056
  msgid "You are about to reset your license information. Proceed?"
1057
  msgstr ""
1058
 
1059
- #: core/class-wptouch-pro.php:598
1060
  msgid "Upload Failed: Not a valid image."
1061
  msgstr ""
1062
 
1063
- #: core/class-wptouch-pro.php:1145
 
 
 
 
1064
  #: themes/foundation/modules/webapp/webapp.php:12
1065
  msgid "Settings"
1066
  msgstr ""
1067
 
1068
- #: core/class-wptouch-pro.php:1181
1069
  msgid "%s Changelog"
1070
  msgstr ""
1071
 
1072
- #: core/class-wptouch-pro.php:2355
1073
  msgid "Directory Problem"
1074
  msgstr ""
1075
 
1076
- #: core/class-wptouch-pro.php:2356
1077
  msgid "One or more required directories could not be created"
1078
  msgstr ""
1079
 
@@ -1495,7 +1501,7 @@ msgstr ""
1495
  msgid "older posts"
1496
  msgstr ""
1497
 
1498
- #: themes/foundation/default/one-comment.php:12
1499
  msgid "Your comment is awaiting moderation"
1500
  msgstr ""
1501
 
@@ -1946,11 +1952,13 @@ msgstr ""
1946
  #: themes/foundation/modules/webapp/webapp.php:91
1947
  #: themes/foundation/modules/webapp/webapp.php:109
1948
  #: themes/foundation/modules/webapp/webapp.php:128
1949
- #: themes/foundation/modules/webapp/webapp.php:136
1950
- #: themes/foundation/modules/webapp/webapp.php:154
1951
- #: themes/foundation/modules/webapp/webapp.php:162
1952
- #: themes/foundation/root-functions.php:428
1953
- #: themes/foundation/root-functions.php:446
 
 
1954
  msgid "%d by %d pixels (PNG)"
1955
  msgstr ""
1956
 
@@ -1999,8 +2007,8 @@ msgstr ""
1999
 
2000
  #: themes/foundation/modules/webapp/webapp.php:44
2001
  msgid ""
2002
- "[device] and [icon] are dynamic and used to determine the device and iOS "
2003
- "version. Do not remove these from your message."
2004
  msgstr ""
2005
 
2006
  #: themes/foundation/modules/webapp/webapp.php:48
@@ -2036,10 +2044,18 @@ msgid "iPhone 5 Startup Screen"
2036
  msgstr ""
2037
 
2038
  #: themes/foundation/modules/webapp/webapp.php:122
 
 
 
 
 
 
 
 
2039
  msgid "iPad Mini and iPad Startup Screens"
2040
  msgstr ""
2041
 
2042
- #: themes/foundation/modules/webapp/webapp.php:148
2043
  msgid "Retina iPad Startup Screens"
2044
  msgstr ""
2045
 
@@ -2073,155 +2089,164 @@ msgstr ""
2073
 
2074
  #: themes/foundation/root-functions.php:139
2075
  msgid ""
2076
- "Install this Web-App on your [device]: tap [icon] then \"Add to Home Screen\""
 
2077
  msgstr ""
2078
 
2079
- #: themes/foundation/root-functions.php:342
2080
  msgid "Number of posts in post listings"
2081
  msgstr ""
2082
 
2083
- #: themes/foundation/root-functions.php:343
2084
  msgid ""
2085
  "Overrides the WordPress Reading settings for \"Blog pages show at most\""
2086
  msgstr ""
2087
 
2088
- #: themes/foundation/root-functions.php:350
2089
  msgid "Excluded categories"
2090
  msgstr ""
2091
 
2092
- #: themes/foundation/root-functions.php:351
2093
  msgid "Comma separated by category name"
2094
  msgstr ""
2095
 
2096
- #: themes/foundation/root-functions.php:358
2097
  msgid "Excluded tags"
2098
  msgstr ""
2099
 
2100
- #: themes/foundation/root-functions.php:359
2101
  msgid "Comma separated by tag name"
2102
  msgstr ""
2103
 
2104
  #: themes/foundation/root-functions.php:369
2105
- msgid "Blog"
 
 
 
 
2106
  msgstr ""
2107
 
2108
  #: themes/foundation/root-functions.php:380
 
 
 
 
2109
  msgid "Show comments on pages"
2110
  msgstr ""
2111
 
2112
- #: themes/foundation/root-functions.php:381
2113
  msgid "Overrides the WordPress settings for showing comments on pages."
2114
  msgstr ""
2115
 
2116
- #: themes/foundation/root-functions.php:391
2117
  #: themes/foundation/root-functions.php:1136
2118
  msgid "Pages"
2119
  msgstr ""
2120
 
2121
- #: themes/foundation/root-functions.php:404
2122
  msgid "Icon Title"
2123
  msgstr ""
2124
 
2125
- #: themes/foundation/root-functions.php:410
2126
  msgid "Icon title"
2127
  msgstr ""
2128
 
2129
- #: themes/foundation/root-functions.php:411
2130
  msgid "When visitors bookmark your website, this will be the title shown."
2131
  msgstr ""
2132
 
2133
- #: themes/foundation/root-functions.php:422
2134
  msgid "Android"
2135
  msgstr ""
2136
 
2137
- #: themes/foundation/root-functions.php:440
2138
  msgid "iPhone & iPod touch"
2139
  msgstr ""
2140
 
2141
- #: themes/foundation/root-functions.php:476
2142
  msgid "Theme Colors"
2143
  msgstr ""
2144
 
2145
- #: themes/foundation/root-functions.php:488
2146
  msgid "(Scaled by themes to fit logo areas as needed)"
2147
  msgstr ""
2148
 
2149
- #: themes/foundation/root-functions.php:499
2150
  msgid "Site Logo"
2151
  msgstr ""
2152
 
2153
- #: themes/foundation/root-functions.php:508
2154
  msgid "Smart App Banner"
2155
  msgstr ""
2156
 
2157
- #: themes/foundation/root-functions.php:514
2158
  msgid "Enter your app's %sApp Store ID%s"
2159
  msgstr ""
2160
 
2161
- #: themes/foundation/root-functions.php:515
2162
  msgid ""
2163
  "Your app's unique identifier. Find your ID from the iTunes Link Maker: "
2164
  "Search for your app. In the link it provides, your app ID is the nine-digit "
2165
  "number in between id and ?mt. For example Angry Birds's ID is 343200656."
2166
  msgstr ""
2167
 
2168
- #: themes/foundation/root-functions.php:527
2169
  msgid "Theme Footer"
2170
  msgstr ""
2171
 
2172
- #: themes/foundation/root-functions.php:530
2173
  msgid "Custom footer content (HTML is allowed)"
2174
  msgstr ""
2175
 
2176
- #: themes/foundation/root-functions.php:530
2177
  msgid ""
2178
  "You can add custom footer content that will be displayed below the switch "
2179
  "link."
2180
  msgstr ""
2181
 
2182
- #: themes/foundation/root-functions.php:916
2183
  msgid "search results for '%s'"
2184
  msgstr ""
2185
 
2186
- #: themes/foundation/root-functions.php:918
2187
  msgid "%sCategories &rsaquo;%s %s"
2188
  msgstr ""
2189
 
2190
- #: themes/foundation/root-functions.php:920
2191
  msgid "Tags &rsaquo; %s"
2192
  msgstr ""
2193
 
 
2194
  #: themes/foundation/root-functions.php:922
2195
  #: themes/foundation/root-functions.php:924
2196
- #: themes/foundation/root-functions.php:926
2197
  msgid "Archives &rsaquo; %s"
2198
  msgstr ""
2199
 
2200
- #: themes/foundation/root-functions.php:941
2201
  msgid "Load more from this category"
2202
  msgstr ""
2203
 
2204
- #: themes/foundation/root-functions.php:943
2205
  msgid "Load more tagged like this"
2206
  msgstr ""
2207
 
2208
- #: themes/foundation/root-functions.php:945
2209
  msgid "Load more from this day"
2210
  msgstr ""
2211
 
2212
- #: themes/foundation/root-functions.php:947
2213
  msgid "Load more from this month"
2214
  msgstr ""
2215
 
2216
- #: themes/foundation/root-functions.php:949
2217
  msgid "Load more from this year"
2218
  msgstr ""
2219
 
2220
- #: themes/foundation/root-functions.php:951
2221
  msgid "Load more in this section"
2222
  msgstr ""
2223
 
2224
- #: themes/foundation/root-functions.php:953
2225
  msgid "Load more entries"
2226
  msgstr ""
2227
 
@@ -2237,9 +2262,9 @@ msgstr ""
2237
  msgid "WPtouch Mobile Plugin"
2238
  msgstr ""
2239
 
2240
- #. #-#-#-#-# wptouch.pot (WPtouch Mobile Plugin 3.4.10) #-#-#-#-#
2241
  #. Plugin URI of the plugin/theme
2242
- #. #-#-#-#-# wptouch.pot (WPtouch Mobile Plugin 3.4.10) #-#-#-#-#
2243
  #. Author URI of the plugin/theme
2244
  msgid "http://www.wptouch.com/"
2245
  msgstr ""
2
  # This file is distributed under the same license as the WPtouch Mobile Plugin package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WPtouch Mobile Plugin 3.5.3\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/wptouch\n"
7
+ "POT-Creation-Date: 2014-10-10 14:28:19+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
90
 
91
  #: admin/pages/custom/wptouch-admin-license.php:25
92
  #: admin/settings/html/extension-browser-item.php:89
93
+ #: admin/settings/html/theme-browser-item.php:136
94
  msgid "Activate"
95
  msgstr ""
96
 
470
 
471
  #: admin/pages/wptouch-admin-general-settings.php:411
472
  #: admin/settings/html/button.php:5 admin/settings/html/checkbox.php:6
473
+ #: admin/settings/html/checklist.php:13
474
  #: admin/settings/html/custom-latest-posts.php:4
475
  #: admin/settings/html/list.php:16 admin/settings/html/numeric.php:12
476
  #: admin/settings/html/post_type.php:13 admin/settings/html/radiolist.php:13
551
  msgstr ""
552
 
553
  #: admin/settings/html/button.php:6 admin/settings/html/checkbox.php:7
554
+ #: admin/settings/html/checklist.php:15
555
  #: admin/settings/html/custom-latest-posts.php:8
556
  #: admin/settings/html/list.php:20 admin/settings/html/numeric.php:16
557
  #: admin/settings/html/post_type.php:14 admin/settings/html/radiolist.php:15
581
 
582
  #: admin/settings/html/custom_icon_management.php:12
583
  #: admin/settings/html/image-upload.php:13
584
+ #: admin/settings/html/theme-browser-item.php:144
585
  msgid "Delete"
586
  msgstr ""
587
 
590
  msgstr ""
591
 
592
  #: admin/settings/html/custom_icon_upload.php:4
593
+ #: admin/settings/html/image-upload.php:15 core/class-wptouch-pro.php:598
594
  msgid "Upload Complete!"
595
  msgstr ""
596
 
607
  msgstr ""
608
 
609
  #: admin/settings/html/extension-browser-item.php:37
610
+ #: admin/settings/html/theme-browser-item.php:56
611
  msgid "Updating..."
612
  msgstr ""
613
 
616
  msgstr ""
617
 
618
  #: admin/settings/html/extension-browser-item.php:39
619
+ #: admin/settings/html/theme-browser-item.php:61
620
  msgid "Download %s Update"
621
  msgstr ""
622
 
623
  #: admin/settings/html/extension-browser-item.php:47
624
  #: admin/settings/html/installed_icon_sets_ajax.php:8
625
  #: admin/settings/html/installed_icon_sets_ajax.php:20
626
+ #: admin/settings/html/theme-browser-item.php:75
627
  msgid "by %s"
628
  msgstr ""
629
 
632
  msgstr ""
633
 
634
  #: admin/settings/html/extension-browser-item.php:54
635
+ #: admin/settings/html/theme-browser-item.php:83
636
  msgid "Relative to your WordPress wp-content directory."
637
  msgstr ""
638
 
639
  #: admin/settings/html/extension-browser-item.php:63
640
+ #: admin/settings/html/theme-browser-item.php:95
641
  msgid "Available in WPtouch Pro"
642
  msgstr ""
643
 
644
  #: admin/settings/html/extension-browser-item.php:67
645
+ #: admin/settings/html/theme-browser-item.php:99
646
  msgid "More Info"
647
  msgstr ""
648
 
649
  #: admin/settings/html/extension-browser-item.php:70
650
+ #: admin/settings/html/theme-browser-item.php:103
651
  msgid "Upgrade License"
652
  msgstr ""
653
 
654
  #: admin/settings/html/extension-browser-item.php:72
655
+ #: admin/settings/html/theme-browser-item.php:105
656
  msgid "Get License"
657
  msgstr ""
658
 
659
  #: admin/settings/html/extension-browser-item.php:80
660
+ #: admin/settings/html/theme-browser-item.php:118
661
  msgid "Downloading..."
662
  msgstr ""
663
 
664
  #: admin/settings/html/extension-browser-item.php:80
665
  #: admin/settings/html/installed_icon_sets_ajax.php:21
666
+ #: admin/settings/html/theme-browser-item.php:119
667
  msgid "Install"
668
  msgstr ""
669
 
670
  #: admin/settings/html/extension-browser-item.php:82
671
+ #: admin/settings/html/theme-browser-item.php:122
672
  msgid "Download"
673
  msgstr ""
674
 
675
  #: admin/settings/html/extension-browser-item.php:92
676
+ #: admin/settings/html/theme-browser-item.php:132
677
  msgid "Setup"
678
  msgstr ""
679
 
761
  msgstr ""
762
 
763
  #: admin/settings/html/installed_icon_sets_ajax.php:4
764
+ #: core/class-wptouch-pro.php:1596 core/class-wptouch-pro.php:1597
765
+ #: core/config.php:54
766
  msgid "Custom Icons"
767
  msgstr ""
768
 
814
  "Please paste your encoded settings below and save to restore your settings."
815
  msgstr ""
816
 
 
817
  #: admin/settings/html/theme-browser-item.php:10
818
+ #: admin/settings/html/theme-browser-item.php:16
819
  msgid "Click to view screenshots"
820
  msgstr ""
821
 
822
+ #: admin/settings/html/theme-browser-item.php:58
823
  msgid "Update to %s"
824
  msgstr ""
825
 
826
+ #: admin/settings/html/theme-browser-item.php:70
827
  msgid "This theme supports %s devices"
828
  msgstr ""
829
 
830
+ #: admin/settings/html/theme-browser-item.php:82
831
  msgid "Theme location: %s"
832
  msgstr ""
833
 
834
+ #: admin/settings/html/theme-browser-item.php:110
835
  msgid "Buy Now"
836
  msgstr ""
837
 
838
+ #: admin/settings/html/theme-browser-item.php:140
839
  msgid "Copy"
840
  msgstr ""
841
 
842
+ #: admin/settings/html/theme-browser.php:22
843
  msgid "Loading Cloud Themes"
844
  msgstr ""
845
 
966
  msgid "Upgrade to Pro"
967
  msgstr ""
968
 
969
+ #: core/admin-page-templates.php:17
970
  msgid "Mobile Page Template"
971
  msgstr ""
972
 
1000
  msgid "Reset Settings"
1001
  msgstr ""
1002
 
1003
+ #: core/class-wptouch-pro.php:354
1004
  msgid ""
1005
  "Automatic theme migration from uploads/wptouch-data directory failed. Please "
1006
  "manually move these files to wp-content/wptouch-data, or %scontact support%s "
1007
  "to address this issue."
1008
  msgstr ""
1009
 
1010
+ #: core/class-wptouch-pro.php:374
1011
  msgid ""
1012
  "We were unable to install your WPtouch theme from the Cloud. Please visit %"
1013
  "sthis article%s for more information."
1014
  msgstr ""
1015
 
1016
+ #: core/class-wptouch-pro.php:378
1017
  msgid ""
1018
  "Your server setup is preventing WPtouch from installing your active theme "
1019
  "from the Cloud. Please visit %sthis article%s for more information on how to "
1020
  "fix it."
1021
  msgstr ""
1022
 
1023
+ #: core/class-wptouch-pro.php:590
1024
  msgid "Unsupported Browser"
1025
  msgstr ""
1026
 
1027
+ #: core/class-wptouch-pro.php:591
1028
  msgid "Theme Preview requires Chrome or Safari."
1029
  msgstr ""
1030
 
1031
+ #: core/class-wptouch-pro.php:592
1032
  msgid ""
1033
  "This will reset all WPtouch Pro settings.\n"
1034
  "Are you sure?"
1035
  msgstr ""
1036
 
1037
+ #: core/class-wptouch-pro.php:593
1038
  msgid ""
1039
  "This will reset all WPtouch Pro menu and icon settings.\n"
1040
  "Are you sure?"
1041
  msgstr ""
1042
 
1043
+ #: core/class-wptouch-pro.php:594
1044
  msgid "Offline"
1045
  msgstr ""
1046
 
1047
+ #: core/class-wptouch-pro.php:595
1048
  msgid ""
1049
  "You appear to be offline. Connect to the internet to see available "
1050
  "BraveNewCloud items."
1051
  msgstr ""
1052
 
1053
+ #: core/class-wptouch-pro.php:596
1054
  msgid "The item failed to download for this reason: %reason%"
1055
  msgstr ""
1056
 
1057
+ #: core/class-wptouch-pro.php:597
1058
  msgid "You are about to reset your license information. Proceed?"
1059
  msgstr ""
1060
 
1061
+ #: core/class-wptouch-pro.php:599
1062
  msgid "Upload Failed: Not a valid image."
1063
  msgstr ""
1064
 
1065
+ #: core/class-wptouch-pro.php:600
1066
+ msgid "Click to view theme demo"
1067
+ msgstr ""
1068
+
1069
+ #: core/class-wptouch-pro.php:1167
1070
  #: themes/foundation/modules/webapp/webapp.php:12
1071
  msgid "Settings"
1072
  msgstr ""
1073
 
1074
+ #: core/class-wptouch-pro.php:1203
1075
  msgid "%s Changelog"
1076
  msgstr ""
1077
 
1078
+ #: core/class-wptouch-pro.php:2377
1079
  msgid "Directory Problem"
1080
  msgstr ""
1081
 
1082
+ #: core/class-wptouch-pro.php:2378
1083
  msgid "One or more required directories could not be created"
1084
  msgstr ""
1085
 
1501
  msgid "older posts"
1502
  msgstr ""
1503
 
1504
+ #: themes/foundation/default/one-comment.php:17
1505
  msgid "Your comment is awaiting moderation"
1506
  msgstr ""
1507
 
1952
  #: themes/foundation/modules/webapp/webapp.php:91
1953
  #: themes/foundation/modules/webapp/webapp.php:109
1954
  #: themes/foundation/modules/webapp/webapp.php:128
1955
+ #: themes/foundation/modules/webapp/webapp.php:146
1956
+ #: themes/foundation/modules/webapp/webapp.php:165
1957
+ #: themes/foundation/modules/webapp/webapp.php:173
1958
+ #: themes/foundation/modules/webapp/webapp.php:191
1959
+ #: themes/foundation/modules/webapp/webapp.php:199
1960
+ #: themes/foundation/root-functions.php:439
1961
+ #: themes/foundation/root-functions.php:457
1962
  msgid "%d by %d pixels (PNG)"
1963
  msgstr ""
1964
 
2007
 
2008
  #: themes/foundation/modules/webapp/webapp.php:44
2009
  msgid ""
2010
+ "[icon] is used to display the appropriate bookmark icon for your device. Do "
2011
+ "not remove it from your message."
2012
  msgstr ""
2013
 
2014
  #: themes/foundation/modules/webapp/webapp.php:48
2044
  msgstr ""
2045
 
2046
  #: themes/foundation/modules/webapp/webapp.php:122
2047
+ msgid "iPhone 6 Startup Screen"
2048
+ msgstr ""
2049
+
2050
+ #: themes/foundation/modules/webapp/webapp.php:140
2051
+ msgid "iPhone 6+ Startup Screen"
2052
+ msgstr ""
2053
+
2054
+ #: themes/foundation/modules/webapp/webapp.php:159
2055
  msgid "iPad Mini and iPad Startup Screens"
2056
  msgstr ""
2057
 
2058
+ #: themes/foundation/modules/webapp/webapp.php:185
2059
  msgid "Retina iPad Startup Screens"
2060
  msgstr ""
2061
 
2089
 
2090
  #: themes/foundation/root-functions.php:139
2091
  msgid ""
2092
+ "Install this Web-App on your homescreen: tap [icon] then \"Add to Home Screen"
2093
+ "\""
2094
  msgstr ""
2095
 
2096
+ #: themes/foundation/root-functions.php:345
2097
  msgid "Number of posts in post listings"
2098
  msgstr ""
2099
 
2100
+ #: themes/foundation/root-functions.php:346
2101
  msgid ""
2102
  "Overrides the WordPress Reading settings for \"Blog pages show at most\""
2103
  msgstr ""
2104
 
2105
+ #: themes/foundation/root-functions.php:353
2106
  msgid "Excluded categories"
2107
  msgstr ""
2108
 
2109
+ #: themes/foundation/root-functions.php:354
2110
  msgid "Comma separated by category name"
2111
  msgstr ""
2112
 
2113
+ #: themes/foundation/root-functions.php:361
2114
  msgid "Excluded tags"
2115
  msgstr ""
2116
 
2117
+ #: themes/foundation/root-functions.php:362
2118
  msgid "Comma separated by tag name"
2119
  msgstr ""
2120
 
2121
  #: themes/foundation/root-functions.php:369
2122
+ msgid "Allow nested comment replies from mobile visitors"
2123
+ msgstr ""
2124
+
2125
+ #: themes/foundation/root-functions.php:370
2126
+ msgid "Will show a Reply link after each comment"
2127
  msgstr ""
2128
 
2129
  #: themes/foundation/root-functions.php:380
2130
+ msgid "Blog"
2131
+ msgstr ""
2132
+
2133
+ #: themes/foundation/root-functions.php:391
2134
  msgid "Show comments on pages"
2135
  msgstr ""
2136
 
2137
+ #: themes/foundation/root-functions.php:392
2138
  msgid "Overrides the WordPress settings for showing comments on pages."
2139
  msgstr ""
2140
 
2141
+ #: themes/foundation/root-functions.php:402
2142
  #: themes/foundation/root-functions.php:1136
2143
  msgid "Pages"
2144
  msgstr ""
2145
 
2146
+ #: themes/foundation/root-functions.php:415
2147
  msgid "Icon Title"
2148
  msgstr ""
2149
 
2150
+ #: themes/foundation/root-functions.php:421
2151
  msgid "Icon title"
2152
  msgstr ""
2153
 
2154
+ #: themes/foundation/root-functions.php:422
2155
  msgid "When visitors bookmark your website, this will be the title shown."
2156
  msgstr ""
2157
 
2158
+ #: themes/foundation/root-functions.php:433
2159
  msgid "Android"
2160
  msgstr ""
2161
 
2162
+ #: themes/foundation/root-functions.php:451
2163
  msgid "iPhone & iPod touch"
2164
  msgstr ""
2165
 
2166
+ #: themes/foundation/root-functions.php:487
2167
  msgid "Theme Colors"
2168
  msgstr ""
2169
 
2170
+ #: themes/foundation/root-functions.php:499
2171
  msgid "(Scaled by themes to fit logo areas as needed)"
2172
  msgstr ""
2173
 
2174
+ #: themes/foundation/root-functions.php:510
2175
  msgid "Site Logo"
2176
  msgstr ""
2177
 
2178
+ #: themes/foundation/root-functions.php:519
2179
  msgid "Smart App Banner"
2180
  msgstr ""
2181
 
2182
+ #: themes/foundation/root-functions.php:525
2183
  msgid "Enter your app's %sApp Store ID%s"
2184
  msgstr ""
2185
 
2186
+ #: themes/foundation/root-functions.php:526
2187
  msgid ""
2188
  "Your app's unique identifier. Find your ID from the iTunes Link Maker: "
2189
  "Search for your app. In the link it provides, your app ID is the nine-digit "
2190
  "number in between id and ?mt. For example Angry Birds's ID is 343200656."
2191
  msgstr ""
2192
 
2193
+ #: themes/foundation/root-functions.php:538
2194
  msgid "Theme Footer"
2195
  msgstr ""
2196
 
2197
+ #: themes/foundation/root-functions.php:541
2198
  msgid "Custom footer content (HTML is allowed)"
2199
  msgstr ""
2200
 
2201
+ #: themes/foundation/root-functions.php:541
2202
  msgid ""
2203
  "You can add custom footer content that will be displayed below the switch "
2204
  "link."
2205
  msgstr ""
2206
 
2207
+ #: themes/foundation/root-functions.php:914
2208
  msgid "search results for '%s'"
2209
  msgstr ""
2210
 
2211
+ #: themes/foundation/root-functions.php:916
2212
  msgid "%sCategories &rsaquo;%s %s"
2213
  msgstr ""
2214
 
2215
+ #: themes/foundation/root-functions.php:918
2216
  msgid "Tags &rsaquo; %s"
2217
  msgstr ""
2218
 
2219
+ #: themes/foundation/root-functions.php:920
2220
  #: themes/foundation/root-functions.php:922
2221
  #: themes/foundation/root-functions.php:924
 
2222
  msgid "Archives &rsaquo; %s"
2223
  msgstr ""
2224
 
2225
+ #: themes/foundation/root-functions.php:939
2226
  msgid "Load more from this category"
2227
  msgstr ""
2228
 
2229
+ #: themes/foundation/root-functions.php:941
2230
  msgid "Load more tagged like this"
2231
  msgstr ""
2232
 
2233
+ #: themes/foundation/root-functions.php:943
2234
  msgid "Load more from this day"
2235
  msgstr ""
2236
 
2237
+ #: themes/foundation/root-functions.php:945
2238
  msgid "Load more from this month"
2239
  msgstr ""
2240
 
2241
+ #: themes/foundation/root-functions.php:947
2242
  msgid "Load more from this year"
2243
  msgstr ""
2244
 
2245
+ #: themes/foundation/root-functions.php:949
2246
  msgid "Load more in this section"
2247
  msgstr ""
2248
 
2249
+ #: themes/foundation/root-functions.php:951
2250
  msgid "Load more entries"
2251
  msgstr ""
2252
 
2262
  msgid "WPtouch Mobile Plugin"
2263
  msgstr ""
2264
 
2265
+ #. #-#-#-#-# wptouch.pot (WPtouch Mobile Plugin 3.5.3) #-#-#-#-#
2266
  #. Plugin URI of the plugin/theme
2267
+ #. #-#-#-#-# wptouch.pot (WPtouch Mobile Plugin 3.5.3) #-#-#-#-#
2268
  #. Author URI of the plugin/theme
2269
  msgid "http://www.wptouch.com/"
2270
  msgstr ""
readme.txt CHANGED
@@ -2,7 +2,7 @@
2
  Contributors: bravenewcode, duanestorey, dalemugford, martin kuplens-ewart
3
  Tags: wptouch, iphone, ipod, bravenewcode, mobile, android, blackberry, smartphone, responsive, design, mobile plugin, ios, mobile theme
4
  Requires at least: 3.6
5
- Stable tag: 3.4.10
6
  Tested up to: 4.0
7
  License: GPLv2
8
 
@@ -18,9 +18,9 @@ The theme also includes the ability for visitors to switch between the theme on
18
 
19
  **Now Available: WPtouch Pro + BraveNewCloud**
20
 
21
- With 4 themes and 3 new extensions installed & updated right from our new BraveNewCloud service, it's the best WPtouch yet!
22
 
23
- For more information visit [WPtouch.com](http://www.wptouch.com/?utm_campaign=wptouch-front-readme&utm_medium=web&utm_source=wordpressdotorg "WPtouch.com").
24
 
25
  'WPtouch' & ’WPtouch Pro' are trademarks of BraveNewCode Inc.
26
 
@@ -40,6 +40,37 @@ For more information visit [WPtouch.com](http://www.wptouch.com/?utm_campaign=wp
40
 
41
  == Changelog ==
42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  = Version 3.4.10 (September 23rd, 2014) =
44
 
45
  * Fixed: Potential security issue with URLs in comment forms
@@ -1063,19 +1094,3 @@ For more information visit [WPtouch.com](http://www.wptouch.com/?utm_campaign=wp
1063
  = 3.1.1 =
1064
 
1065
  This is an entirely new release, everyone! It’s completely different… and new : )
1066
-
1067
- = 1.9.8.2 =
1068
-
1069
- An issue with WordPress multisite was addressed
1070
-
1071
- = 1.9.8.1 =
1072
-
1073
- Potential security issues were fixed
1074
-
1075
- = 1.9.8 =
1076
-
1077
- Includes important administration panel updates
1078
-
1079
- = 1.9.7.1 =
1080
-
1081
- Includes a new POT file for Brazilian Portuguese
2
  Contributors: bravenewcode, duanestorey, dalemugford, martin kuplens-ewart
3
  Tags: wptouch, iphone, ipod, bravenewcode, mobile, android, blackberry, smartphone, responsive, design, mobile plugin, ios, mobile theme
4
  Requires at least: 3.6
5
+ Stable tag: 3.5.4
6
  Tested up to: 4.0
7
  License: GPLv2
8
 
18
 
19
  **Now Available: WPtouch Pro + BraveNewCloud**
20
 
21
+ With six themes and three new extensions installed & updated right from our new BraveNewCloud service, it's the best WPtouch yet!
22
 
23
+ For more information visit [WPtouch.com](http://www.wptouch.com/?utm_campaign=wptouch-front-readme&utm_medium=web&utm_source=wordpressdotorg "WPtouch.com"). You may also be interested in [Response](http://wpresponse.com/), a new BraveNewCode service that seamlessly integrates with WPtouch.
24
 
25
  'WPtouch' & ’WPtouch Pro' are trademarks of BraveNewCode Inc.
26
 
40
 
41
  == Changelog ==
42
 
43
+ = Version 3.5.4 (October 27th, 2014) =
44
+
45
+ * Fixed: Directory structure issues
46
+
47
+ = Version 3.5.3 (October 10th, 2014) =
48
+
49
+ * Added: Startup Screen support for iPhone 6 and 6+ (Pro only)
50
+ * Fixed: Removed php warnings
51
+ * Fixed: Minor issues with our new MobileStore theme for WooCommerce (Pro only)
52
+ * Added: New theme MobileStore (eCommerce theme for WooCommerce!) (Pro only)
53
+ * Added: Option to turn off menu output on the Open homepage (Pro only)
54
+ * Added: Open theme now supports custom post type content (Pro only)
55
+ * Added: Optional comment support to Prose (Pro only)
56
+ * Changed: Homescreen icon now recommends 180x180 (best size for iPhone 6, 6+, backwards compatible)
57
+ * Changed: Better home-template.php support in themes
58
+ * Changed: Updated FastClick module to 1.0.3 (fixes form issues)
59
+ * Changed: Theme browser now shows theme demos instead of screenshots for WebKit-based browsers (Safari, Chrome)
60
+ * Changed: Cache timing tweaked to allow filtering of cache behaviour in Infinity Cache (Pro only)
61
+ * Changed: If enabled in WPtouch, comment block is shown on pages only when they either accept comments and/or have comments to display
62
+ * Changed: Better SSL support w/ protocol-independent font and jQuery loading + image embeds
63
+ * Fixed: An issue where Check All/None for menu items would affect all theme menus
64
+ * Fixed: Better off-canvas menu support in Prose, Bauhaus and MobileStore
65
+ * Fixed: Prevent Web App Mode from getting stuck in a logout loop (Pro only)
66
+ * Fixed: Theme preview images causing SSL notices when viewing admin over HTTPS
67
+ * Fixed: Prevent mobile switch link from appearing in Web App Mode when pages are loading from cache (Pro only)
68
+ * Fixed: Bookmark icon not being used when bookmarking on iPad (Pro only)
69
+
70
+ = Version 3.4.11 (September 24th, 2014) =
71
+
72
+ * Changed: Backup file information, excluded license information and obfuscated filenames
73
+
74
  = Version 3.4.10 (September 23rd, 2014) =
75
 
76
  * Fixed: Potential security issue with URLs in comment forms
1094
  = 3.1.1 =
1095
 
1096
  This is an entirely new release, everyone! It’s completely different… and new : )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
themes/bauhaus/default/search.php CHANGED
@@ -3,7 +3,7 @@
3
  <div id="content" class="search">
4
 
5
  <div class="post-page-head-area bauhaus">
6
- <h2 class="post-title heading-font"><?php echo sprintf( __( 'You searched for "%s"', 'wptouch-pro' ), $_GET['s'] ); ?>:</h2>
7
  <span class="select-wrap">
8
  <select class="search-select heading-font">
9
  <?php
3
  <div id="content" class="search">
4
 
5
  <div class="post-page-head-area bauhaus">
6
+ <h2 class="post-title heading-font"><?php echo sprintf( __( 'You searched for "%s"', 'wptouch-pro' ), esc_attr( $_GET['s'] ) ); ?>:</h2>
7
  <span class="select-wrap">
8
  <select class="search-select heading-font">
9
  <?php
themes/bauhaus/default/style.css CHANGED
@@ -14,6 +14,11 @@ h1, h2, h3, h4, h5, h6 {
14
  letter-spacing: -1px;
15
  }
16
 
 
 
 
 
 
17
  /* @group Header */
18
 
19
  header a, header div {
14
  letter-spacing: -1px;
15
  }
16
 
17
+ .page-wrapper {
18
+ left: 0;
19
+ right: 0;
20
+ }
21
+
22
  /* @group Header */
23
 
24
  header a, header div {
themes/foundation/default/header.php CHANGED
@@ -6,9 +6,6 @@
6
  <?php wptouch_head(); ?>
7
  </head>
8
 
9
- <!-- Help speed up display of the page -->
10
- <?php flush(); ?>
11
-
12
  <body <?php body_class( wptouch_get_body_classes() ); ?>>
13
 
14
  <?php do_action( 'wptouch_preview' ); ?>
@@ -17,4 +14,4 @@
17
 
18
  <?php get_template_part( 'header-bottom' ); ?>
19
 
20
- <?php do_action( 'wptouch_body_top_second' ); ?>
6
  <?php wptouch_head(); ?>
7
  </head>
8
 
 
 
 
9
  <body <?php body_class( wptouch_get_body_classes() ); ?>>
10
 
11
  <?php do_action( 'wptouch_preview' ); ?>
14
 
15
  <?php get_template_part( 'header-bottom' ); ?>
16
 
17
+ <?php do_action( 'wptouch_body_top_second' ); ?>
themes/foundation/default/home-template.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php
2
  /*
3
- Mobile Template: Home Page
4
  */
5
  ?>
6
  <?php get_header(); ?>
7
 
8
- <?php if ( have_posts() ) { ?>
9
  <div id="content">
10
  <div class="post-content">
11
  <?php wptouch_the_content(); ?>
@@ -13,5 +13,4 @@
13
  </div>
14
  <?php } ?>
15
 
16
- <?php get_footer(); ?>
17
-
1
  <?php
2
  /*
3
+ Mobile Template: Home Template
4
  */
5
  ?>
6
  <?php get_header(); ?>
7
 
8
+ <?php if ( have_posts() ) { wptouch_the_post(); ?>
9
  <div id="content">
10
  <div class="post-content">
11
  <?php wptouch_the_content(); ?>
13
  </div>
14
  <?php } ?>
15
 
16
+ <?php get_footer(); ?>
 
themes/foundation/default/one-comment.php CHANGED
@@ -1,6 +1,11 @@
 
 
 
1
  <li class="comment clearfix">
2
  <div class="comment-top">
3
- <div class="comment-avatar"><?php echo get_avatar( $comment ); ?></div>
 
 
4
  <div class="meta">
5
  <div class="comment-author"><?php comment_author(); ?></div>
6
  <div class="comment-time"><?php comment_date(); ?></div>
@@ -12,4 +17,7 @@
12
  <p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation', 'wptouch-pro' ); ?>&hellip;</p>
13
  <?php endif; ?>
14
  <?php comment_text(); ?>
15
- </div>
 
 
 
1
+ <?php
2
+ $settings = foundation_get_settings();
3
+ ?>
4
  <li class="comment clearfix">
5
  <div class="comment-top">
6
+ <div class="comment-avatar">
7
+ <?php echo get_avatar( $comment ); ?>
8
+ </div>
9
  <div class="meta">
10
  <div class="comment-author"><?php comment_author(); ?></div>
11
  <div class="comment-time"><?php comment_date(); ?></div>
17
  <p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation', 'wptouch-pro' ); ?>&hellip;</p>
18
  <?php endif; ?>
19
  <?php comment_text(); ?>
20
+ <?php if ( $settings->allow_nested_comment_replies ) { ?>
21
+ <p><?php comment_reply_link(array_merge( $GLOBALS[ 'comment_args' ], array('depth' => $GLOBALS[ 'comment_depth' ], 'max_depth' => $GLOBALS[ 'comment_args' ]))) ?></p>
22
+ <?php } ?>
23
+ </div>
themes/foundation/default/page.php CHANGED
@@ -14,7 +14,7 @@
14
  <?php } ?>
15
  </div> <!-- content -->
16
 
17
- <?php if ( wptouch_fdn_show_comments_on_pages() ) { ?>
18
  <div id="comments">
19
  <?php comments_template(); ?>
20
  </div>
14
  <?php } ?>
15
  </div> <!-- content -->
16
 
17
+ <?php if ( wptouch_fdn_show_comments_on_pages() && ( comments_open() || have_comments() ) ) { ?>
18
  <div id="comments">
19
  <?php comments_template(); ?>
20
  </div>
themes/foundation/default/search.php CHANGED
@@ -3,7 +3,7 @@
3
 
4
  <div id="content" class="search">
5
 
6
- <h3 class="search-heading page-heading"><?php echo sprintf( __( 'You searched for "%s"', 'wptouch-pro' ), $_GET['s'] ); ?>:</h3>
7
 
8
  <?php
9
  $post_types = wptouch_fdn_get_search_post_types();
3
 
4
  <div id="content" class="search">
5
 
6
+ <h3 class="search-heading page-heading"><?php echo sprintf( __( 'You searched for "%s"', 'wptouch-pro' ), esc_attr( $_GET['s'] ) ); ?>:</h3>
7
 
8
  <?php
9
  $post_types = wptouch_fdn_get_search_post_types();
themes/foundation/default/style.css CHANGED
@@ -671,6 +671,10 @@ body.web-app-mode.translucent {
671
  margin-top: 20px;
672
  }
673
 
 
 
 
 
674
  /* @end */
675
 
676
  /* @group 404 */
@@ -802,8 +806,10 @@ li .social-footer-badges {
802
  /* @group Comments */
803
 
804
  #comments {
805
-
806
  }
 
 
 
807
 
808
  p.comment-awaiting-moderation {
809
  font-weight: bold;
671
  margin-top: 20px;
672
  }
673
 
674
+ body.web-app-mode #switch {
675
+ display: none;
676
+ }
677
+
678
  /* @end */
679
 
680
  /* @group 404 */
806
  /* @group Comments */
807
 
808
  #comments {
 
809
  }
810
+ #comments .children .comment {
811
+ margin-left: 15px;
812
+ }
813
 
814
  p.comment-awaiting-moderation {
815
  font-weight: bold;
themes/foundation/modules/base/base.js CHANGED
@@ -100,11 +100,9 @@ function wptouchFdnDoDeviceAndOrientationListener() {
100
 
101
  // Back to top links in themes
102
  function wptouchFdnSetupBackToTopLinks() {
103
- jQuery( '.back-to-top' ).each( function() {
104
- jQuery( this ).on( 'click', function( e ){
105
- jQuery( 'body' ).animate( { scrollTop: jQuery( 'html' ).offset().top }, 550 );
106
- e.preventDefault();
107
- });
108
  });
109
  }
110
 
100
 
101
  // Back to top links in themes
102
  function wptouchFdnSetupBackToTopLinks() {
103
+ jQuery( 'body' ).on( 'click', '.back-to-top', function( e ){
104
+ jQuery( 'body' ).animate( { scrollTop: jQuery( 'html' ).offset().top }, 550 );
105
+ e.preventDefault();
 
 
106
  });
107
  }
108
 
themes/foundation/modules/fastclick/fastclick.js CHANGED
@@ -1,818 +1,805 @@
1
- /**
2
- * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
3
- *
4
- * @version 1.0.2
5
- * @codingstandard ftlabs-jsv2
6
- * @copyright The Financial Times Limited [All Rights Reserved]
7
- * @license MIT License (see LICENSE.txt)
8
- */
9
-
10
- /*jslint browser:true, node:true*/
11
- /*global define, Event, Node*/
12
-
13
-
14
- /**
15
- * Instantiate fast-clicking listeners on the specified layer.
16
- *
17
- * @constructor
18
- * @param {Element} layer The layer to listen on
19
- * @param {Object} options The options to override the defaults
20
- */
21
- function FastClick(layer, options) {
22
  'use strict';
23
- var oldOnClick;
24
-
25
- options = options || {};
26
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  /**
28
- * Whether a click is currently being tracked.
29
  *
30
  * @type boolean
31
  */
32
- this.trackingClick = false;
33
-
34
-
35
  /**
36
- * Timestamp for when click tracking started.
37
  *
38
- * @type number
39
  */
40
- this.trackingClickStart = 0;
41
-
42
-
43
  /**
44
- * The element being tracked for a click.
45
  *
46
- * @type EventTarget
47
  */
48
- this.targetElement = null;
49
-
50
-
51
  /**
52
- * X-coordinate of touch start event.
53
  *
54
- * @type number
55
  */
56
- this.touchStartX = 0;
57
-
58
-
59
  /**
60
- * Y-coordinate of touch start event.
61
  *
62
- * @type number
63
  */
64
- this.touchStartY = 0;
65
-
66
-
67
  /**
68
- * ID of the last touch, retrieved from Touch.identifier.
69
  *
70
- * @type number
 
71
  */
72
- this.lastTouchIdentifier = 0;
73
-
74
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  /**
76
- * Touchmove boundary, beyond which a click will be cancelled.
77
  *
78
- * @type number
 
79
  */
80
- this.touchBoundary = options.touchBoundary || 10;
81
-
82
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  /**
84
- * The FastClick layer.
85
  *
86
- * @type Element
 
87
  */
88
- this.layer = layer;
89
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  /**
91
- * The minimum time between tap(touchstart and touchend) events
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  *
93
- * @type number
94
  */
95
- this.tapDelay = options.tapDelay || 200;
96
-
97
- if (FastClick.notNeeded(layer)) {
98
- return;
99
- }
100
-
101
- // Some old versions of Android don't have Function.prototype.bind
102
- function bind(method, context) {
103
- return function() { return method.apply(context, arguments); };
104
- }
105
-
106
-
107
- var methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];
108
- var context = this;
109
- for (var i = 0, l = methods.length; i < l; i++) {
110
- context[methods[i]] = bind(context[methods[i]], context);
111
- }
112
-
113
- // Set up event handlers as required
114
- if (deviceIsAndroid) {
115
- layer.addEventListener('mouseover', this.onMouse, true);
116
- layer.addEventListener('mousedown', this.onMouse, true);
117
- layer.addEventListener('mouseup', this.onMouse, true);
118
- }
119
-
120
- layer.addEventListener('click', this.onClick, true);
121
- layer.addEventListener('touchstart', this.onTouchStart, false);
122
- layer.addEventListener('touchmove', this.onTouchMove, false);
123
- layer.addEventListener('touchend', this.onTouchEnd, false);
124
- layer.addEventListener('touchcancel', this.onTouchCancel, false);
125
-
126
- // Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
127
- // which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick
128
- // layer when they are cancelled.
129
- if (!Event.prototype.stopImmediatePropagation) {
130
- layer.removeEventListener = function(type, callback, capture) {
131
- var rmv = Node.prototype.removeEventListener;
132
- if (type === 'click') {
133
- rmv.call(layer, type, callback.hijacked || callback, capture);
134
- } else {
135
- rmv.call(layer, type, callback, capture);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  }
137
- };
138
-
139
- layer.addEventListener = function(type, callback, capture) {
140
- var adv = Node.prototype.addEventListener;
141
- if (type === 'click') {
142
- adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {
143
- if (!event.propagationStopped) {
144
- callback(event);
145
- }
146
- }), capture);
147
- } else {
148
- adv.call(layer, type, callback, capture);
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  }
150
- };
151
- }
152
-
153
- // If a handler is already declared in the element's onclick attribute, it will be fired before
154
- // FastClick's onClick handler. Fix this by pulling out the user-defined handler function and
155
- // adding it as listener.
156
- if (typeof layer.onclick === 'function') {
157
-
158
- // Android browser on at least 3.2 requires a new reference to the function in layer.onclick
159
- // - the old one won't work if passed to addEventListener directly.
160
- oldOnClick = layer.onclick;
161
- layer.addEventListener('click', function(event) {
162
- oldOnClick(event);
163
- }, false);
164
- layer.onclick = null;
165
- }
166
- }
167
-
168
-
169
- /**
170
- * Android requires exceptions.
171
- *
172
- * @type boolean
173
- */
174
- var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0;
175
-
176
-
177
- /**
178
- * iOS requires exceptions.
179
- *
180
- * @type boolean
181
- */
182
- var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent);
183
-
184
-
185
- /**
186
- * iOS 4 requires an exception for select elements.
187
- *
188
- * @type boolean
189
- */
190
- var deviceIsIOS4 = deviceIsIOS && (/OS 4_\d(_\d)?/).test(navigator.userAgent);
191
-
192
-
193
- /**
194
- * iOS 6.0(+?) requires the target element to be manually derived
195
- *
196
- * @type boolean
197
- */
198
- var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS ([6-9]|\d{2})_\d/).test(navigator.userAgent);
199
-
200
- /**
201
- * BlackBerry requires exceptions.
202
- *
203
- * @type boolean
204
- */
205
- var deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;
206
-
207
- /**
208
- * Determine whether a given element requires a native click.
209
- *
210
- * @param {EventTarget|Element} target Target DOM element
211
- * @returns {boolean} Returns true if the element needs a native click
212
- */
213
- FastClick.prototype.needsClick = function(target) {
214
- 'use strict';
215
- switch (target.nodeName.toLowerCase()) {
216
-
217
- // Don't send a synthetic click to disabled inputs (issue #62)
218
- case 'button':
219
- case 'select':
220
- case 'textarea':
221
- if (target.disabled) {
222
  return true;
223
  }
224
-
225
- break;
226
- case 'input':
227
-
228
- // File inputs need real clicks on iOS 6 due to a browser bug (issue #68)
229
- if ((deviceIsIOS && target.type === 'file') || target.disabled) {
 
 
 
 
 
 
 
230
  return true;
231
  }
232
-
233
- break;
234
- case 'label':
235
- case 'video':
236
- return true;
237
- }
238
-
239
- return (/\bneedsclick\b/).test(target.className);
240
- };
241
-
242
-
243
- /**
244
- * Determine whether a given element requires a call to focus to simulate click into element.
245
- *
246
- * @param {EventTarget|Element} target Target DOM element
247
- * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.
248
- */
249
- FastClick.prototype.needsFocus = function(target) {
250
- 'use strict';
251
- switch (target.nodeName.toLowerCase()) {
252
- case 'textarea':
253
- return true;
254
- case 'select':
255
- return !deviceIsAndroid;
256
- case 'input':
257
- switch (target.type) {
258
- case 'button':
259
- case 'checkbox':
260
- case 'file':
261
- case 'image':
262
- case 'radio':
263
- case 'submit':
264
- return false;
265
  }
266
-
267
- // No point in attempting to focus disabled inputs
268
- return !target.disabled && !target.readOnly;
269
- default:
270
- return (/\bneedsfocus\b/).test(target.className);
271
- }
272
- };
273
-
274
-
275
- /**
276
- * Send a click event to the specified element.
277
- *
278
- * @param {EventTarget|Element} targetElement
279
- * @param {Event} event
280
- */
281
- FastClick.prototype.sendClick = function(targetElement, event) {
282
- 'use strict';
283
- var clickEvent, touch;
284
-
285
- // On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)
286
- if (document.activeElement && document.activeElement !== targetElement) {
287
- document.activeElement.blur();
288
- }
289
-
290
- touch = event.changedTouches[0];
291
-
292
- // Synthesise a click event, with an extra attribute so it can be tracked
293
- clickEvent = document.createEvent('MouseEvents');
294
- clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);
295
- clickEvent.forwardedTouchEvent = true;
296
- targetElement.dispatchEvent(clickEvent);
297
- };
298
-
299
- FastClick.prototype.determineEventType = function(targetElement) {
300
- 'use strict';
301
-
302
- //Issue #159: Android Chrome Select Box does not open with a synthetic click event
303
- if (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {
304
- return 'mousedown';
305
- }
306
-
307
- return 'click';
308
- };
309
-
310
-
311
- /**
312
- * @param {EventTarget|Element} targetElement
313
- */
314
- FastClick.prototype.focus = function(targetElement) {
315
- 'use strict';
316
- var length;
317
-
318
- // Issue #160: on iOS 7, some input elements (e.g. date datetime) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.
319
- if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time') {
320
- length = targetElement.value.length;
321
- targetElement.setSelectionRange(length, length);
322
- } else {
323
- targetElement.focus();
324
- }
325
- };
326
-
327
-
328
- /**
329
- * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.
330
- *
331
- * @param {EventTarget|Element} targetElement
332
- */
333
- FastClick.prototype.updateScrollParent = function(targetElement) {
334
- 'use strict';
335
- var scrollParent, parentElement;
336
-
337
- scrollParent = targetElement.fastClickScrollParent;
338
-
339
- // Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the
340
- // target element was moved to another parent.
341
- if (!scrollParent || !scrollParent.contains(targetElement)) {
342
- parentElement = targetElement;
343
- do {
344
- if (parentElement.scrollHeight > parentElement.offsetHeight) {
345
- scrollParent = parentElement;
346
- targetElement.fastClickScrollParent = parentElement;
347
- break;
348
- }
349
-
350
- parentElement = parentElement.parentElement;
351
- } while (parentElement);
352
- }
353
-
354
- // Always update the scroll top tracker if possible.
355
- if (scrollParent) {
356
- scrollParent.fastClickLastScrollTop = scrollParent.scrollTop;
357
- }
358
- };
359
-
360
-
361
- /**
362
- * @param {EventTarget} targetElement
363
- * @returns {Element|EventTarget}
364
- */
365
- FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {
366
- 'use strict';
367
-
368
- // On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.
369
- if (eventTarget.nodeType === Node.TEXT_NODE) {
370
- return eventTarget.parentNode;
371
- }
372
-
373
- return eventTarget;
374
- };
375
-
376
-
377
- /**
378
- * On touch start, record the position and scroll offset.
379
- *
380
- * @param {Event} event
381
- * @returns {boolean}
382
- */
383
- FastClick.prototype.onTouchStart = function(event) {
384
- 'use strict';
385
- var targetElement, touch, selection;
386
-
387
- // Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).
388
- if (event.targetTouches.length > 1) {
389
  return true;
390
- }
391
-
392
- targetElement = this.getTargetElementFromEventTarget(event.target);
393
- touch = event.targetTouches[0];
394
-
395
- if (deviceIsIOS) {
396
-
397
- // Only trusted events will deselect text on iOS (issue #49)
398
- selection = window.getSelection();
399
- if (selection.rangeCount && !selection.isCollapsed) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
400
  return true;
401
  }
402
-
403
- if (!deviceIsIOS4) {
404
-
405
- // Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):
406
- // when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched
407
- // with the same identifier as the touch event that previously triggered the click that triggered the alert.
408
- // Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an
409
- // immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.
410
- if (touch.identifier === this.lastTouchIdentifier) {
411
- event.preventDefault();
412
- return false;
413
- }
414
-
415
- this.lastTouchIdentifier = touch.identifier;
416
-
417
- // If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:
418
- // 1) the user does a fling scroll on the scrollable layer
419
- // 2) the user stops the fling scroll with another tap
420
- // then the event.target of the last 'touchend' event will be the element that was under the user's finger
421
- // when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check
422
- // is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).
423
- this.updateScrollParent(targetElement);
424
  }
425
- }
426
-
427
- this.trackingClick = true;
428
- this.trackingClickStart = event.timeStamp;
429
- this.targetElement = targetElement;
430
-
431
- this.touchStartX = touch.pageX;
432
- this.touchStartY = touch.pageY;
433
-
434
- // Prevent phantom clicks on fast double-tap (issue #36)
435
- if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
436
- event.preventDefault();
437
- }
438
-
439
- return true;
440
- };
441
-
442
-
443
- /**
444
- * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.
445
- *
446
- * @param {Event} event
447
- * @returns {boolean}
448
- */
449
- FastClick.prototype.touchHasMoved = function(event) {
450
- 'use strict';
451
- var touch = event.changedTouches[0], boundary = this.touchBoundary;
452
-
453
- if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {
454
- return true;
455
- }
456
-
457
- return false;
458
- };
459
-
460
-
461
- /**
462
- * Update the last position.
463
- *
464
- * @param {Event} event
465
- * @returns {boolean}
466
- */
467
- FastClick.prototype.onTouchMove = function(event) {
468
- 'use strict';
469
- if (!this.trackingClick) {
470
- return true;
471
- }
472
-
473
- // If the touch has moved, cancel the click tracking
474
- if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {
475
  this.trackingClick = false;
476
- this.targetElement = null;
477
- }
478
-
479
- return true;
480
- };
481
-
482
-
483
- /**
484
- * Attempt to find the labelled control for the given label element.
485
- *
486
- * @param {EventTarget|HTMLLabelElement} labelElement
487
- * @returns {Element|null}
488
- */
489
- FastClick.prototype.findControl = function(labelElement) {
490
- 'use strict';
491
-
492
- // Fast path for newer browsers supporting the HTML5 control attribute
493
- if (labelElement.control !== undefined) {
494
- return labelElement.control;
495
- }
496
-
497
- // All browsers under test that support touch events also support the HTML5 htmlFor attribute
498
- if (labelElement.htmlFor) {
499
- return document.getElementById(labelElement.htmlFor);
500
- }
501
-
502
- // If no for attribute exists, attempt to retrieve the first labellable descendant element
503
- // the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label
504
- return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');
505
- };
506
-
507
-
508
- /**
509
- * On touch end, determine whether to send a click event at once.
510
- *
511
- * @param {Event} event
512
- * @returns {boolean}
513
- */
514
- FastClick.prototype.onTouchEnd = function(event) {
515
- 'use strict';
516
- var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;
517
-
518
- if (!this.trackingClick) {
519
- return true;
520
- }
521
-
522
- // Prevent phantom clicks on fast double-tap (issue #36)
523
- if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
524
- this.cancelNextClick = true;
525
- return true;
526
- }
527
-
528
- // Reset to prevent wrong click cancel on input (issue #156).
529
- this.cancelNextClick = false;
530
-
531
- this.lastClickTime = event.timeStamp;
532
-
533
- trackingClickStart = this.trackingClickStart;
534
- this.trackingClick = false;
535
- this.trackingClickStart = 0;
536
-
537
- // On some iOS devices, the targetElement supplied with the event is invalid if the layer
538
- // is performing a transition or scroll, and has to be re-detected manually. Note that
539
- // for this to function correctly, it must be called *after* the event target is checked!
540
- // See issue #57; also filed as rdar://13048589 .
541
- if (deviceIsIOSWithBadTarget) {
542
- touch = event.changedTouches[0];
543
-
544
- // In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null
545
- targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;
546
- targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;
547
- }
548
-
549
- targetTagName = targetElement.tagName.toLowerCase();
550
- if (targetTagName === 'label') {
551
- forElement = this.findControl(targetElement);
552
- if (forElement) {
553
- this.focus(targetElement);
554
- if (deviceIsAndroid) {
555
  return false;
556
  }
557
-
558
- targetElement = forElement;
559
- }
560
- } else if (this.needsFocus(targetElement)) {
561
-
562
- // Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.
563
- // Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).
564
- if ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {
565
- this.targetElement = null;
 
 
566
  return false;
567
  }
568
-
569
- this.focus(targetElement);
570
- this.sendClick(targetElement, event);
571
-
572
- // Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.
573
- // Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)
574
- if (!deviceIsIOS || targetTagName !== 'select') {
575
- this.targetElement = null;
576
- event.preventDefault();
577
  }
578
-
579
- return false;
580
- }
581
-
582
- if (deviceIsIOS && !deviceIsIOS4) {
583
-
584
- // Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled
585
- // and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).
586
- scrollParent = targetElement.fastClickScrollParent;
587
- if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {
588
- return true;
589
  }
590
- }
591
-
592
- // Prevent the actual click from going though - unless the target node is marked as requiring
593
- // real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.
594
- if (!this.needsClick(targetElement)) {
595
- event.preventDefault();
596
- this.sendClick(targetElement, event);
597
- }
598
-
599
- return false;
600
- };
601
-
602
-
603
- /**
604
- * On touch cancel, stop tracking the click.
605
- *
606
- * @returns {void}
607
- */
608
- FastClick.prototype.onTouchCancel = function() {
609
- 'use strict';
610
- this.trackingClick = false;
611
- this.targetElement = null;
612
- };
613
-
614
-
615
- /**
616
- * Determine mouse events which should be permitted.
617
- *
618
- * @param {Event} event
619
- * @returns {boolean}
620
- */
621
- FastClick.prototype.onMouse = function(event) {
622
- 'use strict';
623
-
624
- // If a target element was never set (because a touch event was never fired) allow the event
625
- if (!this.targetElement) {
626
- return true;
627
- }
628
-
629
- if (event.forwardedTouchEvent) {
630
- return true;
631
- }
632
-
633
- // Programmatically generated events targeting a specific element should be permitted
634
- if (!event.cancelable) {
635
- return true;
636
- }
637
-
638
- // Derive and check the target element to see whether the mouse event needs to be permitted;
639
- // unless explicitly enabled, prevent non-touch click events from triggering actions,
640
- // to prevent ghost/doubleclicks.
641
- if (!this.needsClick(this.targetElement) || this.cancelNextClick) {
642
-
643
- // Prevent any user-added listeners declared on FastClick element from being fired.
644
- if (event.stopImmediatePropagation) {
645
- event.stopImmediatePropagation();
646
- } else {
647
-
648
- // Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
649
- event.propagationStopped = true;
650
- }
651
-
652
- // Cancel the event
653
- event.stopPropagation();
654
- event.preventDefault();
655
-
656
  return false;
657
- }
658
-
659
- // If the mouse event is permitted, return true for the action to go through.
660
- return true;
661
- };
662
-
663
-
664
- /**
665
- * On actual clicks, determine whether this is a touch-generated click, a click action occurring
666
- * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or
667
- * an actual click which should be permitted.
668
- *
669
- * @param {Event} event
670
- * @returns {boolean}
671
- */
672
- FastClick.prototype.onClick = function(event) {
673
- 'use strict';
674
- var permitted;
675
-
676
- // It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.
677
- if (this.trackingClick) {
678
- this.targetElement = null;
679
  this.trackingClick = false;
680
- return true;
681
- }
682
-
683
- // Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.
684
- if (event.target.type === 'submit' && event.detail === 0) {
685
- return true;
686
- }
687
-
688
- permitted = this.onMouse(event);
689
-
690
- // Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.
691
- if (!permitted) {
692
  this.targetElement = null;
693
- }
694
-
695
- // If clicks are permitted, return true for the action to go through.
696
- return permitted;
697
- };
698
-
699
-
700
- /**
701
- * Remove all FastClick's event listeners.
702
- *
703
- * @returns {void}
704
- */
705
- FastClick.prototype.destroy = function() {
706
- 'use strict';
707
- var layer = this.layer;
708
-
709
- if (deviceIsAndroid) {
710
- layer.removeEventListener('mouseover', this.onMouse, true);
711
- layer.removeEventListener('mousedown', this.onMouse, true);
712
- layer.removeEventListener('mouseup', this.onMouse, true);
713
- }
714
-
715
- layer.removeEventListener('click', this.onClick, true);
716
- layer.removeEventListener('touchstart', this.onTouchStart, false);
717
- layer.removeEventListener('touchmove', this.onTouchMove, false);
718
- layer.removeEventListener('touchend', this.onTouchEnd, false);
719
- layer.removeEventListener('touchcancel', this.onTouchCancel, false);
720
- };
721
-
722
-
723
- /**
724
- * Check whether FastClick is needed.
725
- *
726
- * @param {Element} layer The layer to listen on
727
- */
728
- FastClick.notNeeded = function(layer) {
729
- 'use strict';
730
- var metaViewport;
731
- var chromeVersion;
732
- var blackberryVersion;
733
-
734
- // Devices that don't support touch don't need FastClick
735
- if (typeof window.ontouchstart === 'undefined') {
 
 
 
 
736
  return true;
737
- }
738
-
739
- // Chrome version - zero for other browsers
740
- chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];
741
-
742
- if (chromeVersion) {
743
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
744
  if (deviceIsAndroid) {
745
- metaViewport = document.querySelector('meta[name=viewport]');
746
-
747
- if (metaViewport) {
748
- // Chrome on Android with user-scalable="no" doesn't need FastClick (issue #89)
749
- if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
750
- return true;
751
- }
752
- // Chrome 32 and above with width=device-width or less don't need FastClick
753
- if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {
754
- return true;
755
- }
756
- }
757
-
758
- // Chrome desktop doesn't need FastClick (issue #15)
759
- } else {
 
 
 
 
 
 
 
 
 
 
760
  return true;
761
  }
762
- }
763
-
764
- if (deviceIsBlackBerry10) {
765
- blackberryVersion = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/);
766
-
767
- // BlackBerry 10.3+ does not require Fastclick library.
768
- // https://github.com/ftlabs/fastclick/issues/251
769
- if (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {
770
- metaViewport = document.querySelector('meta[name=viewport]');
771
-
772
- if (metaViewport) {
773
- // user-scalable=no eliminates click delay.
774
- if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
775
- return true;
 
 
 
 
776
  }
777
- // width=device-width (or less than device-width) eliminates click delay.
778
- if (document.documentElement.scrollWidth <= window.outerWidth) {
779
- return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
780
  }
781
  }
782
  }
783
- }
784
 
785
- // IE10 with -ms-touch-action: none, which disables double-tap-to-zoom (issue #97)
786
- if (layer.style.msTouchAction === 'none') {
787
- return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
788
  }
789
-
790
- return false;
791
- };
792
-
793
-
794
- /**
795
- * Factory method for creating a FastClick object
796
- *
797
- * @param {Element} layer The layer to listen on
798
- * @param {Object} options The options to override the defaults
799
- */
800
- FastClick.attach = function(layer, options) {
801
- 'use strict';
802
- return new FastClick(layer, options);
803
- };
804
-
805
-
806
- if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
807
-
808
- // AMD. Register as an anonymous module.
809
- define(function() {
810
- 'use strict';
811
- return FastClick;
812
- });
813
- } else if (typeof module !== 'undefined' && module.exports) {
814
- module.exports = FastClick.attach;
815
- module.exports.FastClick = FastClick;
816
- } else {
817
- window.FastClick = FastClick;
818
- }
1
+ (function () {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  'use strict';
3
+
4
+ /**
5
+ * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
6
+ *
7
+ * @version 1.0.3
8
+ * @codingstandard ftlabs-jsv2
9
+ * @copyright The Financial Times Limited [All Rights Reserved]
10
+ * @license MIT License (see LICENSE.txt)
11
+ */
12
+
13
+ /*jslint browser:true, node:true*/
14
+ /*global define, Event, Node*/
15
+
16
+
17
+ /**
18
+ * Instantiate fast-clicking listeners on the specified layer.
19
+ *
20
+ * @constructor
21
+ * @param {Element} layer The layer to listen on
22
+ * @param {Object} options The options to override the defaults
23
+ */
24
+ function FastClick(layer, options) {
25
+ var oldOnClick;
26
+
27
+ options = options || {};
28
+
29
+ /**
30
+ * Whether a click is currently being tracked.
31
+ *
32
+ * @type boolean
33
+ */
34
+ this.trackingClick = false;
35
+
36
+
37
+ /**
38
+ * Timestamp for when click tracking started.
39
+ *
40
+ * @type number
41
+ */
42
+ this.trackingClickStart = 0;
43
+
44
+
45
+ /**
46
+ * The element being tracked for a click.
47
+ *
48
+ * @type EventTarget
49
+ */
50
+ this.targetElement = null;
51
+
52
+
53
+ /**
54
+ * X-coordinate of touch start event.
55
+ *
56
+ * @type number
57
+ */
58
+ this.touchStartX = 0;
59
+
60
+
61
+ /**
62
+ * Y-coordinate of touch start event.
63
+ *
64
+ * @type number
65
+ */
66
+ this.touchStartY = 0;
67
+
68
+
69
+ /**
70
+ * ID of the last touch, retrieved from Touch.identifier.
71
+ *
72
+ * @type number
73
+ */
74
+ this.lastTouchIdentifier = 0;
75
+
76
+
77
+ /**
78
+ * Touchmove boundary, beyond which a click will be cancelled.
79
+ *
80
+ * @type number
81
+ */
82
+ this.touchBoundary = options.touchBoundary || 10;
83
+
84
+
85
+ /**
86
+ * The FastClick layer.
87
+ *
88
+ * @type Element
89
+ */
90
+ this.layer = layer;
91
+
92
+ /**
93
+ * The minimum time between tap(touchstart and touchend) events
94
+ *
95
+ * @type number
96
+ */
97
+ this.tapDelay = options.tapDelay || 200;
98
+
99
+ if (FastClick.notNeeded(layer)) {
100
+ return;
101
+ }
102
+
103
+ // Some old versions of Android don't have Function.prototype.bind
104
+ function bind(method, context) {
105
+ return function() { return method.apply(context, arguments); };
106
+ }
107
+
108
+
109
+ var methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];
110
+ var context = this;
111
+ for (var i = 0, l = methods.length; i < l; i++) {
112
+ context[methods[i]] = bind(context[methods[i]], context);
113
+ }
114
+
115
+ // Set up event handlers as required
116
+ if (deviceIsAndroid) {
117
+ layer.addEventListener('mouseover', this.onMouse, true);
118
+ layer.addEventListener('mousedown', this.onMouse, true);
119
+ layer.addEventListener('mouseup', this.onMouse, true);
120
+ }
121
+
122
+ layer.addEventListener('click', this.onClick, true);
123
+ layer.addEventListener('touchstart', this.onTouchStart, false);
124
+ layer.addEventListener('touchmove', this.onTouchMove, false);
125
+ layer.addEventListener('touchend', this.onTouchEnd, false);
126
+ layer.addEventListener('touchcancel', this.onTouchCancel, false);
127
+
128
+ // Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
129
+ // which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick
130
+ // layer when they are cancelled.
131
+ if (!Event.prototype.stopImmediatePropagation) {
132
+ layer.removeEventListener = function(type, callback, capture) {
133
+ var rmv = Node.prototype.removeEventListener;
134
+ if (type === 'click') {
135
+ rmv.call(layer, type, callback.hijacked || callback, capture);
136
+ } else {
137
+ rmv.call(layer, type, callback, capture);
138
+ }
139
+ };
140
+
141
+ layer.addEventListener = function(type, callback, capture) {
142
+ var adv = Node.prototype.addEventListener;
143
+ if (type === 'click') {
144
+ adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {
145
+ if (!event.propagationStopped) {
146
+ callback(event);
147
+ }
148
+ }), capture);
149
+ } else {
150
+ adv.call(layer, type, callback, capture);
151
+ }
152
+ };
153
+ }
154
+
155
+ // If a handler is already declared in the element's onclick attribute, it will be fired before
156
+ // FastClick's onClick handler. Fix this by pulling out the user-defined handler function and
157
+ // adding it as listener.
158
+ if (typeof layer.onclick === 'function') {
159
+
160
+ // Android browser on at least 3.2 requires a new reference to the function in layer.onclick
161
+ // - the old one won't work if passed to addEventListener directly.
162
+ oldOnClick = layer.onclick;
163
+ layer.addEventListener('click', function(event) {
164
+ oldOnClick(event);
165
+ }, false);
166
+ layer.onclick = null;
167
+ }
168
+ }
169
+
170
+
171
  /**
172
+ * Android requires exceptions.
173
  *
174
  * @type boolean
175
  */
176
+ var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0;
177
+
178
+
179
  /**
180
+ * iOS requires exceptions.
181
  *
182
+ * @type boolean
183
  */
184
+ var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent);
185
+
186
+
187
  /**
188
+ * iOS 4 requires an exception for select elements.
189
  *
190
+ * @type boolean
191
  */
192
+ var deviceIsIOS4 = deviceIsIOS && (/OS 4_\d(_\d)?/).test(navigator.userAgent);
193
+
194
+
195
  /**
196
+ * iOS 6.0(+?) requires the target element to be manually derived
197
  *
198
+ * @type boolean
199
  */
200
+ var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS ([6-9]|\d{2})_\d/).test(navigator.userAgent);
201
+
 
202
  /**
203
+ * BlackBerry requires exceptions.
204
  *
205
+ * @type boolean
206
  */
207
+ var deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;
208
+
 
209
  /**
210
+ * Determine whether a given element requires a native click.
211
  *
212
+ * @param {EventTarget|Element} target Target DOM element
213
+ * @returns {boolean} Returns true if the element needs a native click
214
  */
215
+ FastClick.prototype.needsClick = function(target) {
216
+ switch (target.nodeName.toLowerCase()) {
217
+
218
+ // Don't send a synthetic click to disabled inputs (issue #62)
219
+ case 'button':
220
+ case 'select':
221
+ case 'textarea':
222
+ if (target.disabled) {
223
+ return true;
224
+ }
225
+
226
+ break;
227
+ case 'input':
228
+
229
+ // File inputs need real clicks on iOS 6 due to a browser bug (issue #68)
230
+ if ((deviceIsIOS && target.type === 'file') || target.disabled) {
231
+ return true;
232
+ }
233
+
234
+ break;
235
+ case 'label':
236
+ case 'video':
237
+ return true;
238
+ }
239
+
240
+ return (/\bneedsclick\b/).test(target.className);
241
+ };
242
+
243
+
244
  /**
245
+ * Determine whether a given element requires a call to focus to simulate click into element.
246
  *
247
+ * @param {EventTarget|Element} target Target DOM element
248
+ * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.
249
  */
250
+ FastClick.prototype.needsFocus = function(target) {
251
+ switch (target.nodeName.toLowerCase()) {
252
+ case 'textarea':
253
+ return true;
254
+ case 'select':
255
+ return !deviceIsAndroid;
256
+ case 'input':
257
+ switch (target.type) {
258
+ case 'button':
259
+ case 'checkbox':
260
+ case 'file':
261
+ case 'image':
262
+ case 'radio':
263
+ case 'submit':
264
+ return false;
265
+ }
266
+
267
+ // No point in attempting to focus disabled inputs
268
+ return !target.disabled && !target.readOnly;
269
+ default:
270
+ return (/\bneedsfocus\b/).test(target.className);
271
+ }
272
+ };
273
+
274
+
275
  /**
276
+ * Send a click event to the specified element.
277
  *
278
+ * @param {EventTarget|Element} targetElement
279
+ * @param {Event} event
280
  */
281
+ FastClick.prototype.sendClick = function(targetElement, event) {
282
+ var clickEvent, touch;
283
+
284
+ // On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)
285
+ if (document.activeElement && document.activeElement !== targetElement) {
286
+ document.activeElement.blur();
287
+ }
288
+
289
+ touch = event.changedTouches[0];
290
+
291
+ // Synthesise a click event, with an extra attribute so it can be tracked
292
+ clickEvent = document.createEvent('MouseEvents');
293
+ clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);
294
+ clickEvent.forwardedTouchEvent = true;
295
+ targetElement.dispatchEvent(clickEvent);
296
+ };
297
+
298
+ FastClick.prototype.determineEventType = function(targetElement) {
299
+
300
+ //Issue #159: Android Chrome Select Box does not open with a synthetic click event
301
+ if (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {
302
+ return 'mousedown';
303
+ }
304
+
305
+ return 'click';
306
+ };
307
+
308
+
309
  /**
310
+ * @param {EventTarget|Element} targetElement
311
+ */
312
+ FastClick.prototype.focus = function(targetElement) {
313
+ var length;
314
+
315
+ // Issue #160: on iOS 7, some input elements (e.g. date datetime) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.
316
+ if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time') {
317
+ length = targetElement.value.length;
318
+ targetElement.setSelectionRange(length, length);
319
+ } else {
320
+ targetElement.focus();
321
+ }
322
+ };
323
+
324
+
325
+ /**
326
+ * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.
327
  *
328
+ * @param {EventTarget|Element} targetElement
329
  */
330
+ FastClick.prototype.updateScrollParent = function(targetElement) {
331
+ var scrollParent, parentElement;
332
+
333
+ scrollParent = targetElement.fastClickScrollParent;
334
+
335
+ // Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the
336
+ // target element was moved to another parent.
337
+ if (!scrollParent || !scrollParent.contains(targetElement)) {
338
+ parentElement = targetElement;
339
+ do {
340
+ if (parentElement.scrollHeight > parentElement.offsetHeight) {
341
+ scrollParent = parentElement;
342
+ targetElement.fastClickScrollParent = parentElement;
343
+ break;
344
+ }
345
+
346
+ parentElement = parentElement.parentElement;
347
+ } while (parentElement);
348
+ }
349
+
350
+ // Always update the scroll top tracker if possible.
351
+ if (scrollParent) {
352
+ scrollParent.fastClickLastScrollTop = scrollParent.scrollTop;
353
+ }
354
+ };
355
+
356
+
357
+ /**
358
+ * @param {EventTarget} targetElement
359
+ * @returns {Element|EventTarget}
360
+ */
361
+ FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {
362
+
363
+ // On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.
364
+ if (eventTarget.nodeType === Node.TEXT_NODE) {
365
+ return eventTarget.parentNode;
366
+ }
367
+
368
+ return eventTarget;
369
+ };
370
+
371
+
372
+ /**
373
+ * On touch start, record the position and scroll offset.
374
+ *
375
+ * @param {Event} event
376
+ * @returns {boolean}
377
+ */
378
+ FastClick.prototype.onTouchStart = function(event) {
379
+ var targetElement, touch, selection;
380
+
381
+ // Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).
382
+ if (event.targetTouches.length > 1) {
383
+ return true;
384
+ }
385
+
386
+ targetElement = this.getTargetElementFromEventTarget(event.target);
387
+ touch = event.targetTouches[0];
388
+
389
+ if (deviceIsIOS) {
390
+
391
+ // Only trusted events will deselect text on iOS (issue #49)
392
+ selection = window.getSelection();
393
+ if (selection.rangeCount && !selection.isCollapsed) {
394
+ return true;
395
  }
396
+
397
+ if (!deviceIsIOS4) {
398
+
399
+ // Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):
400
+ // when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched
401
+ // with the same identifier as the touch event that previously triggered the click that triggered the alert.
402
+ // Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an
403
+ // immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.
404
+ // Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,
405
+ // which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,
406
+ // random integers, it's safe to to continue if the identifier is 0 here.
407
+ if (touch.identifier && touch.identifier === this.lastTouchIdentifier) {
408
+ event.preventDefault();
409
+ return false;
410
+ }
411
+
412
+ this.lastTouchIdentifier = touch.identifier;
413
+
414
+ // If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:
415
+ // 1) the user does a fling scroll on the scrollable layer
416
+ // 2) the user stops the fling scroll with another tap
417
+ // then the event.target of the last 'touchend' event will be the element that was under the user's finger
418
+ // when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check
419
+ // is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).
420
+ this.updateScrollParent(targetElement);
421
  }
422
+ }
423
+
424
+ this.trackingClick = true;
425
+ this.trackingClickStart = event.timeStamp;
426
+ this.targetElement = targetElement;
427
+
428
+ this.touchStartX = touch.pageX;
429
+ this.touchStartY = touch.pageY;
430
+
431
+ // Prevent phantom clicks on fast double-tap (issue #36)
432
+ if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
433
+ event.preventDefault();
434
+ }
435
+
436
+ return true;
437
+ };
438
+
439
+
440
+ /**
441
+ * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.
442
+ *
443
+ * @param {Event} event
444
+ * @returns {boolean}
445
+ */
446
+ FastClick.prototype.touchHasMoved = function(event) {
447
+ var touch = event.changedTouches[0], boundary = this.touchBoundary;
448
+
449
+ if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
450
  return true;
451
  }
452
+
453
+ return false;
454
+ };
455
+
456
+
457
+ /**
458
+ * Update the last position.
459
+ *
460
+ * @param {Event} event
461
+ * @returns {boolean}
462
+ */
463
+ FastClick.prototype.onTouchMove = function(event) {
464
+ if (!this.trackingClick) {
465
  return true;
466
  }
467
+
468
+ // If the touch has moved, cancel the click tracking
469
+ if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {
470
+ this.trackingClick = false;
471
+ this.targetElement = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
472
  }
473
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
474
  return true;
475
+ };
476
+
477
+
478
+ /**
479
+ * Attempt to find the labelled control for the given label element.
480
+ *
481
+ * @param {EventTarget|HTMLLabelElement} labelElement
482
+ * @returns {Element|null}
483
+ */
484
+ FastClick.prototype.findControl = function(labelElement) {
485
+
486
+ // Fast path for newer browsers supporting the HTML5 control attribute
487
+ if (labelElement.control !== undefined) {
488
+ return labelElement.control;
489
+ }
490
+
491
+ // All browsers under test that support touch events also support the HTML5 htmlFor attribute
492
+ if (labelElement.htmlFor) {
493
+ return document.getElementById(labelElement.htmlFor);
494
+ }
495
+
496
+ // If no for attribute exists, attempt to retrieve the first labellable descendant element
497
+ // the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label
498
+ return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');
499
+ };
500
+
501
+
502
+ /**
503
+ * On touch end, determine whether to send a click event at once.
504
+ *
505
+ * @param {Event} event
506
+ * @returns {boolean}
507
+ */
508
+ FastClick.prototype.onTouchEnd = function(event) {
509
+ var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;
510
+
511
+ if (!this.trackingClick) {
512
  return true;
513
  }
514
+
515
+ // Prevent phantom clicks on fast double-tap (issue #36)
516
+ if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
517
+ this.cancelNextClick = true;
518
+ return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
519
  }
520
+
521
+ // Reset to prevent wrong click cancel on input (issue #156).
522
+ this.cancelNextClick = false;
523
+
524
+ this.lastClickTime = event.timeStamp;
525
+
526
+ trackingClickStart = this.trackingClickStart;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
527
  this.trackingClick = false;
528
+ this.trackingClickStart = 0;
529
+
530
+ // On some iOS devices, the targetElement supplied with the event is invalid if the layer
531
+ // is performing a transition or scroll, and has to be re-detected manually. Note that
532
+ // for this to function correctly, it must be called *after* the event target is checked!
533
+ // See issue #57; also filed as rdar://13048589 .
534
+ if (deviceIsIOSWithBadTarget) {
535
+ touch = event.changedTouches[0];
536
+
537
+ // In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null
538
+ targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;
539
+ targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;
540
+ }
541
+
542
+ targetTagName = targetElement.tagName.toLowerCase();
543
+ if (targetTagName === 'label') {
544
+ forElement = this.findControl(targetElement);
545
+ if (forElement) {
546
+ this.focus(targetElement);
547
+ if (deviceIsAndroid) {
548
+ return false;
549
+ }
550
+
551
+ targetElement = forElement;
552
+ }
553
+ } else if (this.needsFocus(targetElement)) {
554
+
555
+ // Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.
556
+ // Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).
557
+ if ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {
558
+ this.targetElement = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
559
  return false;
560
  }
561
+
562
+ this.focus(targetElement);
563
+ this.sendClick(targetElement, event);
564
+
565
+ // Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.
566
+ // Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)
567
+ if (!deviceIsIOS || targetTagName !== 'select') {
568
+ this.targetElement = null;
569
+ event.preventDefault();
570
+ }
571
+
572
  return false;
573
  }
574
+
575
+ if (deviceIsIOS && !deviceIsIOS4) {
576
+
577
+ // Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled
578
+ // and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).
579
+ scrollParent = targetElement.fastClickScrollParent;
580
+ if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {
581
+ return true;
582
+ }
583
  }
584
+
585
+ // Prevent the actual click from going though - unless the target node is marked as requiring
586
+ // real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.
587
+ if (!this.needsClick(targetElement)) {
588
+ event.preventDefault();
589
+ this.sendClick(targetElement, event);
 
 
 
 
 
590
  }
591
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
592
  return false;
593
+ };
594
+
595
+
596
+ /**
597
+ * On touch cancel, stop tracking the click.
598
+ *
599
+ * @returns {void}
600
+ */
601
+ FastClick.prototype.onTouchCancel = function() {
 
 
 
 
 
 
 
 
 
 
 
 
 
602
  this.trackingClick = false;
 
 
 
 
 
 
 
 
 
 
 
 
603
  this.targetElement = null;
604
+ };
605
+
606
+
607
+ /**
608
+ * Determine mouse events which should be permitted.
609
+ *
610
+ * @param {Event} event
611
+ * @returns {boolean}
612
+ */
613
+ FastClick.prototype.onMouse = function(event) {
614
+
615
+ // If a target element was never set (because a touch event was never fired) allow the event
616
+ if (!this.targetElement) {
617
+ return true;
618
+ }
619
+
620
+ if (event.forwardedTouchEvent) {
621
+ return true;
622
+ }
623
+
624
+ // Programmatically generated events targeting a specific element should be permitted
625
+ if (!event.cancelable) {
626
+ return true;
627
+ }
628
+
629
+ // Derive and check the target element to see whether the mouse event needs to be permitted;
630
+ // unless explicitly enabled, prevent non-touch click events from triggering actions,
631
+ // to prevent ghost/doubleclicks.
632
+ if (!this.needsClick(this.targetElement) || this.cancelNextClick) {
633
+
634
+ // Prevent any user-added listeners declared on FastClick element from being fired.
635
+ if (event.stopImmediatePropagation) {
636
+ event.stopImmediatePropagation();
637
+ } else {
638
+
639
+ // Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
640
+ event.propagationStopped = true;
641
+ }
642
+
643
+ // Cancel the event
644
+ event.stopPropagation();
645
+ event.preventDefault();
646
+
647
+ return false;
648
+ }
649
+
650
+ // If the mouse event is permitted, return true for the action to go through.
651
  return true;
652
+ };
653
+
654
+
655
+ /**
656
+ * On actual clicks, determine whether this is a touch-generated click, a click action occurring
657
+ * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or
658
+ * an actual click which should be permitted.
659
+ *
660
+ * @param {Event} event
661
+ * @returns {boolean}
662
+ */
663
+ FastClick.prototype.onClick = function(event) {
664
+ var permitted;
665
+
666
+ // It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.
667
+ if (this.trackingClick) {
668
+ this.targetElement = null;
669
+ this.trackingClick = false;
670
+ return true;
671
+ }
672
+
673
+ // Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.
674
+ if (event.target.type === 'submit' && event.detail === 0) {
675
+ return true;
676
+ }
677
+
678
+ permitted = this.onMouse(event);
679
+
680
+ // Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.
681
+ if (!permitted) {
682
+ this.targetElement = null;
683
+ }
684
+
685
+ // If clicks are permitted, return true for the action to go through.
686
+ return permitted;
687
+ };
688
+
689
+
690
+ /**
691
+ * Remove all FastClick's event listeners.
692
+ *
693
+ * @returns {void}
694
+ */
695
+ FastClick.prototype.destroy = function() {
696
+ var layer = this.layer;
697
+
698
  if (deviceIsAndroid) {
699
+ layer.removeEventListener('mouseover', this.onMouse, true);
700
+ layer.removeEventListener('mousedown', this.onMouse, true);
701
+ layer.removeEventListener('mouseup', this.onMouse, true);
702
+ }
703
+
704
+ layer.removeEventListener('click', this.onClick, true);
705
+ layer.removeEventListener('touchstart', this.onTouchStart, false);
706
+ layer.removeEventListener('touchmove', this.onTouchMove, false);
707
+ layer.removeEventListener('touchend', this.onTouchEnd, false);
708
+ layer.removeEventListener('touchcancel', this.onTouchCancel, false);
709
+ };
710
+
711
+
712
+ /**
713
+ * Check whether FastClick is needed.
714
+ *
715
+ * @param {Element} layer The layer to listen on
716
+ */
717
+ FastClick.notNeeded = function(layer) {
718
+ var metaViewport;
719
+ var chromeVersion;
720
+ var blackberryVersion;
721
+
722
+ // Devices that don't support touch don't need FastClick
723
+ if (typeof window.ontouchstart === 'undefined') {
724
  return true;
725
  }
726
+
727
+ // Chrome version - zero for other browsers
728
+ chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];
729
+
730
+ if (chromeVersion) {
731
+
732
+ if (deviceIsAndroid) {
733
+ metaViewport = document.querySelector('meta[name=viewport]');
734
+
735
+ if (metaViewport) {
736
+ // Chrome on Android with user-scalable="no" doesn't need FastClick (issue #89)
737
+ if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
738
+ return true;
739
+ }
740
+ // Chrome 32 and above with width=device-width or less don't need FastClick
741
+ if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {
742
+ return true;
743
+ }
744
  }
745
+
746
+ // Chrome desktop doesn't need FastClick (issue #15)
747
+ } else {
748
+ return true;
749
+ }
750
+ }
751
+
752
+ if (deviceIsBlackBerry10) {
753
+ blackberryVersion = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/);
754
+
755
+ // BlackBerry 10.3+ does not require Fastclick library.
756
+ // https://github.com/ftlabs/fastclick/issues/251
757
+ if (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {
758
+ metaViewport = document.querySelector('meta[name=viewport]');
759
+
760
+ if (metaViewport) {
761
+ // user-scalable=no eliminates click delay.
762
+ if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
763
+ return true;
764
+ }
765
+ // width=device-width (or less than device-width) eliminates click delay.
766
+ if (document.documentElement.scrollWidth <= window.outerWidth) {
767
+ return true;
768
+ }
769
  }
770
  }
771
  }
 
772
 
773
+ // IE10 with -ms-touch-action: none, which disables double-tap-to-zoom (issue #97)
774
+ if (layer.style.msTouchAction === 'none') {
775
+ return true;
776
+ }
777
+
778
+ return false;
779
+ };
780
+
781
+
782
+ /**
783
+ * Factory method for creating a FastClick object
784
+ *
785
+ * @param {Element} layer The layer to listen on
786
+ * @param {Object} options The options to override the defaults
787
+ */
788
+ FastClick.attach = function(layer, options) {
789
+ return new FastClick(layer, options);
790
+ };
791
+
792
+
793
+ if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
794
+
795
+ // AMD. Register as an anonymous module.
796
+ define(function() {
797
+ return FastClick;
798
+ });
799
+ } else if (typeof module !== 'undefined' && module.exports) {
800
+ module.exports = FastClick.attach;
801
+ module.exports.FastClick = FastClick;
802
+ } else {
803
+ window.FastClick = FastClick;
804
  }
805
+ }());
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
themes/foundation/modules/fastclick/fastclick.min.js CHANGED
@@ -1 +1 @@
1
- function FastClick(layer,options){var oldOnClick;options=options||{};this.trackingClick=false;this.trackingClickStart=0;this.targetElement=null;this.touchStartX=0;this.touchStartY=0;this.lastTouchIdentifier=0;this.touchBoundary=options.touchBoundary||10;this.layer=layer;this.tapDelay=options.tapDelay||200;if(FastClick.notNeeded(layer)){return}function bind(method,context){return function(){return method.apply(context,arguments)}}var methods=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"];var context=this;for(var i=0,l=methods.length;i<l;i++){context[methods[i]]=bind(context[methods[i]],context)}if(deviceIsAndroid){layer.addEventListener("mouseover",this.onMouse,true);layer.addEventListener("mousedown",this.onMouse,true);layer.addEventListener("mouseup",this.onMouse,true)}layer.addEventListener("click",this.onClick,true);layer.addEventListener("touchstart",this.onTouchStart,false);layer.addEventListener("touchmove",this.onTouchMove,false);layer.addEventListener("touchend",this.onTouchEnd,false);layer.addEventListener("touchcancel",this.onTouchCancel,false);if(!Event.prototype.stopImmediatePropagation){layer.removeEventListener=function(type,callback,capture){var rmv=Node.prototype.removeEventListener;if(type==="click"){rmv.call(layer,type,callback.hijacked||callback,capture)}else{rmv.call(layer,type,callback,capture)}};layer.addEventListener=function(type,callback,capture){var adv=Node.prototype.addEventListener;if(type==="click"){adv.call(layer,type,callback.hijacked||(callback.hijacked=function(event){if(!event.propagationStopped){callback(event)}}),capture)}else{adv.call(layer,type,callback,capture)}}}if(typeof layer.onclick==="function"){oldOnClick=layer.onclick;layer.addEventListener("click",function(event){oldOnClick(event)},false);layer.onclick=null}}var deviceIsAndroid=navigator.userAgent.indexOf("Android")>0;var deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent);var deviceIsIOS4=deviceIsIOS&&(/OS 4_\d(_\d)?/).test(navigator.userAgent);var deviceIsIOSWithBadTarget=deviceIsIOS&&(/OS ([6-9]|\d{2})_\d/).test(navigator.userAgent);var deviceIsBlackBerry10=navigator.userAgent.indexOf("BB10")>0;FastClick.prototype.needsClick=function(target){switch(target.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(target.disabled){return true}break;case"input":if((deviceIsIOS&&target.type==="file")||target.disabled){return true}break;case"label":case"video":return true}return(/\bneedsclick\b/).test(target.className)};FastClick.prototype.needsFocus=function(target){switch(target.nodeName.toLowerCase()){case"textarea":return true;case"select":return !deviceIsAndroid;case"input":switch(target.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return false}return !target.disabled&&!target.readOnly;default:return(/\bneedsfocus\b/).test(target.className)}};FastClick.prototype.sendClick=function(targetElement,event){var clickEvent,touch;if(document.activeElement&&document.activeElement!==targetElement){document.activeElement.blur()}touch=event.changedTouches[0];clickEvent=document.createEvent("MouseEvents");clickEvent.initMouseEvent(this.determineEventType(targetElement),true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);clickEvent.forwardedTouchEvent=true;targetElement.dispatchEvent(clickEvent)};FastClick.prototype.determineEventType=function(targetElement){if(deviceIsAndroid&&targetElement.tagName.toLowerCase()==="select"){return"mousedown"}return"click"};FastClick.prototype.focus=function(targetElement){var length;if(deviceIsIOS&&targetElement.setSelectionRange&&targetElement.type.indexOf("date")!==0&&targetElement.type!=="time"){length=targetElement.value.length;targetElement.setSelectionRange(length,length)}else{targetElement.focus()}};FastClick.prototype.updateScrollParent=function(targetElement){var scrollParent,parentElement;scrollParent=targetElement.fastClickScrollParent;if(!scrollParent||!scrollParent.contains(targetElement)){parentElement=targetElement;do{if(parentElement.scrollHeight>parentElement.offsetHeight){scrollParent=parentElement;targetElement.fastClickScrollParent=parentElement;break}parentElement=parentElement.parentElement}while(parentElement)}if(scrollParent){scrollParent.fastClickLastScrollTop=scrollParent.scrollTop}};FastClick.prototype.getTargetElementFromEventTarget=function(eventTarget){if(eventTarget.nodeType===Node.TEXT_NODE){return eventTarget.parentNode}return eventTarget};FastClick.prototype.onTouchStart=function(event){var targetElement,touch,selection;if(event.targetTouches.length>1){return true}targetElement=this.getTargetElementFromEventTarget(event.target);touch=event.targetTouches[0];if(deviceIsIOS){selection=window.getSelection();if(selection.rangeCount&&!selection.isCollapsed){return true}if(!deviceIsIOS4){if(touch.identifier===this.lastTouchIdentifier){event.preventDefault();return false}this.lastTouchIdentifier=touch.identifier;this.updateScrollParent(targetElement)}}this.trackingClick=true;this.trackingClickStart=event.timeStamp;this.targetElement=targetElement;this.touchStartX=touch.pageX;this.touchStartY=touch.pageY;if((event.timeStamp-this.lastClickTime)<this.tapDelay){event.preventDefault()}return true};FastClick.prototype.touchHasMoved=function(event){var touch=event.changedTouches[0],boundary=this.touchBoundary;if(Math.abs(touch.pageX-this.touchStartX)>boundary||Math.abs(touch.pageY-this.touchStartY)>boundary){return true}return false};FastClick.prototype.onTouchMove=function(event){if(!this.trackingClick){return true}if(this.targetElement!==this.getTargetElementFromEventTarget(event.target)||this.touchHasMoved(event)){this.trackingClick=false;this.targetElement=null}return true};FastClick.prototype.findControl=function(labelElement){if(labelElement.control!==undefined){return labelElement.control}if(labelElement.htmlFor){return document.getElementById(labelElement.htmlFor)}return labelElement.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")};FastClick.prototype.onTouchEnd=function(event){var forElement,trackingClickStart,targetTagName,scrollParent,touch,targetElement=this.targetElement;if(!this.trackingClick){return true}if((event.timeStamp-this.lastClickTime)<this.tapDelay){this.cancelNextClick=true;return true}this.cancelNextClick=false;this.lastClickTime=event.timeStamp;trackingClickStart=this.trackingClickStart;this.trackingClick=false;this.trackingClickStart=0;if(deviceIsIOSWithBadTarget){touch=event.changedTouches[0];targetElement=document.elementFromPoint(touch.pageX-window.pageXOffset,touch.pageY-window.pageYOffset)||targetElement;targetElement.fastClickScrollParent=this.targetElement.fastClickScrollParent}targetTagName=targetElement.tagName.toLowerCase();if(targetTagName==="label"){forElement=this.findControl(targetElement);if(forElement){this.focus(targetElement);if(deviceIsAndroid){return false}targetElement=forElement}}else{if(this.needsFocus(targetElement)){if((event.timeStamp-trackingClickStart)>100||(deviceIsIOS&&window.top!==window&&targetTagName==="input")){this.targetElement=null;return false}this.focus(targetElement);this.sendClick(targetElement,event);if(!deviceIsIOS||targetTagName!=="select"){this.targetElement=null;event.preventDefault()}return false}}if(deviceIsIOS&&!deviceIsIOS4){scrollParent=targetElement.fastClickScrollParent;if(scrollParent&&scrollParent.fastClickLastScrollTop!==scrollParent.scrollTop){return true}}if(!this.needsClick(targetElement)){event.preventDefault();this.sendClick(targetElement,event)}return false};FastClick.prototype.onTouchCancel=function(){this.trackingClick=false;this.targetElement=null};FastClick.prototype.onMouse=function(event){if(!this.targetElement){return true}if(event.forwardedTouchEvent){return true}if(!event.cancelable){return true}if(!this.needsClick(this.targetElement)||this.cancelNextClick){if(event.stopImmediatePropagation){event.stopImmediatePropagation()}else{event.propagationStopped=true}event.stopPropagation();event.preventDefault();return false}return true};FastClick.prototype.onClick=function(event){var permitted;if(this.trackingClick){this.targetElement=null;this.trackingClick=false;return true}if(event.target.type==="submit"&&event.detail===0){return true}permitted=this.onMouse(event);if(!permitted){this.targetElement=null}return permitted};FastClick.prototype.destroy=function(){var layer=this.layer;if(deviceIsAndroid){layer.removeEventListener("mouseover",this.onMouse,true);layer.removeEventListener("mousedown",this.onMouse,true);layer.removeEventListener("mouseup",this.onMouse,true)}layer.removeEventListener("click",this.onClick,true);layer.removeEventListener("touchstart",this.onTouchStart,false);layer.removeEventListener("touchmove",this.onTouchMove,false);layer.removeEventListener("touchend",this.onTouchEnd,false);layer.removeEventListener("touchcancel",this.onTouchCancel,false)};FastClick.notNeeded=function(layer){var metaViewport;var chromeVersion;var blackberryVersion;if(typeof window.ontouchstart==="undefined"){return true}chromeVersion=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1];if(chromeVersion){if(deviceIsAndroid){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(chromeVersion>31&&document.documentElement.scrollWidth<=window.outerWidth){return true}}}else{return true}}if(deviceIsBlackBerry10){blackberryVersion=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/);if(blackberryVersion[1]>=10&&blackberryVersion[2]>=3){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(document.documentElement.scrollWidth<=window.outerWidth){return true}}}}if(layer.style.msTouchAction==="none"){return true}return false};FastClick.attach=function(layer,options){return new FastClick(layer,options)};if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){define(function(){return FastClick})}else{if(typeof module!=="undefined"&&module.exports){module.exports=FastClick.attach;module.exports.FastClick=FastClick}else{window.FastClick=FastClick}};
1
+ (function(){function FastClick(layer,options){var oldOnClick;options=options||{};this.trackingClick=false;this.trackingClickStart=0;this.targetElement=null;this.touchStartX=0;this.touchStartY=0;this.lastTouchIdentifier=0;this.touchBoundary=options.touchBoundary||10;this.layer=layer;this.tapDelay=options.tapDelay||200;if(FastClick.notNeeded(layer)){return}function bind(method,context){return function(){return method.apply(context,arguments)}}var methods=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"];var context=this;for(var i=0,l=methods.length;i<l;i++){context[methods[i]]=bind(context[methods[i]],context)}if(deviceIsAndroid){layer.addEventListener("mouseover",this.onMouse,true);layer.addEventListener("mousedown",this.onMouse,true);layer.addEventListener("mouseup",this.onMouse,true)}layer.addEventListener("click",this.onClick,true);layer.addEventListener("touchstart",this.onTouchStart,false);layer.addEventListener("touchmove",this.onTouchMove,false);layer.addEventListener("touchend",this.onTouchEnd,false);layer.addEventListener("touchcancel",this.onTouchCancel,false);if(!Event.prototype.stopImmediatePropagation){layer.removeEventListener=function(type,callback,capture){var rmv=Node.prototype.removeEventListener;if(type==="click"){rmv.call(layer,type,callback.hijacked||callback,capture)}else{rmv.call(layer,type,callback,capture)}};layer.addEventListener=function(type,callback,capture){var adv=Node.prototype.addEventListener;if(type==="click"){adv.call(layer,type,callback.hijacked||(callback.hijacked=function(event){if(!event.propagationStopped){callback(event)}}),capture)}else{adv.call(layer,type,callback,capture)}}}if(typeof layer.onclick==="function"){oldOnClick=layer.onclick;layer.addEventListener("click",function(event){oldOnClick(event)},false);layer.onclick=null}}var deviceIsAndroid=navigator.userAgent.indexOf("Android")>0;var deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent);var deviceIsIOS4=deviceIsIOS&&(/OS 4_\d(_\d)?/).test(navigator.userAgent);var deviceIsIOSWithBadTarget=deviceIsIOS&&(/OS ([6-9]|\d{2})_\d/).test(navigator.userAgent);var deviceIsBlackBerry10=navigator.userAgent.indexOf("BB10")>0;FastClick.prototype.needsClick=function(target){switch(target.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(target.disabled){return true}break;case"input":if((deviceIsIOS&&target.type==="file")||target.disabled){return true}break;case"label":case"video":return true}return(/\bneedsclick\b/).test(target.className)};FastClick.prototype.needsFocus=function(target){switch(target.nodeName.toLowerCase()){case"textarea":return true;case"select":return !deviceIsAndroid;case"input":switch(target.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return false}return !target.disabled&&!target.readOnly;default:return(/\bneedsfocus\b/).test(target.className)}};FastClick.prototype.sendClick=function(targetElement,event){var clickEvent,touch;if(document.activeElement&&document.activeElement!==targetElement){document.activeElement.blur()}touch=event.changedTouches[0];clickEvent=document.createEvent("MouseEvents");clickEvent.initMouseEvent(this.determineEventType(targetElement),true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);clickEvent.forwardedTouchEvent=true;targetElement.dispatchEvent(clickEvent)};FastClick.prototype.determineEventType=function(targetElement){if(deviceIsAndroid&&targetElement.tagName.toLowerCase()==="select"){return"mousedown"}return"click"};FastClick.prototype.focus=function(targetElement){var length;if(deviceIsIOS&&targetElement.setSelectionRange&&targetElement.type.indexOf("date")!==0&&targetElement.type!=="time"){length=targetElement.value.length;targetElement.setSelectionRange(length,length)}else{targetElement.focus()}};FastClick.prototype.updateScrollParent=function(targetElement){var scrollParent,parentElement;scrollParent=targetElement.fastClickScrollParent;if(!scrollParent||!scrollParent.contains(targetElement)){parentElement=targetElement;do{if(parentElement.scrollHeight>parentElement.offsetHeight){scrollParent=parentElement;targetElement.fastClickScrollParent=parentElement;break}parentElement=parentElement.parentElement}while(parentElement)}if(scrollParent){scrollParent.fastClickLastScrollTop=scrollParent.scrollTop}};FastClick.prototype.getTargetElementFromEventTarget=function(eventTarget){if(eventTarget.nodeType===Node.TEXT_NODE){return eventTarget.parentNode}return eventTarget};FastClick.prototype.onTouchStart=function(event){var targetElement,touch,selection;if(event.targetTouches.length>1){return true}targetElement=this.getTargetElementFromEventTarget(event.target);touch=event.targetTouches[0];if(deviceIsIOS){selection=window.getSelection();if(selection.rangeCount&&!selection.isCollapsed){return true}if(!deviceIsIOS4){if(touch.identifier&&touch.identifier===this.lastTouchIdentifier){event.preventDefault();return false}this.lastTouchIdentifier=touch.identifier;this.updateScrollParent(targetElement)}}this.trackingClick=true;this.trackingClickStart=event.timeStamp;this.targetElement=targetElement;this.touchStartX=touch.pageX;this.touchStartY=touch.pageY;if((event.timeStamp-this.lastClickTime)<this.tapDelay){event.preventDefault()}return true};FastClick.prototype.touchHasMoved=function(event){var touch=event.changedTouches[0],boundary=this.touchBoundary;if(Math.abs(touch.pageX-this.touchStartX)>boundary||Math.abs(touch.pageY-this.touchStartY)>boundary){return true}return false};FastClick.prototype.onTouchMove=function(event){if(!this.trackingClick){return true}if(this.targetElement!==this.getTargetElementFromEventTarget(event.target)||this.touchHasMoved(event)){this.trackingClick=false;this.targetElement=null}return true};FastClick.prototype.findControl=function(labelElement){if(labelElement.control!==undefined){return labelElement.control}if(labelElement.htmlFor){return document.getElementById(labelElement.htmlFor)}return labelElement.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")};FastClick.prototype.onTouchEnd=function(event){var forElement,trackingClickStart,targetTagName,scrollParent,touch,targetElement=this.targetElement;if(!this.trackingClick){return true}if((event.timeStamp-this.lastClickTime)<this.tapDelay){this.cancelNextClick=true;return true}this.cancelNextClick=false;this.lastClickTime=event.timeStamp;trackingClickStart=this.trackingClickStart;this.trackingClick=false;this.trackingClickStart=0;if(deviceIsIOSWithBadTarget){touch=event.changedTouches[0];targetElement=document.elementFromPoint(touch.pageX-window.pageXOffset,touch.pageY-window.pageYOffset)||targetElement;targetElement.fastClickScrollParent=this.targetElement.fastClickScrollParent}targetTagName=targetElement.tagName.toLowerCase();if(targetTagName==="label"){forElement=this.findControl(targetElement);if(forElement){this.focus(targetElement);if(deviceIsAndroid){return false}targetElement=forElement}}else{if(this.needsFocus(targetElement)){if((event.timeStamp-trackingClickStart)>100||(deviceIsIOS&&window.top!==window&&targetTagName==="input")){this.targetElement=null;return false}this.focus(targetElement);this.sendClick(targetElement,event);if(!deviceIsIOS||targetTagName!=="select"){this.targetElement=null;event.preventDefault()}return false}}if(deviceIsIOS&&!deviceIsIOS4){scrollParent=targetElement.fastClickScrollParent;if(scrollParent&&scrollParent.fastClickLastScrollTop!==scrollParent.scrollTop){return true}}if(!this.needsClick(targetElement)){event.preventDefault();this.sendClick(targetElement,event)}return false};FastClick.prototype.onTouchCancel=function(){this.trackingClick=false;this.targetElement=null};FastClick.prototype.onMouse=function(event){if(!this.targetElement){return true}if(event.forwardedTouchEvent){return true}if(!event.cancelable){return true}if(!this.needsClick(this.targetElement)||this.cancelNextClick){if(event.stopImmediatePropagation){event.stopImmediatePropagation()}else{event.propagationStopped=true}event.stopPropagation();event.preventDefault();return false}return true};FastClick.prototype.onClick=function(event){var permitted;if(this.trackingClick){this.targetElement=null;this.trackingClick=false;return true}if(event.target.type==="submit"&&event.detail===0){return true}permitted=this.onMouse(event);if(!permitted){this.targetElement=null}return permitted};FastClick.prototype.destroy=function(){var layer=this.layer;if(deviceIsAndroid){layer.removeEventListener("mouseover",this.onMouse,true);layer.removeEventListener("mousedown",this.onMouse,true);layer.removeEventListener("mouseup",this.onMouse,true)}layer.removeEventListener("click",this.onClick,true);layer.removeEventListener("touchstart",this.onTouchStart,false);layer.removeEventListener("touchmove",this.onTouchMove,false);layer.removeEventListener("touchend",this.onTouchEnd,false);layer.removeEventListener("touchcancel",this.onTouchCancel,false)};FastClick.notNeeded=function(layer){var metaViewport;var chromeVersion;var blackberryVersion;if(typeof window.ontouchstart==="undefined"){return true}chromeVersion=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1];if(chromeVersion){if(deviceIsAndroid){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(chromeVersion>31&&document.documentElement.scrollWidth<=window.outerWidth){return true}}}else{return true}}if(deviceIsBlackBerry10){blackberryVersion=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/);if(blackberryVersion[1]>=10&&blackberryVersion[2]>=3){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(document.documentElement.scrollWidth<=window.outerWidth){return true}}}}if(layer.style.msTouchAction==="none"){return true}return false};FastClick.attach=function(layer,options){return new FastClick(layer,options)};if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){define(function(){return FastClick})}else{if(typeof module!=="undefined"&&module.exports){module.exports=FastClick.attach;module.exports.FastClick=FastClick}else{window.FastClick=FastClick}}}());
themes/foundation/modules/google-fonts/google-fonts.php CHANGED
@@ -94,7 +94,7 @@ function foundation_google_fonts_init() {
94
  if ( $family_string ) {
95
  wp_enqueue_style(
96
  'foundation_google_fonts',
97
- 'http://fonts.googleapis.com/css?family=' . $family_string,
98
  false,
99
  FOUNDATION_VERSION,
100
  false
94
  if ( $family_string ) {
95
  wp_enqueue_style(
96
  'foundation_google_fonts',
97
+ '//fonts.googleapis.com/css?family=' . $family_string,
98
  false,
99
  FOUNDATION_VERSION,
100
  false
themes/foundation/modules/hammer/hammer.fakemultitouch.js DELETED
@@ -1,101 +0,0 @@
1
- (function(Hammer) {
2
- 'use strict';
3
-
4
- /**
5
- * enable multitouch on the desktop by pressing the shiftkey
6
- * the other touch goes in the opposite direction so the center keeps at its place
7
- * it's recommended to enable Hammer.debug.showTouches for this one
8
- *
9
- * @usage
10
- * just call `Hammer.plugins.fakeMultitouch()` and you're done.
11
- */
12
- Hammer.plugins.fakeMultitouch = function() {
13
- // no need to fake it if it already is possible!
14
- var maxTouchPoints = navigator.maxTouchPoints || navigator.msMaxTouchPoints;
15
- if(Hammer.HAS_TOUCHEVENTS || (Hammer.HAS_POINTEREVENTS && maxTouchPoints > 1)) {
16
- return;
17
- }
18
-
19
- // keeps the start position to keep it centered
20
- var startPos = false;
21
-
22
- /**
23
- * overwrites Hammer.event.getTouchList.
24
- * @method getTouchList
25
- * @param {Event} ev
26
- * @param {String} eventType
27
- * @return {Array} Touches
28
- */
29
- Hammer.event.getTouchList = function(ev, eventType) {
30
- var touches = [];
31
- var changedTouches = [];
32
-
33
- // reset on start of a new touch
34
- if(eventType == Hammer.EVENT_START) {
35
- startPos = false;
36
- }
37
-
38
- // when the shift key is pressed, multitouch is possible on desktop
39
- // why shift? because ctrl and alt are taken by osx and linux
40
- if(ev.shiftKey) {
41
- // on touchstart we store the position of the mouse for multitouch
42
- if(!startPos) {
43
- startPos = {
44
- pageX: ev.pageX,
45
- pageY: ev.pageY,
46
- clientX: ev.clientX,
47
- clientY: ev.clientY
48
- };
49
-
50
- // new touch came up
51
- touches.trigger = Hammer.EVENT_TOUCH;
52
- }
53
-
54
- var distanceX = startPos.pageX - ev.pageX;
55
- var distanceY = startPos.pageY - ev.pageY;
56
-
57
- // fake second touch in the opposite direction
58
- touches.push({
59
- identifier: 1,
60
- pageX: startPos.pageX - distanceX - 50,
61
- pageY: startPos.pageY - distanceY + 50,
62
- clientX: startPos.clientX - distanceX - 50,
63
- clientY: startPos.clientY - distanceY + 50,
64
- target: ev.target
65
- }, {
66
- identifier: 2,
67
- pageX: startPos.pageX + distanceX + 50,
68
- pageY: startPos.pageY + distanceY - 50,
69
- clientX: startPos.clientX + distanceX + 50,
70
- clientY: startPos.clientY + distanceY - 50,
71
- target: ev.target
72
- });
73
-
74
- changedTouches = touches;
75
- } else {
76
- touches.push({
77
- identifier: 1,
78
- pageX: ev.pageX,
79
- pageY: ev.pageY,
80
- clientX: ev.clientX,
81
- clientY: ev.clientY,
82
- target: ev.target
83
- });
84
-
85
- // we came from multitouch, trigger a release event
86
- // and use the changed touches from the multitouch
87
- if(startPos) {
88
- touches.trigger = Hammer.EVENT_RELEASE;
89
- // use the touches as changedTouches, because we are in a move
90
- } else {
91
- changedTouches = touches;
92
- }
93
- startPos = false;
94
- }
95
-
96
- ev.touches = touches;
97
- ev.changedTouches = changedTouches;
98
- return touches;
99
- };
100
- };
101
- })(window.Hammer);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
themes/foundation/modules/hammer/hammer.min.js CHANGED
@@ -1,14 +1,8 @@
1
- /*! Hammer.JS - v1.1.3 - 2014-05-22
2
  * http://eightmedia.github.io/hammer.js
3
  *
4
  * Copyright (c) 2014 Jorik Tangelder <j.tangelder@gmail.com>;
5
  * Licensed under the MIT license */
6
- !function(a,b){"use strict";function c(){d.READY||(s.determineEventTypes(),r.each(d.gestures,function(a){u.register(a)}),s.onTouch(d.DOCUMENT,n,u.detect),s.onTouch(d.DOCUMENT,o,u.detect),d.READY=!0)}var d=function v(a,b){return new v.Instance(a,b||{})};d.VERSION="1.1.3",d.defaults={behavior:{userSelect:"none",touchAction:"pan-y",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},d.DOCUMENT=document,d.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled,d.HAS_TOUCHEVENTS="ontouchstart"in a,d.IS_MOBILE=/mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent),d.NO_MOUSEEVENTS=d.HAS_TOUCHEVENTS&&d.IS_MOBILE||d.HAS_POINTEREVENTS,d.CALCULATE_INTERVAL=25;var e={},f=d.DIRECTION_DOWN="down",g=d.DIRECTION_LEFT="left",h=d.DIRECTION_UP="up",i=d.DIRECTION_RIGHT="right",j=d.POINTER_MOUSE="mouse",k=d.POINTER_TOUCH="touch",l=d.POINTER_PEN="pen",m=d.EVENT_START="start",n=d.EVENT_MOVE="move",o=d.EVENT_END="end",p=d.EVENT_RELEASE="release",q=d.EVENT_TOUCH="touch";d.READY=!1,d.plugins=d.plugins||{},d.gestures=d.gestures||{};var r=d.utils={extend:function(a,c,d){for(var e in c)!c.hasOwnProperty(e)||a[e]!==b&&d||(a[e]=c[e]);return a},on:function(a,b,c){a.addEventListener(b,c,!1)},off:function(a,b,c){a.removeEventListener(b,c,!1)},each:function(a,c,d){var e,f;if("forEach"in a)a.forEach(c,d);else if(a.length!==b){for(e=0,f=a.length;f>e;e++)if(c.call(d,a[e],e,a)===!1)return}else for(e in a)if(a.hasOwnProperty(e)&&c.call(d,a[e],e,a)===!1)return},inStr:function(a,b){return a.indexOf(b)>-1},inArray:function(a,b){if(a.indexOf){var c=a.indexOf(b);return-1===c?!1:c}for(var d=0,e=a.length;e>d;d++)if(a[d]===b)return d;return!1},toArray:function(a){return Array.prototype.slice.call(a,0)},hasParent:function(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1},getCenter:function(a){var b=[],c=[],d=[],e=[],f=Math.min,g=Math.max;return 1===a.length?{pageX:a[0].pageX,pageY:a[0].pageY,clientX:a[0].clientX,clientY:a[0].clientY}:(r.each(a,function(a){b.push(a.pageX),c.push(a.pageY),d.push(a.clientX),e.push(a.clientY)}),{pageX:(f.apply(Math,b)+g.apply(Math,b))/2,pageY:(f.apply(Math,c)+g.apply(Math,c))/2,clientX:(f.apply(Math,d)+g.apply(Math,d))/2,clientY:(f.apply(Math,e)+g.apply(Math,e))/2})},getVelocity:function(a,b,c){return{x:Math.abs(b/a)||0,y:Math.abs(c/a)||0}},getAngle:function(a,b){var c=b.clientX-a.clientX,d=b.clientY-a.clientY;return 180*Math.atan2(d,c)/Math.PI},getDirection:function(a,b){var c=Math.abs(a.clientX-b.clientX),d=Math.abs(a.clientY-b.clientY);return c>=d?a.clientX-b.clientX>0?g:i:a.clientY-b.clientY>0?h:f},getDistance:function(a,b){var c=b.clientX-a.clientX,d=b.clientY-a.clientY;return Math.sqrt(c*c+d*d)},getScale:function(a,b){return a.length>=2&&b.length>=2?this.getDistance(b[0],b[1])/this.getDistance(a[0],a[1]):1},getRotation:function(a,b){return a.length>=2&&b.length>=2?this.getAngle(b[1],b[0])-this.getAngle(a[1],a[0]):0},isVertical:function(a){return a==h||a==f},setPrefixedCss:function(a,b,c,d){var e=["","Webkit","Moz","O","ms"];b=r.toCamelCase(b);for(var f=0;f<e.length;f++){var g=b;if(e[f]&&(g=e[f]+g.slice(0,1).toUpperCase()+g.slice(1)),g in a.style){a.style[g]=(null==d||d)&&c||"";break}}},toggleBehavior:function(a,b,c){if(b&&a&&a.style){r.each(b,function(b,d){r.setPrefixedCss(a,d,b,c)});var d=c&&function(){return!1};"none"==b.userSelect&&(a.onselectstart=d),"none"==b.userDrag&&(a.ondragstart=d)}},toCamelCase:function(a){return a.replace(/[_-]([a-z])/g,function(a){return a[1].toUpperCase()})}},s=d.event={preventMouseEvents:!1,started:!1,shouldDetect:!1,on:function(a,b,c,d){var e=b.split(" ");r.each(e,function(b){r.on(a,b,c),d&&d(b)})},off:function(a,b,c,d){var e=b.split(" ");r.each(e,function(b){r.off(a,b,c),d&&d(b)})},onTouch:function(a,b,c){var f=this,g=function(e){var g,h=e.type.toLowerCase(),i=d.HAS_POINTEREVENTS,j=r.inStr(h,"mouse");j&&f.preventMouseEvents||(j&&b==m&&0===e.button?(f.preventMouseEvents=!1,f.shouldDetect=!0):i&&b==m?f.shouldDetect=1===e.buttons||t.matchType(k,e):j||b!=m||(f.preventMouseEvents=!0,f.shouldDetect=!0),i&&b!=o&&t.updatePointer(b,e),f.shouldDetect&&(g=f.doDetect.call(f,e,b,a,c)),g==o&&(f.preventMouseEvents=!1,f.shouldDetect=!1,t.reset()),i&&b==o&&t.updatePointer(b,e))};return this.on(a,e[b],g),g},doDetect:function(a,b,c,d){var e=this.getTouchList(a,b),f=e.length,g=b,h=e.trigger,i=f;b==m?h=q:b==o&&(h=p,i=e.length-(a.changedTouches?a.changedTouches.length:1)),i>0&&this.started&&(g=n),this.started=!0;var j=this.collectEventData(c,g,e,a);return b!=o&&d.call(u,j),h&&(j.changedLength=i,j.eventType=h,d.call(u,j),j.eventType=g,delete j.changedLength),g==o&&(d.call(u,j),this.started=!1),g},determineEventTypes:function(){var b;return b=d.HAS_POINTEREVENTS?a.PointerEvent?["pointerdown","pointermove","pointerup pointercancel lostpointercapture"]:["MSPointerDown","MSPointerMove","MSPointerUp MSPointerCancel MSLostPointerCapture"]:d.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],e[m]=b[0],e[n]=b[1],e[o]=b[2],e},getTouchList:function(a,b){if(d.HAS_POINTEREVENTS)return t.getTouchList();if(a.touches){if(b==n)return a.touches;var c=[],e=[].concat(r.toArray(a.touches),r.toArray(a.changedTouches)),f=[];return r.each(e,function(a){r.inArray(c,a.identifier)===!1&&f.push(a),c.push(a.identifier)}),f}return a.identifier=1,[a]},collectEventData:function(a,b,c,d){var e=k;return r.inStr(d.type,"mouse")||t.matchType(j,d)?e=j:t.matchType(l,d)&&(e=l),{center:r.getCenter(c),timeStamp:Date.now(),target:d.target,touches:c,eventType:b,pointerType:e,srcEvent:d,preventDefault:function(){var a=this.srcEvent;a.preventManipulation&&a.preventManipulation(),a.preventDefault&&a.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return u.stopDetect()}}}},t=d.PointerEvent={pointers:{},getTouchList:function(){var a=[];return r.each(this.pointers,function(b){a.push(b)}),a},updatePointer:function(a,b){a==o?delete this.pointers[b.pointerId]:(b.identifier=b.pointerId,this.pointers[b.pointerId]=b)},matchType:function(a,b){if(!b.pointerType)return!1;var c=b.pointerType,d={};return d[j]=c===(b.MSPOINTER_TYPE_MOUSE||j),d[k]=c===(b.MSPOINTER_TYPE_TOUCH||k),d[l]=c===(b.MSPOINTER_TYPE_PEN||l),d[a]},reset:function(){this.pointers={}}},u=d.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(a,b){this.current||(this.stopped=!1,this.current={inst:a,startEvent:r.extend({},b),lastEvent:!1,lastCalcEvent:!1,futureCalcEvent:!1,lastCalcData:{},name:""},this.detect(b))},detect:function(a){if(this.current&&!this.stopped){a=this.extendEventData(a);var b=this.current.inst,c=b.options;return r.each(this.gestures,function(d){!this.stopped&&b.enabled&&c[d.name]&&d.handler.call(d,a,b)},this),this.current&&(this.current.lastEvent=a),a.eventType==o&&this.stopDetect(),a}},stopDetect:function(){this.previous=r.extend({},this.current),this.current=null,this.stopped=!0},getCalculatedData:function(a,b,c,e,f){var g=this.current,h=!1,i=g.lastCalcEvent,j=g.lastCalcData;i&&a.timeStamp-i.timeStamp>d.CALCULATE_INTERVAL&&(b=i.center,c=a.timeStamp-i.timeStamp,e=a.center.clientX-i.center.clientX,f=a.center.clientY-i.center.clientY,h=!0),(a.eventType==q||a.eventType==p)&&(g.futureCalcEvent=a),(!g.lastCalcEvent||h)&&(j.velocity=r.getVelocity(c,e,f),j.angle=r.getAngle(b,a.center),j.direction=r.getDirection(b,a.center),g.lastCalcEvent=g.futureCalcEvent||a,g.futureCalcEvent=a),a.velocityX=j.velocity.x,a.velocityY=j.velocity.y,a.interimAngle=j.angle,a.interimDirection=j.direction},extendEventData:function(a){var b=this.current,c=b.startEvent,d=b.lastEvent||c;(a.eventType==q||a.eventType==p)&&(c.touches=[],r.each(a.touches,function(a){c.touches.push({clientX:a.clientX,clientY:a.clientY})}));var e=a.timeStamp-c.timeStamp,f=a.center.clientX-c.center.clientX,g=a.center.clientY-c.center.clientY;return this.getCalculatedData(a,d.center,e,f,g),r.extend(a,{startEvent:c,deltaTime:e,deltaX:f,deltaY:g,distance:r.getDistance(c.center,a.center),angle:r.getAngle(c.center,a.center),direction:r.getDirection(c.center,a.center),scale:r.getScale(c.touches,a.touches),rotation:r.getRotation(c.touches,a.touches)}),a},register:function(a){var c=a.defaults||{};return c[a.name]===b&&(c[a.name]=!0),r.extend(d.defaults,c,!0),a.index=a.index||1e3,this.gestures.push(a),this.gestures.sort(function(a,b){return a.index<b.index?-1:a.index>b.index?1:0}),this.gestures}};d.Instance=function(a,b){var e=this;c(),this.element=a,this.enabled=!0,r.each(b,function(a,c){delete b[c],b[r.toCamelCase(c)]=a}),this.options=r.extend(r.extend({},d.defaults),b||{}),this.options.behavior&&r.toggleBehavior(this.element,this.options.behavior,!0),this.eventStartHandler=s.onTouch(a,m,function(a){e.enabled&&a.eventType==m?u.startDetect(e,a):a.eventType==q&&u.detect(a)}),this.eventHandlers=[]},d.Instance.prototype={on:function(a,b){var c=this;return s.on(c.element,a,b,function(a){c.eventHandlers.push({gesture:a,handler:b})}),c},off:function(a,b){var c=this;return s.off(c.element,a,b,function(a){var d=r.inArray({gesture:a,handler:b});d!==!1&&c.eventHandlers.splice(d,1)}),c},trigger:function(a,b){b||(b={});var c=d.DOCUMENT.createEvent("Event");c.initEvent(a,!0,!0),c.gesture=b;var e=this.element;return r.hasParent(b.target,e)&&(e=b.target),e.dispatchEvent(c),this},enable:function(a){return this.enabled=a,this},dispose:function(){var a,b;for(r.toggleBehavior(this.element,this.options.behavior,!1),a=-1;b=this.eventHandlers[++a];)r.off(this.element,b.gesture,b.handler);return this.eventHandlers=[],s.off(this.element,e[m],this.eventStartHandler),null}},function(a){function b(b,d){var e=u.current;if(!(d.options.dragMaxTouches>0&&b.touches.length>d.options.dragMaxTouches))switch(b.eventType){case m:c=!1;break;case n:if(b.distance<d.options.dragMinDistance&&e.name!=a)return;var j=e.startEvent.center;if(e.name!=a&&(e.name=a,d.options.dragDistanceCorrection&&b.distance>0)){var k=Math.abs(d.options.dragMinDistance/b.distance);j.pageX+=b.deltaX*k,j.pageY+=b.deltaY*k,j.clientX+=b.deltaX*k,j.clientY+=b.deltaY*k,b=u.extendEventData(b)}(e.lastEvent.dragLockToAxis||d.options.dragLockToAxis&&d.options.dragLockMinDistance<=b.distance)&&(b.dragLockToAxis=!0);var l=e.lastEvent.direction;b.dragLockToAxis&&l!==b.direction&&(b.direction=r.isVertical(l)?b.deltaY<0?h:f:b.deltaX<0?g:i),c||(d.trigger(a+"start",b),c=!0),d.trigger(a,b),d.trigger(a+b.direction,b);var q=r.isVertical(b.direction);(d.options.dragBlockVertical&&q||d.options.dragBlockHorizontal&&!q)&&b.preventDefault();break;case p:c&&b.changedLength<=d.options.dragMaxTouches&&(d.trigger(a+"end",b),c=!1);break;case o:c=!1}}var c=!1;d.gestures.Drag={name:a,index:50,handler:b,defaults:{dragMinDistance:10,dragDistanceCorrection:!0,dragMaxTouches:1,dragBlockHorizontal:!1,dragBlockVertical:!1,dragLockToAxis:!1,dragLockMinDistance:25}}}("drag"),d.gestures.Gesture={name:"gesture",index:1337,handler:function(a,b){b.trigger(this.name,a)}},function(a){function b(b,d){var e=d.options,f=u.current;switch(b.eventType){case m:clearTimeout(c),f.name=a,c=setTimeout(function(){f&&f.name==a&&d.trigger(a,b)},e.holdTimeout);break;case n:b.distance>e.holdThreshold&&clearTimeout(c);break;case p:clearTimeout(c)}}var c;d.gestures.Hold={name:a,index:10,defaults:{holdTimeout:500,holdThreshold:2},handler:b}}("hold"),d.gestures.Release={name:"release",index:1/0,handler:function(a,b){a.eventType==p&&b.trigger(this.name,a)}},d.gestures.Swipe={name:"swipe",index:40,defaults:{swipeMinTouches:1,swipeMaxTouches:1,swipeVelocityX:.6,swipeVelocityY:.6},handler:function(a,b){if(a.eventType==p){var c=a.touches.length,d=b.options;if(c<d.swipeMinTouches||c>d.swipeMaxTouches)return;(a.velocityX>d.swipeVelocityX||a.velocityY>d.swipeVelocityY)&&(b.trigger(this.name,a),b.trigger(this.name+a.direction,a))}}},function(a){function b(b,d){var e,f,g=d.options,h=u.current,i=u.previous;switch(b.eventType){case m:c=!1;break;case n:c=c||b.distance>g.tapMaxDistance;break;case o:!r.inStr(b.srcEvent.type,"cancel")&&b.deltaTime<g.tapMaxTime&&!c&&(e=i&&i.lastEvent&&b.timeStamp-i.lastEvent.timeStamp,f=!1,i&&i.name==a&&e&&e<g.doubleTapInterval&&b.distance<g.doubleTapDistance&&(d.trigger("doubletap",b),f=!0),(!f||g.tapAlways)&&(h.name=a,d.trigger(h.name,b)))}}var c=!1;d.gestures.Tap={name:a,index:100,handler:b,defaults:{tapMaxTime:250,tapMaxDistance:10,tapAlways:!0,doubleTapDistance:20,doubleTapInterval:300}}}("tap"),d.gestures.Touch={name:"touch",index:-1/0,defaults:{preventDefault:!1,preventMouse:!1},handler:function(a,b){return b.options.preventMouse&&a.pointerType==j?void a.stopDetect():(b.options.preventDefault&&a.preventDefault(),void(a.eventType==q&&b.trigger("touch",a)))}},function(a){function b(b,d){switch(b.eventType){case m:c=!1;break;case n:if(b.touches.length<2)return;var e=Math.abs(1-b.scale),f=Math.abs(b.rotation);if(e<d.options.transformMinScale&&f<d.options.transformMinRotation)return;u.current.name=a,c||(d.trigger(a+"start",b),c=!0),d.trigger(a,b),f>d.options.transformMinRotation&&d.trigger("rotate",b),e>d.options.transformMinScale&&(d.trigger("pinch",b),d.trigger("pinch"+(b.scale<1?"in":"out"),b));break;case p:c&&b.changedLength<2&&(d.trigger(a+"end",b),c=!1)}}var c=!1;d.gestures.Transform={name:a,index:45,defaults:{transformMinScale:.01,transformMinRotation:1},handler:b}}("transform"),"function"==typeof define&&define.amd?define(function(){return d}):"undefined"!=typeof module&&module.exports?module.exports=d:a.Hammer=d}(window);
7
 
8
- /*! jQuery plugin for Hammer.JS - v1.1.3 - 2014-05-20
9
- * http://eightmedia.github.com/hammer.js
10
- *
11
- * Copyright (c) 2014 Jorik Tangelder <j.tangelder@gmail.com>;
12
- * Licensed under the MIT license */
13
 
14
- !function(a,b){"use strict";function c(a,c){Date.now||(Date.now=function(){return(new Date).getTime()}),a.utils.each(["on","off"],function(d){a.utils[d]=function(a,e,f){c(a)[d](e,function(a){var d=c.extend({},a.originalEvent,a);d.button===b&&(d.button=a.which-1),f.call(this,d)})}}),a.Instance.prototype.trigger=function(a,b){var d=c(this.element);return d.has(b.target).length&&(d=c(b.target)),d.trigger({type:a,gesture:b})},c.fn.hammer=function(b){return this.each(function(){var d=c(this),e=d.data("hammer");e?e&&b&&a.utils.extend(e.options,b):d.data("hammer",new a(this,b||{}))})}}"function"==typeof define&&define.amd?define(["hammerjs","jquery"],c):c(a.Hammer,a.jQuery||a.Zepto)}(window);
1
+ /*! Hammer.JS - v1.0.11 - 2014-05-20
2
  * http://eightmedia.github.io/hammer.js
3
  *
4
  * Copyright (c) 2014 Jorik Tangelder <j.tangelder@gmail.com>;
5
  * Licensed under the MIT license */
 
6
 
 
 
 
 
 
7
 
8
+ !function(a,b){"use strict";function c(){d.READY||(s.determineEventTypes(),o.each(d.gestures,function(a){u.register(a)}),s.onTouch(d.DOCUMENT,m,u.detect),s.onTouch(d.DOCUMENT,n,u.detect),d.READY=!0)}var d=function(a,b){return new d.Instance(a,b||{})};d.VERSION="1.0.11",d.defaults={stop_browser_behavior:{userSelect:"none",touchAction:"pan-y",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},d.HAS_POINTEREVENTS=a.navigator.pointerEnabled||a.navigator.msPointerEnabled,d.HAS_TOUCHEVENTS="ontouchstart"in a,d.MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android|silk/i,d.NO_MOUSEEVENTS=d.HAS_TOUCHEVENTS&&a.navigator.userAgent.match(d.MOBILE_REGEX),d.EVENT_TYPES={},d.UPDATE_VELOCITY_INTERVAL=16,d.DOCUMENT=a.document;var e=d.DIRECTION_DOWN="down",f=d.DIRECTION_LEFT="left",g=d.DIRECTION_UP="up",h=d.DIRECTION_RIGHT="right",i=d.POINTER_MOUSE="mouse",j=d.POINTER_TOUCH="touch",k=d.POINTER_PEN="pen",l=d.EVENT_START="start",m=d.EVENT_MOVE="move",n=d.EVENT_END="end";d.plugins=d.plugins||{},d.gestures=d.gestures||{},d.READY=!1;var o=d.utils={extend:function(a,c,d){for(var e in c)a[e]!==b&&d||(a[e]=c[e]);return a},each:function(a,c,d){var e,f;if("forEach"in a)a.forEach(c,d);else if(a.length!==b){for(e=-1;f=a[++e];)if(c.call(d,f,e,a)===!1)return}else for(e in a)if(a.hasOwnProperty(e)&&c.call(d,a[e],e,a)===!1)return},inStr:function(a,b){return a.indexOf(b)>-1},hasParent:function(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1},getCenter:function(a){var b=[],c=[],d=[],e=[],f=Math.min,g=Math.max;return 1===a.length?{pageX:a[0].pageX,pageY:a[0].pageY,clientX:a[0].clientX,clientY:a[0].clientY}:(o.each(a,function(a){b.push(a.pageX),c.push(a.pageY),d.push(a.clientX),e.push(a.clientY)}),{pageX:(f.apply(Math,b)+g.apply(Math,b))/2,pageY:(f.apply(Math,c)+g.apply(Math,c))/2,clientX:(f.apply(Math,d)+g.apply(Math,d))/2,clientY:(f.apply(Math,e)+g.apply(Math,e))/2})},getVelocity:function(a,b,c){return{x:Math.abs(b/a)||0,y:Math.abs(c/a)||0}},getAngle:function(a,b){var c=b.clientX-a.clientX,d=b.clientY-a.clientY;return 180*Math.atan2(d,c)/Math.PI},getDirection:function(a,b){var c=Math.abs(a.clientX-b.clientX),d=Math.abs(a.clientY-b.clientY);return c>=d?a.clientX-b.clientX>0?f:h:a.clientY-b.clientY>0?g:e},getDistance:function(a,b){var c=b.clientX-a.clientX,d=b.clientY-a.clientY;return Math.sqrt(c*c+d*d)},getScale:function(a,b){return a.length>=2&&b.length>=2?this.getDistance(b[0],b[1])/this.getDistance(a[0],a[1]):1},getRotation:function(a,b){return a.length>=2&&b.length>=2?this.getAngle(b[1],b[0])-this.getAngle(a[1],a[0]):0},isVertical:function(a){return a==g||a==e},toggleDefaultBehavior:function(a,b,c){if(b&&a&&a.style){o.each(["webkit","moz","Moz","ms","o",""],function(d){o.each(b,function(b,e){d&&(e=d+e.substring(0,1).toUpperCase()+e.substring(1)),e in a.style&&(a.style[e]=!c&&b)})});var d=function(){return!1};"none"==b.userSelect&&(a.onselectstart=!c&&d),"none"==b.userDrag&&(a.ondragstart=!c&&d)}}};d.Instance=function(a,b){var e=this;return c(),this.element=a,this.enabled=!0,this.options=o.extend(o.extend({},d.defaults),b||{}),this.options.stop_browser_behavior&&o.toggleDefaultBehavior(this.element,this.options.stop_browser_behavior,!1),this.eventStartHandler=s.onTouch(a,l,function(a){e.enabled&&u.startDetect(e,a)}),this.eventHandlers=[],this},d.Instance.prototype={on:function(a,b){var c=a.split(" ");return o.each(c,function(a){this.element.addEventListener(a,b,!1),this.eventHandlers.push({gesture:a,handler:b})},this),this},off:function(a,b){var c,d,e=a.split(" ");return o.each(e,function(a){for(this.element.removeEventListener(a,b,!1),c=-1;d=this.eventHandlers[++c];)d.gesture===a&&d.handler===b&&this.eventHandlers.splice(c,1)},this),this},trigger:function(a,b){b||(b={});var c=d.DOCUMENT.createEvent("Event");c.initEvent(a,!0,!0),c.gesture=b;var e=this.element;return o.hasParent(b.target,e)&&(e=b.target),e.dispatchEvent(c),this},enable:function(a){return this.enabled=a,this},dispose:function(){var a,b;for(this.options.stop_browser_behavior&&o.toggleDefaultBehavior(this.element,this.options.stop_browser_behavior,!0),a=-1;b=this.eventHandlers[++a];)this.element.removeEventListener(b.gesture,b.handler,!1);return this.eventHandlers=[],s.unbindDom(this.element,d.EVENT_TYPES[l],this.eventStartHandler),null}};var p=null,q=!1,r=!1,s=d.event={bindDom:function(a,b,c){var d=b.split(" ");o.each(d,function(b){a.addEventListener(b,c,!1)})},unbindDom:function(a,b,c){var d=b.split(" ");o.each(d,function(b){a.removeEventListener(b,c,!1)})},onTouch:function(a,b,c){var e=this,f=function(f){var g=f.type.toLowerCase();if(!o.inStr(g,"mouse")||!r){o.inStr(g,"touch")||o.inStr(g,"pointerdown")||o.inStr(g,"mouse")&&1===f.which?q=!0:o.inStr(g,"mouse")&&!f.which&&(q=!1),(o.inStr(g,"touch")||o.inStr(g,"pointer"))&&(r=!0);var h=0;q&&(d.HAS_POINTEREVENTS&&b!=n?h=t.updatePointer(b,f):o.inStr(g,"touch")?h=f.touches.length:r||(h=o.inStr(g,"up")?0:1),h>0&&b==n?b=m:h||(b=n),(h||null===p)&&(p=f),c.call(u,e.collectEventData(a,b,e.getTouchList(p,b),f)),d.HAS_POINTEREVENTS&&b==n&&(h=t.updatePointer(b,f))),h||(p=null,q=!1,r=!1,t.reset())}};return this.bindDom(a,d.EVENT_TYPES[b],f),f},determineEventTypes:function(){var a;a=d.HAS_POINTEREVENTS?t.getEvents():d.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],d.EVENT_TYPES[l]=a[0],d.EVENT_TYPES[m]=a[1],d.EVENT_TYPES[n]=a[2]},getTouchList:function(a){return d.HAS_POINTEREVENTS?t.getTouchList():a.touches?a.touches:(a.identifier=1,[a])},collectEventData:function(a,b,c,d){var e=j;return(o.inStr(d.type,"mouse")||t.matchType(i,d))&&(e=i),{center:o.getCenter(c),timeStamp:Date.now(),target:d.target,touches:c,eventType:b,pointerType:e,srcEvent:d,preventDefault:function(){var a=this.srcEvent;a.preventManipulation&&a.preventManipulation(),a.preventDefault&&a.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return u.stopDetect()}}}},t=d.PointerEvent={pointers:{},getTouchList:function(){var a=[];return o.each(this.pointers,function(b){a.push(b)}),a},updatePointer:function(a,b){return a==n?delete this.pointers[b.pointerId]:(b.identifier=b.pointerId,this.pointers[b.pointerId]=b),Object.keys(this.pointers).length},matchType:function(a,b){if(!b.pointerType)return!1;var c=b.pointerType,d={};return d[i]=c===i,d[j]=c===j,d[k]=c===k,d[a]},getEvents:function(){return["pointerdown MSPointerDown","pointermove MSPointerMove","pointerup pointercancel MSPointerUp MSPointerCancel"]},reset:function(){this.pointers={}}},u=d.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(a,b){this.current||(this.stopped=!1,this.current={inst:a,startEvent:o.extend({},b),lastEvent:!1,lastVelocityEvent:!1,velocity:!1,name:""},this.detect(b))},detect:function(a){if(this.current&&!this.stopped){a=this.extendEventData(a);var b=this.current.inst,c=b.options;return o.each(this.gestures,function(d){return this.stopped||c[d.name]===!1||b.enabled===!1||d.handler.call(d,a,b)!==!1?void 0:(this.stopDetect(),!1)},this),this.current&&(this.current.lastEvent=a),a.eventType==n&&!a.touches.length-1&&this.stopDetect(),a}},stopDetect:function(){this.previous=o.extend({},this.current),this.current=null,this.stopped=!0},getVelocityData:function(a,b,c,e){var f=this.current,g=f.lastVelocityEvent,h=f.velocity;g&&a.timeStamp-g.timeStamp>d.UPDATE_VELOCITY_INTERVAL?(h=o.getVelocity(a.timeStamp-g.timeStamp,a.center.clientX-g.center.clientX,a.center.clientY-g.center.clientY),f.lastVelocityEvent=a):f.velocity||(h=o.getVelocity(b,c,e),f.lastVelocityEvent=a),f.velocity=h,a.velocityX=h.x,a.velocityY=h.y},getInterimData:function(a){var b,c,d=this.current.lastEvent;a.eventType==n?(b=d&&d.interimAngle,c=d&&d.interimDirection):(b=d&&o.getAngle(d.center,a.center),c=d&&o.getDirection(d.center,a.center)),a.interimAngle=b,a.interimDirection=c},extendEventData:function(a){var b=this.current,c=b.startEvent;(a.touches.length!=c.touches.length||a.touches===c.touches)&&(c.touches=[],o.each(a.touches,function(a){c.touches.push(o.extend({},a))}));var d=a.timeStamp-c.timeStamp,e=a.center.clientX-c.center.clientX,f=a.center.clientY-c.center.clientY;return this.getVelocityData(a,d,e,f),this.getInterimData(a),o.extend(a,{startEvent:c,deltaTime:d,deltaX:e,deltaY:f,distance:o.getDistance(c.center,a.center),angle:o.getAngle(c.center,a.center),direction:o.getDirection(c.center,a.center),scale:o.getScale(c.touches,a.touches),rotation:o.getRotation(c.touches,a.touches)}),a},register:function(a){var c=a.defaults||{};return c[a.name]===b&&(c[a.name]=!0),o.extend(d.defaults,c,!0),a.index=a.index||1e3,this.gestures.push(a),this.gestures.sort(function(a,b){return a.index<b.index?-1:a.index>b.index?1:0}),this.gestures}};d.gestures.Drag={name:"drag",index:50,defaults:{drag_min_distance:10,correct_for_drag_min_distance:!0,drag_max_touches:1,drag_block_horizontal:!1,drag_block_vertical:!1,drag_lock_to_axis:!1,drag_lock_min_distance:25},triggered:!1,handler:function(a,b){var c=u.current;if(c.name!=this.name&&this.triggered)return b.trigger(this.name+"end",a),void(this.triggered=!1);if(!(b.options.drag_max_touches>0&&a.touches.length>b.options.drag_max_touches))switch(a.eventType){case l:this.triggered=!1;break;case m:if(a.distance<b.options.drag_min_distance&&c.name!=this.name)return;var d=c.startEvent.center;if(c.name!=this.name&&(c.name=this.name,b.options.correct_for_drag_min_distance&&a.distance>0)){var i=Math.abs(b.options.drag_min_distance/a.distance);d.pageX+=a.deltaX*i,d.pageY+=a.deltaY*i,d.clientX+=a.deltaX*i,d.clientY+=a.deltaY*i,a=u.extendEventData(a)}(c.lastEvent.drag_locked_to_axis||b.options.drag_lock_to_axis&&b.options.drag_lock_min_distance<=a.distance)&&(a.drag_locked_to_axis=!0);var j=c.lastEvent.direction;a.drag_locked_to_axis&&j!==a.direction&&(a.direction=o.isVertical(j)?a.deltaY<0?g:e:a.deltaX<0?f:h),this.triggered||(b.trigger(this.name+"start",a),this.triggered=!0),b.trigger(this.name,a),b.trigger(this.name+a.direction,a);var k=o.isVertical(a.direction);(b.options.drag_block_vertical&&k||b.options.drag_block_horizontal&&!k)&&a.preventDefault();break;case n:this.triggered&&b.trigger(this.name+"end",a),this.triggered=!1}}},d.gestures.Hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:2},timer:null,handler:function(a,b){switch(a.eventType){case l:clearTimeout(this.timer),u.current.name=this.name,this.timer=setTimeout(function(){"hold"==u.current.name&&b.trigger("hold",a)},b.options.hold_timeout);break;case m:a.distance>b.options.hold_threshold&&clearTimeout(this.timer);break;case n:clearTimeout(this.timer)}}},d.gestures.Release={name:"release",index:1/0,handler:function(a,b){a.eventType==n&&b.trigger(this.name,a)}},d.gestures.Swipe={name:"swipe",index:40,defaults:{swipe_min_touches:1,swipe_max_touches:1,swipe_velocity:.7},handler:function(a,b){if(a.eventType==n){if(a.touches.length<b.options.swipe_min_touches||a.touches.length>b.options.swipe_max_touches)return;(a.velocityX>b.options.swipe_velocity||a.velocityY>b.options.swipe_velocity)&&(b.trigger(this.name,a),b.trigger(this.name+a.direction,a))}}},d.gestures.Tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},has_moved:!1,handler:function(a,b){var c,d,e;a.eventType==l?this.has_moved=!1:a.eventType!=m||this.moved?a.eventType==n&&"touchcancel"!=a.srcEvent.type&&a.deltaTime<b.options.tap_max_touchtime&&!this.has_moved&&(c=u.previous,d=c&&c.lastEvent&&a.timeStamp-c.lastEvent.timeStamp,e=!1,c&&"tap"==c.name&&d&&d<b.options.doubletap_interval&&a.distance<b.options.doubletap_distance&&(b.trigger("doubletap",a),e=!0),(!e||b.options.tap_always)&&(u.current.name="tap",b.trigger(u.current.name,a))):this.has_moved=a.distance>b.options.tap_max_distance}},d.gestures.Touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(a,b){return b.options.prevent_mouseevents&&a.pointerType==i?void a.stopDetect():(b.options.prevent_default&&a.preventDefault(),void(a.eventType==l&&b.trigger(this.name,a)))}},d.gestures.Transform={name:"transform",index:45,defaults:{transform_min_scale:.01,transform_min_rotation:1,transform_always_block:!1,transform_within_instance:!1},triggered:!1,handler:function(a,b){if(u.current.name!=this.name&&this.triggered)return b.trigger(this.name+"end",a),void(this.triggered=!1);if(!(a.touches.length<2)){if(b.options.transform_always_block&&a.preventDefault(),b.options.transform_within_instance)for(var c=-1;a.touches[++c];)if(!o.hasParent(a.touches[c].target,b.element))return;switch(a.eventType){case l:this.triggered=!1;break;case m:var d=Math.abs(1-a.scale),e=Math.abs(a.rotation);if(d<b.options.transform_min_scale&&e<b.options.transform_min_rotation)return;u.current.name=this.name,this.triggered||(b.trigger(this.name+"start",a),this.triggered=!0),b.trigger(this.name,a),e>b.options.transform_min_rotation&&b.trigger("rotate",a),d>b.options.transform_min_scale&&(b.trigger("pinch",a),b.trigger("pinch"+(a.scale<1?"in":"out"),a));break;case n:this.triggered&&b.trigger(this.name+"end",a),this.triggered=!1}}}},"function"==typeof define&&define.amd?define(function(){return d}):"object"==typeof module&&module.exports?module.exports=d:a.Hammer=d}(window);
themes/foundation/modules/hammer/hammer.php CHANGED
@@ -12,18 +12,10 @@ function foundation_hammer_init() {
12
  );
13
 
14
  wp_enqueue_script(
15
- 'foundation_hammer_fake_multitouch',
16
- foundation_get_base_module_url() . '/hammer/hammer.fakemultitouch.js',
17
  array( 'foundation_hammer' ),
18
  FOUNDATION_VERSION,
19
  true
20
  );
21
-
22
- // wp_enqueue_script(
23
- // 'foundation_hammer_wptouch',
24
- // foundation_get_base_module_url() . '/hammer/wptouch.hammer.js',
25
- // array( 'foundation_hammer' ),
26
- // FOUNDATION_VERSION,
27
- // true
28
- // );
29
  }
12
  );
13
 
14
  wp_enqueue_script(
15
+ 'foundation_hammer_wptouch',
16
+ foundation_get_base_module_url() . '/hammer/wptouch.hammer.js',
17
  array( 'foundation_hammer' ),
18
  FOUNDATION_VERSION,
19
  true
20
  );
 
 
 
 
 
 
 
 
21
  }
themes/foundation/modules/hammer/wptouch.hammer.js CHANGED
@@ -1,3 +1,11 @@
 
 
 
 
 
 
 
 
1
  /* WPtouch Foundation Hammer Code */
2
 
3
  // WPtouch-specific hammer code should go here
1
+ /*! jQuery plugin for Hammer.JS - v1.1.3 - 2014-05-20
2
+ * http://eightmedia.github.com/hammer.js
3
+ *
4
+ * Copyright (c) 2014 Jorik Tangelder <j.tangelder@gmail.com>;
5
+ * Licensed under the MIT license */
6
+
7
+ !function(a,b){"use strict";function c(a,c){Date.now||(Date.now=function(){return(new Date).getTime()}),a.utils.each(["on","off"],function(d){a.utils[d]=function(a,e,f){c(a)[d](e,function(a){var d=c.extend({},a.originalEvent,a);d.button===b&&(d.button=a.which-1),f.call(this,d)})}}),a.Instance.prototype.trigger=function(a,b){var d=c(this.element);return d.has(b.target).length&&(d=c(b.target)),d.trigger({type:a,gesture:b})},c.fn.hammer=function(b){return this.each(function(){var d=c(this),e=d.data("hammer");e?e&&b&&a.utils.extend(e.options,b):d.data("hammer",new a(this,b||{}))})}}"function"==typeof define&&define.amd?define(["hammerjs","jquery"],c):c(a.Hammer,a.jQuery||a.Zepto)}(window);
8
+
9
  /* WPtouch Foundation Hammer Code */
10
 
11
  // WPtouch-specific hammer code should go here
themes/foundation/modules/pushit/pushit.css CHANGED
@@ -10,7 +10,7 @@ body {
10
  position: fixed;
11
  top: 0;
12
  bottom: 0;
13
- left: -500px;
14
  z-index: 100;
15
  height: 100%;
16
  -webkit-backface-visibility: hidden;
10
  position: fixed;
11
  top: 0;
12
  bottom: 0;
13
+ left: -1000px;
14
  z-index: 100;
15
  height: 100%;
16
  -webkit-backface-visibility: hidden;
themes/foundation/modules/pushit/pushit.js CHANGED
@@ -28,7 +28,8 @@ var prefix = (function() {
28
  menuWidth: 240, // Menu width (default is 240px)
29
  menuSpeed: 330, // Speed of the menu transistion, in milliseconds
30
  bezierCurve: '.290, .050, .140, .870', // Menu transistion bezier
31
- pushed: false
 
32
  }, options );
33
 
34
  var hasOverflowScroll = typeof( jQuery( 'body' )[0].style['-webkit-overflow-scrolling'] ) !== 'undefined';
@@ -55,10 +56,20 @@ var prefix = (function() {
55
  .css( 'position', 'relative' )
56
  .css( prefix.css+'transition', prefix.css+'transform .'+settings.menuSpeed+'s cubic-bezier('+settings.bezierCurve+')' );
57
 
 
 
58
  // Add the transition CSS for slide prep
59
  jQuery( '.pushit' )
60
  .css( prefix.css+'transition', prefix.css+'transform .'+settings.menuSpeed+'s cubic-bezier('+settings.bezierCurve+')' );
61
 
 
 
 
 
 
 
 
 
62
  function whichPushIt( clicked ){
63
  var parent = clicked;
64
  if ( parent.hasClass( 'pushit-left' ) ) {
@@ -78,6 +89,7 @@ var prefix = (function() {
78
  // Cleanup memory usage!
79
  settings.container
80
  .css( prefix.css+'transform', '' )
 
81
  .css( 'overflow', '' )
82
  .css( 'height', '' );
83
  pushitOverlay.css( 'z-index', '-1' );
@@ -94,32 +106,42 @@ var prefix = (function() {
94
  }).css( 'z-index', '99' );
95
  }
96
 
 
 
 
 
 
 
 
 
 
 
97
  function togglePushIt( clicked ){
98
  settings.pushed = clicked;
99
  direction = whichPushIt( clicked );
100
  var side = ('.pushit-' + direction );
101
  var activeSide = jQuery( side );
102
  jQuery( side ).toggleClass( 'pushit-open' );
103
-
104
  // Left Menus
105
  // Open
106
  if ( side == '.pushit-left' && activeSide.hasClass( 'pushit-open' ) ) {
 
107
  pushitCloseListener();
 
 
 
 
 
108
  if ( prefix.css != '' ){
109
  activeSide.css( prefix.css+'transform', 'translate3d(' + settings.menuWidth + 'px, 0, 0)' );
110
- settings.container
111
- .css( prefix.css+'transform', 'translate3d(' + settings.menuWidth + 'px, 0, 0)' )
112
- .height( window.innerHeight )
113
- .css( 'overflow', 'hidden' );
114
  } else {
115
  activeSide.animate( { left: '0' }, settings.menuSpeed );
116
- settings.container
117
- .height( window.innerHeight )
118
- .css( 'overflow', 'hidden' )
119
- .animate( { left: settings.menuWidth }, settings.menuSpeed );
120
  }
121
  // Closed
122
  } else if ( side == '.pushit-left' && !activeSide.hasClass( 'pushit-open' ) ) {
 
123
  if ( prefix.css != '' ){
124
  activeSide.css( prefix.css+'transform', 'translate3d(0, 0, 0)' );
125
  settings.container.css( prefix.css+'transform', 'translate3d(0, 0, 0)' );
@@ -132,24 +154,23 @@ var prefix = (function() {
132
  // Right Menus
133
  // Open
134
  if ( side == '.pushit-right' && jQuery( side ).hasClass( 'pushit-open' ) ) {
 
135
  pushitCloseListener();
 
 
 
 
 
136
  if ( prefix.css != '' ){
137
- activeSide
138
- .css( prefix.css+'transform', 'translate3d(-' + settings.menuWidth + 'px, 0, 0)' );
139
- settings.container
140
- .css( prefix.css+'transform', 'translate3d(-' + settings.menuWidth + 'px, 0, 0)' )
141
- .height( window.innerHeight )
142
- .css( 'overflow', 'hidden' );
143
  } else {
144
- activeSide
145
- .animate( { left: settings.viewportWidth - settings.menuWidth }, settings.menuSpeed );
146
- settings.container
147
- .height( window.innerHeight )
148
- .css( 'overflow', 'hidden' )
149
- .animate( { left: '-' + settings.menuWidth }, settings.menuSpeed );
150
  }
151
  // Closed
152
  } else if ( side == '.pushit-right' && !jQuery( side ).hasClass( 'pushit-open' ) ) {
 
153
  if ( prefix.css != '' ){
154
  activeSide.css( prefix.css+'transform', 'translate3d(0, 0, 0)' );
155
  settings.container.css( prefix.css+'transform', 'translate3d(0, 0, 0)' );
@@ -168,13 +189,18 @@ var prefix = (function() {
168
  // Close the menu on a rotate— no need to have the browser choke on render
169
  var currentWindow = jQuery( window );
170
  currentWindow.resize( function(){
171
- if ( jQuery( '.pushit-active' ).length ) {
172
- pushitOverlay.trigger( 'click' );
173
- cleanUpPushit();
174
- }
175
- if ( settings.rightMenu.length ) {
176
- settings.viewportWidth = currentWindow.width();
177
- settings.rightMenu.css( 'left', settings.viewportWidth + 'px' );
 
 
 
 
 
178
  }
179
  });
180
 
28
  menuWidth: 240, // Menu width (default is 240px)
29
  menuSpeed: 330, // Speed of the menu transistion, in milliseconds
30
  bezierCurve: '.290, .050, .140, .870', // Menu transistion bezier
31
+ pushed: false,
32
+ lastAspect: false // Store last aspect ratio
33
  }, options );
34
 
35
  var hasOverflowScroll = typeof( jQuery( 'body' )[0].style['-webkit-overflow-scrolling'] ) !== 'undefined';
56
  .css( 'position', 'relative' )
57
  .css( prefix.css+'transition', prefix.css+'transform .'+settings.menuSpeed+'s cubic-bezier('+settings.bezierCurve+')' );
58
 
59
+ settings.lastAspect = getAspect();
60
+
61
  // Add the transition CSS for slide prep
62
  jQuery( '.pushit' )
63
  .css( prefix.css+'transition', prefix.css+'transform .'+settings.menuSpeed+'s cubic-bezier('+settings.bezierCurve+')' );
64
 
65
+ function getAspect() {
66
+ if ( jQuery( window ).width() < jQuery( window ).height() ) {
67
+ return 'portrait';
68
+ } else {
69
+ return 'landscape';
70
+ }
71
+ }
72
+
73
  function whichPushIt( clicked ){
74
  var parent = clicked;
75
  if ( parent.hasClass( 'pushit-left' ) ) {
89
  // Cleanup memory usage!
90
  settings.container
91
  .css( prefix.css+'transform', '' )
92
+ .css( 'position', '' )
93
  .css( 'overflow', '' )
94
  .css( 'height', '' );
95
  pushitOverlay.css( 'z-index', '-1' );
106
  }).css( 'z-index', '99' );
107
  }
108
 
109
+ function disableTouchMove(){
110
+ settings.container.on( 'touchmove', function( e ){
111
+ // e.preventDefault();
112
+ });
113
+ }
114
+
115
+ function enableTouchMove(){
116
+ // settings.container.off( 'touchmove' );
117
+ }
118
+
119
  function togglePushIt( clicked ){
120
  settings.pushed = clicked;
121
  direction = whichPushIt( clicked );
122
  var side = ('.pushit-' + direction );
123
  var activeSide = jQuery( side );
124
  jQuery( side ).toggleClass( 'pushit-open' );
 
125
  // Left Menus
126
  // Open
127
  if ( side == '.pushit-left' && activeSide.hasClass( 'pushit-open' ) ) {
128
+ disableTouchMove();
129
  pushitCloseListener();
130
+ settings.container
131
+ .height( window.innerHeight )
132
+ .css( 'position', 'fixed' )
133
+ .css( 'overflow', 'hidden' );
134
+
135
  if ( prefix.css != '' ){
136
  activeSide.css( prefix.css+'transform', 'translate3d(' + settings.menuWidth + 'px, 0, 0)' );
137
+ settings.container.css( prefix.css+'transform', 'translate3d(' + settings.menuWidth + 'px, 0, 0)' );
 
 
 
138
  } else {
139
  activeSide.animate( { left: '0' }, settings.menuSpeed );
140
+ settings.container.animate( { left: settings.menuWidth }, settings.menuSpeed );
 
 
 
141
  }
142
  // Closed
143
  } else if ( side == '.pushit-left' && !activeSide.hasClass( 'pushit-open' ) ) {
144
+ enableTouchMove();
145
  if ( prefix.css != '' ){
146
  activeSide.css( prefix.css+'transform', 'translate3d(0, 0, 0)' );
147
  settings.container.css( prefix.css+'transform', 'translate3d(0, 0, 0)' );
154
  // Right Menus
155
  // Open
156
  if ( side == '.pushit-right' && jQuery( side ).hasClass( 'pushit-open' ) ) {
157
+ disableTouchMove();
158
  pushitCloseListener();
159
+ settings.container
160
+ .height( window.innerHeight )
161
+ .css( 'position', 'fixed' )
162
+ .css( 'overflow', 'hidden' );
163
+
164
  if ( prefix.css != '' ){
165
+ activeSide.css( prefix.css+'transform', 'translate3d(-' + settings.menuWidth + 'px, 0, 0)' );
166
+ settings.container.css( prefix.css+'transform', 'translate3d(-' + settings.menuWidth + 'px, 0, 0)' );
 
 
 
 
167
  } else {
168
+ activeSide.animate( { left: settings.viewportWidth - settings.menuWidth }, settings.menuSpeed );
169
+ settings.container.animate( { left: '-' + settings.menuWidth }, settings.menuSpeed );
 
 
 
 
170
  }
171
  // Closed
172
  } else if ( side == '.pushit-right' && !jQuery( side ).hasClass( 'pushit-open' ) ) {
173
+ enableTouchMove();
174
  if ( prefix.css != '' ){
175
  activeSide.css( prefix.css+'transform', 'translate3d(0, 0, 0)' );
176
  settings.container.css( prefix.css+'transform', 'translate3d(0, 0, 0)' );
189
  // Close the menu on a rotate— no need to have the browser choke on render
190
  var currentWindow = jQuery( window );
191
  currentWindow.resize( function(){
192
+ if ( settings.lastAspect != getAspect() ) {
193
+ settings.lastAspect = getAspect();
194
+
195
+ if ( jQuery( '.pushit-active' ).length ) {
196
+ pushitOverlay.trigger( 'click' );
197
+ cleanUpPushit();
198
+ }
199
+
200
+ if ( settings.rightMenu.length ) {
201
+ settings.viewportWidth = currentWindow.width();
202
+ settings.rightMenu.css( 'left', settings.viewportWidth + 'px' );
203
+ }
204
  }
205
  });
206
 
themes/foundation/modules/tappable/wptouch.tappable.js CHANGED
@@ -8,6 +8,6 @@ jQuery( document ).ajaxComplete( function() {
8
 
9
  function bindTappableEls( elements ){
10
  jQuery( elements ).each( function(){
11
- jQuery( this ).tappable({ touchDelay: 90 });
12
  });
13
  }
8
 
9
  function bindTappableEls( elements ){
10
  jQuery( elements ).each( function(){
11
+ jQuery( this ).tappable({ touchDelay: 74 });
12
  });
13
  }
themes/foundation/modules/webapp/webapp.php CHANGED
@@ -41,7 +41,7 @@ function foundation_webapp_settings( $page_options ) {
41
  'notice-message',
42
  array(
43
  wptouch_add_pro_setting( 'checkbox', 'webapp_show_notice', __( 'Show a notice message for iPhone, iPod touch & iPad visitors about my Web-App', 'wptouch-pro' ), __( 'WPtouch shows a notice bubble on 1st visit letting users know about your Web-App enabled website on iOS devices.', 'wptouch-pro' ), WPTOUCH_SETTING_BASIC, '1.0' ),
44
- wptouch_add_pro_setting( 'textarea', 'webapp_notice_message', __( 'Notice message contents', 'wptouch-pro' ), __( '[device] and [icon] are dynamic and used to determine the device and iOS version. Do not remove these from your message.', 'wptouch-pro' ), WPTOUCH_SETTING_ADVANCED, '1.0' ),
45
  wptouch_add_pro_setting(
46
  'list',
47
  'webapp_notice_expiry_days',
@@ -116,6 +116,43 @@ function foundation_webapp_settings( $page_options ) {
116
  FOUNDATION_SETTING_DOMAIN
117
  );
118
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  if ( foundation_is_theme_using_module( 'tablets' ) ) {
120
  wptouch_add_page_section(
121
  FOUNDATION_PAGE_WEB_APP,
41
  'notice-message',
42
  array(
43
  wptouch_add_pro_setting( 'checkbox', 'webapp_show_notice', __( 'Show a notice message for iPhone, iPod touch & iPad visitors about my Web-App', 'wptouch-pro' ), __( 'WPtouch shows a notice bubble on 1st visit letting users know about your Web-App enabled website on iOS devices.', 'wptouch-pro' ), WPTOUCH_SETTING_BASIC, '1.0' ),
44
+ wptouch_add_pro_setting( 'textarea', 'webapp_notice_message', __( 'Notice message contents', 'wptouch-pro' ), __( '[icon] is used to display the appropriate bookmark icon for your device. Do not remove it from your message.', 'wptouch-pro' ), WPTOUCH_SETTING_ADVANCED, '1.0' ),
45
  wptouch_add_pro_setting(
46
  'list',
47
  'webapp_notice_expiry_days',
116
  FOUNDATION_SETTING_DOMAIN
117
  );
118
 
119
+
120
+ wptouch_add_page_section(
121
+ FOUNDATION_PAGE_WEB_APP,
122
+ __( 'iPhone 6 Startup Screen', 'wptouch-pro' ),
123
+ 'iphone-6-startup-screen',
124
+ array(
125
+ wptouch_add_pro_setting(
126
+ 'image-upload',
127
+ 'startup_screen_iphone_6',
128
+ sprintf( __( '%d by %d pixels (PNG)', 'wptouch-pro' ), 750,1294 ),
129
+ '',
130
+ WPTOUCH_SETTING_BASIC,
131
+ '1.0'
132
+ ),
133
+ ),
134
+ $page_options,
135
+ FOUNDATION_SETTING_DOMAIN
136
+ );
137
+
138
+ wptouch_add_page_section(
139
+ FOUNDATION_PAGE_WEB_APP,
140
+ __( 'iPhone 6+ Startup Screen', 'wptouch-pro' ),
141
+ 'iphone-6plus-startup-screen',
142
+ array(
143
+ wptouch_add_pro_setting(
144
+ 'image-upload',
145
+ 'startup_screen_iphone_6plus',
146
+ sprintf( __( '%d by %d pixels (PNG)', 'wptouch-pro' ), 1242,2148 ),
147
+ '',
148
+ WPTOUCH_SETTING_BASIC,
149
+ '1.0'
150
+ ),
151
+ ),
152
+ $page_options,
153
+ FOUNDATION_SETTING_DOMAIN
154
+ );
155
+
156
  if ( foundation_is_theme_using_module( 'tablets' ) ) {
157
  wptouch_add_page_section(
158
  FOUNDATION_PAGE_WEB_APP,
themes/foundation/readme.txt CHANGED
@@ -1,5 +1,5 @@
1
  Theme Name: Foundation
2
  Theme URI: http://www.wptouch.com/
3
  Description: The original WPtouch Pro foundation framework (DO NOT USE DIRECTLY)
4
- Version: 2.1
5
  Author: BraveNewCode Inc.
1
  Theme Name: Foundation
2
  Theme URI: http://www.wptouch.com/
3
  Description: The original WPtouch Pro foundation framework (DO NOT USE DIRECTLY)
4
+ Version: 2.2
5
  Author: BraveNewCode Inc.
themes/foundation/root-functions.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- define( 'FOUNDATION_VERSION', '2.1' );
4
 
5
  define( 'FOUNDATION_DIR', WPTOUCH_DIR . '/themes/foundation' );
6
  define( 'FOUNDATION_URL', WPTOUCH_URL . '/themes/foundation' );
@@ -136,7 +136,7 @@ function foundation_setting_defaults( $settings ) {
136
  $settings->webapp_mode_enabled = false;
137
  $settings->webapp_enable_persistence = true;
138
  $settings->webapp_show_notice = true;
139
- $settings->webapp_notice_message = __( 'Install this Web-App on your [device]: tap [icon] then "Add to Home Screen"', 'wptouch-pro' );
140
  $settings->webapp_ignore_urls = '';
141
  $settings->webapp_notice_expiry_days = 30;
142
 
@@ -144,6 +144,8 @@ function foundation_setting_defaults( $settings ) {
144
  $settings->startup_screen_iphone_2g_3g = false;
145
  $settings->startup_screen_iphone_4_4s = false;
146
  $settings->startup_screen_iphone_5 = false;
 
 
147
  $settings->startup_screen_ipad_1_portrait = false;
148
  $settings->startup_screen_ipad_1_landscape = false;
149
  $settings->startup_screen_ipad_3_portrait = false;
@@ -202,6 +204,7 @@ function foundation_setting_defaults( $settings ) {
202
  $settings->posts_per_page = '5';
203
  $settings->excluded_categories = '';
204
  $settings->excluded_tags = '';
 
205
  $settings->twitter_account = 'none';
206
 
207
  // Pages
@@ -360,6 +363,14 @@ function foundation_render_theme_settings( $page_options ) {
360
  WPTOUCH_SETTING_BASIC,
361
  '1.0'
362
  ),
 
 
 
 
 
 
 
 
363
  );
364
 
365
  $foundation_blog_settings = apply_filters( 'foundation_settings_blog', $foundation_blog_settings );
@@ -443,7 +454,7 @@ function foundation_render_theme_settings( $page_options ) {
443
  wptouch_add_setting(
444
  'image-upload',
445
  'iphone_icon_retina',
446
- sprintf( __( '%d by %d pixels (PNG)', 'wptouch-pro' ), 120, 120 ),
447
  '',
448
  WPTOUCH_SETTING_BASIC,
449
  '2.0'
@@ -558,14 +569,16 @@ function foundation_setup_homescreen_icons() {
558
  $has_icon = $settings->android_others_icon;
559
 
560
  if ( wptouch_is_device_real_ipad() ) {
561
- // Default (if no icon added in admin, or icon isn't formatted correctly, and as a catch-all)
562
- echo '<link rel="apple-touch-icon-precomposed" href="' . WPTOUCH_DEFAULT_HOMESCREEN_ICON . '" />' . "\n";
563
  // iPad home screen icons
564
  foundation_maybe_output_homescreen_icon( $settings->ipad_icon_retina, 152, 152, 2 );
565
  foundation_maybe_output_homescreen_icon( $settings->ipad_icon_retina, 144, 144, 2 );
566
  foundation_maybe_output_homescreen_icon( $settings->ipad_icon_retina, 57, 57, 1 );
 
 
 
567
  } else {
568
  // iPhone / Android home screen icons
 
569
  foundation_maybe_output_homescreen_icon( $settings->iphone_icon_retina, 120, 120, 2 );
570
  foundation_maybe_output_homescreen_icon( $settings->iphone_icon_retina, 114, 114, 2 );
571
  foundation_maybe_output_homescreen_icon( $settings->android_others_icon, 57, 57, 1 );
@@ -736,7 +749,7 @@ function foundation_body_classes( $classes ) {
736
  $classes[] = 'rtl';
737
  }
738
 
739
- if ( wptouch_fdn_iOS_7() ) {
740
  $classes[] = 'ios7';
741
  }
742
 
@@ -798,22 +811,7 @@ function wptouch_fdn_iOS_7() {
798
  If we're on iOS8
799
  */
800
  function wptouch_fdn_iOS_8() {
801
- if ( strpos( $_SERVER['HTTP_USER_AGENT'],'iPhone OS 8_' ) ) {
802
- return true;
803
- } else {
804
- return false;
805
- }
806
- }
807
-
808
- /*
809
- If we're on iOS5+
810
-
811
- We'll setup media queries for client side detection of
812
- css features for fixed positioning ( -webkit-overflow-scrolling ),
813
- but if server-side detection is needed, it's here :)
814
- */
815
- function wptouch_fdn_iOS_5_or_higher() {
816
- if ( strpos( $_SERVER['HTTP_USER_AGENT'],'iPhone OS 5_' ) || strpos( $_SERVER['HTTP_USER_AGENT'],'iPhone OS 6_' ) || strpos( $_SERVER['HTTP_USER_AGENT'],'iPhone OS 7_' ) || strpos( $_SERVER['HTTP_USER_AGENT'],'iPhone OS 8_' ) ) {
817
  return true;
818
  } else {
819
  return false;
@@ -954,7 +952,7 @@ function wptouch_fdn_archive_load_more_text() {
954
  }
955
  }
956
 
957
- function wptouch_fdn_ordered_cat_list( $num, $include_count = true, $taxonomy = 'category' ) {
958
  global $wpdb;
959
 
960
  $settings = wptouch_get_settings( 'foundation' );
@@ -969,7 +967,7 @@ function wptouch_fdn_ordered_cat_list( $num, $include_count = true, $taxonomy =
969
  }
970
  }
971
 
972
- echo '<ul>';
973
  $sql = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}term_taxonomy INNER JOIN {$wpdb->prefix}terms ON {$wpdb->prefix}term_taxonomy.term_id = {$wpdb->prefix}terms.term_id WHERE taxonomy = '{$taxonomy}' AND {$wpdb->prefix}term_taxonomy.term_id NOT IN ($excluded_cats) AND count >= 1 ORDER BY count DESC LIMIT 0, $num");
974
 
975
  if ( $sql ) {
@@ -992,7 +990,7 @@ function wptouch_fdn_ordered_cat_list( $num, $include_count = true, $taxonomy =
992
  }
993
  }
994
  }
995
- echo '</ul>';
996
  }
997
 
998
  function wptouch_fdn_ordered_tag_list( $num ) {
@@ -1026,6 +1024,8 @@ function wptouch_fdn_ordered_tag_list( $num ) {
1026
 
1027
  function wptouch_fdn_display_comment( $comment, $args, $depth ) {
1028
  $GLOBALS[ 'comment' ] = $comment;
 
 
1029
  extract( $args, EXTR_SKIP );
1030
 
1031
  locate_template( 'one-comment.php', true, false );
1
  <?php
2
 
3
+ define( 'FOUNDATION_VERSION', '2.2' );
4
 
5
  define( 'FOUNDATION_DIR', WPTOUCH_DIR . '/themes/foundation' );
6
  define( 'FOUNDATION_URL', WPTOUCH_URL . '/themes/foundation' );
136
  $settings->webapp_mode_enabled = false;
137
  $settings->webapp_enable_persistence = true;
138
  $settings->webapp_show_notice = true;
139
+ $settings->webapp_notice_message = __( 'Install this Web-App on your homescreen: tap [icon] then "Add to Home Screen"', 'wptouch-pro' );
140
  $settings->webapp_ignore_urls = '';
141
  $settings->webapp_notice_expiry_days = 30;
142
 
144
  $settings->startup_screen_iphone_2g_3g = false;
145
  $settings->startup_screen_iphone_4_4s = false;
146
  $settings->startup_screen_iphone_5 = false;
147
+ $settings->startup_screen_iphone_6 = false;
148
+ $settings->startup_screen_iphone_6plus = false;
149
  $settings->startup_screen_ipad_1_portrait = false;
150
  $settings->startup_screen_ipad_1_landscape = false;
151
  $settings->startup_screen_ipad_3_portrait = false;
204
  $settings->posts_per_page = '5';
205
  $settings->excluded_categories = '';
206
  $settings->excluded_tags = '';
207
+ $settings->allow_nested_comment_replies = false;
208
  $settings->twitter_account = 'none';
209
 
210
  // Pages
363
  WPTOUCH_SETTING_BASIC,
364
  '1.0'
365
  ),
366
+ wptouch_add_setting(
367
+ 'checkbox',
368
+ 'allow_nested_comment_replies',
369
+ __( 'Allow nested comment replies from mobile visitors', 'wptouch-pro' ),
370
+ __( 'Will show a Reply link after each comment', 'wptouch-pro' ),
371
+ WPTOUCH_SETTING_BASIC,
372
+ '1.0'
373
+ ),
374
  );
375
 
376
  $foundation_blog_settings = apply_filters( 'foundation_settings_blog', $foundation_blog_settings );
454
  wptouch_add_setting(
455
  'image-upload',
456
  'iphone_icon_retina',
457
+ sprintf( __( '%d by %d pixels (PNG)', 'wptouch-pro' ), 180, 180 ),
458
  '',
459
  WPTOUCH_SETTING_BASIC,
460
  '2.0'
569
  $has_icon = $settings->android_others_icon;
570
 
571
  if ( wptouch_is_device_real_ipad() ) {
 
 
572
  // iPad home screen icons
573
  foundation_maybe_output_homescreen_icon( $settings->ipad_icon_retina, 152, 152, 2 );
574
  foundation_maybe_output_homescreen_icon( $settings->ipad_icon_retina, 144, 144, 2 );
575
  foundation_maybe_output_homescreen_icon( $settings->ipad_icon_retina, 57, 57, 1 );
576
+
577
+ // Default (if no icon added in admin, or icon isn't formatted correctly, and as a catch-all)
578
+ echo '<link rel="apple-touch-icon-precomposed" href="' . WPTOUCH_DEFAULT_HOMESCREEN_ICON . '" />' . "\n";
579
  } else {
580
  // iPhone / Android home screen icons
581
+ foundation_maybe_output_homescreen_icon( $settings->iphone_icon_retina, 180, 180, 2 );
582
  foundation_maybe_output_homescreen_icon( $settings->iphone_icon_retina, 120, 120, 2 );
583
  foundation_maybe_output_homescreen_icon( $settings->iphone_icon_retina, 114, 114, 2 );
584
  foundation_maybe_output_homescreen_icon( $settings->android_others_icon, 57, 57, 1 );
749
  $classes[] = 'rtl';
750
  }
751
 
752
+ if ( wptouch_fdn_iOS_7() || wptouch_fdn_iOS_8() ) {
753
  $classes[] = 'ios7';
754
  }
755
 
811
  If we're on iOS8
812
  */
813
  function wptouch_fdn_iOS_8() {
814
+ if ( strpos( $_SERVER['HTTP_USER_AGENT'],'iPhone OS 10_' ) || strpos( $_SERVER['HTTP_USER_AGENT'],'iPhone OS 8_' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
815
  return true;
816
  } else {
817
  return false;
952
  }
953
  }
954
 
955
+ function wptouch_fdn_ordered_cat_list( $num, $include_count = true, $taxonomy = 'category', $opening_tag = '<ul>', $closing_tag = '</ul>' ) {
956
  global $wpdb;
957
 
958
  $settings = wptouch_get_settings( 'foundation' );
967
  }
968
  }
969
 
970
+ echo $opening_tag;
971
  $sql = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}term_taxonomy INNER JOIN {$wpdb->prefix}terms ON {$wpdb->prefix}term_taxonomy.term_id = {$wpdb->prefix}terms.term_id WHERE taxonomy = '{$taxonomy}' AND {$wpdb->prefix}term_taxonomy.term_id NOT IN ($excluded_cats) AND count >= 1 ORDER BY count DESC LIMIT 0, $num");
972
 
973
  if ( $sql ) {
990
  }
991
  }
992
  }
993
+ echo $closing_tag;
994
  }
995
 
996
  function wptouch_fdn_ordered_tag_list( $num ) {
1024
 
1025
  function wptouch_fdn_display_comment( $comment, $args, $depth ) {
1026
  $GLOBALS[ 'comment' ] = $comment;
1027
+ $GLOBALS[ 'comment_args' ] = $args;
1028
+ $GLOBALS[ 'comment_depth' ] = $depth;
1029
  extract( $args, EXTR_SKIP );
1030
 
1031
  locate_template( 'one-comment.php', true, false );
wptouch.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: WPtouch Mobile Plugin
4
  Plugin URI: http://www.wptouch.com/
5
- Version: 3.4.10
6
  Description: Create a slick mobile WordPress website with just a few clicks
7
  Author: BraveNewCode Inc.
8
  Author URI: http://www.wptouch.com/
@@ -12,7 +12,7 @@
12
  Trademark: 'WPtouch' is an unregistered trademark of BraveNewCode Inc., and 'WPtouch Pro' is a registered trademark of BraveNewCode Inc.; neither term can be re-used in conjuction with GPL v2 distributions or conveyances of this software under the license terms of the GPL v2 without express prior permission of BraveNewCode Inc.
13
  */
14
 
15
- define( 'WPTOUCH_VERSION', '3.4.10' );
16
 
17
  define( 'WPTOUCH_BASE_NAME', basename( __FILE__, '.php' ) . '.php' );
18
  define( 'WPTOUCH_DIR', WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . basename( __FILE__, '.php' ) );
2
  /*
3
  Plugin Name: WPtouch Mobile Plugin
4
  Plugin URI: http://www.wptouch.com/
5
+ Version: 3.5.4
6
  Description: Create a slick mobile WordPress website with just a few clicks
7
  Author: BraveNewCode Inc.
8
  Author URI: http://www.wptouch.com/
12
  Trademark: 'WPtouch' is an unregistered trademark of BraveNewCode Inc., and 'WPtouch Pro' is a registered trademark of BraveNewCode Inc.; neither term can be re-used in conjuction with GPL v2 distributions or conveyances of this software under the license terms of the GPL v2 without express prior permission of BraveNewCode Inc.
13
  */
14
 
15
+ define( 'WPTOUCH_VERSION', '3.5.4' );
16
 
17
  define( 'WPTOUCH_BASE_NAME', basename( __FILE__, '.php' ) . '.php' );
18
  define( 'WPTOUCH_DIR', WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . basename( __FILE__, '.php' ) );